mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
<!-- Hi, thanks for contributing! Please make sure you read our CONTRIBUTING guide. Also, add tests and the respective documentation changes as well. --> <!-- If applied, this commit will... --> This PR improves the handling of shared or static libraries by GoReleaser. It uses the default behaviour of the Go compiler by appending the right extension to libraries. * `.so` and `.a` for Linux shared libraries and static libraries respectively * `.dylib` and `.a.` on Darwin * `.dll` and `.lib` on Windows (pre-existent) It does not add any configuration option to `.goreleaser.yml`, since it leverages the existing `buildmode` flag. Additionally, this PR takes care of adding the generated header file into the archive. <!-- Why is this change being made? --> Personally I would leverage this change to release some software both as a CLI and as a shared library. I believe others who use CGo or need interoperability with Go from other languages could benefit from this. <!-- # Provide links to any relevant tickets, URLs or other resources --> This was previously discussed in #3497. I couldn't quite think of a proper way to add some tests to the header archiving feature. Any recommendation?
Documentation
Documentation is written in mkdocs and there are a few extensions that allow richer authoring than markdown.
To iterate with documentation, therefore, it is recommended to run the mkdocs server and view your pages in a browser.
Prerequisites
NOTE to M1/M2 mac owners
If running on an arm64-based mac (M1 or M2, aka "Applie Silicon"), you may find this method quite slow. Until multiarch docker images can be built and made available, you may wish to build your own via:
git clone git@github.com:squidfunk/mkdocs-material.git
docker build -t docker.io/squidfunk/mkdocs-material .