Previously, if 2 or more aliases resolved to the
same package only one would get picked. With this
commit, the aliases will now all correctly point
to the package.
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.
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.
Adds a new mechanism which simplifies executing
scripts for different runtimes. Additionally,
supports Lune's 0.9.0 change of removing "--" from
the args.
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.
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.
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.
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.
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)
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.
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.
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.