Releases: TheElectronWill/night-config
3.8.1 Async config fixes
What's Changed
- Implement valueMap for StampedConfig, resolve #177 by @TheElectronWill in #178
- Fix some AsyncFileConfig issues, resolve #181 and #180 by @TheElectronWill in #182
- More warnings have been fixed
Full Changelog: v3.8.0...v3.8.1
3.8.0: API enhancements
What's Changed
- FileWatcher offers new methods that return a CompletableFuture
- Every FileConfig is now a
ConcurrentConfig
- Some warnings have been fixed.
Full Changelog: v3.7.4...v3.8.0
3.7.4: FileWatcher fix
Fixes
This minor release fixes a bug that caused the FileWatcher
to close when a directory containing watched files was deleted. Also, an exception is now raised early if the FileWatcher
is used in an unsupported manner.
Full Changelog: v3.7.3...v3.7.4
3.7.3: FileConfig fix
Fixes
This minor release fixes a bad interaction between AsyncFileConfig
and StampedConfig
, and between SyncFileConfig
, SynchronizedConfig
and TomlParser
, which resulted in some TOML configurations to be mis-loaded. Thanks to @Technici4n for discovering the bug!
Full Changelog: v3.7.2...v3.7.3
3.7.2: TOML compliance fix
TOML Fixes
- Implement TOML test suite by @TheElectronWill in #175
The TOML implementation is now more robust thanks to toml-test. We don't call the binary, but rather include the repository as a Git submodule in order to grab all the test files.
Compatibility note: the TOML parser of NightConfig now rejects some files that it would have previously accepted (even though they were invalid). This is intended, and we encourage all users to fix their invalid TOML files.
Please read the release notes of v3.7.0 ✨ to learn what has changed since v3.6.x.
Full Changelog: v3.7.1...v3.7.2
3.7.1 Gradle fix
Fixes
- Resolve a misconfiguration of the Gradle build, see #173 for more details
- Fix a minor issue with the new options of
JsonParser
You should use v3.7.1 instead of v3.7.0.
Please read the release notes of v3.7.0 ✨ to learn what has changed since v3.6.x.
Full Changelog: v3.7.0...v3.7.1
3.7.0: NightConfig rejuvenated ✨
Major changes
FileWatcher
now comes with out-of-the-box debouncing, which improves the performance of autoreloading and autosaving configurations ⚡, see #148FileConfig
instances are now actually thread-safe and work better with autoreload, which should prevent most of the corruption issues 🛡️, see #152- A new Serialization/Deserialization framework is available in the
serde
package 🚀, see #163.
Unlike the oldObjectConverter
, the newObjectSerializer
andObjectDeserializer
are modular and extensible: you can register your own serializers and deserializers. Deserializers (config -> object) are chosen based on the generic type of the field to set and the type of the config value to deserialize. This allows for fine-grained deserialization. The oldObjectConverter
still works but is now deprecated. The goal is to remove the oldconversion
package in version 4.0.0.
Enhancements
- Allow multiple spec conditions to be checked by @vaperion in #151 (Note: this fix applies to the deprecated
conversion
package; the newserde
package supports multiple@SerdeAssert
conditions out of the box) - Support UTF-16 and UTF-8 BOM by @TheElectronWill in 68502b9
- In ConfigSpec and in the new
serde
Deserializer, automatically apply some "risky" conversions (e.g. long -> int) when it is not lossy, close #119 - Allow custom
Config
storage inConfigSpec
, by @PaintNinja in #168 - More unit tests, on Java 8, Java 11 and Java 17, by @TheElectronWill
Bug fixes
- toml: Fix squeezed Files by @Stein-N in #154
- toml: Align List ending when in a "group" by @Stein-N in #160
- toml: Allow header comments by @Stein-N in #162
- json: Disallow trailing data (configurable) by @TheElectronWill, close #167
- Multiple bugs have been fixed in
ObjectConverter
by @TheElectronWill in #163
Compatibility Note
NightConfig 3.7.0 is backward-compatible with previous releases, therefore I encourage you to upgrade your dependency on NightConfig in order to benefit from the new version.
Binary-wise, the backward-compatibility has been checked with japicmp
.
Source-wise, there is one small incompatible change: FileWatcher#addWatch
no longers throws an IOException
, which can result in a compiler error unreachable code
on the associated try/catch (example in forge).
New Contributors
- @vaperion made their first contribution in #151
- @Stein-N made their first contribution in #154
- @PaintNinja made their first contribution in #168
Thank you everyone!
Full Changelog: v3.6.7...v3.7.0
3.6.7
3.6.6 bugfix release
3.6.5 bugfix release
v3.6.5 Update project dependencies and bump version