Comments (10)
Here is my idea for versioning to be completely composer compatible while still tracking official releases and allowing for our own releases independent of official releases. It's a little creative but not to hard to understand hopefully.
- Drop the 1. Composer/SemVer only supports three numbers in a version and there will never be a "2." from this repo.
- Tag the current version as 9.30.0. The "30" is the "y.z" from the official version. Each new official patch would increment our "X", so the next official release would either be tagged as 9.31.0 or 9.40.0.
- To remain semver compatible a hypothetical 1.10.0.0 release would have to be tagged as "10.0.0" instead of "10.00.0".
- Create a new branch for each official minor release (not ".z" patches), e.g. "9.3x" which is the new master. Older versions can be represented by 9.2x and 8.1x.
- Tag future non-official versions as 9.30.*. These would be tagged whenever someone feels there is a need I suppose, perhaps even after every PR merge.
- When a new "y" or "z" official version is released then our "x" would be changed accordingly (e.g. "9.40.0" for "1.9.4.0". Unless the official versions get into double digits this should be safe. E.g. if there was both a 1.10.1.10 and 1.10.11.0 there would be problems. I think this risk is very low.
- New features will always be merged with the latest default branch (e.g. "9.3x"). That is, once 9.40.0 is released there will not be a new 9.3X.X unless someone really needs to backport a feature or fix and then they can submit a PR to the older "9.3x" branch.
- When a new official minor version is released always tag the old default branch with a new ".Z" before incrementing the ".Y". E.g. when 1.9.4.0 is released the HEAD of 9.3x would get tagged and a new branch 9.4x created before 9.40.0 is tagged.
from magento-lts.
My opinion is that the branch should be 1.9.3.x
and we tag releases. Composer runs off the tags amd if you use -dev
it'll use branches instead.
from magento-lts.
from magento-lts.
After merging several branches and looking at older ones that can be merged into their originally based branches I think the fewer the branches we have the better.. Maybe going to "9.xx" vs "9.3x" would be worthwhile (while still using the same proposed tagging scheme). The effect would be that between 1.9.3.x and 1.9.4.0 any in progress PRs would be merged into the latest version instead of an older version. The good thing about this is that it puts the onus on the committer to rebase if upstream commits cause conflicts rather than on a maintainer to do a second merge afterward. Also it would be really easy to click "Merge" and forget that the PR was merged in an old branch and not the newest branch and while the PR would be closed the code would get left behind in an old branch.
from magento-lts.
This sounds pretty good, but my main apprehension is the cognitive load this would place on users of this repo for translating which "version" they should be using. I've been using the 4-deep version numbers in my composer.json since I started using this repo and it seems to work, so it's surprising to me that it's not supported.
from magento-lts.
@colinmollenhour @LeeSaferite If you guys don't have any opinion otherwise, I'll create the "1.9.3x" branch today.
from magento-lts.
We do have the issue now, that unless we want to have moving tags, someone can't expect to have bug fixes/etc if we tag 1.9.3.2 right now on the 1.9.3.x branch.
from magento-lts.
@drobinson No objection.
from magento-lts.
@colinmollenhour no objection to moving tags?
from magento-lts.
No, I was referring to:
If you guys don't have any opinion otherwise, I'll create the "1.9.3x" branch today.
I do object to updating tags as tags are widely assumed to be immutable and it is not worth breaking that convention.
from magento-lts.
Related Issues (20)
- Magento Admin: Input fields text and select drop-downs are different widths in "Attribute Information" page HOT 9
- Online refund (credit) always 0.00 and order complete instead of closed HOT 2
- PHP 8.1 TypeError: imagecopymerge(): Argument #9 ($pct) must be of type int in GD when custom watermark image is applied HOT 1
- The TinyMCE bullet menu stays on top HOT 2
- Can't upgrade from v20.2.0 to v20.3.0 HOT 1
- Unable to save customer in admin console with DOB set to empty HOT 11
- Where is the code that dispatch the event "before_login_post_redirect"? HOT 5
- TODO - Some changes in DDEV HOT 1
- Deprecated functionality: Automatic conversion of false to array is deprecated HOT 1
- Deprecated functionality: nl2br(): Passing null to parameter #1 HOT 5
- Deprecated functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated HOT 5
- Deprecated functionality: strlen(): Passing null to parameter #1 ($string) of type string is deprecated HOT 2
- Fatal error: Uncaught Error: Call to a member function addData() on null HOT 2
- Deprecated functionality: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
- Deprecated functionality: strlen(): Passing null to parameter #1 ($string) of type string is deprecated
- Fatal error: Uncaught Error: Call to a member function setOnclick() on false HOT 2
- Deprecated functionality: nl2br(): Passing null to parameter #1 ($string) of type string is deprecated
- Deprecated functionality: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated
- incorrect currency value HOT 4
- Use redis for session HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from magento-lts.