Euclid is a collection of helper utility modules and functions. The code is free for all to use and reuse, as a whole or piecemeal. Specifically, if you only want a function or two, consider copying the code to your own codebase rather than introducing Euclid as a dependency. You don't need to mention the source either.
- Repo: https://github.com/RatioPBC/euclid
- Docs: https://hexdocs.pm/euclid/Euclid.html
- CI: Coming soon!
Add to mix.exs
:
{:euclid, "~> 0.4.0"}
As of version 0.2.5
, the Euclid.Extra.*
and Euclid.Test.Extra.*
modules are deprecated.
Use the modules in Euclid
instead (for example, Euclid.String
instead of the deprecated Euclid.Extra.String
).
Some other functions are deprecated too.
See the changelog for details.
Deprecated functions and modules will be removed in the upcoming 1.0
release.
After cloning this repo, run bin/dev/doctor
. If it finds a problem, it will suggest a remedy,
which it will put in the clipboard. If you think the remedy will work well on your computer, paste it into
your terminal. You can also try a different remedy -- doctor
is not omnipotent. Then run doctor
over
and over until it succeeds. (Note: doctor
may not work well on Windows.)
- Get new commits with
bin/dev/update
. - Make changes and run
bin/dev/test
to make sure everything works. Please add new tests for new functionality. - Run
bin/dev/shipit
when you're ready to ship.
# In YOUR APPLICATION's mix.exs:
def deps do
[
local_or_remote(:remote, :euclid, version: "~> 0.2", path: "../euclid")
]
end
defp local_or_remote(:local, package, options) do
{package, options |> Keyword.delete(:organization) |> Keyword.delete(:version)}
end
defp local_or_remote(:remote, package, options) do
{package, options |> Keyword.get(:version), options |> Keyword.delete(:path) |> Keyword.delete(:version)}
end
- Increment the version (in
VERSION
) following Semantic Versioning. - Commit the version file and push using
bin/dev/shipit
- Coming soon:
CI will run tests, and if tests pass, it will publish a new patch version in Hex. - Publish the new Hex package version:
mix hex.publish package
(includepackage
to avoid publishing the docs, which are still too ugly to publish). - Once the new version is published:
- Change
:local
back to:remote
in your application'smix.exs
- Run
mix deps.update euclid
in your application to get the latest version.
- Change
Copyright © 2020-2022 Ratio PBC, Inc. and Geometer, LLC. See also License
geometer: a specialist in geometry
Euclid: the father of geometry