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

Add common build tool #633

Merged
merged 28 commits into from
Oct 21, 2024
Merged

Add common build tool #633

merged 28 commits into from
Oct 21, 2024

Conversation

secana
Copy link
Member

@secana secana commented Oct 18, 2024

This PR adds just as a command runner and a nix development shell with all tools installed. This allows for easy build, test and release of all SDKs without the need to search through the code how each individual SDK is built. It works on all Linux and macOS (Unix) platforms, where Nix is supported.

This should significantly reduce the friction for contributing to the project and provides a documentation to build and test the SDKs in code.

ATTENTION:
The release-* commands are untested, as I didn't want to release a bunch of SDKs to test the commands. If you release a new SDK version, please check if the command works and fix it if not.

I fumbled with the C++ and Ruby environment variable handling for the tests. It could be possible that the CI pipeline breaks and the SDKs need a fix, as I couldn't test that before.

@unglaublicherdude
Copy link
Member

I appreciate the work and it looks like a good Idea to have a possbillity to build all the projects with one tool.

I personally still go with the devcontainers I think, because the devcontainer environments do more than this, they also provide syntax highlighting, auto-complete, a test-explorer, debugging and you can use the remote containers functionality where it basically behaves as you run it locally but it actually runs on some remote system. That's really important for me, doing work from a rather slow internet connection.

Readme.md Outdated Show resolved Hide resolved
Co-authored-by: Matthias Simonis <[email protected]>
cpp/dotenv.h Show resolved Hide resolved
cpp/dotenv.h Outdated Show resolved Hide resolved
cpp/dotenv.h Outdated Show resolved Hide resolved
flake.nix Outdated Show resolved Hide resolved
ruby/test/vaas_test.rb Outdated Show resolved Hide resolved
justfile Show resolved Hide resolved
@GermanCoding
Copy link
Collaborator

Very cool!

@GermanCoding
Copy link
Collaborator

We should also consider enabling Nix support for renovate (https://docs.renovatebot.com/modules/manager/nix/) and probably also consider enabling https://docs.renovatebot.com/configuration-options/#lockfilemaintenance such that the flake.lock gets updated from time to time.

@unglaublicherdude
Copy link
Member

We should also consider enabling Nix support for renovate (https://docs.renovatebot.com/modules/manager/nix/) and probably also consider enabling https://docs.renovatebot.com/configuration-options/#lockfilemaintenance such that the flake.lock gets updated from time to time.

I just added a commit, that does that.

@unglaublicherdude
Copy link
Member

Wouldn't it be cool, to also use those tasks in the ci? It would make sure, they always work.

@secana
Copy link
Member Author

secana commented Oct 21, 2024

I appreciate the work and it looks like a good Idea to have a possbillity to build all the projects with one tool.

I personally still go with the devcontainers I think, because the devcontainer environments do more than this, they also provide syntax highlighting, auto-complete, a test-explorer, debugging and you can use the remote containers functionality where it basically behaves as you run it locally but it actually runs on some remote system. That's really important for me, doing work from a rather slow internet connection.

You can add any IDE. GUI or terminal, to the flake.nix with a corresponding config. But I didn't want to provide an IDE but a simple tool to test all SDKs with one command in the case that there is a change in the backend. As I don't know all of the languages well, it was hard for me to remember how to build and release new versions of the SDK.

@secana secana merged commit 31fd122 into main Oct 21, 2024
6 checks passed
@secana secana deleted the add-common-build-tool branch October 21, 2024 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants