Commit graph

504 commits

Author SHA1 Message Date
daimond113
ef8a7cf9b3
fix: rewrite dependency type system
Previously, a naive dependency type was used. This
had 2 fields in a dependency graph node:
resolved_ty and is_peer. These fields were
incorrect, since the dependency can be dependended
on as multiple types. Now, the dependency type is
stored in the dependencies fields. This change
makes old lockfiles incompatible since the old
format had data loss when it comes to dependency
types.

Fixes #33.
2025-04-30 20:02:41 +02:00
daimond113
0f63044fa6
refactor: remove hack in x command 2025-04-28 22:31:24 +02:00
daimond113
e4f496ffab
feat: add engines when initing project
When initializing a project, the `engines` section
will now be copied over from the scripts package.
2025-04-28 21:55:36 +02:00
daimond113
a99420e05d
feat: scan for engines without version management 2025-04-28 21:40:01 +02:00
daimond113
8f185d70e3
fix: require files in run & x commands correctly
Previously, absolute paths were used. These are
not currently supported by Luau and so have been
changed to being relative paths. Additionally,
fixes engines installed but not used by the
current project being undetected. Adds a target
argument to the x command & rewords its argument's
description.
2025-04-27 01:05:51 +02:00
daimond113
a127e2fcbb
refactor: remove unused imports 2025-04-26 23:59:29 +02:00
daimond113
91229d92be
refactor: use async version of Path::canonicalize 2025-04-26 23:53:51 +02:00
daimond113
5c74a3762b
feat: add cross runtime script execution
Adds a new mechanism which simplifies executing
scripts for different runtimes. Additionally,
supports Lune's 0.9.0 change of removing "--" from
the args.
2025-04-26 23:46:56 +02:00
daimond113
6aeedd8602
feat: add PESDE_HOME variable
Adds the PESDE_HOME env variable to allow changing
where pesde will store data like engines, bins,
etc. to support e.g. small OS disks & large
data disks.
2025-04-26 20:45:27 +02:00
daimond113
398763a171
fix: download engines eagerly
Previously, to download an engine pesde would
require its linker to be executed. This caused
issues if called concurrently, such as with
scripts & required the user to manually execute
the engine before usage. This change makes it so
it is downloaded in the install step before any
scripts which solves the issue.
2025-04-26 19:31:05 +02:00
daimond113
63e43ff283
chore: update full-moon parser 2025-04-25 21:53:12 +02:00
Stefan
debff41488
feat: add dev-only installs (#32)
* feat: add dev flag

* fix: do not download dev/prod dependencies at all

* fix: only remove direct non-dev dependencies

* refactor: formatting

* fix: check sub dependencies

* fix: remove arc

Co-authored-by: dai <contact@daimond113.com>

* chore: grammar fixes

Co-authored-by: dai <contact@daimond113.com>

* chore: remove eagerly implemented traits

Co-authored-by: dai <contact@daimond113.com>

* refactor: use method over partialeq

* chore: use owned type for `DependencyType`

Co-authored-by: dai <contact@daimond113.com>

* refactor: simplify and improve logic

* chore: formatting

* fix: install mode works with force mode

* chore: remove cow

* chore: fits method takes owned self

* chore: fix needless borrow

* refactor: improve code structure

* refactor: avoid manually recreating graph

---------

Co-authored-by: dai <contact@daimond113.com>
2025-04-25 21:41:59 +02:00
daimond113
c51ac12968
chore: use alpine for registry docker image 2025-04-24 09:45:17 +02:00
daimond113
fbcc836064
perf: remove unnecessary Arcs 2025-04-21 13:21:14 +02:00
daimond113
74f364ee32
chore: update dependencies 2025-04-21 12:20:48 +02:00
daimond113
15ca642a19
chore: scale down registry memory
Previously, we reserved 1gb of memory for the
registry. This was too much, since the registry
didn't spike above 300mb, but we still paid for
the full 1gb. This commit changes that to the next
smaller value, which is 512mb.
2025-04-19 00:35:03 +02:00
daimond113
e1619da871
docs: document engines 2025-03-23 20:59:41 +01:00
daimond113
efbd0c3fa5
chore(release): prepare for v0.6.2 2025-03-14 09:04:18 +01:00
daimond113
3bc1f0fa5c
fix: make bin linkers only for bin packages
Fixes binary linkers being made for non-binary
direct dependencies.
2025-03-14 08:58:45 +01:00
daimond113
4f48963da3
chore(release): prepare for v0.6.1 2025-03-09 21:29:49 +01:00
daimond113
00bc83b4e5
docs: update logo url to 0.6 branch 2025-03-09 21:21:57 +01:00
daimond113
412ce90e7f
feat: add proper versioning to lockfiles
Lockfiles now store a format field which is used
to migrate the them easily without brute forcing
the version it's at.
2025-03-09 18:57:20 +01:00
daimond113
b8c4f7486b
refactor: switch from sync Path::exists() method
This commit disallows the method through clippy
and switches to the async equivalents, as to not
block the async runtime.
2025-03-09 17:41:38 +01:00
daimond113
af93b7d584
fix: correctly get aliases for bin linkers
Fixes two issues with getting the aliases. The
first was that direct dependency aliases weren't
collected. The second is that these aliases would
be handled in a case-insensitive matter which is
incorrect.
2025-03-09 17:13:23 +01:00
daimond113
292565b647
feat: add @generated to lockfiles
Adds the @generated marker to lockfiles to make
them easily recognizable as auto-generated.
2025-03-09 16:16:44 +01:00
daimond113
e6ee935c11
feat: show available targets when none fit
This will help prevent user confusion with
targets. Instead of a cryptic "no matching
versions available" error, it'll now list the
available targets (if the source decides to output
them, so if the specifier has a target option)
2025-03-09 16:01:54 +01:00
daimond113
0e73db2831
fix: add missing run alias behaviour
The `run <alias>` behaviour was documented yet
missing. This commit adds it.
2025-03-09 14:53:22 +01:00
daimond113
12c62d315d
refactor: build search without async
It didn't benefit from being async (nothing is
a future in there). For some reason Clippy didn't
complain despite the unused_async lint being
enabled.
2025-03-09 12:59:59 +01:00
daimond113
19d6a07851
fix: make bin linkers for non-direct dependencies
Previously, binary linkers weren't made for
non-direct dependencies despite this being the
documented & expected behaviour.
2025-03-09 01:33:41 +01:00
daimond113
9a75ebf637
refactor: handle bin linkers in rust
Previously, binary linkers were handled by a Luau
script. This was not cross-runtime portable, and
forced us to do many "hacks" in order to be able
to implement them. To solve these issues, they are
now handled with Rust, which allows us to use our
existing infrastructure.
2025-03-09 01:18:12 +01:00
daimond113
41337ac96a
fix: dont inherit workspace by path dependencies 2025-03-08 23:24:35 +01:00
daimond113
9ad691ee94
refactor: undo send archive changes 2025-03-08 23:15:36 +01:00
daimond113
31f74cff65
docs: document adding wally dependencies 2025-03-08 22:38:35 +01:00
daimond113
c7a8f919e2
refactor: apply clippy lints 2025-03-08 22:37:42 +01:00
daimond113
ff5c2e5d61
refactor: specify many new clippy lints
Adds quite a lot of Clippy lints which fit with my
personal taste for how pesde's codebase should
look like. Stylistic lints are mostly warns, and
behavioural lints are mostly denied.
2025-03-08 22:00:52 +01:00
daimond113
7520e8e8fc
chore(registry-release): prepare for v0.2.1 2025-03-02 02:58:43 +01:00
daimond113
86a111cf83
feat(registry): print more error info
Previously, only the root error's Display was
printed. Now we print Display of the root and
every parent error's as well.
2025-03-02 02:55:28 +01:00
daimond113
308320602f
fix(website): use v1 api for docs 2025-02-23 12:43:54 +01:00
daimond113
cb3c47477a
docs: update security policy 2025-02-22 22:22:04 +01:00
daimond113
1b984f2d82
docs: use list for engine support req 2025-02-22 21:50:00 +01:00
daimond113
c9faef256a
chore(release): prepare for v0.6.0 2025-02-22 11:50:49 +01:00
daimond113
e2f4e35a02
docs: rename config.yaml to config.yml 2025-02-18 00:33:19 +01:00
daimond113
5d58b9dffb
docs: update issue templates 2025-02-18 00:31:21 +01:00
dai
467a000c5c
docs: create issue templates 2025-02-18 00:25:32 +01:00
daimond113
8510fcf030
chore(release): prepare for v0.6.0-rc.8 2025-02-17 00:35:59 +01:00
daimond113
ef471069d8
fix: don't panic on SIGINT exits
Unwrapping the process code caused panics on
SIGINTs. Now we default to code 1 if there is
none.
2025-02-17 00:33:49 +01:00
daimond113
1bc5defd9c
docs: document roblox_server target 2025-02-16 14:23:47 +01:00
daimond113
f6f0cb48f8
chore: add missing changelog entries 2025-02-16 11:38:36 +01:00
daimond113
aa4f283e4c
refactor: allow publishing other packages on error
Previously, if a package failed to publish the
whole publishing process would halt. Then, if
a re-ran publishing got to an already published
package it'd error, which would require users to
manually publish the missing packages. This commit
fixes that by printing errors, but allowing other
members to still get published.
2025-02-16 11:32:16 +01:00
daimond113
9b70929e02
chore(release): prepare for v0.6.0-rc.7 2025-02-15 00:09:07 +01:00