This repository is home to the standard library of the Tony programming language.
Tony is a functional, strongly typed, high level, general purpose programming language. Tony employs refinement types, allowing its type checker to catch domain-specific bugs at compile time.
Other core components of Tony can be found through the following links:
The tony-prelude
package is published on NPM.
You may install it
The prelude is imported automatically in all Tony programs. If you wish to override the default import add the following import:
import { + } from 'prelude'
In the above example only +
is imported from the prelude.
To start development you first have to fork this repository and locally clone your fork.
Use yarn start
to listen to changes and rebuild dynamically.
To run the tests:
$ yarn test
To let TypeScript check types:
$ yarn tsc
The linter can be run as follows:
$ yarn lint
We use Prettier for automated code formatting:
$ yarn prettier
You can find all commands run by the CI workflow in .github/workflows/ci.yml
.
We warmly welcome everyone who is intersted in contributing. Please reference our contributing guidelines and our Code of Conduct.
Here you can find details on all past releases. Unreleased breaking changes that are on the current master can be found here.
Tony follows Semantic Versioning 2.0 as defined at http://semver.org. Reference our security policy.
- Review breaking changes and deprecations in
CHANGELOG.md
. - Change the version in
package.json
. - Reset
CHANGELOG.md
. - Create a pull request to merge the changes into
master
. - After the pull request was merged, create a new release listing the breaking changes, deprecations and commits on
master
since the last release. - The release workflow will publish the package to NPM.