diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index ac4f58239..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,133 +0,0 @@ - -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[coc-grahamc@determinate.systems](coc-grahamc@determinate.systems) or [coc-ana@determinate.systems](coc-ana@determinate.systems) . -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0fa23242a..206094f32 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,111 +1,15 @@ -# Contributing to `nix-installer` +# Contributing to `experimental-nix-installer` -We're excited to see what you'd like to contribute to `nix-installer`! +Most contributions should be made upstream; see the +[upstream contributing guide](https://github.com/DeterminateSystems/nix-installer/blob/main/CONTRIBUTING.md) +for guidelines. -Regardless of what (or how much) you contribute to `nix-installer`, we value your time -and energy trying to improve the tool. +In general, bugs should also be opened in the +[upstream issue tracker](https://github.com/DeterminateSystems/nix-installer/issues). -In order to ensure we all have a good experience, please review this document -if you have any questions about the process. - -**Regular Rust committer?** Contributing to `nix-installer` should feel similar to -contributing to other serious Rust ecosystem projects. You may already know -the process and expectations of you, this document shouldn't contain any -surprises. - - -# What kinds of contributions are needed? - -`nix-installer` can benefit from all kinds of contributions: - -* Bug reports -* Code improvements -* Registry additions -* Dependency updates or dependency feature trimming -* New features (Please create an issue first!) -* Documentation -* Graphical/visual asset improvement -* Kind words or recommendation on your own site, repo, stream, or social media - account -* Onboarding others to using `nix-installer` - - -# What are the expectations you can have of the maintainers? - -You can expect us to: - -* Follow the [Contributor Covenant](CODE_OF_CONDUCT.md), just like you -* Help diagnose bug reports (for supported platforms using supported - languages) -* Give constructive feedback on pull requests -* Merge pull requests which: - + Have been approved of by at least 1 maintainer - + Pass all tests - + Have no complex conflicts with in-flight high priority work - -The maintainers of this project use a separate issue tracker for some internal -tasks. Unfortunately, the contents of this tracker is not publicly visible as -it may contain sensitive or confidential data. Our maintainers will endeavor to -ensure you are not 'left out' of the discussion about your contributions. - - -# What kind of expectations do the maintainers have from you? - -We expect you to: - -* Follow the [Contributor Covenant](CODE_OF_CONDUCT.md), just like them -* Make an earnest attempt to follow the contribution process described in this - document -* Update bug reports with a solution, if you find one before we do -* Do your best to follow existing conventions -* Reflect maintainer feedback if you are able -* Declare if you need to abandon a PR so someone else can shepherd it - - -# How exactly does the contribution process work? - -Here are how to do various kinds of contributions. - - -## Bug Reports - -Create an issue on [the issue page](https://github.com/DeterminateSystems/nix-installer/issues). - -It should contain: - -1. Your OS (Linux, Mac) and architecture (x86_64, aarch64) -2. Your `nix-installer` version (`/nix/nix-installer --version`) -3. The thing you tried to run (eg `nix-installer`) -4. What happened (the output of the command, please) -5. What you expected to happen -6. If you tried to fix it, what did you try? - - -## Code/Documentation improvement - -For **minor** fixes, documentation, or changes which **do not** have a -tangible impact on user experience, feel free to open a -[pull request](https://github.com/DeterminateSystems/nix-installer/pulls) directly. - -If the code improvement is not minor, such as new features or user facing -changes, an [issue](https://github.com/DeterminateSystems/nix-installer/issues) -proposing the change is **required** for non-maintainers. - -Please: - -* Write civil commit messages, it's ok if they are simple like `fmt` - or `formatting` -* Follow existing conventions and style within the code the best you can -* Describe in your PR the problem and solution so reviewers don't need to - rebuild much context -* Run `nix flake check` and `nix build` - - -## Non-code contributions - -Please open an [issue](https://github.com/DeterminateSystems/nix-installer/issues) -to chat about your contribution and figure out how to best integrate it into -the project. +In some cases the Determinate Systems installer has made decisions that do not +align with decisions of the official Nix installer, and in those cases, a +contribution to this repo is appropriate. # Development @@ -130,7 +34,7 @@ If using an editor, it may be preferable to adopt an addon to enter the environm ## Testing Installs -If you're hacking on `nix-installer`, you likely already have Nix and cannot test locally. +If you're hacking on `experimental-nix-installer`, you likely already have Nix and cannot test locally. > That's probably a good thing! You should test in a sandbox. @@ -204,7 +108,7 @@ nix build .#hydraJobs.vm-test.rhel-v7.x86_64-linux.all -L -j 4 For PR review, you can also test arbitrary branches or checkouts like so: ```bash -nix build github:determinatesystems/nix-installer/${BRANCH}#hydraJobs.vm-test.ubuntu-v22_04.x86_64-linux.install-default -L +nix build github:NixOS/experimental-nix-installer/${BRANCH}#hydraJobs.vm-test.ubuntu-v22_04.x86_64-linux.install-default -L ```
@@ -294,7 +198,7 @@ nix build .#hydraJobs.container-test.ubuntu-v22_04.x86_64-linux.docker -L For PR review, you can also test arbitrary branches or checkouts like so: ```bash -nix build github:determinatesystems/nix-installer/${BRANCH}#hydraJobs.container-test.ubuntu-v22_04.x86_64-linux.podman -L +nix build github:NixOS/experimental-nix-installer/${BRANCH}#hydraJobs.container-test.ubuntu-v22_04.x86_64-linux.podman -L ```
@@ -392,7 +296,9 @@ To cut a release: # Who maintains `nix-installer` and why? -`nix-installer` is maintained by [Determinate Systems](https://determinate.systems/) in +This fork is maintained by the community. + +The upstream `nix-installer` is maintained by [Determinate Systems](https://determinate.systems/) in an effort to explore Nix installer ideas. Determinate Systems has no plans to monetize or relicense `nix-installer`. If your diff --git a/Cargo.toml b/Cargo.toml index 0f1d7cc8e..cbd6d63ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,8 +5,7 @@ version = "0.14.0" edition = "2021" resolver = "2" license = "LGPL-2.1" -repository = "https://github.com/NixOS/experimental-nix-installer/issues/9" -documentation = "https://docs.rs/nix-installer/latest/nix_installer" +repository = "https://github.com/NixOS/experimental-nix-installer" [package.metadata.riff.targets.aarch64-apple-darwin] build-inputs = ["darwin.apple_sdk.frameworks.Security"] diff --git a/README.md b/README.md index b504085ac..735910cdb 100644 --- a/README.md +++ b/README.md @@ -320,10 +320,10 @@ Build a portable Linux binary on a system with Nix: # to build a local copy nix build -L ".#nix-installer-static" # to build the remote main development branch -nix build -L "github:determinatesystems/nix-installer#nix-installer-static" +nix build -L "github:NixOS/experimental-nix-installer#nix-installer-static" # for a specific version of the installer: export NIX_INSTALLER_TAG="v0.6.0" -nix build -L "github:determinatesystems/nix-installer/$NIX_INSTALLER_TAG#nix-installer-static" +nix build -L "github:NixOS/experimental-nix-installer/$NIX_INSTALLER_TAG#nix-installer-static" ``` On Mac: @@ -332,10 +332,10 @@ On Mac: # to build a local copy nix build -L ".#nix-installer" # to build the remote main development branch -nix build -L "github:determinatesystems/nix-installer#nix-installer" +nix build -L "github:NixOS/experimental-nix-installer#nix-installer" # for a specific version of the installer: export NIX_INSTALLER_TAG="v0.6.0" -nix build -L "github:determinatesystems/nix-installer/$NIX_INSTALLER_TAG#nix-installer" +nix build -L "github:NixOS/experimental-nix-installer/$NIX_INSTALLER_TAG#nix-installer" ``` Then copy the `result/bin/nix-installer` to the machine you wish to run it on. @@ -390,7 +390,7 @@ cargo doc --open -p nix-installer Documentation is also available via `nix` build: ```bash -nix build github:DeterminateSystems/nix-installer#nix-installer.doc +nix build github:NixOS/experimental-nix-installer#nix-installer.doc firefox result-doc/nix-installer/index.html ``` @@ -446,32 +446,4 @@ It has been wonderful to collaborate with other participants in the Nix Installe ## Diagnostics -The goal of the Determinate Nix Installer is to successfully and correctly install Nix. -The `curl | sh` pipeline and the installer collects a little bit of diagnostic information to help us make that true. - -Here is a table of the [diagnostic data we collect][diagnosticdata]: - -| Field | Use | -| --------------------- | ----------------------------------------------------------------------------------------------------- | -| `version` | The version of the Determinate Nix Installer. | -| `planner` | The method of installing Nix (`linux`, `macos`, `steam-deck`) | -| `configured_settings` | The names of planner settings which were changed from their default. Does _not_ include the values. | -| `os_name` | The running operating system. | -| `os_version` | The version of the operating system. | -| `triple` | The architecture/operating system/binary format of your system. | -| `is_ci` | Whether the installer is being used in CI (e.g. GitHub Actions). | -| `action` | Either `Install` or `Uninstall`. | -| `status` | One of `Success`, `Failure`, `Pending`, or `Cancelled`. | -| `attribution` | Optionally defined by the user, associate the diagnostics of this run to the provided value. | -| `failure_chain` | A high level description of what the failure was, if any. For example: `Command("diskutil")` if the command `diskutil list` failed. | - -To disable diagnostic reporting, set the diagnostics URL to an empty string by passing `--diagnostic-endpoint=""` or setting `NIX_INSTALLER_DIAGNOSTIC_ENDPOINT=""`. - -You can read the full privacy policy for [Determinate Systems][detsys], the creators of the Determinate Nix Installer, [here][privacy]. - -[detsys]: https://determinate.systems/ -[diagnosticdata]: https://github.com/DeterminateSystems/nix-installer/blob/f9f927840d532b71f41670382a30cfcbea2d8a35/src/diagnostics.rs#L29-L43 -[privacy]: https://determinate.systems/privacy -[systemd]: https://systemd.io -[wslg]: https://github.com/microsoft/wslg -[nixgl]: https://github.com/guibou/nixGL +By default, this fork of the Determinate Nix Installer does not compile support for diagnostics. diff --git a/flake.nix b/flake.nix index 44f627692..0d8ee19c0 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "The Determinate Nix Installer"; + description = "Experimental Nix Installer"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/5e4c2ada4fcd54b99d56d7bd62f384511a7e2593"; diff --git a/src/action/mod.rs b/src/action/mod.rs index c9ef0998a..03670e347 100644 --- a/src/action/mod.rs +++ b/src/action/mod.rs @@ -555,7 +555,7 @@ pub enum ActionErrorKind { MissingRemoveUserFromGroupCommand, #[error("\ Could not detect systemd; you may be able to get up and running without systemd with `nix-installer install linux --init none`.\n\ - See https://github.com/DeterminateSystems/nix-installer#without-systemd-linux-only for documentation on usage and drawbacks.\ + See https://github.com/NixOS/experimental-nix-installer#without-systemd-linux-only for documentation on usage and drawbacks.\ ")] SystemdMissing, #[error("`{command}` failed, message: {message}")] diff --git a/src/cli/subcommand/install.rs b/src/cli/subcommand/install.rs index a72c05b4a..45b49c733 100644 --- a/src/cli/subcommand/install.rs +++ b/src/cli/subcommand/install.rs @@ -27,7 +27,7 @@ use owo_colors::OwoColorize; const EXISTING_INCOMPATIBLE_PLAN_GUIDANCE: &str = "\ If you are trying to upgrade Nix, try running `sudo -i nix upgrade-nix` instead.\n\ If you are trying to install Nix over an existing install (from an incompatible `nix-installer` install), try running `/nix/nix-installer uninstall` then try to install again.\n\ - If you are using `nix-installer` in an automated curing process and seeing this message, consider pinning the version you use via https://github.com/DeterminateSystems/nix-installer#accessing-other-versions.\ + If you are using `nix-installer` in an automated curing process and seeing this message, consider pinning the version you use via https://github.com/NixOS/experimental-nix-installer#accessing-other-versions.\ "; /**