Bot releases are hidden (Show)
Internal cleanup & minor changes. Fixed README & (package/README) logo issues
Full Changelog: https://github.com/RobThree/IdGen/compare/3.0.6...3.0.7
Published by RobThree 5 months ago
Full Changelog: https://github.com/RobThree/IdGen/compare/3.0.5...3.0.6
Published by RobThree 8 months ago
This is a maintenance release. No changes in packages. From now on we use GitHub actions to build and publish Nuget packages.
Published by RobThree over 1 year ago
Published by RobThree about 2 years ago
Minor internal refactoring.
ID
is now a recordPublished by RobThree over 2 years ago
Minor internal refactoring. Also an Idgen.DependencyInjection package is now available.
Published by RobThree over 4 years ago
This release contains a few (minor) breaking changes. Generated 2.x ID's are still compatible with 3.x ID's.
IdGenerator
have been replaced with a single constructor which accepts IdGeneratorOptions
that contains the ITimeSource
, IdStructure
and SequenceOverflowStrategy
.MaskConfig
class is now more appropriately named IdStructure
since it describes the structure of the generated ID's.UseSpinWait
property has moved to the IdGeneratorOptions
and is now an enum of type SequenceOverflowStrategy
instead of a boolean value. Note that this property has also been renamed in the config file (from useSpinWait
to sequenceOverflowStrategy
) and is no longer a boolean but requires
one of the values from SequenceOverflowStrategy
.ID
is now Id
(only used as return value by the FromId(...)
method)Published by RobThree over 4 years ago
Fix concurrency issue (see PR #23). Upped version.
Published by RobThree over 4 years ago
The IdGenerator
now offers a spinwaiting strategy when a sequenceoverflow occurs instead of throwing a SequenceOverflowException
. This will spinwait until the next tick and then return a new Id. New constructoroverloads have been added to be able to set this property at construction time. Also the configuration package supports this new option with a useSpinWait
attribute on the idGenerator
element.
Published by RobThree over 4 years ago
TryCreate()
method (see #21)Published by RobThree over 4 years ago
IDGen.Configuration
packageID
now implements IEquatable
ArgumentOutOfRangeExceptions
from the IdGenerator
's ctor messagesIf you're using the IdGenerator.GetFromConfig(...)
method make sure you check the README. The changes aren't big, but breaking nonetheless. How to fix:
IdGen.Configuration
packageIdGen.Configuration.IdGeneratorsSection, IdGen
to:IdGen.Configuration.IdGeneratorsSection, IdGen.Configuration
using IdGen.Configuration
IdGenerator.GetFromConfig(...)
to AppConfigFactory.GetFromConfig(...)
Published by RobThree about 6 years ago
FromId()
method to 'decode' an IdPublished by RobThree almost 8 years ago
Timesource(s) is (are) no longer fixed to 'millisecond resolution'; we now have the concept of a 'tick'. Each timesource can define it's own definition of what a 'tick' is, be it a millisecond or a minute or any other timespan.
This means breaking changes in the ITimeSource
interface and the way timesources are implemented and breaking changes in some of the MaskConfig
's method signatures.
The IIdGenerator<T>
interface now explicitly exposes an IdGenerator
's ITimeSource
, MaskConfig
and Epoch
as (read-only) properties.
CreateMachineSpecificGenerator()
& CreateThreadSpecificGenerator()
methods have been removed; these are way to 'dangerous' to use anyway since they are very prone to 'collisions' in 'auto-generated' values for the IdGenerators.
Published by RobThree over 9 years ago
Moved away from DateTime.UtcNow and implemented a better, millisecond resolution, DefaultTimeSource using QueryPerformanceCounter.
Published by RobThree over 9 years ago