Skip to content
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

lua 5.4.1 #57133

Closed
wants to merge 28 commits into from
Closed

lua 5.4.1 #57133

wants to merge 28 commits into from

Conversation

chenrui333
Copy link
Member

Created with brew bump-formula-pr.

@gromgit
Copy link
Contributor

gromgit commented Jun 30, 2020

Shouldn't the test block do an assert_match instead of just printing a test string?

@chenrui333
Copy link
Member Author

Shouldn't the test block do an assert_match instead of just printing a test string?

I was literally thinking the same thing just now :D

I will update that.

@chenrui333
Copy link
Member Author

Should be good now.

@chenrui333
Copy link
Member Author

10.13

Error: 17 failed steps!
brew test --verbose luarocks
brew install --verbose --build-bottle corsixth
brew install --verbose --build-bottle instead
brew install --verbose --build-bottle kyoto-tycoon
brew install --verbose --build-bottle lmod
brew audit --skip-style lmod --online --git
brew install --verbose --build-bottle lsyncd
brew install --verbose --build-bottle macvim
brew install --verbose --build-bottle mame
brew install --verbose --build-bottle neomutt
brew install --verbose --build-bottle osrm-backend
brew audit --skip-style pdns --online --git
brew install --verbose --build-bottle pdnsrec
brew install --verbose --build-bottle sile
brew audit --skip-style tracebox --online --git
brew install --verbose --build-bottle vim
brew install --verbose --build-bottle vis

10.14

Error: 18 failed steps!
brew test --verbose luarocks
brew install --verbose --build-bottle corsixth
brew install --verbose --build-bottle instead
brew install --verbose --build-bottle kyoto-tycoon
brew install --verbose --build-bottle lmod
brew audit --skip-style lmod --online --git
brew install --verbose --build-bottle lsyncd
brew install --verbose --build-bottle macvim
brew install --verbose --build-bottle mame
brew install --verbose --build-bottle neomutt
brew install --verbose --build-bottle osrm-backend
brew audit --skip-style pdns --online --git
brew install --verbose --build-bottle pdnsrec
brew install --verbose --build-bottle sile
brew install --verbose --build-bottle tracebox
brew audit --skip-style tracebox --online --git
brew install --verbose --build-bottle vim
brew install --verbose --build-bottle vis
##[error]Process completed with exit code 1.

10.15

Error: 19 failed steps!
brew test --verbose luarocks
brew install --verbose --build-bottle corsixth
brew install --verbose --build-bottle instead
brew install --verbose --build-bottle kyoto-tycoon
brew install --verbose --build-bottle lmod
brew audit --skip-style lmod --online --git
brew fetch --retry lsyncd --build-bottle --force
brew install --verbose --build-bottle lsyncd
brew install --verbose --build-bottle macvim
brew install --verbose --build-bottle mame
brew install --verbose --build-bottle neomutt
brew install --verbose --build-bottle osrm-backend
brew audit --skip-style pdns --online --git
brew install --verbose --build-bottle pdnsrec
brew install --verbose --build-bottle sile
brew install --verbose --build-bottle tracebox
brew audit --skip-style tracebox --online --git
brew install --verbose --build-bottle vim
brew install --verbose --build-bottle vis

@chenrui333
Copy link
Member Author

rebased to latest master and fixed the merge conflict with vim

@chenrui333 chenrui333 force-pushed the lua-5.4.0 branch 2 times, most recently from 04b26a1 to b4fb171 Compare July 3, 2020 18:01
--- a/Makefile
+++ b/Makefile
@@ -41,7 +41,7 @@ PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris
@@ -41,7 +41,7 @@ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like solaris is still missing here - does it need to be added back?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This won't impact the git patch. (more just like reference line)

@alerque
Copy link
Contributor

alerque commented Jul 18, 2020

Lua 5.4 support for SILE is ready to go upstream (tracking issue, pending PR), but it's held up being released until there is a published version of lua-zlib that works (tracking issue). I'll be sure to cut a release as soon as that's available, at which point SILE won't be a hold up for Homebrew switching to Lua 5.4!

@alerque
Copy link
Contributor

alerque commented Jul 24, 2020

As of v0.10.9 SILE supports Lua 5.4 (Homebrew PR here). After that is merged the formula can be updated to use Lua 5.4 at any time. Note some of the LuaRocks being installed are being built from the Github tagged versions. Several projects have released new Rocks on LuaRocks by bumping the rockrel without tagging a release on Github. For every project where that is the case the upper bound restriction can just be removed from the rockspec before building. If you want me to submit a patch with `sed command to take care of that universally for that formula I can.

@chenrui333
Copy link
Member Author

Going to refresh this PR now.

@stale
Copy link

stale bot commented Aug 22, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale No recent activity label Aug 22, 2020
@alerque
Copy link
Contributor

alerque commented Aug 22, 2020

Oh stow it @Stale, Rome wasn't built in a day.

@stale stale bot removed the stale No recent activity label Aug 22, 2020
@chenrui333
Copy link
Member Author

Oh stow it @Stale, Rome wasn't built in a day.

😄

@chenrui333 chenrui333 added the CI-requeued PR has been re-added to the queue label Aug 28, 2020
@BrewTestBot BrewTestBot removed the automerge-skip `brew pr-automerge` will skip this pull request label Nov 22, 2020
carlocab added a commit to carlocab/homebrew-core that referenced this pull request Dec 1, 2020
Not sure what happened to Homebrew#57133
but it seems to not have progressed, so I'm trying this again.

Also adding [email protected] because lua is known for making quite a few drastic
(read: API-breaking) changes between versions.

Ref: neovim/neovim#9760 (comment)

Some formulae may need to continue to depend on [email protected]. At minimum,
it may make sense to temporarily accept [email protected] into homebrew/core while
formulae that depend on lua are slowly migrated to the latest version.
This is probably better than lua not being upgraded at all because of
unresolved dependency issues.
@carlocab carlocab mentioned this pull request Dec 1, 2020
5 tasks
@carlocab
Copy link
Member

carlocab commented Dec 1, 2020

I tried opening a PR to try to update lua, but I can now see that that's not going to work.

Would the following work?

  1. Add a [email protected] formula in a separate PR (lua 5.3.6 #65979)
  2. When the previous is merged, any formulae causing test failures here can have their dependency changed to [email protected] so this PR can be merged.
  3. Try to bump the formulae that had to depend on [email protected] to [email protected] in separate PRs.

@carlocab carlocab mentioned this pull request Dec 1, 2020
5 tasks
carlocab added a commit to carlocab/homebrew-core that referenced this pull request Dec 1, 2020
Adding a [email protected] formula to try to address build failures in
Homebrew#57133

Not sure if this is going to work, but I figured that it couldn't hurt.
@fxcoudert
Copy link
Member

@carlocab all formulas that are not currently working with lug 5.4 need to be investigated: is upstream aware of the issue, when is a fix planned, etc. We don't want to migrate formulas to an older version if they are not going to be migrated over time to something more recent

@carlocab
Copy link
Member

carlocab commented Dec 1, 2020

Thanks @fxcoudert. I'm aware of that. That's what step 3 in my last comment was for. (We can even open a tracking issue for it...)

I'm just thinking it makes more sense to migrate all the formulae that get stuck on [email protected] slowly individually, rather than have them block the upgrade to lua like they're doing in this PR.

I think my suggestion to migrate formulae separately rather all in one big PR also benefits from allowing the community to pitch in more with the migration. Right now it's really only those with write access who can try fixes for the build failures, and I think that needlessly adds to the burden on maintainers.

I would also like to point out that different versions of lua aren't quite like different versions of other packages. Here's Neovim's lead maintainer on the subject:

Lua 5.1 is a different, complete language than Lua 5.3. Lua 5.3 is not an "upgrade" to Lua 5.1, it's a different language.

neovim/neovim#9760 (comment)

@alerque
Copy link
Contributor

alerque commented Dec 1, 2020

@fxcoudert I hear what you are saying, but I don't think it quite fits the circumstances here. What @carlocab proposed isn't "migrating formulas to and older version" per se, it is holding them on the current version they are using successfully while not holding back other projects that could/should use a new Lua release. Unfortunately the Lua ecosystem is somewhat fragmented and different language VMs have different features. 5.1→5.2→5.3 is not as straightforward a version bump upgrade path as the numbers would lead you to believe. Some projects will require 5.3 for some time yet. Some may never get ported, but that doesn't make them obsolete. There are actively maintained projects out there that still depend on 5.1 language features. This shouldn't by such a road block to updating the default Lua interpreter.

The proposal here to upgrade everything that can be while not needing to hold forever or mass-remove a bunch of working formula makes great sense given the state of the Lua ecosystem. I don't like it either, but I don't manage Lua releases upstream 🤷‍♂️. As a downstream Lua developer quite familiar with different projects' approaches to interpreter versioning I can vouch for the sanity of this idea.

@gromgit
Copy link
Contributor

gromgit commented Dec 1, 2020

From https://www.lua.org/versions.html#numbering:

Different versions are really different. The API is likely to be a little different (but with compatibility switches), and there is no ABI compatibility: applications that embed Lua and C libraries for Lua must be recompiled. The virtual machine is also very likely to be different in a new version: Lua programs that have been precompiled for one version will not load in a different version.

The way I read it, applications stick with a specific Lua version to embed, and move only when required. Also, the "top-level" Lua dylib symlinks actually embed the version in their names (liblua5.1.dylib vs. liblua5.3.dylib), just like on every Linux distro I've seen (liblua5.1.so, etc.). Also, AFAIK, only Homebrew specifically creates a liblua.dylib symlink, contrary to every other installation I've seen.

IMO, Lua versions should be treated as completely different entities, as upstream clearly intended, so a saner naming scheme that causes the fewest problems in the long term is lua51, lua53, etc. Since pretty much nothing depends on Lua 5.4 at this point, can I suggest naming this formula lua54 instead, and leaving the other lua formulae alone for now?

(If we take this route, lua54 should not create liblua.dylib, nor any of the other version-neutral links.)

@fxcoudert
Copy link
Member

can I suggest naming this formula lua54 instead, and leaving the other lua formulae alone for now?

No, please don't.

We are aware that lua has several versions with differences, and therefore a [email protected] will be accepted in homebrew-core, as that is still maintained. However, we also need to make sure that there is some movement of the other formulas depending on it, otherwise we end up with unmaintainable messes: for example, we still have formulas that depend on [email protected] even though that has been unmaintained for 8 years (last release in Feb 2012);

@fxcoudert
Copy link
Member

I'm aware of that. That's what step 3 in my last comment was for. (We can even open a tracking issue for it...)

@carlocab excellent then. Only thing is: this cannot be done in separate PRs, it needs to be the same PR that moves lua to 5.4, creates a [email protected], rebuilds the formulas that build against 5.4, and migrate the other ones to 5.3

I only wish to make sure, before we accept that, that all formulas that are "stuck" on 5.3 have been notified, and we add a link to the upstream tracking issue above the dependency in the formula. That way, we can check we when update them, if support for latest lua is available.

@carlocab
Copy link
Member

carlocab commented Dec 1, 2020

excellent then. Only thing is: this cannot be done in separate PRs, it needs to be the same PR that moves lua to 5.4, creates a [email protected], rebuilds the formulas that build against 5.4, and migrate the other ones to 5.3

I may have expressed myself poorly then because this is exactly what I meant. Apologies for the miscommunication.

To be clear, step 3 was meant to handle the formulae that get stuck with [email protected] from this PR. That is, by "separate PRs", I meant other PRs that work on upgrading dependencies from [email protected] to lua[@5.4].

@carlocab carlocab mentioned this pull request Dec 1, 2020
27 tasks
@fxcoudert
Copy link
Member

Merged in #65993

@fxcoudert fxcoudert closed this Dec 3, 2020
@alerque alerque mentioned this pull request Dec 3, 2020
5 tasks
@BrewTestBot BrewTestBot added the outdated PR was locked due to age label Jan 5, 2021
@Homebrew Homebrew locked as resolved and limited conversation to collaborators Jan 5, 2021
@chenrui333 chenrui333 deleted the lua-5.4.0 branch December 18, 2022 05:20
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
help wanted Task(s) needing PRs from the community or maintainers outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.