-
Notifications
You must be signed in to change notification settings - Fork 94
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
chore(dev/release): decouple version numbers #1762
Conversation
dev/release/versions.env
Outdated
VERSION_GLIB="1.0.0" | ||
VERSION_JAVA="0.12.0" | ||
# Because C++/Go/Python are effectively tied at the hip, they share a single | ||
# version number. Also covers Conda/Linux packages. | ||
# TODO: untie this so that we can have independent version #s for different drivers (at least for Postgres/SQLite) | ||
VERSION_NATIVE="1.0.0" |
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.
GLib/Ruby can also use VERSION_NATIVE
.
443a254
to
ddd5b80
Compare
|
Linux packages look right, let's see about Python... |
It appears our milestone assigner should still work
|
@kou I did an initial pass over the release scripts...the main thing now will be having to bump all the versions by hand post-release but I think that's OK for now |
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.
+1
.github/workflows/packaging.yml
Outdated
tar xf apache-arrow-adbc-${{ steps.info.outputs.VERSION }}.tar.gz | ||
|
||
source ./apache-arrow-adbc-${{ steps.info.outputs.VERSION }}/dev/release/versions.env | ||
|
||
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }} adbc | ||
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }}.tar.gz adbc/ci/linux-packages/ |
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.
It's not related to this PR but we can remove echo "VERSION=${VERSION}" >> "$GITHUB_OUTPUT"
and always use ${VERSION}
instead of ${{ steps.info.outputs.VERSION }}
.
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.
ok, let's see if I did that right...
.github/workflows/packaging.yml
Outdated
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }} adbc | ||
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }}.tar.gz adbc/ci/linux-packages/ | ||
# Need to align the file path with the version number (and not the release) |
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.
Ah, we use apache-arrow-adbc-YYYY.MM
tag after this PR?
(VERSION
is YYYY.MM
and VERSION_NATIVE
is 1.0.0
, right?)
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.
Yup. Though I'm undecided if it should be MM or just a counter.
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.
ah, well, if we add the day below then it will be a date and that sounds good to me.
dev/release/versions.env
Outdated
|
||
# The release as a whole has a date-based identifier. This is used to | ||
# identify tags, branches, and so on. | ||
RELEASE="2024.05" |
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.
We may want to add date too. (e.g. 2024.05.29
)
We may want to publish multiple versions in a month.
.github/workflows/packaging.yml
Outdated
mv apache-arrow-adbc-${{ steps.info.outputs.VERSION }}.tar.gz adbc/ci/linux-packages/ | ||
# Need to align the file path with the version number (and not the release) | ||
cp -r adbc apache-arrow-adbc-${VERSION_NATIVE} | ||
tar czf adbc/ci/linux-packages/apache-arrow-adbc-${VERSION_NATIVE}.tar.gz apache-arrow-adbc-${VERSION_NATIVE} |
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.
I can update ci/linux-packages/
to use apache-arrow-adbc-${RELEASE}.tar.gz
instead of apache-arrow-adbc-${VERSION_NATIVE}.tar.gz
.
Should I do this in this branch or in a separated PR?
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.
I don't mind if you want to push to this branch!
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.
OK! I'll push to this branch!
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.
Done.
Co-authored-by: Sutou Kouhei <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Because we use apache-arrow-adbc-YYYY.MM.DD.
dev/release/versions.env
Outdated
|
||
# The release as a whole has a date-based identifier. This is used to | ||
# identify tags, branches, and so on. | ||
RELEASE="2024.05.06" |
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.
Hmm. It may be better that we omit preceding 0
: 2024.5.6
This is not a semantic versioning but semver https://pypi.org/project/semver/ can't parse 2024.05.06
format:
>>> import semver
>>> semver.VersionInfo.parse('1.02.03')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/semver.py", line 656, in parse
raise ValueError("%s is not valid SemVer string" % version)
ValueError: 1.02.03 is not valid SemVer string
(Sorry. The above transcript uses old semver, 2.10.2.)
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.
Ok! I'll take another look this afternoon
What do you think of just using a counter in that case then? (2024.1, 2024.2, 2024.3)
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.
What do you think of just using a counter in that case then? (2024.1, 2024.2, 2024.3)
It will work too!
It may be confused but we may be able to omit the 2024.
part: 1
, 2
, 3
We need to choose the next identifier when we publish a new release. If we use date-based identifier, it may be difficult. For example, we want to publish a next release in this year but it may be slipped to the next year.
(Should we choose the next identifier when we publish the next release?)
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.
Yeah, I think we can always adjust the identifier at publication time so it will be OK if we have to change it. We can always make the scripts a bit more flexible in that case too so we can update the version at any time.
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.
But yeah, in that case I think having the identifier just be 1, 2, 3, makes more sense.
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.
I suppose there might be a little confusion for our first release. But after that we will have release = 2, version number = 1.1.0/0.13.0 which should be OK.
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.
Ok, I went with "12.0.0" since this will be our 12th release.
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.
Ah...the version in the docs will look a little funny. I suppose that's OK for now. We can always label the docs with a date or something later.
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.
Can we use "12" instead of "12.0.0" because we will always use ".0.0" for the part.
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.
Sure, done
dev/release/versions.env
Outdated
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# The release as a whole has a date-based identifier. This is used to |
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.
Could you update the "date-based" part?
It appears the Debian build is still having issues? https://github.com/lidavidm/arrow-adbc/actions/runs/8842860533/job/24282183949 |
Hmm. "1.0.0" not "12.0.0" as the version: https://github.com/lidavidm/arrow-adbc/actions/runs/8842860533/job/24282184256#step:9:2483
I'll take a look at it. |
Co-authored-by: Sutou Kouhei <[email protected]>
This is related. |
Could you run |
Hmm, I did run 01-prepare.sh. I'll try again. |
Trying again: https://github.com/lidavidm/arrow-adbc/actions/runs/8843345685 It looks like debian/changelog was updated: lidavidm@31d283e#diff-79fdeab51b21b35cb8b6b6544ca232fd4919a6b0e32f3551bbd94a044454b7e6 |
Hmm, no luck. |
It should be |
Don't we want 1.0.0 as the actual version number of the package? |
diff --git a/dev/release/utils-prepare.sh b/dev/release/utils-prepare.sh
index dbbc531e5..acd5b7732 100644
--- a/dev/release/utils-prepare.sh
+++ b/dev/release/utils-prepare.sh
@@ -23,6 +23,7 @@ update_versions() {
local conda_version="${VERSION_NATIVE}"
local csharp_version="${VERSION_CSHARP}"
+ local linux_version="${RELEASE}"
local rust_version="${VERSION_CSHARP}"
case ${type} in
release)
@@ -30,7 +31,6 @@ update_versions() {
local docs_version="${RELEASE}"
local glib_version="${VERSION_NATIVE}"
local java_version="${VERSION_JAVA}"
- local linux_version="${VERSION_NATIVE}"
local py_version="${VERSION_NATIVE}"
local r_version="${VERSION_R}"
;;
@@ -39,7 +39,6 @@ update_versions() {
local docs_version="${RELEASE} (dev)"
local glib_version="${VERSION_NATIVE}-SNAPSHOT"
local java_version="${VERSION_JAVA}-SNAPSHOT"
- local linux_version="${VERSION_NATIVE}-SNAPSHOT"
local py_version="${VERSION_NATIVE}dev"
local r_version="${VERSION_R}.9000"
;; |
I'll give it a shot. |
Ah, we will use |
Ok, sounds good! |
Looks like it passed. That was quicker than I expected. Thanks for the help @kou! 02-sign.sh worked: https://github.com/lidavidm/arrow-adbc/releases/tag/apache-arrow-adbc-12-rc0 I just pushed some other fixes after grepping for uses of I expect during the release I will have to adjust some things on the fly, but that's OK. |
Co-authored-by: Sutou Kouhei <[email protected]>
Start refactoring our release process so that we can theoretically handle different version numbers in different language subprojects. Fixes apache#1490. --------- Co-authored-by: Sutou Kouhei <[email protected]> Co-authored-by: Sutou Kouhei <[email protected]>
Start refactoring our release process so that we can theoretically handle different version numbers in different language subprojects.
Fixes #1490.