-
Notifications
You must be signed in to change notification settings - Fork 18
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
Mit Java 17 kompilieren #663
base: master
Are you sure you want to change the base?
Conversation
Was muss ich denn tun, damit es auf Github Actions baut? |
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.
Das funktioniert alles für 3.x+. Bei backports/Bugfixes sollte dieser commit nicht gemerged werden.
Kannst du einmal erklären, warum das so ist? Da fehlt mit die Übersicht. Das target bleibt unverändert bei 11 im ant build. |
.github/workflows/buildcheck.yml
Outdated
@@ -12,6 +12,7 @@ on: | |||
- 'lib/**' | |||
- 'lib.src/**' | |||
- 'src/**' | |||
- '.github/**' |
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.
Erkläre bitte warum der .github Ordner geprüft werden soll.
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.
Erkläre bitte warum der .github Ordner geprüft werden soll.
Nur so funktioniert der buildcheck auch bereits bei diesem 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.
Eigentlich würde .github/workflows
reichen.
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.
So richtig wohl ist mir dabei auch nicht und es erfordert einen sorgfältigen Review-Prozess, dass nicht irgend ein PR auch mal was an den Actions ändert. Irgendwo hatte ich da mal was mit Abfluss von Informationen (z. B. Tokens), insbesondere im Zusammenhang mit pull_request
und pull_request_target
gelesen. Ich glaub das war in Accessing contextual information about workflow runs.
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.
Will einer anpassen oder soll ich später?
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.
Ach du hast das nicht in deinem fork master getestet oder wie? Ich habe die buildchecks immer in meinem repo getestet bevor ich den PR erstellt habe.
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.
Da hat es natürlich auch gebaut, weil ich den workflow angepasst habe. Aber dann baut es natürlich auch hier. Oder wie ist das gemeint? Anders gesagt, ich habe es auch im maven build getestet und ich baue lokal mit Java 21. Da baut und läuft es auch.
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.
Das Problem ist, dass nun jeder Änderung (oder vollständige Ersetzung) an der buildcheck.yml von irgend einem neuen PR automatisch ausgeführt wird. Damit kann man schon einiges anstellen. Vor deinem letzten Commit 46dd5d8 war es noch krasser, da damit neue Actions einfach durch Erstellen eines PRs hätten "untergeschoben" werden können. Alles natürlich erst nachdem dieser PR gemerged wird.
Das ist natürlich nicht unbedingt gewünscht. Daher nehmen wir es bisher in Kauf, dass die PR buildchecks fehlschlagen, bis wir die Workflows "kontrolliert" angepasst haben.
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.
Das konnte man doch schon vorher. Die Actions laufen grundsätzlich. Ich kann auch ein bisschen white space in einer Java Datei ändern und einen workflow anpassen oder hinzufügen. Oder übersehe ich was? Das wichtige secret, der GITHUB_TOKEN ist nur für den run gültig, aber damit kann man natürlich schon was anfangen. Daher sollte der prinzipiell in den meisten Läufen so angepasst sein, dass er nur lesend auf das repo zugreifen kann und nicht mehr.
permissions:
contents: read
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.
Das konnte man doch schon vorher. Die Actions laufen grundsätzlich. Ich kann auch ein bisschen white space in einer Java Datei ändern und einen workflow anpassen oder hinzufügen. Oder übersehe ich was?
Ne, ich hatte bisher ein anderes Verhalten bei meinen Tests bzw. der Implementierung des buildchecks beobachtet, die jedoch vermutlich falsch waren. Ich meinte, beobachtet zu haben, dass immer die Workflow-Konfiguration (.yml) der base branch verwendet wird. Auf dieser Annahme basierten meine Kommentare. Wie ich mit #671 jedoch geprüft habe, wird doch das yml des PR verwendet. Daher könnten wir durchaus in den Actions den Pfad .github/workflows
mit aufnehmen. Kannst du das bitte so setzen?
Worauf ich eigentlich hinaus will, ist GitHub Actions Pinning. Das sollten wir in einem anderen PR machen und dazu unsere Tags nutzen (statt die commit SHAs). Damit können wir auch das in #663 (comment) angesprochene Problem lösen, indem wir das in ein Bugfix release für die älteren Versionen so mit aufnehmen.
So habe ich wieder einiges über die GitHub Actions gelernt. 😄
Das wichtige secret, der GITHUB_TOKEN ist nur für den run gültig, aber damit kann man natürlich schon was anfangen. Daher sollte der prinzipiell in den meisten Läufen so angepasst sein, dass er nur lesend auf das repo zugreifen kann und nicht mehr.
permissions: contents: read
Es ist sicher eine gute Idee, die notwendigen Permissions nochmal zu validieren und ggf. zu setzen. Das können wir gern in einem weiteren PR machen oder zunächst in einer Discussion. Allerdings kann es sein, dass die Read Permission bereits in den repository/organization settings gesetzt ist. Das kann ich jedoch nicht prüfen, da ich dazu nicht die nötige Berechtigung habe. Vielleicht kann das @dippeal ?
Weil wir sonst alle früheren Version, für die wir Bugfixes rausgeben/releasen nicht mehr gegen die damals verwendeten Jameica- und Hibiscus-Versionen "linken" würden, sondern gegen die neuen. Das könnte wieder zu Build- und Execute-Problemen führen. |
@tobidope Hattest du schon mal geprüft, ob unsere master bzw. feature branch jars mit den 17er |
Nein. Aber zur Laufzeit muss mit der neuen Jameica Version Java 17 genutzt werden. Swt kommt in Java 17. Also alles darunter kann per definition nicht genutzt werden. Vielleicht der headless mode, aber da habe ich keine Ahnung. |
Ein Grund mehr hart gegen bestimmte Versionen von Jameica und Hibiscus zu bauen. Das aktuelle nightly sollte nicht der default sein, sondern ein Sonderlauf oder renovate branch. |
Sehe ich ähnlich. Wollten einige hier nicht und lieber die neuesten tags geladen haben. |
Man könnte das ja auftrennen zwischen den verschiedenen branch/tag Kategorien (master/dev, feature, bugfix) bzw. bei dem Buildcheck auch als Matrix-Check implementieren. |
Also, in unserem plugin.xml steht, dass wir Jameica 2.8+ voraussetzen. Das bedeutet doch, dass wir selbst mit der ersten 2.8.x funktionieren müssen. |
Was hindert uns daran, den pr zu mergen? Im build.xml wird weiterhin kompatibel zu Java 11 gebaut, da der Parameter release weiterhin auf 11 steht. <target name="compile" depends="init, clean">
<mkdir dir="${class.dir}" />
<javac debug="true" includeantruntime="false" debuglevel="lines,vars,source" release="${define.java.version}" encoding="${define.encoding}" deprecation="true" destdir="${class.dir}" srcdir="${src.dir}">
<classpath refid="compilepath" />
</javac>
</target> Es ist kein breaking change, es führt nur dazu, dass im aktuellen System der build wieder funktioniert. |
Mit dem maven build hat es ausgereicht, auf jdk 17 zu wechseln. Alles andere habe ich auf 11 geleasen (maven.compiler.release)
fixes #659