This Week in Effect - 2024-03-22
Hi Effecters!
Welcome back to a This Week In Effect (TWIE), our weekly update that aims to help you keep track of everything that is going on inside our Community and the Effect Ecosystem.
If it’s your first time here, Effect is a powerful TypeScript library designed to help developers create complex, synchronous, and asynchronous programs. One of the key features that sets Effect apart is how it leverages structured concurrency to provide features such as async cancellation and safe resource management, making it easier to build robust, scalable, and efficient programs.
To get started, below you’ll find our quick-start guide and documentation that will be your first step in your Effect journey. Enjoy!
Overview of TWIE
If you're new to TWIE, here are a few words on what TWIE is and what it aims for.
We’re happy to see the community growing so fast, with more and more people adopting Effect. At the same time, we understand that it might not be easy keeping up with everything that is going on in the Effect Ecosystem:
- Our Discord server reached 2060+ members a few days ago and the engagement is at an all-time high.
- We just had our very first Effect Days Conference in Vienna on February 23, 2024. It's been an amazing experience connecting with our community in person. If you couldn't join us in Vienna, we've got plenty of exciting updates and content coming your way, so stay tuned!
- All projects around Effect are receiving key updates and there has been a lot of activity on GitHub!
We want to make it easy for you to find all the info you need to fully enjoy your Effect journey and actively engage with our community!
And, that’s why we created TWIE – a weekly update to inform you about key events about Effect in the previous week, both from the community (Discord discussions, X posts, YouTube content, etc.) and from a technical standpoint.
Now, back to business!
Technology
The big news of the week: Schema 0.64 has been released! Explore all the changes and improvements in Schema 0.64.
Below you may find the list of all changes that occurred last week.
Effect Core
- Set unhandled log level to none for fibers in FiberSet/Map (Improvement)
- Fix: Effect.Tag generated proxy functions to work with andThen/tap, or others that do function/isEffect checks (Bug Fix)
- Added Predicate.isTruthy (Feature)
- Prevent Effect.if from crashing when first argument is not an Effect (Bug Fix)
- Fix metrics not using labels from fiber ref (Bug Fix)
- Add overload to Effect.filterOrFail that fails with NoSuchElementException (Feature)
- Make more data types in /platform implement Inspectable (Feature)
- Use incremental counters instead of up-down for runtime metrics (Bug Fix)
- Make @effect/opentelemetry metrics conform to the spec (Bug Fix)
- Fix ConfigError _tag (Bug Fix)
- Changing the HaltStrategy.match function signature (Refactor, next-minor)
- Cache, ScopedCache swap type parameters (Refactor, next-minor)
- Fix getEquivalence parameter order (Refactor, next-minor)
- Add preregisteredWords options to frequency metric key type (Feature)
- Add fiber ref for disabling the tracer (Feature)
- Update dependencies (Improvement)
- Add name to no-op spans (Feature)
- Update TypeScript to 5.4 (Improvement)
- Replace custom NoInfer type with the native NoInfer type (Refactor, next-minor)
Effect Opentelemetry
- Update dependencies (Improvement)
- Update TypeScript to 5.4 (Improvement)
- Make @effect/opentelemetry metrics conform to the spec (Bug Fix)
Effect Vitest
- Update TypeScript to 5.4 (Improvement)
- Expose vitest helpers as @effect/vitest (Improvement)
Effect Printer
- Update TypeScript to 5.4 (Improvement)
Effect RPC
- Update TypeScript to 5.4 (Improvement)
Effect Typeclass
- Update TypeScript to 5.4 (Improvement)
Effect Experimental
- Remove use of proto (Refactor)
- Add clear API on ResultPersistence (Feature)
- Add Redis & TimeToLive to Persistence module (Feature)
- Update dependencies (Improvement)
- Update TypeScript to 5.4 (Improvement)
Effect Platform
- Ensure Socket fibers are interruptible (Feature)
- Ensure websocket events are not missed (Feature )
- Use Deferred.unsafeDone for websocket onclose + onerror (Improvement)
- Add .watch method to /platform FileSystem (Feature)
- Make more data types in /platform implement Inspectable (Feature)
- Add support for watching single files (Feature)
- Fallback to node fs.watch if @parcel/watcher fails to import (Bug Fix)
- Swap type parameters for /platform data types (Refactor)
- Update dependencies (Improvement)
- Update TypeScript to 5.4 (Improvement)
- README: add some basic docs for Terminal, Command and FileSystem (Documentation Update)
Effect CLI
- Remove use of proto (Refactor)
- Update dependencies (Improvement)
- Update TypeScript to 5.4 (Improvement)
Effect Schema
- Add missing Date api interfaces (Feature)
- JSONSchema: allow overrides through annotations (Bug Fix)
- Use Simplify from effect/Types in TaggedClass, TaggedError and TaggedRequest (Bug Fix)
- Use not from effect/Boolean (Refactor)
- Use negate from effect/BigDecimal (Refactor)
- Improve pick/omit and add support for Class (Feature)
- Fix test on TS 5.5 that is able to infer guards (Bug Fix)
- Add back BrandSchema (Feature)
- Expose Class API identifiers (Feature)
- Fix typeAST, encodedAST impl (Bug Fix)
- Remove sorting, flattening, and unification (Refactor)
- Make optional dual (Feature)
- Make partial dual (Feature)
- Make defensive copies of exports (Refactor)
- Update README (Documentation Update)
- Improve All types to encompass additional any / never combinations (Improvement)
- Schema template literal regex escape special characters (Bug Fix)
- Enhance error messages by eliminating the internal TAG constant (Refactor)
- Docs: optionalToOptional and optionalToRequired (Documentation Update)
- Update dependencies (Improvement)
- Preserve defect information & TaggedError message (Improvement)
- Update TypeScript to 5.4 (Improvement)
- Remove the custom Simplify type (Refactor)
Community
Last week we welcomed +30 new Effecters to our Discord server! Thank you to all our new members for joining the Effect community, and we're excited to have you on board!
Content Update
Let's review the key highlights of this week in our community.
We begin with a fantastic video by Milad in sign language. Thank you so much, Milad, for your dedication to promoting Effect to your audience!
Moving on, we have fresh content straight from our Effect Days: presenting the testimonials of two workshop participants.
Laure Retru-Chavastel from inato:
and Sandro Maglione:
Just a reminder for our French-speaking audience: the first ever Effect Paris Meetup will land in April! Thanks to Evryg team, Jean-Baptist Musso and Antoine Coulon for organizing the event.
There's plenty of news and content arriving, so don't forget to follow our X account and YouTube channel to stay updated!
Closing Notes
That's all for this week. Thank you for being a vital part of our community. Your feedback is highly valued as we fine-tune this new format. Feel free to share your thoughts, and we'll do our best to tailor it to the needs of our community.
The Effect Community Team
Related Posts
This Week in Effect - 2024-03-15
Mar. 15th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Technical updates and the exciting announcement of the first-ever Effect Paris meetup in April!
Read more
This Week in Effect - 2024-03-29
Mar. 29th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Technical updates in Effect, first conference talk release, how to sign for 'Effect' in sign language, and an upcoming event.
Read more