[Buildbot-devel] Building tagged releases
Oleg Smolsky
oleg at smolsky.net
Wed Sep 12 00:47:57 UTC 2012
On 2012-09-11 06:39, Greg Ward wrote:
> On 09 September 2012, Oleg Smolsky said:
>> Hey Dustin, here is a concrete example of what I am looking to do:
>> - start with "v1" branch in Mercurial
>> - commit a few changes into the branch
>> - tag the tip of that branch as "build_50"
>> - initiate a build off that tag as "v1.0.6 build=50"
> (Slightly OT, since this is mostly about Mercurial best practices.)
>
> Why not just create the 1.0.6 tag directly instead of build_50? If you
> tag every build, pretty soon you'll have a lot of tags. Hundreds or
> even a few thousand tags should be fine, but once you get up into tens
> of thousands, expect Mercurial performance to suffer.
>
> Directly tagging the release has lots of other benefits: "hg update
> 1.0.6" just works. "1.0.6" becomes a meaningful part of hgweb URLs,
> meaning people can download a source tarball directly from hgweb.
The point here is twofold: tag every public release and make multiple
interim releases for internal QA.
This way we can actually have a meaningful conversation about releasing
1.0.6:
- so, how's build_50 looking?
- all is well, except for bug X
- ok, let me backport the fix into the stable_branch. Could you check
the next build?
- cool, build_51 is looking good
...and so 1.0.6 is actually build_51: the binary has the string,
Mercurial has the tag, multiple builds can coexist and it is easy to
find out what went into each one.
> Finally, be careful about branch vs. tag naming conventions. Mercurial
> won't stop you from creating branch "1.0" and tag "1.0"... but then
> what does "hg update 1.0" do? Offhand, I'm not sure. I'd have to check
> the code, and there's no guarantee that behaviour won't change in the
> future. Avoid the issue entirely and use distinct naming conventions
> for branches and tags.
>
right, that is the reason for having the "build_" prefix.
Oleg.
More information about the devel
mailing list