-
-
Notifications
You must be signed in to change notification settings - Fork 63
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 1.0, clarify SemVer, add use-package example #213
Conversation
@giordano @non-Jedi @FelipeLema @ajhalme please comment and/or review (the PR is trivial, and unless someone vehemently disagrees I would just tag versions and follow SemVer from now on, but since you contribute I would like to hear from you too) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
@tpapp thank you for making the switch to SemVer. Btw, for your awareness, if you want to do it "right", please don't make a merge |
@suhail-singh: sorry I don't understand. Should I merge master into this branch? Is this process written down somewhere? What difference does it make? I was under the impression that MELPA scans daily and picks up what we have. |
This package IIUC is available both on MELPA (and thus, as well, MELPA Stable)
If you merge this onto |
For what it's worth, and in case you find this useful / relevant, below is a
This process is essentially what I had proposed in #212. Specifically, taking
Recently I started using the (use-package sisyphus :ensure t :pin melpa
:unless noninteractive
:after magit :demand t
:config
(setq sisyphus-non-release-bump-header t
sisyphus-non-release-suffix ".50-git")) With the above, I can use |
@suhail-singh: thanks for the information. I understand that technically, any given version would point to different commits, but it would still be the same code, right? So I don't see that as a problem. Can't speak for the others, but there is a limited amount of crazy I am willing to tolerate to support every repo scheme. We can just have this package removed from MELPA stable if that becomes problematic. Cf melpa/melpa#6656. @alphapapa, since you kindly commented on #212, I would appreciate your advice here. |
If the merge commit is what gets tagged via Note that once you have different commits, for a user to determine whether or
It is for you to decide if this is worth the attention. However, since the pull
I don't understand what that hopes to accomplish. To be clear, it's not I shared the process I follow for informational reasons only. Apologies in case |
Hi Tamas, I think Suhail is correct: it would seem a bit unusual for the commit with a version tag to not be the same commit in which the version header was set to the same value, but as you said, in this case, and especially for this first 1.0.0 release, it shouldn't make any difference, since the code is the same. I use a similar scheme for my packages: After releasing a new version, I increment the Y number (as in X.Y.Z), adding a IME the most important thing to keep in mind is that, while MELPA just builds whatever you push, effectively cloning the repo anew each time it builds a package, GNU ELPA pulls changes from the repo, and it will refuse to build if it pulls non-fast-forward changes (in which case it will send the maintainer an email, and you'll have to do a slightly awkward merge to resolve it). So if your package is built on GNU ELPA, it's important to never rewrite history on the branch that ELPA builds from. If you make a mistake and realize it after pushing, you should just push a new commit on top that fixes the problem; and if that means incrementing the version number again (e.g. adding a Another thing I can recommend is to have ELPA pull from a dedicated branch rather than I hope this helps. It can be a bit confusing at first, but once you grok the different systems, it's not too bad. :) |
Thanks everyone for the detailed information. I recognize that there is a "right" way of doing things, but I have to explore the tooling about that, so for now I will just merge this commit as is, and we will stick to SemVer. I think it is already an improvement. |
Out of curiosity, what is SemVer for such a package? That the key bindings won't change in a minor version? |
Good question, my intention is mostly to play it by ear and open a discussion if there is any doubt. But generally, bug fixes increment the patch version, features increment the minor version, and if the functions we expose change or are removed, we bump the major version. I would not include keybindings and defaults, maybe we should clarify that. |
This came as a surprise to me. So if that is indeed the case then I agree that However, please also consider a possibly-less-surprising-to-some approach where Thank you for maintaining |
Perhaps EffVer is more intuitive? @suhail-singh out of curiosity, do you routinely look at Emacs package version strings and change upgrade decisions accordingly, or do you know anyone who does? I'd love to see a YouTube video demonstrating how to do that. I currently have the impression that, for a packager, tending to the exact semantics is a bit like alphabetizing bookshelves. Basically, just do it if it's fun. Once we have a featureful package manager, with lockfiles, dependency resolution, and ability to downgrade, that situation might change. |
I do. For instance there's a package that I routinely use and I haven't Something similar happened with magit and related packages recently as well. I I also have |
Thank you for describing your process. It's nice that the version info benefits somebody. Sorry for hijacking the thread. |
Fixes #212. From now on we take semantic versioning seriously.