Releases: StanzaOrg/slm
0.6.1
0.6.0
What's Changed
- Refactor Git Dependencies to use standardized format by @callendorph
- Add PkgDependency for pre-compiled binary conan dependencies by @jwatson0
- Remove lock file support until it can be revisited by @jwatson0
Full Changelog: v0.2.3...0.6.0
0.5.5
v0.2.3
v0.2.0
This release adds initial support for path dependencies. These can be used by specifying the path
of the dependency, rather than the locator/version, e.g:
# example poet.toml
name = "foo"
version = "1.0.0"
[dependencies]
bar = { path = "../path/to/bar" }
When such a dependency is specified, no versioning is enforced. This is useful for iterating on a dependent package, as it means you can make changes locally, without having to publish intermediate (potentially buggy) versions (just for the sake of being able to observe the change in the parent package.)
v0.1.2
Bugfixes, but also colors!
Additions
- Now colorize info, build and debug output when possible, with
term-colors
. - Add environment variable
POET_COLOR
to control whether or not colorization is attempted. Two values are recognized:always
: colorization is always attempted.never
: colorization is never attempted.
If the variable is unset or set to an invalid value, colorization is always attempted. In the future some level of detection should be employed rather than always colorizing.
Changes
- Fix initial
poet.toml
being written out as[TomlFile object]
because the printer forTomlFile
was removed in[email protected]
.
v0.1.0
This is sort of a real release, which is pretty cool! This is the first release that actually incorporates some level of dependency resolution and attempts to do lockfiles correctly. This means a bunch of breaking changes, but those are pretty easy to manage when your user count is 1.
Additions:
build
:
- Add an env var
POET_PROTOCOL
that allow you to control the protocol with whichpoet
attempts to fetch your dependencies. Supports the values:git
andhttps
at the moment. - Allow passing arguments to
poet build
that get forwarded tostanza build
Changes:
build
:
-
Completely re-write
poet.lock
format to be self-contained. They now contain a complete snapshot of the dependencies and their versions during the build that created thepoet.lock
.This means that the exact build can be recreated using just a
poet.lock
file. It also means we can bypass the usual fetch & sync process after one has been generated, meaningpoet
builds now have almost zero overhead after the initial fetch & sync. -
Completely re-write the
poet build
dependency resolution algorithm to use semantic versioning.Now, as packages are fetched, the requested version is compared against previously-resolved versions, and the greatest compatible package used for each dependency after resolution is finished. If resolution cannot identify a greatest compatible package for each dependency, an error will occur.
This means more projects can be compiled when their dependencies can be resolved to a common compatible version. It also means dependency resolution errors are properly reported, rather than becoming confusing compile errors in the resulting
stanza build
.
misc:
- Print out only the executable name instead of the whole path when printing messages, e.g:
./poet: build: foo # before poet: build: foo # now
v0.0.5
More improvements!
publish
:
- Check for a
poet.toml
and parse a validversion
first before checking if the repo is clean. This provides a better experience when first getting started, and isn't any slower, as this needs to be done anyways.
init
:
- Resolve relative paths in the given project path (e.g.
poet init ../foo
) - Create the given project path if it doesn't exist (e.g.
poet init not-exist
) - Print a message when a new project is
init
'd successfully. - Suppress
git init
message.
build
:
- Fix bug with checking out version tags on initial
poet build
(e.g. when a dependency inpoet.toml
specifies a specific version tag) - Fix fatal when
poet.lock
is out of sync with a dependency in.poet/deps
.
v0.0.4
Add:
poet.lock
files:
After apoet build
, apoet.lock
file is created that captures the state of your dependencies at that moment. For subsequent builds, this state will be enforced. Library packages should commit this file to their package so thatpoet
can enforce the correct hash and version for their dependencies.
Remove:poet add
:
This is a nice feature to have, but the TOML parser I have just isn't good enough to make it good. Manually editingpoet.toml
isn't that bad, for now, and will get better with registries.
v0.0.2
It works, better!
Requires a minimum of Stanza 0.14.27 or higher to build.