diff --git a/.gitignore b/.gitignore index 5cdd539..25c4c1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target /src/target -/pkg \ No newline at end of file +/pkg +/result \ No newline at end of file diff --git a/CONTRIBUTING.MD b/CONTRIBUTING.MD new file mode 100644 index 0000000..5432145 --- /dev/null +++ b/CONTRIBUTING.MD @@ -0,0 +1,31 @@ +# Contribution guidelines for Daisy + + +## Pull requests +All PRs should merge to `dev`. See "branching" below. + + +## Versioning +Daisy uses [semantic versioning](https://semver.org/), which looks like `maj.min.patch`. In short: + - `maj`: Incremented on large, incompatible changes + - `min`: Incremented on new features + - `patch`: Incremented on bugfixes + +Whenever one of the above fields is incremented, all sub-fields are reset to zero. When `min` is incremented, `patch` is set to zero. + + +## Branching +Daisy uses a branch model much like the one described [here](https://nvie.com/posts/a-successful-git-branching-model). + - `master`: 1 commit = 1 release. This is always a merge comit from `dev`, and is always tagged with a version. + - `dev`: main development branch. Never deleted. Most work happens here. + - `features`: temporary branches pulled from `dev` and merged to `dev` for larger features. + - Always merge with git's `--no-ff` option for a more detailed history. + + +## Releases +What to do + - Merge into `master` (`git merge --no-ff dev`) + - Tag merge commit on `master` (`git tag -a v1.0.0 -m "Version 1.0.0"`) + - `cargo publish` + - Update web demo & pull server (`make docker`) + - Update aur package \ No newline at end of file diff --git a/TODO.md b/TODO.md index 476e696..4635cb7 100644 --- a/TODO.md +++ b/TODO.md @@ -1,18 +1,3 @@ -## Version Bump checklist - - update Cargo.toml - - run cargo test - - commit - - push - - merge - - git tag -a v1.0.0 -m "Version 1.0.0" on merge commit - - cargo publish - - Build wasm & push changes - - Update AUR package - -## Pre-release - - Tuple operations - - we don't need vectors as arguments to operators - ## Parser - Should functions be operators? - Binary, hex, octal numbers @@ -25,6 +10,7 @@ - Non-recursive treeify - Faster factorial function. Maybe use gamma instead? - Arbitrary precision floats + - we don't need vectors as arguments to operators ## Math Features - Mean, Median, Min @@ -33,6 +19,7 @@ - acot/acoth functions - Sums and products with functional arguments - Add functions: gcd, inverse mod, dice + - Tuple operations ## Prompt - Fix terminal color detection @@ -46,5 +33,5 @@ - long prefixes (megatonne, etc) - HMS for degrees - Exact radians, using pi constant? - - Weird units: flops, lumen, lux, bel + - Odd units: flops, lumen, lux, bel - Command to list units \ No newline at end of file diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..6ec622a --- /dev/null +++ b/default.nix @@ -0,0 +1,19 @@ +{ lib, fetchgit, rustPlatform }: +rustPlatform.buildRustPackage rec { + pname = "daisy"; + version = "1.1.4"; + cargoLock.lockFile = src + /Cargo.lock; + + src = fetchgit { + url = "https://github.com/rm-dr/daisy.git"; + rev = "7658ff76ef2d2fab540dc8b8d4ee24077daebd01"; + sha256 = "sha256-aENuKtE1+tBRN0HZzRr8Gk+dVEYTiP6FNRz817Sk88o="; + }; + + meta = with lib; { + description = "A pretty command-line scientific calculator"; + homepage = "https://github.com/rm-dr/daisy"; + license = licenses.GPL; + maintainers = [ maintainers.tailhook ]; + }; +} \ No newline at end of file