diff --git a/.dockerignore b/.dockerignore index 7c49a97..e7b2191 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,7 +2,7 @@ !src !registry registry/.env -registry/cache +registry/data !Cargo.lock !Cargo.toml !rust-toolchain.toml \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index a865e9b..6577fc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,184 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.4.7] - 2024-05-12 -### Details -#### Features -- Parallel sourcemap generation +## [0.5.0-rc.1] - 2024-10-06 +### Changed +- Rewrite the entire project in a more maintainable way by @daimond113 +- Support workspaces by @daimond113 +- Improve CLI by @daimond113 +- Support multiple targets for a single package by @daimond113 +- Make registry much easier to self-host by @daimond113 +- Start maintaining a changelog by @daimond113 -## [0.4.6] - 2024-05-12 -### Details -#### Bug Fixes -- Create package folders by @daimond113 -- Colour single tick codeblocks properly by @daimond113 - -#### Continuous Integration -- Update macos x86_64 image (the default is now arm) by @daimond113 - -#### Documentation -- Bring back convert index note by @daimond113 -- Correct manifest dependency format by @daimond113 -- Link documentation in readme by @daimond113 - -#### Features -- Allow images in readmes by @daimond113 -- Add exports to sidebar by @daimond113 - -#### Miscellaneous Tasks -- Make registry image weigh less by @daimond113 - -## [0.4.5] - 2024-04-01 -### Details -#### Bug Fixes -- Remove manifest requirement by @daimond113 - -## [0.4.4] - 2024-03-31 -### Details -#### Bug Fixes -- Use project indices in specifier by @daimond113 -- Correctly update sync tool files by @daimond113 - -## [0.4.3] - 2024-03-31 -### Details -#### Bug Fixes -- Ensure version is root by @daimond113 - -#### Documentation -- Document exports field of manifest by @daimond113 - -#### Features -- Support manifest-less repos & running local package bin export by @daimond113 - -#### Miscellaneous Tasks -- Merge pull request #1 from Foorack/repo-patch - -Update repository field in Cargo.toml by @daimond113 in [#1](https://github.com/daimond113/pesde/pull/1) -- Update repository field in Cargo.toml by @Foorack - -#### Refactor -- Improve manifest parsing by @daimond113 - -## New Contributors -* @Foorack made their first contribution -## [0.4.2] - 2024-03-29 -### Details -#### Bug Fixes -- Create folder for config by @daimond113 - -#### Features -- Add documentation meta tags by @daimond113 -- Add documentation by @daimond113 - -## [0.4.1] - 2024-03-28 -### Details -#### Bug Fixes -- :bug: correctly insert packages from lockfile by @daimond113 - -#### Continuous Integration -- :triangular_flag_on_post: remove macos aarch64 due to costs by @daimond113 - -#### Miscellaneous Tasks -- :alien: fix compilation due to zstd-sys by @daimond113 - -## [0.4.0] - 2024-03-27 -### Details -#### Bug Fixes -- :bug: link root dependencies to their dependents aswell by @daimond113 - -#### Features -- :sparkles: add dependency names by @daimond113 -- :sparkles: add dependency overrides by @daimond113 - -#### Refactor -- :art: improve lockfile format by @daimond113 - -#### Styling -- :art: apply clippy & rustfmt by @daimond113 - -## [0.3.2] - 2024-03-24 -### Details -#### Bug Fixes -- :bug: correct linking file paths by @daimond113 -- :bug: correctly enable fields with features by @daimond113 - -## [0.3.1] - 2024-03-24 -### Details -#### Features -- :sparkles: automatically find file to use as lib by @daimond113 - -## [0.3.0] - 2024-03-24 -### Details -#### Features -- :sparkles: multi-index + wally support by @daimond113 - -#### Miscellaneous Tasks -- :pencil2: correct env variable names by @daimond113 - -## [0.2.0] - 2024-03-17 -### Details -#### Continuous Integration -- :white_check_mark: run clippy on all workspace members by @daimond113 - -#### Features -- :children_crossing: add wally conversion by @daimond113 -- :sparkles: add embed metadata by @daimond113 - -#### Miscellaneous Tasks -- :bug: show logo on all platforms by @daimond113 - -#### Refactor -- :art: use static variables by @daimond113 -- :zap: store index files as btreemaps by @daimond113 - -## [0.1.4] - 2024-03-16 -### Details -#### Features -- :sparkles: add repository field by @daimond113 -- :rocket: create website by @daimond113 -- :sparkles: add listing newest packages by @daimond113 - -## [0.1.3] - 2024-03-10 -### Details -#### Features -- :sparkles: add init, add, remove, and outdated commands by @daimond113 -- :sparkles: package versions endpoint by @daimond113 - -## [0.1.2] - 2024-03-06 -### Details -#### Features -- :sparkles: add ratelimits by @daimond113 - -#### Miscellaneous Tasks -- :rocket: setup crates.io publishing by @daimond113 - -## [0.1.1] - 2024-03-04 -### Details -#### Bug Fixes -- :passport_control: properly handle missing api token entry by @daimond113 - -#### Documentation -- :memo: update README by @daimond113 - -## [0.1.0] - 2024-03-04 -### Details -#### Features -- :tada: initial commit by @daimond113 - -[0.4.7]: https://github.com/daimond113/pesde/compare/v0.4.6..v0.4.7 -[0.4.6]: https://github.com/daimond113/pesde/compare/v0.4.5..v0.4.6 -[0.4.5]: https://github.com/daimond113/pesde/compare/v0.4.4..v0.4.5 -[0.4.4]: https://github.com/daimond113/pesde/compare/v0.4.3..v0.4.4 -[0.4.3]: https://github.com/daimond113/pesde/compare/v0.4.2..v0.4.3 -[0.4.2]: https://github.com/daimond113/pesde/compare/v0.4.1..v0.4.2 -[0.4.1]: https://github.com/daimond113/pesde/compare/v0.4.0..v0.4.1 -[0.4.0]: https://github.com/daimond113/pesde/compare/v0.3.2..v0.4.0 -[0.3.2]: https://github.com/daimond113/pesde/compare/v0.3.1..v0.3.2 -[0.3.1]: https://github.com/daimond113/pesde/compare/v0.3.0..v0.3.1 -[0.3.0]: https://github.com/daimond113/pesde/compare/v0.2.0..v0.3.0 -[0.2.0]: https://github.com/daimond113/pesde/compare/v0.1.4..v0.2.0 -[0.1.4]: https://github.com/daimond113/pesde/compare/v0.1.3..v0.1.4 -[0.1.3]: https://github.com/daimond113/pesde/compare/v0.1.2..v0.1.3 -[0.1.2]: https://github.com/daimond113/pesde/compare/v0.1.1..v0.1.2 -[0.1.1]: https://github.com/daimond113/pesde/compare/v0.1.0..v0.1.1 - - +[0.5.0-rc.1]: https://github.com/daimond113/pesde/compare/v0.4.7..v0.5.0-rc.1 diff --git a/Cargo.lock b/Cargo.lock index 05d2812..0130241 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3484,7 +3484,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pesde" -version = "0.5.0-dev.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index b3087a8..4723ac7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pesde" -version = "0.5.0-dev.0" +version = "0.5.0-rc.1" edition = "2021" license = "MIT" authors = ["daimond113 "] diff --git a/Dockerfile b/Dockerfile index c6dfa85..70a7eba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.77-bookworm AS builder +FROM rust:1.81-bookworm AS builder COPY . . diff --git a/README.md b/README.md index 8b0d32d..5c9dddf 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,36 @@
- pesde + pesde logo

-# Important - -> pesde is currently being rewritten, and this new version is not yet ready for use. You can find the stable version in the `master` branch. - -pesde is a package manager for Roblox that is designed to be feature-rich and easy to use. -Currently, pesde is in a very early stage of development, but already supports the following features: - -- Managing dependencies -- Re-exporting types -- `bin` exports (ran with Lune) -- Patching packages -- Downloading packages from Wally registries +pesde is a package manager for the Luau programming language, supporting multiple runtimes including Roblox and Lune. +pesde has its own registry, however it can also use Wally, and Git repositories as package sources. +It has been designed with multiple targets in mind, namely Roblox, Lune, and Luau. ## Installation pesde can be installed from GitHub Releases. You can find the latest -release [here](https://github.com/daimond113/pesde/releases). -It can also be installed by using [Aftman](https://github.com/LPGhatguy/aftman). - -## Usage - -pesde is designed to be easy to use. Here are some examples of how to use it: +release [here](https://github.com/daimond113/pesde/releases). Once you have downloaded the binary, +run the following command to install it: ```sh -# Initialize a new project -pesde init - -# Install a package -pesde add daimond113/pesde@0.1.0 - -# Remove a package -pesde remove daimond113/pesde - -# List outdated packages -pesde outdated - -# Install all packages -pesde install - -# Search for a package -pesde search pesde - -# Run a binary -pesde run daimond113/pesde - -# Run a binary with arguments -pesde run daimond113/pesde -- --help +pesde self-install ``` -## Preparing to publish +Note that pesde manages its own versions, so you can update it by running the following command: -To publish you must first initialize a new project with `pesde init`. You can then use the other commands to manipulate -dependencies, and edit the file -manually to add metadata such as authors, description, and license. - -> **Warning** -> The pesde CLI respects the `.gitignore` file and will not include files that are ignored. The `.pesdeignore` file has -> more power over the `.gitignore` file, so you can unignore files by prepending a `!` to the pattern. - -The pesde CLI supports the `.pesdeignore` file, which is similar to `.gitignore`. It can be used to include or exclude -files from the package. +```sh +pesde self-upgrade +``` ## Documentation -For more information, you can check the [documentation](https://pesde.daimond113.com/docs). +For more information about its usage, you can check the [documentation](https://docs.pesde.daimond113.com). + +*Currently waiting on [this PR](https://github.com/daimond113/pesde/pull/3) to be merged.* ## Registry @@ -78,9 +38,7 @@ The main pesde registry is hosted on [fly.io](https://fly.io). You can find it a ### Self-hosting -You can self-host the registry by using the default implementation in the `registry` folder, or by creating your own -implementation. The API -must be compatible with the default implementation, which can be found in the `main.rs` file. +The registry tries to require no modifications to be self-hosted. Please refer to the [example .env file](https://github.com/daimond113/pesde/blob/0.5/registry/.env.example) for more information. ## Previous art diff --git a/assets/logotype.svg b/assets/logotype.svg new file mode 100644 index 0000000..48bb543 --- /dev/null +++ b/assets/logotype.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/fly.toml b/fly.toml index 935a40d..6efc564 100644 --- a/fly.toml +++ b/fly.toml @@ -1,8 +1,3 @@ -# fly.toml app configuration file generated for pesde-registry on 2024-03-04T20:57:13+01:00 -# -# See https://fly.io/docs/reference/configuration/ for information about how to use this file. -# - app = 'pesde-registry' primary_region = 'waw' kill_signal = 'SIGINT' @@ -15,6 +10,8 @@ ADDRESS = '0.0.0.0' PORT = '8080' COMMITTER_GIT_NAME = 'pesde index updater' COMMITTER_GIT_EMAIL = 'pesde@daimond113.com' +INDEX_REPO_URL = 'https://github.com/daimond113/pesde-index' +GITHUB_AUTH=1 [http_service] internal_port = 8080 diff --git a/src/cli/commands/patch_commit.rs b/src/cli/commands/patch_commit.rs index d5ef6b7..46d975b 100644 --- a/src/cli/commands/patch_commit.rs +++ b/src/cli/commands/patch_commit.rs @@ -58,7 +58,7 @@ impl PatchCommitCommand { let patches_dir = project.package_dir().join("patches"); std::fs::create_dir_all(&patches_dir).context("failed to create patches directory")?; - let patch_file_name = format!("{}-{}.patch", name.escaped(), version_id.escaped(),); + let patch_file_name = format!("{}-{}.patch", name.escaped(), version_id.escaped()); let patch_file = patches_dir.join(&patch_file_name); if patch_file.exists() {