Folks,

Thans everyone for the review.
I've merged the issue.

https://issues.apache.org/jira/browse/IGNITE-17141

On Tue, 14 Jun 2022 at 11:07, Pavel Tupitsyn <ptupit...@apache.org> wrote:
>
> Maxim,
>
> Agree with the suffix digit logic change.
> Please see my comments on GitHub and in JIRA.
>
> On Mon, Jun 13, 2022 at 4:16 PM Maxim Muzafarov <mmu...@apache.org> wrote:
>
> > Pavel,
> >
> >
> > I've found some minor issue with the last digits in thin client
> > version - 2.14.0.62943. The last digits is the number of hours passed
> > since 01-01-2015 [1]. Due to the last number can't be greater than
> > 65534 (UInt16.MaxValue - 1 = 65534) there are only about 100 days left
> > to overceed the limit. It seems we need to change it soon.
> >
> > I've prepared the PR [2] with the following major chagnes:
> > - the maven command builds the .NET sources (.NET Core 3.1 and
> > Powershell required to be installed);
> > - the date format for the 'revision' is - yywwu [3] ('yy' - year, 'ww'
> > - week in a year, 'u' - the day number in a week);
> >
> > From my point of view, the changes [2] looks a bit friendly for the
> > version identification and more closely to the maven-style rather than
> > having javascript scripts execution. Please, take a look.
> >
> >
> > [1] https://github.com/apache/ignite/blob/master/pom.xml#L568
> > [2] https://github.com/apache/ignite/pull/10087/files
> > [3]
> > https://github.com/apache/ignite/pull/10087/files#diff-b5a06276719e759fe07dfe6f75d781be5f83d2215179d82bdb195ad035348214R660
> >
> >
> >
> > On Wed, 8 Jun 2022 at 20:06, Maxim Muzafarov <mmu...@apache.org> wrote:
> > >
> > > Folks,
> > >
> > > Make sense.
> > > Another tricky question is - can we have the following version
> > > committed in the source files 2.14.0.0, but when the 'release' profile
> > > get activated (or probably the build happened) revision number will
> > > changed to 2.14.0.62943? This will be the final release version ready
> > > for deploy (with the last digits changed each time build happened).
> > >
> > > On Wed, 8 Jun 2022 at 16:54, Pavel Tupitsyn <ptupit...@apache.org>
> > wrote:
> > > >
> > > > > As for the last number in .NET version, AFAIK it is used as the
> > unique
> > > > > build id and is required for nightly builds as nuget doesn't have
> > > > > functionality a-la maven's 'snapshots'
> > > >
> > > > NuGet supports string suffixes like 2.15.0-nightly1. However,
> > > > AssemblyVersionAttribute does not.
> > > > In some cases it is important to avoid having different NuGet packages
> > with
> > > > assemblies that have the AssemblyVersion inside (dll hell type
> > problems,
> > > > especially with peer assembly loading).
> > > >
> > > > So I suggest keeping the last number for AssemblyVersion
> > > > and AssemblyFileVersion in SharedAssemblyInfo.
> > > > This does not affect the NuGet package version.
> > > >
> > > > Otherwise, I don't have any objections to adding a new Maven step that
> > > > builds dotnet, as long as we keep using build.ps1 script.
> > > >
> > > > Thanks,
> > > > Pavel
> > > >
> > > > On Wed, Jun 8, 2022 at 4:31 PM Ivan Daschinsky <ivanda...@gmail.com>
> > wrote:
> > > >
> > > > > As for the last number in .NET version, AFAIK it is used as the
> > unique
> > > > > build id and is required for nightly builds as nuget doesn't have
> > > > > functionality a-la maven's 'snapshots'
> > > > >
> > > > > ср, 8 июн. 2022 г. в 16:07, Ivan Daschinsky <ivanda...@gmail.com>:
> > > > >
> > > > > > Since nuget packages have been built on the same linux agent as
> > the main
> > > > > > release, it sounds logical to me that this step can be done within
> > the
> > > > > > maven lifecycle.
> > > > > > I am for it, +1
> > > > > >
> > > > > > ср, 8 июн. 2022 г. в 15:13, Maxim Muzafarov <mmu...@apache.org>:
> > > > > >
> > > > > >> Hello Igniters,
> > > > > >>
> > > > > >>
> > > > > >> I'd like to simplify the release build for the Apache Ignite.
> > > > > >>
> > > > > >> My suggestion here are:
> > > > > >> 1. Mavenize the building procedure of the 'platform/donet' thin
> > client
> > > > > >> (use maven with Ant task)
> > > > > >> 2. Change it's versions to fit the Ignite style.
> > > > > >>
> > > > > >>
> > > > > >> = 1. Build =
> > > > > >>
> > > > > >> Add a pom.xml sub-project with a corresponding maven-ant-plugin
> > with a
> > > > > >> Ant task to build the .NET project when the Apache Ignite project
> > > > > >> build. We can use here a profile like the numa-allocator does if
> > > > > >> building the .NET is note required.
> > > > > >>
> > > > > >> Such a technique will also allow a variables substitution like the
> > > > > >> maven-resource-plugin works (e.g. version substitution).
> > > > > >>
> > > > > >> Here is an example of how it can be achieved:
> > > > > >>
> > > > > >>
> > > > >
> > https://github.com/apache/ignite/pull/9497/files#diff-77baf2378aa83911a8c3091814db3ff60b7bf328c4ab4850f707717ed96f3d92R107
> > > > > >>
> > > > > >>
> > > > > >> = 2. Versioning =
> > > > > >>
> > > > > >> Currently, the version of .NET thin client (SharedAssemblyInfo.cs
> > [1])
> > > > > >> have the following format:
> > > > > >> 2.14.0.62943 . The format of .NET versions
> > Major.Minor.Patch.Revision
> > > > > >> (described here [2]).
> > > > > >>
> > > > > >> Since the Apache Ignite doesn't have a dedicated releases for the
> > .NET
> > > > > >> thin client I think the last 'Revision' digits can be always set
> > to
> > > > > >> zero. So the result version can be:
> > > > > >> 2.14.0.0
> > > > > >>
> > > > > >> This will allow having the variable substitution also for the
> > version
> > > > > >> number and omitt the update-version profile usage for the .NET
> > client.
> > > > > >>
> > > > > >>
> > > > > >> = Advantages =
> > > > > >>
> > > > > >> - Reduce the code complexity for changing a project version (we
> > don't
> > > > > >> need the update-versions maven profile);
> > > > > >> - Build the whole project on the local environment and prepare
> > nuget
> > > > > >> for the release with a single command;
> > > > > >>
> > > > > >>
> > > > > >> [1]
> > > > > >>
> > > > >
> > https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/SharedAssemblyInfo.cs
> > > > > >> [2]
> > > > > >>
> > > > >
> > https://docs.microsoft.com/en-us/nuget/concepts/package-versioning#where-nugetversion-diverges-from-semantic-versioning
> > > > > >>
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Sincerely yours, Ivan Daschinskiy
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Sincerely yours, Ivan Daschinskiy
> > > > >
> >

Reply via email to