[flac-dev] Tag flac as flac 1.2.1_git

Erik de Castro Lopo mle+la at mega-nerd.com
Tue Jan 22 00:31:55 PST 2013


Brian Willoughby wrote:

> Why would you release a new version of FLAC if the binary did not  
> change (on a given platform)?

The version number is attached to the source code not the binary.

BSD distros, Linux distros and things like MacPorts have scripts
that rely on the md5sum of a given version of the source code
tarball to be the same from the time it was released until the
end of time.

Uploading a new version of the source code with a different
md5sum generates manual work for dozens of people around the
world and wastes 100s of hours of people's time. It also 
results in a bunch *users* of systems that compile from
source (like *BSD, Gentoo Linux and probably also MacPorts
etc) to having install/compile time errors that they
don't understand.

> The source code is only consumed by the developers.

Not true.

Anybody who uses FLAC on things like any of the *BSDs or 
Gentoo linux compiles FLAC from source and expects the md5sum
of a given version to be constant. In fact some of these 
people are not actually developers, but more like sysadmins.

> The version  
> control system should handle "versions" of the source code. For  
> example, Subversion would assign a new repository version number  
> every time someone checks in a source code change. That is enough.  
> There's no need to revise the release version with every developer's  
> key press.

We're talking about different things here. You are talking about
revision control versions and I'm talking about official release
source code tarballs.

> A public release of substantial changes (not whitespace)

I would never do a public release that only contained whitespace
changes. It causes needless work for package maintainers across
the Unix, Linux and Mac ecosystems (probably Windows too).

> would require at least a 0.0.1 increment in version number.

Agreed.

> It would be silly to replicate the command line utility, but you  
> don't have to replicate it to change its version number, or to allow  
> the version to digress from the format library version.

Having three different version numbers, ie:

  - Source code version number
  - libFLAC version number
  - flac utility version number

also creates all sorts of headaches for people doing binary
packaging of FLAC for things like Linux, *BSD and Mac.

I see this from both sides. I am both an upstream author/maintainer
and a packager for Debian. Keeping the version numbers the same
across the board makes life easier for a bunch of people who are
over worked volunteers with insufficient time.

> > > Not to mention the fact that embedded devices  
> > > without a command line or any other kind of utility won't needlessly  
> > > see version number changes when the format remains the same.
> >
> > Not even bug fixes?
>
> What bugs?

Hypothetical bugs. You made a blanket statement that the command
line version number should remain the same when the format remain
the same. I was refuting that.

> > Sorry, but I actually think you have this completely around the wrong
> > way. FLAC files can be created without the flac command line utility.
> > That suggests that FLAC files should be marked with the *library*
> > version that was used to create them.
>
> The last suggestion on my part was a nod to the folks who want to  
> define the channel mappings in a way that can be detected by players  
> when looking at a specific media file.

That should depend on the presence or absence of an optional metadata
chunk and should not depend on the version number. For instance if
we add the channel mapping metadata chunk, it should still be
optional after we add it.

> The FLAC format (library) does  
> not need to be modified for this, because FLAC merely holds  
> independent channels without any care about their order or position  
> or labeling.

Sorry, the software engineer in me says the *only* place to implement
this is in the library. Doing it in the library means that using the
library is the lowest barrier to use so we don't end up with more
than one (possible buggy and/or incompatible) implementations.

> But the command line utility might transcode channel mappings from  
> other formats like WAVE or AIFF.

Sure, but when reading or writing the channel mapping from FLAC it
should do so using the libFLAC functions provided for that purpose.

Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/


More information about the flac-dev mailing list