Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Remove dependency bigint It is deprecated (in favor of 'uint') and dependabot flagged it with a security vulnerability. I don't expect people to rely on bigint for any of our exercises, so I'm opting not to replace it with 'uint'. We can add it later if people request it. * Remove dependency rug This is an arbitrary precision arithmetic library. It could technically be useful for the 'decimal' exercise, although just wrapping a library is probably not the point. But it has a system dependency on gmp-mpfr, which I can't even figure out how to install on my system and it's breaking the build. I doubt this is useful to newcomers of the language. I also remember from my attempt to use sccache that the compilation of this dependency took a large amount of space in the container. * Remove dependency enum-utils unmaintained for 4 years and flagged with a security vulnerability * Remove dependency num-digitize This has been unmaintained for 6 years and deep within its dependency tree is rustc-serialize, which is actually flagged for containing unsound code that will be rejected by future versions of rustc. * Remove dependency chashmap unmaintained for 4 years, pulls in ancient depencencies with soundness issues. * Remove dependency workerpool Unmaintained for 4 years, pulls in other outdated dependencies. The alternative to use is rayon. * Remove dependency scoped-pool unmaintained for 7 years * Remove dependency alloc_counter This is a profiling tool. If students want to use it, they can do so locally. There is no need to be able to use it in our test runner. * Remove array_tool last update 5 years ago, seems to be a weak version of itertools. this doesn't seem useful anymore as the ecosystem has moved on. * Remove assert_float_eq last update 5 years ago Our exercises mostly avoid floating point arithmetic becuase of how error prone it is. Therefore, our students shouldn't need this. * Remove as-slice This only provides a trait for super niche use cases. This is not useful to students. * Remove bencher last update 6 years ago. This could theoretically be useful locally, but not in the test runner. * Remove binomial-iter our exercises don't deal with the binomial coefficient * Remove bit-vec We have 'bitvec' already, which is 1.0, has more recent updates and almost equal download numbers. * Remove boolinator very outdated, last update > 7 years ago. it seems pointless. * Remove case_insensitive_hashmap seems pointless, download numbers are poor. one can simply use a case insensitive string type with the regular hashmap instead. * Remove string case manipulation libraries Students probably don't need any of these, but let's keep one for now. remove: - case (age: 5y, downloads: 2m) - change-case (age: 3y, downloads: 8k) - Inflector (age: 5y, downloads: 24M) keep: - convert_case (age: 1y, downloads 46M) * Remove unicode-case-mapping This has very niche use cases by its own admission. * Remove test-case We used to use such macro crates for test case defintions. (rstest) It increased compile times so much that the test runner timed out for these exercises. We therefore removed that dependency and shouldn't use this one either. * Remove caseless 'unicode' should be preferred. it is maintained, documented and popular. * Remove char-iter barely any downloads, over 8 years old * Remove char_stream old and obscure * Remove compare old, experimental by its own admission * Remove conv old, not popular (anymore), not helpful for our exercises * Remove counted-array old, unpopular, seems like a worse version of arr_macro * Remove cow-utils not that popular and not helpful for our exercises * Remove defaultmap not very popular, doesn't provide much value over std lib functionality * Remove derivative similar to derive_more, but that one is more popular and actively maintained * Remove deunicode This crate turns unicode text into some ascii representation. It's neat, but not useful for our exercises. * Remove dia-time only 6k all-time downloads. it doesn't seem like this provides anything that 'chrono' doesn't * Remove encode_unicode our exercises do not require messing with encodings * Remove enum_derive very old and less than 1M total downloads seems like a mix of derive_more and enum-iterator * Remove enumflags2 This seems fine, but it's too similar to the more dominant 'bitflags'. * Remove eval old and unpopular, our exercises don't require something like this * Remove evalexpr this is a little embedded scripting language. we don't need this for our exercises. * Remove factor old and unpopular * Remove factorial This is not very popular and mainly concerned with performance. Not relevant to our students. * Remove fancy-regex non-fancy-regex has plenty of features * Remove fasteval a library for evaluating arithmetic expressions, we don't need this * Remove flame & flamer These two profiling libraries may be useful locally, but not in our test runner. * Remove fnv This is just a speicifc hash function. Our exercises don't require optimization at this level. * Remove foreach unmaintained, only 5k total downloads, seems useless * Remove free-ranges old and obscure * Remove generational-arena our exercises don't need such low-level memory-management optimization * Remove grapheme less than 1k total downloads this is literally an empty crate (checked the source) probably a name-squatter (5 years ago) * Remove humantime Our exercises don't require this. "human" date representations are hard to define and therefore test anyway * Remove incremental-topo very few downloads. our exercises don't need this. * Remove inflections another case conversion library and an old one at that. we prefer convert_case. * Remove lazysort old and obscure * Remove libm this is a rust implementation of a C standard library ? * Remove modulo old and obscure looks completely useless * Remove ordered-float our exercises don't require ordering floats * Remove pathfinding our exercises don't cover graph algorithms * Remove permutator I don't think our exercises need permutation, but if they do, itertools has perfectly fine, basic permutations. * Remove petgraph our exercises don't require graph algorithms * Remove pprof this is a profiling tool the test runner doesn't need it * Remove prime number libraries These are potentially useful for the prime number exercises, but those would be immediately ruined by using these libraries. * Remove queues downloads trending toward zero. the standard VecDeq should cover most of the same use cases. the remaining is basically the circular buffer. which we have an exercise for, but we want students to do it themselves. * Remove recurse-fn old and obscure * Remove reikna old and obscure * Remove rs_poker I don't think we want our students to implement our poker exercise based on a library. * Remove rustc-hash our exercises don't require optimizing the used hash function * Remove scan_fmt our exercises are not interactive programs * Remove scoped_threadpool old, doesn't get many downloads anymore. should probably use rayon instead. * Remove sparse-bitfield barely any downloads, should probably use bitflags or flagset instead * Remove tramp old and obscure * Remove unic-char-range The functionality of this crate was since stabilized in the standard library. * Remove unic-normal should use unicode-normalization instead * Remove unicode_reader barely any downloads * Remove unicode-reverse barely any downloads * Remove unidecode extremely old, not useful for us * Remove watch barely any downloads
- Loading branch information