paketo-community / rust-dist Goto Github PK
View Code? Open in Web Editor NEWA Cloud Native Buildpack for Rust
License: Apache License 2.0
A Cloud Native Buildpack for Rust
License: Apache License 2.0
The updater isn't working. It has missed some patch releases and it actually tried to revert a version here. Need to investigate.
https://github.com/paketo-buildpacks/pipeline-builder/blob/main/actions/rust-dependency/main.go
We should change out default branch to be "main". This will align us with the rest of the Paketo project.
Add metadata to document the buildpack configuration settings like BP_RUST_VERSION.
Example: https://github.com/paketo-buildpacks/apache-tomcat/blob/main/buildpack.toml#L29-L32
Implement Dependency Management RFC Phase 1 for rust
. Check out the RFC for more details and background.
When possible, dependencies should be used directly from upstream, rather than undergoing any additional compilation or modifications performed by Paketo-maintained code. For each dependency, the corresponding buildpack maintainer group will decide if the dependency can be used directly from upstream, and must identify the location from which the dependency will be pulled from. Some of the Paketo Java buildpacks perform directory stripping during the buildpack build process itself. This could be a viable alternative to performing directory modifications during the dependency management process for maintainers to consider.
Please refer to the retrieval RFC section on version retrieval for details around the API and background.
dependency/retrieval/
buildpack.toml
, and (2) generating metadata for each new version.SHA256
and URI
field from the metadata should be omitted in this step.If the dependency will be compiled/modified, then refer to the compilation RFC section for API details and background.
dependency/actions/compile/
It's up to maintainer discretion if the dependency will be tested. It's recommended to test the dependency if it's been compiled. Check out the testing RFC section for details.
dependency/test.
When using the generalized workflows for dependency management down the line, version retrieval and dependency testing will be executed via a Makefile in order to provide the workflow a standardized way to run the code, regardless of what language it was written in. Check out the RFC section for what this should look like.
dependency/Makefile
This issue serves to set up all the main logic for the dependency management. The work to actually leverage this code and migrate off of the dep-server will be completed in a separate issue once workflows and infrastructure is set up.
We now have builds from the Dep Server available:
https://api.deps.paketo.io/v1/dependency?name=rust
These builds are custom compilations of Rust with docs & development features stripped out. It's essentially like running the installer with the --without=rust-docs,rls-preview,clippy-preview,miri-preview,rustfmt-preview,llvm-tools-preview,rust-analysis-x86_64-unknown-linux-gnu
argument.
The rationale for this as opposed to the standard installer:
The naming convention in Paketo is to not use the -cnb
suffix. We should change the name of this repository to align with that naming convention.
We should add integration tests that verify that rust
is reliably installed onto the system.
Use packit.Run
instead of having two separate executables.
Allow selecting a version of Rust to be installed with the env variable BP_RUST_VERSION
. Ex: BP_RUST_VERSION=1.50.0
.
While you can select any version, you are limited to using versions that are available in buildpack.toml
.
Add support for including a bill of materials
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.