Skip to content

Conversation

akien-mga
Copy link
Member

@akien-mga akien-mga commented May 27, 2025

  • Remove the demo project which isn't really useful (had a scene and a script not attached to the scene, and it can't really be used to test committing stuff as that would conflict with the plugin's config).
  • Update the README following recent PRs ([SCons] Build OpenSSL from source. #191, Use OpenSSL on windows too, build libgit2, ssh2 with cmake. #199) as OpenSSL is now compiled from source for all platforms.
    • Also remove obsolete build_openssl_universal_macos.sh script.
  • Remove the bogus plugin.cfg which isn't necessary, and was confusing users who tried to enable it.
  • Bump min SCons version to 3.1.2 and Python to 3.6 (similar to Godot on 4.3 - older versions of SCons don't really work with recent Python anymore).
  • Bump compatibility_minimum to 4.2.0 following Update plugin for Godot 4.2 due to GDExtension compatibility breakage #196.
  • Remove some code in godot-git-plugin/SCsub that seems redundant with godot-cpp config.
  • Remove unnecessary .exp and .lib files in Windows artifact, rename its folder to windows.
  • Remove export-ignores in .gitattributes, they're incomplete and not actually doing anything usable.
  • Fix artifacts URL handling in release.sh, make it executable.
  • CI: Update clang-format check to version 18 (last one supported by tagged version of the action we use).

@akien-mga akien-mga requested review from Calinou and Faless May 27, 2025 16:38
@akien-mga akien-mga force-pushed the misc-fixes branch 2 times, most recently from 804514b to a586acc Compare May 27, 2025 16:43
@Faless
Copy link
Contributor

Faless commented May 27, 2025

I've actually been working on something similar here (a bit messed up now since it all started while trying to get windows arm builds).

EDIT: I'll give some feedback tomorrow, I think overall your changes are good, but we should probably cleanup a bit more.
In any case, if this works, it's okay to merge, and I can add the other changes on top.

@akien-mga
Copy link
Member Author

Your changes look pretty good, definitely worth going in that direction. The godot-git-plugin folder with a SCsub also bugged me but I opted not to touch it because that looks a bit more complex.

I'm happy to undo some of the changes in this PR to make it more minimal and avoid conflicts with the more comprehensive overhaul you're doing (like the couple removals I made in godot-git-plugin/SCsub aren't critical to do now).

My goal for this PR is just to do a small cleanup before we tag a release with latest OpenSSL for all platforms.

Then we can merge mbedTLS and further refactoring work for the following release.

Comment on lines 27 to 30
- name: Prepare artifact
run: |
mkdir bin
mv addons bin/
Copy link
Member Author

Choose a reason for hiding this comment

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

I had to add this awkward step because after removing the demo/ nesting, I ran into an issue with the artifact, where the zip wouldn't contain the addons/ top-level folder.

upload-artifact@v4 doesn't give any way to configure how to zip the given path sadly, so I need to trick it by re-introducing a parent folder to zip the contents of...

Another alternative I considered is to bring back a top-level folder to contain addons (like bin/addons/godot-git-plugin/), but I find it a bit annoying.

Copy link
Member Author

Choose a reason for hiding this comment

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

Well s/bin/out/ because apparently we do have some thirdparty stuff that generates in bin.

@akien-mga
Copy link
Member Author

I tried to download a zip of the repo and noticed we have a .gitattributes that removes source code, but it's outdated.
https://github.com/godotengine/godot-git-plugin/blob/master/.gitattributes

Should probably be removed, we don't store binaries in the repo so there's not much point to try to make a "ready-to-use" zip archive from git.

@akien-mga akien-mga force-pushed the misc-fixes branch 2 times, most recently from 5689692 to 637785b Compare May 27, 2025 22:21
@akien-mga
Copy link
Member Author

I tested release.sh, had to fix things up a bit as apparently nightly.link can't handle the kind of URLs we now get for artifacts. But it works with just the artifact ID so I'm extracting that.

@Faless
Copy link
Contributor

Faless commented May 28, 2025

FYI, for releases, I've adapted (and actually improved) the CI pipeline I'm using for webrtc-native, which uses the download-artifacts actions and produces a packaged godot-git-plugin.zip artifact ready to be uploaded to the release page.

See the pipeline here: https://github.com/Faless/godot-git-plugin/actions/runs/15298595568

Copy link
Contributor

@Faless Faless left a comment

Choose a reason for hiding this comment

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

I think this is a good starting point, and okay for the OpenSSL release.

I suggest that when we update to mbedTLS we further refactor the build system moving the src folder to the top level.

I would also recommend we start using a pipeline that makes all the builds and package them, making doing releases is much easier (see the above comment, and #291).

@Calinou
Copy link
Member

Calinou commented May 28, 2025

I noticed the .gdextension file contains a reference to arm64 Linux, but no corresponding library is in the artifact:

[configuration]

entry_symbol = "git_plugin_init"
compatibility_minimum = "4.2.0"

[libraries]

linux.editor.x86_64 = "linux/libgit_plugin.linux.editor.x86_64.so"
linux.editor.arm64 = "linux/libgit_plugin.linux.editor.arm64.so"
macos.editor = "macos/libgit_plugin.macos.editor.universal.dylib"
windows.editor.x86_64 = "win64/libgit_plugin.windows.editor.x86_64.dll"

I would probably remove that reference until we add ARM64 to it.

PS: Do we need to include the .exp and .lib files in the Windows artifact? I thought these files were only needed at link-time, not at runtime.

@akien-mga
Copy link
Member Author

I would probably remove that reference until we add ARM64 to it.

Done.

PS: Do we need to include the .exp and .lib files in the Windows artifact? I thought these files were only needed at link-time, not at runtime.

Yeah I don't think those are needed, I pushed an update to remove them.

I also renamed the target folder for Windows libs to windows instead of win64, to be consistent with the linux and macos ones.

Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

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

Looks good to me.

- Remove the `demo` project which isn't really useful.
  * Instead the `addons` subfolder is made top-level and that's where stuff gets written.
- Update the README following recent PRs (godotengine#191, godotengine#199) as OpenSSL is now compiled from source for all platforms.
  * Also remove obsolete `build_openssl_universal_macos.sh` script.
- Remove the bogus `plugin.cfg` which isn't necessary, and was confusing users who tried to enable it.
  * Fixes godotengine#267.
- Bump min SCons version to 3.1.2 and Python to 3.6.
- Bump `compatibility_minimum` to `4.2.0` following godotengine#196.
- Remove some code in `godot-git-plugin/SCsub` that seems redundant with `godot-cpp` config.
- Remove unnecessary `.exp` and `.lib` files in Windows artifact, rename its folder to `windows`.
- Remove `export-ignore`s in `.gitattributes`, they're incomplete and not actually doing anything usable.
- Fix artifacts URL handling in `release.sh`, make it executable.
- CI: Update clang-format check to version 18.
@akien-mga akien-mga merged commit 179e3dd into godotengine:master May 28, 2025
4 checks passed
@akien-mga akien-mga deleted the misc-fixes branch May 28, 2025 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Godot Git Plugin (4.1+) .gdextension not recognized
3 participants