You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Julia Wang (QIUHE)" <Qi...@microsoft.com> on 2015/05/22 02:56:50 UTC

NuGet packages for REEF incubating 0.11.0 release

I uploaded NuGet package release candidates on the site below. Please review, verify and let me know if you see any issues before I publish it to NuGet.org

https://dist.apache.org/repos/dist/dev/incubator/reef/0.11.0-incubating/NuGet/

We use 0.11.0 as version number. Incubating is inside specification on the Title. E.g.
<title>Org.Apache.REEF.Tang(incubating)</title>

Thanks,
Julia

Re: NuGet packages for REEF incubating 0.11.0 release

Posted by Markus Weimer <ma...@weimo.de>.
Hi,

On 2015-05-21 17:56, Julia Wang (QIUHE) wrote:
> We use 0.11.0 as version number. Incubating is inside specification on the Title. E.g.
> <title>Org.Apache.REEF.Tang(incubating)</title>

To expand on this: We tried to put it into the version numbers like we
do in Maven artifacts, but that isn't legal in NuGet. Any string after
the version number is understood as a marker of a prerelease. Think
`1.0.0-beta`. And prereleases are e.g. ignored by Visual Studio in its
default settings.

This left us with two options:

  (1) Add it to the artifact (DLL) name.
  (2) Put it into the human-readable part of the NuGet specification.


We didn't choose option 1, and here is why:

In .NET, assembly identity is established in much stronger ways than in
Java. To the JVM, the names of JAR files are largely meaningless (hello
classpath madness). In .NET, a class `Foo` in in an assembly `Bar` is a
*different* class than the same code in an assembly `Bar2`. Further,
assembly versions become part of the class identity, and consumers of
assemblies can specify which (range of) versions they are compatible with.

With the current approach, future non-incubation versions of REEF are
just that: Newer versions of REEF, and users only need to update the
dependency version (if at all). If we had made it part of the assembly
name, REEF-incubating and REEF would have been two separate pieces of
software, as far as assembly identities go. For instance, it might have
been legal for a process to load both at the same time which can lead to
lots of confusion.

Markus