- 🚀 Minor bug fixes from previous beta/alpha releases, which are now thoroughly battle tested
- The Keys dictionary, for cases where you need more than just a message and a value.
- Helpers for serialization.
- ➕ Additions to the API described in previous beta/alpha releases.
These are all additions to the API and are not breaking changes.
🚚 Also, StatusCode is marked Obsolete now. In 3.0, StatusCode may be removed in favor of Keys, depending on community response. So please speak if you use StatusCode and need it to stay. It is simply a bit redundant now that we have the more flexible Keys. For now, I have re-worked StatusCode to use Keys as the backing store. StatusCode remains a property, so it should serialize exactly the same.
💥 Breaking change:
String.Format() can have problems when JSON is in the mix, since JSON uses curly braces and String.Format uses those to denote formatting. Outcomes.WithMessage() relies on String.Format, so it was possible to get parameter not specified errors!
♻️ Given the prevalence of JSON, the availability of string interpolation and so on, it was deemed worthwhile to refactor this even though it will break people. We now have .WithMessage() which just takes a string, and .WithMessageFormat("...") which uses String.Format behinds the scenes.
🏗 Also, fixed a problem where, under the .NET Standard 1.3 targeting, .FromOutcome was not copying the value. There was a test, but the test was broken. This is why we do alpha builds.
👍 Thanks to @enriquein for adding deserialization support. Previously, this was not possible because we lacked a public constructor and had a few other internals that caused problems. A new class, DeserializableOutcome, was added as a deserialization target.
⚡️ Also updated xunit and other test-related packages.
🚀 This should be a stable release as not a lot has changed. v3 should be coming soon.
🚀 Pre-release version. For .Net 4 and .Net 4.5, added the [Serializable] attribute to help with WCF.
↪ Continued work around the keys dictionary. Keys are turning out to be quite useful and will definitely stay in.
🚀 Test release covering the new keys dictionary, which is very helpful in some cases. Be careful using this one, it will probably go live, but if there are serialization problems it will get rolled back.
🚀 After months of battle testing, bumped v2.2.0-alpha to release.
v2 of Outcomes focuses on pairing down aspects of the API that were confusing.
⬆️ As of v2, there were minor breaking changes for fringes of the API that were simplified. If you are using 1.2.0 or later, the tooling should have given you obsolete warnings. Upgrading should be smooth.
🚀 Pre-release version. The main focus of v2 is pairing down parts of the API that were confusing.
- ➕ Added formatting to several methods as a convenience.
- ➕ Added more documentation to classes and methods.
- ➕ Added more tests and improved test naming.
🚀 bumped to version 1.1.0, and deployed to nuget.