anki/Cargo.toml
Damien Elmes 5004cd332b
Integrate FSRS into Anki (#2654)
* Pack FSRS data into card.data

* Update FSRS card data when preset or weights change

+ Show FSRS stats in card stats

* Show a warning when there's a limited review history

* Add some translations; tweak UI

* Fix default requested retention

* Add browser columns, fix calculation of R

* Property searches

eg prop:d>0.1

* Integrate FSRS into reviewer

* Warn about long learning steps

* Hide minimum interval when FSRS is on

* Don't apply interval multiplier to FSRS intervals

* Expose memory state to Python

* Don't set memory state on new cards

* Port Jarret's new tests; add some helpers to make tests more compact

https://github.com/open-spaced-repetition/fsrs-rs/pull/64

* Fix learning cards not being given memory state

* Require update to v3 scheduler

* Don't exclude single learning step when calculating memory state

* Use relearning step when learning steps unavailable

* Update docstring

* fix single_card_revlog_to_items (#2656)

* not need check the review_kind for unique_dates

* add email address to CONTRIBUTORS

* fix last first learn & keep early review

* cargo fmt

* cargo clippy --fix

* Add Jarrett to about screen

* Fix fsrs_memory_state being initialized to default in get_card()

* Set initial memory state on graduate

* Update to latest FSRS

* Fix experiment.log being empty

* Fix broken colpkg imports

Introduced by "Update FSRS card data when preset or weights change"

* Update memory state during (re)learning; use FSRS for graduating intervals

* Reset memory state when cards are manually rescheduled as new

* Add difficulty graph; hide eases when FSRS enabled

* Add retrievability graph

* Derive memory_state from revlog when it's missing and shouldn't be

---------

Co-authored-by: Jarrett Ye <jarrett.ye@outlook.com>
2023-09-16 16:09:26 +10:00

176 lines
4.9 KiB
TOML

[workspace.package]
version = "0.0.0"
authors = ["Ankitects Pty Ltd and contributors <https://help.ankiweb.net>"]
license = "AGPL-3.0-or-later"
rust-version = "1.65"
edition = "2021"
[workspace]
members = [
"rslib",
"rslib/i18n",
"rslib/linkchecker",
"rslib/proto",
"rslib/io",
"rslib/process",
"rslib/sync",
"pylib/rsbridge",
"build/configure",
"build/ninja_gen",
"build/runner",
"ftl",
"tools/minilints",
"qt/bundle/win",
"qt/bundle/mac",
]
exclude = ["qt/bundle"]
resolver = "2"
[workspace.dependencies.csv]
git = "https://github.com/ankitects/rust-csv.git"
rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90"
[workspace.dependencies.percent-encoding-iri]
git = "https://github.com/ankitects/rust-url.git"
rev = "bb930b8d089f4d30d7d19c12e54e66191de47b88"
[workspace.dependencies.linkcheck]
git = "https://github.com/ankitects/linkcheck.git"
rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca"
[workspace.dependencies.fsrs]
git = "https://github.com/open-spaced-repetition/fsrs-rs.git"
rev = "bae680bfde996f614741b32ac63a27a1a882a45b"
# path = "../../../fsrs-rs"
[workspace.dependencies]
# local
anki = { path = "rslib" }
anki_i18n = { path = "rslib/i18n" }
anki_io = { path = "rslib/io" }
anki_proto = { path = "rslib/proto" }
anki_process = { path = "rslib/process" }
anki_proto_gen = { path = "rslib/proto_gen" }
ninja_gen = { "path" = "build/ninja_gen" }
# pinned
unicase = "=2.6.0" # any changes could invalidate sqlite indexes
# normal
ammonia = "3.3.0"
anyhow = "1.0.75"
apple-bundles = "0.17.0"
async-compression = { version = "0.4.1", features = ["zstd", "tokio"] }
async-stream = "0.3.5"
async-trait = "0.1.73"
axum = { version = "0.6.20", features = ["multipart", "macros", "headers"] }
axum-client-ip = "0.4.1"
blake3 = "1.4.1"
bytes = "1.4.0"
camino = "1.1.6"
chrono = { version = "0.4.26", default-features = false, features = ["std", "clock"] }
clap = { version = "4.3.23", features = ["derive"] }
coarsetime = "0.1.23"
convert_case = "0.6.0"
criterion = { version = "0.5.1" }
data-encoding = "2.4.0"
difflib = "0.4.0"
flate2 = "1.0.27"
fluent = "0.16.0"
fluent-bundle = "0.15.2"
fluent-syntax = "0.11.0"
fnv = "1.0.7"
futures = "0.3.28"
glob = "0.3.1"
globset = "0.4.13"
hex = "0.4.3"
htmlescape = "0.3.1"
hyper = "0.14.27"
id_tree = "1.8.0"
inflections = "1.1.1"
intl-memoizer = "0.5.1"
itertools = "0.11.0"
junction = "1.0.0"
lazy_static = "1.4.0"
maplit = "1.0.2"
nom = "7.1.3"
num-format = "0.4.4"
num_cpus = "1.16.0"
num_enum = "0.6.1"
once_cell = "1.18.0"
phf = { version = "0.11.2", features = ["macros"] }
pin-project = "1.1.3"
plist = "1.5.0"
prettyplease = "0.2.12"
prost = "0.11.9"
prost-build = "0.11.9"
prost-reflect = "0.11.4"
prost-types = "0.11.9"
pulldown-cmark = "0.9.3"
pyo3 = { version = "0.19.2", features = ["extension-module", "abi3", "abi3-py39"] }
rand = "0.8.5"
regex = "1.9.3"
reqwest = { version = "0.11.19", default-features = false, features = ["json", "socks", "stream", "multipart"] }
rusqlite = { version = "0.29.0", features = ["trace", "functions", "collation", "bundled"] }
scopeguard = "1.2.0"
serde = { version = "1.0.185", features = ["derive"] }
serde-aux = "4.2.0"
serde_json = "1.0.105"
serde_repr = "0.1.16"
serde_tuple = "0.5.0"
sha1 = "0.10.5"
sha2 = { version = "0.10.7" }
simple-file-manifest = "0.11.0"
snafu = { version = "0.7.5", features = ["backtraces", "rust_1_61"] }
strum = { version = "0.25.0", features = ["derive"] }
syn = { version = "2.0.29", features = ["parsing", "printing"] }
tar = "0.4.40"
tempfile = "3.8.0"
termcolor = "1.2.0"
tokio = { version = "1.32", features = ["fs", "rt-multi-thread", "macros", "signal"] }
tokio-util = { version = "0.7.8", features = ["io"] }
tower-http = { version = "0.4.3", features = ["trace"] }
tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] }
tracing-appender = "0.2.2"
tracing-subscriber = { version = "0.3.17", features = ["fmt", "env-filter"] }
tugger-windows-codesign = "0.10.0"
unic-langid = { version = "0.9.1", features = ["macros"] }
unic-ucd-category = "0.9.0"
unicode-normalization = "0.1.22"
utime = "0.3.1"
walkdir = "2.3.3"
which = "4.4.0"
wiremock = "0.5.19"
xz2 = "0.1.7"
zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] }
zstd = { version = "0.12.4", features = ["zstdmt"] }
envy = "0.4.2"
dirs = "5.0.1"
# Apply mild optimizations to our dependencies in dev mode, which among other things
# improves sha2 performance by about 21x. Opt 1 chosen due to
# https://doc.rust-lang.org/cargo/reference/profiles.html#overrides-and-generics. This
# applies to the dependencies of unit tests as well.
[profile.dev.package."*"]
opt-level = 1
debug = 0
[profile.dev.package.anki_i18n]
opt-level = 1
debug = 0
[profile.dev.package.anki_proto]
opt-level = 1
debug = 0
# Debug info off by default, which speeds up incremental builds and produces a considerably
# smaller library.
[profile.dev.package.anki]
debug = 0
[profile.dev.package.rsbridge]
debug = 0
[profile.release-lto]
inherits = "release"
lto = true