-
Notifications
You must be signed in to change notification settings - Fork 119
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
Merge SWT native binaries into this repository stored in Git LFS #956
Merge SWT native binaries into this repository stored in Git LFS #956
Conversation
Test Results 99 files - 200 99 suites - 200 1m 59s ⏱️ - 3m 30s For more details on these failures, see this check. Results for commit 1e83a48. ± Comparison against base commit 1c2e820. This pull request removes 19 tests.
This pull request skips 42 tests.
♻️ This comment has been updated with latest results. |
de9d63c
to
7ebf16a
Compare
EDIT: sorry for the noise, I needed to also import the binary project. At least I can report that this works! |
No problem and thanks for trying this out. I probably have to further adjust the Oomph setup as well and have to check again the move of binary content in the workspace. In general there is a lot to adjust, but first I'm focusing on the build. |
7019c30
to
a863170
Compare
After a few more adjustments of the Jenkins pipeline the verification build is now passing. I have also looked into the test failure in the GH workflows and it looks like only Furthermore I have now adjusted the Oomph setup to work well with the binaries in this repository. My tests with an (almost) cleared workspace and git repo worked well. I have now also requested the EF-IT team to install git-lfs on the affected Jenkins instance so that my current work-around to download and install it each time is not necessary anymore: Furthermore I created a list of task that have to or at least should be prepared before this is submitted in my opening comment. |
1d340f9
to
c1472f0
Compare
These failures now magically vanished.
Pushing worked like a charm and thanks to the EF-Infra team we even already have git-lfs installed on all centOS images, so technically all prerequisites are completed and I will continue to work off the TO-DO list in my initial comment. |
de2540f
to
da53083
Compare
With eclipse-platform/eclipse.platform.swt#956 the swt native binaries are stored in the eclipse.platform.swt repository using git-lfs. The eclipse.platform.swt.binaries repository is therefore obsolete. Part of eclipse-platform/eclipse.platform.swt.binaries#2
Some user feedback (please let me know if not needed)... I tested the
The only minor inconvenience is having to do stages 4 and 5 each time when switching between the old and new binaries. This is necessary because the binary project names are the same, and you cannot import the new one without first removing the old one from the workspace. |
A workaround is to change the project name in the For my testing on Mac I renamed the project to |
9843760
to
fc6fe52
Compare
Constructive feedback is always welcome and I'm very glad that another person also verifies everything keeps working. :)
It is good to verify that it also works with git-cli, do you know if many SWT devs work with git from the CLI? If so I think it should be mentioned in the CONTRIBUTING guide that git-lfs is required (altough git for windows has it built in, but it still needs to be installed). Where I personally put more effort into verifying that LFS also works with EGit/JGit from inside Eclipse. So everybody that uses the Oomph just has to run the setup after changing to the latest master once this is merged and restart and then the next fetch should also do an lfs pull.
That's indeed an inconvenience. Renaming the project's sounds like a good workaround that those that cannot simply rebase their current work on the latest master can apply. |
@HannesWell Thanks for your feedback on my feedback. I'm continuing to test, but now on your PR branch rather than
I actually use the commercial
I think the main use case for this is when you want to test an older SWT commit pre-LFS. |
I have already prepared a mail to the platform-dev mailing list informing about this change that also includes the necessary steps to get things working again (with EGit and CLI-Git). |
The last build of eclipse-platform/eclipse.platform.releng.aggregator#1700 confirmed again with the latest state of the testing branch of this PR that everything works as expected and since then I just rebased this branch. This PR is now in the state that can be submitted (i.e. all testing changes are removed).
The macos-arm build machine will complete its currently running I-build test-job in about 15/20min. So for the I-builds we would have a clear baseline. There are currently just one (or maybe two, I'm not sure) waiting P/Y build jobs in https://ci.eclipse.org/releng/: I would just cancel them now and restart once this PR's build has passed. I assume that P/Y builds are not that urgent are they? |
I think so, so please cancel. |
Just canceled both waiting jobs Unfortunately I cannot re-trigger them since the jobs did not even start and Jenkins (probably therefore) didn't record them. But YPBuilds/job/Y-build-4.31/ will run again tomorrow 16:00UTC and trigger that again. If it is really urgent I can also manually trigger these builds with parameter |
OK, the I-build mac-arm tests completed. |
Configure this Git-repository to store the SWT native binaries, i.e. all *.so, *.dll and *jnilib files, using Git's Large File Storage (LFS) and move the platform-specific SWT fragments from the eclipse.platform.swt.binaries repository into the 'binaries' folder in this repository. The platform specific projects are copies (with only the adjustments necessary due to the move) of the corresponding projects from https://github.com/eclipse-platform/eclipse.platform.swt.binaries/tree/e58be4cbe6e638e5a190d019643bb11db49c3ade The native binary files are not copied because the build triggered by this commit will re-build and add them anyways. Additionally the 'forceQualifier.txt' from the native fragments are also left out since the main bundle only drives the qualifier. The commit procedure when the binaries are re-build is changed to commit the binary and pom changes in one commit. Fixes eclipse-platform/eclipse.platform.swt.binaries#2
1e83a48
to
16a38a7
Compare
The master branch build has completed successfully and the binaries were (re-)build and pushed to the master branch with commit bb3af98. The PR eclipse-platform/eclipse.platform.releng.aggregator#1700 is now ready and I will submit it as soon as the build has succeeded. |
With eclipse-platform/eclipse.platform.swt#956 the swt native binaries are stored in the eclipse.platform.swt repository using git-lfs. The eclipse.platform.swt.binaries repository is therefore obsolete. Part of eclipse-platform/eclipse.platform.swt.binaries#2
eclipse-platform/eclipse.platform.releng.aggregator#1700 has been merged and I just triggered |
I'm trying to check out the latest master and I'm getting an error:
I've installed LFS already. Are the binaries actually available in LFS? |
That's strange. |
@HannesWell : assuming everything works (SDK build is done soon), could you share steps needed for existing local repositories to "properly" update from master. If you mean, egit doesn't work, what command is needed, which (if any) config need to be changed etc. |
It was one of those weird things where it was working on one machine but not this particular one. The error occurred when switching commits between pre and post LFS. Then, after lots of re-cloning, re-pulling, etc etc. the problem vanished. Who knows? But let me say this @HannesWell - you've done a lot of hard work on this, and it works. Thank-you! |
Yes, the I-build just succeeded and I checked the result and the native fragments all look good, all changes are expected (version names, etc.). 🎉 I also updated a few open PRs and they pass or fail the verification as they did before. Furthermore I have just send an announcement to the platform-dev mailing in order to provide the necessary steps to other develpers.
Only pushing LFS-objects seems not to work from EGit to Github (see eclipse-jgit/jgit#11, but it might also be GH specific). Fetching works like charm, which is probably the relevant use-case 99% of the time. In order to conclude this task I have created eclipse-platform/eclipse.platform.swt.binaries#70.
Strange, but I'm glad it is now working for you. 😃
It was indeed a lot of work. And thank you for your help in testing this! |
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in eclipse-platform#956 but instead just should have been to the changed check-out location.
The working directory was incorrectly removed in #956 but instead just should have been to the changed check-out location.
Configure this Git-repository to store the SWT native binaries, i.e. all *.dll, *.so and *jnilib files, using Git's Large File Storage (LFS) and move the platform-specific SWT fragments from the
eclipse.platform.swt.binaries repository into the binaries folder in this repository.
The platform specific projects are (minimally adjusted) copies of the corresponding projects from
https://github.com/eclipse-platform/eclipse.platform.swt.binaries/tree/9cdcee51a79a3f72e10e074b87326f80d3d6ada2
Only leave out the 'forceQualifier.txt' since the main bundle only drives the qualifier.
Fixes eclipse-platform/eclipse.platform.swt.binaries#2
Pending tasks before this can be submitted:
eclipse.platform.swt.binaries
sub-module and adjust the Jenkins pipeline to perform an lfs-pull for sub-modules.Remove the task to clone swt.binaries (or at least mention that is not necessary with the latest master so that those that work on older states can still set up a SWT workspace). Mention the requirement for the jgit.lfs plugin.