-
Notifications
You must be signed in to change notification settings - Fork 425
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release tagging #394
Comments
@gagern thank you for the opportunity to explain, and yes, will try to add something somewhere to make the release process clearer...
Exactly! The Only when we actually make a release will a tag be created. Well much more than that, a We are right now considering a release 5.2.0, when a At that time the If an important, critical fix comes along, then this will also be pushed back into the Some of this is already described in VERSION.md, and we will certainly try to improve that wording, and suggestions, even a PR, very welcome... And we will also try to find a suitable place in the web pages to make this clear. Again, suggestions, or a PR very welcome... Note the site page are in a separate repo - https://github.com/htacg/html-tidy.org - That is new and please excuse any hiccups... Another of those release steps is to generate the API documentation. That is also done in their own repo - https://github.com/htacg/html-tidy.org.api - again new so... And finally the release binaries in - https://github.com/htacg/html-tidy.org.binaries - As you can see in Issue 1 there, we do need some help with the DEB creation... As usual I can produce WIN32 32 and 64 bit releases, @balthisar can produce a MAC OS X release, but linux/unix remains a problem... Any help you can offer in this process would be most appreciated... |
Thanks for the detailed explanation, @geoffmcl. If I find the time, I'll suggest some changes to wording to the If you wanted to, you could let git do the incemental version numbering on development versions. Do a You could generate Linux binaries using Docker. Despite the fact that it's using complicated virtualization machinery in the background, setting up and accessing Docker from Mac (and presumably Windows as well) isn't too difficult. |
@gagern thanks for the reply...
That would be most appreciated... Yes, the 5.1.25 was a little mistake, and when we do release 5.2.0 maybe its mentioning can be removed, at least from the web site, proudly announcing 5.2.0! Also the target release date for 5.2.0 is Apr 7, not 6 as previously mentioned... But of course that depends on a lot of things... for instance I lost my internet connection for 3-4 hours today... that is the first time I have had such a stoppage for a long time, and I am struggling on with a weak wifi connection - hope it is all back tomorrow - but it indicates you can never exactly know...
Ok, that was one thing I only just now started reading up on, that is namely I already have a neat way to generate verhist.log, and that gives me commit value, if/when I want to back up to any previous version... its easy... And I also have a way to generate a 5.2.0.html, like this 5.1.25.html, which serves as a simple changelog... And when you add a tag, GitHub has a whole mechanism for generating releases - see releases - so this all works fine... Do I really need
Well I did not quite understand this... First I have two linux boxes... both Ubuntu 14.04... one 64-bit, one 32-bit... so why do I need I can generate and install tidy using CMake, and unix a makefile... so I do not need I have been able to generate DEB and RPM using CMake/CPack, but that seems cmake version specific - see #344 - a problem... So began searching for other ways... we have had a Dockerfile suggested before - see #255... I will try to look at it again, but wonder what if offers not in CMake/CPack... But I am really not looking for yet another way ;=)) But thanks for the info... maybe I did not understand what you were actually suggesting... |
The main benefit of an annotated tag is that you not only know that a given name refers to a given commit, but also who established that relationship, and when. All the best practice guides I read suggest using lightweight tags for personal bookmarks, and annotated tags for anything you'd want to share. Personally, I also try to use the annotation text to summarize the changes since the last release, so that the annotation texts can serve as a change log that is easier and faster to read than a full history of commits. But that's a matter of taste, and you don't have to provide any description with your tag annotations if you don't want to. Just say “Release x.y.z” as the message and that's fine. See also Stack Overflow: Why should I care about lightweight vs. annotated tags?
Workflow I used today: go to my Another use case is as the version field reported by some library. I'm using it like this in a project called CindyJS. That's essentially what I suggested for automatic version numbering here as well. There I also have a flag indicating that the source tree has been modified since the commit. So I know that if the commit is from my repo and doesn't carry that flag, then it's equivalent to an official snapshot. Otherwise the user is tinkering with stuff, and I might take that into account when analysing problems.
I had assumed that to be the main problem here, thanks for the clarification. Still, Docker allows you to quickly switch between different versions and distributions of Linux, or more specifically, of the Linux user land. (Linux the kernel is always that of the host system.) That way, you can build and test your package on different versions of Ubuntu, Debian, Fedora, CentOS and whatever else you can think of, and even run distribution-provided testing tools on them to check for possible complaints. You'd probably still run CMake/CPack, but you'd be doing so inside Docker, in an environment which resembles what the package will finally get installed into. That makes sure that it's linking against the right version of all the libraries. It will also check you're only using those libraries installed inside the docker, not anything you might have lying around on your dev machine and forget to declare as a dependency. |
I don't see how that would fit in with the even/odd versioning scheme. The way I see it, once you have
So you wouldn't have to worry about whether a change during development broke API; it would be enough to make sure to bump the correct amount once it's time for a release. So which shall it be, even/odd versioning or semantic versioning? Given the choice, I'd opt for the latter, but it's your call. |
@gagern thanks for the comments... these are very helpful!
I guess here I should have stressed the less MORE ;=)) After reading, searching around a lot, looking at the many projects I have work on, I personally like the But let's be very clear here - this is for package maintainers ONLY! Thus the As stated, we make every effort to keep the master branch absolutely stable, so anyone downloading the If there is any doubt about a fix it will be done in a And in those branches we often use Again these additions to the version are very important to make sure the But I do not expect package maintainers to try to follow, what can be, daily changes in the And as stated, if an important, critical fix comes alone, then it will be pushed back into say the And to add to that, so far we have had no change that broke backward compatibility to version I certainly agree versioning is a very important topic, and very much welcome comments, ideas, suggestions... from everybody... thanks... PS: My internet connection seems to have recovered! PHEW! |
Have commenced the 5.2 release process...
All little steps... I have not thought this through completely, but some other things to be done...
Any help with any of these steps, or others, most appreciated... thanks... |
@geoffmcl, sorry I've been MIA lately, but I had a flurry of activity today!
|
@balthisar, thanks for completing many more steps... beautiful ;=)) As a note to self, the order of the release process should/could have been -
So at this point it seems 1-11 have been accomplished, in less than 48 hours... that's good! I suppose Check distro/build updates is the most difficult... It would be good to develop a list to monitor, and maybe add to the site - http://www.html-tidy.org/#get-tidy - we could list what version is available in what distribution channels... both the Windows and Linux distro channels need to be fill out... again with version... need help here... I tried to look at homebrew, but could not find the repo containing tidy_html5.rb... I was going to adjust the source to 5.2.0, and maybe present a PR... but could not find it! Can someone help with this? I wish we could do something about the dreadful situation with debian/ubunutu... Is there some way I, or another, could become the maintainer for orphaned tidy? This is a big important channel that is not open... UGH! Now that I have a Raspberry Pi, Raspbian OS, I will try to learn about their distribution. You will note I have now added a You will note Items 2. and 3. are scripted, but I need a place to publish these... at this time it is is just a batch file, genhisthtm.bat, running 3-4 perl scripts - vershist.pl, emailobfuscate.pl, lib_utils.pl, ... maybe need some adj for linux, and sh added... I was thinking of say a Or is it appropriate to add these somewhere in the current repos? I would not mind using tests/tools-perl, but then And would appreciate any additions to this list... what else should we be looking at as part of the Release process? This seems to fully cover this specific issue of |
@gagern, @balthisar, @hannob ... Well, release 5.2 has now been long out the door, and maybe it is time to consider a 5.4 release... see #471 So closing this, as we consider release 5.4... but we should not forget all the above comments... will add a cross-link... |
The repository happily bumps version numbers in the
version.txt
file. Currently it's at 5.1.51. The web page however states 5.1.25 as the latest release. And that's also the latest tag in the repository. It's an unannotated tag, sogit describe master
describes the current master as4.9.28-408-g7598fdf
.I suggest that you
version.txt
unless these version bumps are not meant as releases, in which case you should make that fact clearer somehow.
The text was updated successfully, but these errors were encountered: