-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Finish apply_dist()
#1730
Open
duckinator
wants to merge
26
commits into
main
Choose a base branch
from
apply-dist
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Finish apply_dist()
#1730
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 tasks
e3bdcf2
to
1b6e08b
Compare
53eb226
to
d1b13c2
Compare
6a2c7a1
to
41601ce
Compare
fd89162
to
5402a1f
Compare
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE: The errors are due to
dist::init::apply_dist::apply()
never being called outside of the test suite.This PR is functional and has unit tests for each part that was split into its own file. I knew this PR was going to be distressingly large, so I tried to design it so each part could be treated entirely self-contained.
The exception is
cargo-dist/src/init/apply_dist/mod.rs
, which pulls everything else in that directory together.There's also
cargo-dist/src/init/mod.rs
, but that's tiny.There is definitely room for refactoring in some spots, because I learned a lot of tricks as I got farther into it. I don't think it's worth adding even more churn to this PR, though.
Detailed list of submodules, which I used to track my progress.
Each of the following submodules under
dist::init::apply_dist
handle all configuration values:archives
(ArchiveLayer)include
auto_includes
windows_archive
unix_archive
package_libraries
source_tarball
extra
(deliberately not done)checksum
ssldotcom_windows_sign
macos_sign
cargo
(BoolOr CargoBuildLayer)generic
(BoolOr GenericBuildLayer)system_dependencies
(SystemDependencies)min_glibc_version
omnibor
common
(CommonCiLayer)merge_tasks
fail_fast
cache_builds
build_local_artifacts
dispatch_releases
release_branch
pr_run_mode
tag_namespace
plan_jobs
build_local_jobs
build_global_jobs
host_jobs
publish_jobs
post_announce_jobs
github
common
(CommonHostLayer)force_latest
display
display_name
github
(BoolOr GithubHostLayer)axodotdev
(BoolOr AxodotdevHostLayer)common
(CommonInstallerLayer)install_path
install_success_msg
install_libraries
bin_aliases
(deliberately not done)homebrew
(BoolOr HomebrewInstallersLayer)msi
(BoolOr MsiInstallerLayer)npm
(BoolOr NpmInstallerLayer)powershell
(BoolOr PowershellInstallerLayer)shell
(BoolOr ShellInstallerLayer)pkg
(BoolOr PkgInstallerLayer)identifier
install_location
updater
always_use_latest_updater
common
(CommonPublisherLayer)prereleases
homebrew
(BoolOr HomebrewPublisherLayer)npm
(BoolOr NpmPublisherLayer)