Mason wishlist
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 258
- Forks
- 68
- PR merge metrics
- No merged PRs in 30d
Description
This ticket collects things we want to change about mason in a system redesign:
- **Split building packages from using them**: There should be two parts of the system, one that knows how to build a package, and the other how to use them. The latter is ideally very small/lightweight. #186 #176
- **Cross compiler installation**: We want to be able to install Mason packages that contain a cross-compiler (e.g. for Android, or upgrading Clang on Travis). In that case, the cross compiler needs a standard way to supply all of the environment variables.
- **Share packages system-wide**: Some packages are very large, e.g. compilers with their associated sysroot, so having them installed into every project fills up the disk pretty fast. Instead, we could install them into `/usr/local/mason/...`, make them read-only use use the packages from this
location.
- **Support for multiple C++ ABIs**: Our C++ packages can be compiled against multiple ABIs, and they're incompatible. Packages that expose a C++ interface (e.g. Boost, GeoJSON-VT) should include the stdlib version slug in their package version name.
- **Debug vs. Release packages**: Sometimes it's useful to have the debug version of a package. #126
- **CMake integration**: It should be easy to use Mason packages with CMake, e.g. with the `FindPackage` command or another mechanism
- **Upload packages to other locations**: We currently upload everything to an S3 bucket we control, but ideally that would be configurable, so we could e.g. upload packages to GitHub or BinTray.
- **Sign/validate packages**: We should support signatures and validation to ensure package integrity.
- **Windows support**: Do we need it?
/cc @springmeyer @TheMarex @artemp @ericfischer @BergWerkGIS
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read this wishlist alongside #186, #176, and #126; the payload names no implementation files, tests, or single entry point, so first identify which redesign item is being taken on. Done cannot be established for the ticket as written: choose one item and define its scope and acceptance criteria before implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100