Closed parrt closed 3 years ago
The submodule is dirty. It has .fetch_time_cache
there untracked.
Yes, but it is okay to have untracked files right?
intellij gui git tool says nothing to push
Sure. I'd add it to the submodule's .gitignore myself, since it's clearly a cache, but it won't hurt if it's just sitting there.
so at this point I have tried all sorts of combinations of committing and pushing from various directories and subdirectories. status still shows that the PHP runtime has changes not staged for commit.
clearly this is going to happen every time I do a release which is why I specifically said no goddamn submodules.
I am open to suggestions but this is the last time I am ever going to do this so we need a new solution.
PS: I'm almost ready to go with 4.9.1
@parrt Add .fetch_time_cache
to the submodule's .gitignore. Commit and push that. Go to the parent module, commit and push the change to the submodule. Then the submodule will report as clean.
The bigger picture issue is that you're trying to release administrative control over runtime/PHP (i.e. making it have independent history) while at the same time having a huge dependency knot between Antlr, its runtime support library, its runtime tests, and the runtimes. Until you linearize these dependencies, no amount of submoduling or independent versioning is going to work properly.
@ewanmellor you win! that cleaned it up. hilarious.
Yep, with all of these different runtimes and build systems and dependencies, we have a serious mess. My only suggestion is that we limp along going forward as this is no longer my focus.
Unfortunately, I’m not a Git master either. Also, Composer does not support nested files, and doesn't seem to have plans to support. So, if we don't find any way to make this workflow work, the only way I see is manually copying the PHP runtime everytime or excluding it from the ANTLR release.
On Sun, Jan 3, 2021 at 15:22 Terence Parr notifications@github.com wrote:
PS: I'm almost ready to go with 4.9.1
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/antlr/antlr4/issues/3010#issuecomment-753657044, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHGHPHJXL6ETNRZTU454P3SYCYYDANCNFSM4VBXPYUA .
I can only repeat my suggestion: take the runtimes out and let them exist separately, release them separately, test them separately, make separate downloads for them (oh that one exists already) etc.
The only problem you (or rather the runtime owners) have then to solve is how to test all runtimes with the same set of test cases, efficiently. But even if tests for a runtime fail, it's no longer your business Ter. The owner has to fix it.
And while you are at sourcing out this development, it might be time to find someone from the community to take care for ANTLR in the future, so you are not bound to it forever. Priorities shift and nobody can forever support a project. Maybe you can get it under the Apache Org roof?
yeah, what you say makes sense Mike, but would be a radical change. I'd have to think about splitting this up.
on an unrelated note, I literally cannot get travis-ci.com to see antlr/antlr4 repo. It sees a bunch of the other but not the one I want. so frustrating trying to hook this up. I deleted and reinstalled the github thing multiple times.
Yes, I had the same issue and removed everything from travis-ci.com, hoping for an automatic solution in the future.
oh wow. you need to join the beta program... which I just asked for. ugh. Ok, it looks like it's trying to do it now. triggering test build now.
I see it here: https://travis-ci.com/github/antlr/antlr4/builds/211698627, there's a build going on right now.
It did kind of glitch, like it wasn't in the list initially and then it found it.
Travis is now hooked up but it can't find the submodule (lovely)
https://travis-ci.com/github/antlr/antlr4/jobs/467886352:
$ git clone --depth=50 --branch=master https://github.com/antlr/antlr4.git antlr/antlr4
5.97s$ git submodule update --init --recursive
Submodule 'runtime/PHP' (https://github.com/antlr/antlr-php-runtime.git) registered for path 'runtime/PHP'
Cloning into '/home/travis/build/antlr/antlr4/runtime/PHP'...
fatal: remote error: upload-pack: not our ref 5f4930012c1601b0755ae5fc48828c3b0f3823d1
Fetched in submodule path 'runtime/PHP', but it did not contain 5f4930012c1601b0755ae5fc48828c3b0f3823d1. Direct fetching of that commit failed.
The command "eval git submodule update --init --recursive " failed. Retrying, 2 of 3.
You haven't pushed the most recent commit in the submodule.
hahah. you sure? I could swear that I did do that. It also says that I am detached now when I go back into that directory. shit.
$ git status HEAD detached from 62fd3c3
Ok, so let's just add one more line to my human script which is to cp -r
the PHP runtime over. I will have to jump over real quick and manually update the version number in that repository but that's no big deal. Is this the proper procedure for undoing submodules? https://gist.github.com/myusuf3/7f645819ded92bda6677
If the submodule isn't checked out to an particular branch (i.e. it is a "detached HEAD") then you need to tell it which branch to push to.
Assuming that the correct branch is master, you probably want
git push origin HEAD:master
If you're going to be working on the submodule regularly, I'd check out the submodule onto the correct development branch (or master if that's right).
at this point I'm going to remove it if I can find a way to do it safely. ok, I have unhooked it using the GUI (Fork, actually a very nice tool).
I just realized that removing the submodule is going to break the testing of PHP as part of travis. On the other hand, it also has a build sequence that triggers upon push to its repository:
https://travis-ci.com/github/antlr/antlr-php-runtime/jobs/467888291
Looks like swift is failing at travis:
https://travis-ci.com/github/antlr/antlr4/jobs/467890059
(They seem to be working on my local mac though)
/Users/travis/build/antlr/antlr4/runtime/Swift/Tests/Antlr4Tests/RuntimeMetaDataTests.swift:30: error: -[Antlr4Tests.RuntimeMetaDataTests testGetMajorMinorVersion] : XCTAssertEqual failed: ("4.9") is not equal to ("4.9.1")
Looks like it needs a version number bump somewhere.
dang. ok. thanks. It's in there:
public static let VERSION: String = "4.9.1"
https://github.com/antlr/antlr4/blob/master/runtime/Swift/Sources/Antlr4/RuntimeMetaData.swift#L66
Maybe that build was old? Nope. current. also weird it works locally. ah. i see one small booboo and will try again.
Yes, I see your change, that's the right one I think.
Crap. PHP tests are still attempted (on appveyor). trying to add php back and clone repo during install.
heh, swift is looking better https://travis-ci.com/github/antlr/antlr4/builds/211707047
Travis: "Builds have been temporarily disabled for public repositories due to a negative credit balance. Please go to the Plan page to replenish your credit balance or alter your Consume paid credits for OSS setting."
clicking on the links gives site error. hahaha.
Damn. ok, we have now consumed all credits with a few hours playing:
"-2810 available credits (purchase date: January 03, 2021) You have used 12810 of 10000 credits"
Looks like travis is now out. github actions? anybody want to take a crack at that? @KvanTTT ??
I can try to integrate next week.
https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing: "1 minute of mac build time costs 50 credits"
So the free plan now gives 2.5 test runs per month for our Swift tests alone. Wow.
It didn't even get a chance to run our extended test suite, which currently has macOS tests for .NET and C++ at approximately the same length.
Even if you disabled the macOS tests entirely and just ran the Linux ones, I think you're looking at 7 or 8 full test runs a month before the free plan caps out.
Does this mean free Travis is going away, effectively? That would be a bummer.
It’s not going away, but the limitations make it unusable for ANTLR.
Le 4 janv. 2021 à 15:31, Mike Lischke notifications@github.com a écrit :
Does this mean free Travis is going away, effectively? That would be a bummer.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/antlr/antlr4/issues/3010#issuecomment-753808827, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZNQJBZ4VUL26QD42IJGWTSYFVGLANCNFSM4VBXPYUA.
I'll have to look at github actions (costs money). Can we get away with just AppVeyor?
I'm reading this on migrating to github actions: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/migrating-from-travis-ci-to-github-actions
The problem I have with GitHub actions is the long history of Microsoft trapping people into a free product and then suddenly making it expensive… (appreciate that’s exactly what just happened with Travis CI on Mac)
I think the cost of migrating our CI from Travis to any CI will be small, rather I would suggest we focus on identifying the right one.
Travis, Github, AppVeyor, Gitlab all offer Linux/Wintel/MacOS builds (and there’s probably others out there)
I’d suggest, once 4.9.1 is out that we list them all and do a qui pros-and-cons. Happy to drive that effort.
Le 5 janv. 2021 à 07:07, Terence Parr notifications@github.com a écrit :
I'm reading this on migrating to github actions: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/migrating-from-travis-ci-to-github-actions https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/migrating-from-travis-ci-to-github-actions — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/antlr/antlr4/issues/3010#issuecomment-754276244, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZNQJAB4YJNCB37P5N6UFTSYJCZXANCNFSM4VBXPYUA.
@ericvergnaud it would be great if you could leave that discussion after I push out 4.9.1 thanks
Ok, finishing up maven release and will update website etc... soon. closing this.
Anybody know npm?
beast:master:~/antlr/code/antlr4/runtime/JavaScript $ npm run build
> antlr4@4.9.1 build /Users/parrt/antlr/code/antlr4/runtime/JavaScript
> webpack
sh: webpack: command not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! antlr4@4.9.1 build: `webpack`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the antlr4@4.9.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/parrt/.npm/_logs/2021-01-05T21_02_05_436Z-debug.log
Have you run "npm install" first?
hahah. I just figure that out and added it to the documentation after a web search. ugh. thanks Mike!
folks, we have 4.9.1 out the door :) thanks for the help!!
The problem I have with GitHub actions is the long history of Microsoft trapping people into a free product and then suddenly making it expensive…
I don't think that we should be biased against any vendor. In this case, we should migrate to GitLab or another service because GitHub is also under Microsoft. In the end, any company tries to earn more money and there is no "Corporation of Good" in the modern world (even Google is not such a corporation). By the way, GitHub private repositories became free after GitHub had been acquired by Microsoft. If Microsoft or any other company became paid or expensive, we could switch to another service.
Also, I think we can try to ask for some advanced resources for free because ANTLR is a valuable project.
@parrt congrats on 4.9.1. the test plugin and grammars-v4 are updated.
Hiya: @pboyer, @mike-lischke, @janyou, @ewanmellor, @hanjoes, @ericvergnaud, @lingyv-li, @marcospassos
Eric has raised the point that it would be nice to be able to make quick patches to the various runtimes; e.g., there is a stopping bug now in the JavaScript target. He proposes something along these lines:
This is in optimal as people have criticized me in the past for bumping, say, 4.6 to 4.7 for some minor changes. It also has the problem that 4.9.x will not mean the same thing in two different targets possibly, as each target will now have their own version number.
Rather than break up all of the targets into separate repositories or similar, can you guys think of a better solution? Any suggestions? The goal here is to allow more rapid target releases, and independent of me having to do a major release of the tool.