MOAC v2.0.0
This is a major release with many breaking changes to the library, but
hardly any visible changes to the CLI programs.
Changes common to both the CLI and library:
- Entropy estimates are slightly more accurage
- While normal non-CGO performance is about the same, perf with msan or
race-detectors enabled is much slower. This should only be visible
when generating/analyzing hundreds/thousands of passwords.
Changes to the "moac" and "moac-pwgen" CLI programs:
- Input validation: impossible physical values (including temperatures
above the Planck Temperature) are forbidden.
Changes to the library:
v2.0.0 is close to a full re-write. So many APIs have changed for v2 that listing all the changes would be only slightly shorter and harder to follow than just reading the updated docs.
- A new "charsets" subpackage defines a Charset interface, CustomCharset
and DefaultCharset implementations, and a CharsetCollection. The
CharsetCollection's Add() method now handles all redundancies.
- Input validation
- Replace exported functions accepting a "quantum" bool with quantum and
non-quantum variants of those functions.
- Password reqs are passed as a struct to GenPW
- pwgen.BuildCharsets is now charsets.ParseCharsets
- Parameters and returns for almost every function have changed
Rohan Kumar (28):
Doc: mention that work happening on v2 branch
Feat!: validate: avoid impossible temperatures
Refactor!: make moac funcs arg-less Givens methods
Test: test quantum/non-quantum variants equally
Test: style fixes for pwgen tests
Test: test new temperature bounds enforcement
Refactor!: change import paths to /v2 for v2.0.0
Chore(CI): install golangci from master branch
Refactor! adopt Charsets interface/subpkg (1/3)
Refactor! adopt Charsets interface/subpkg (2/3)
Refactor! adopt Charsets interface/subpkg (3/3)
Refactor!: remove entropy.Entropy error return
Fix: order charsets.Symbols correctly
Refactor!: remove Name() from Charset
Fix: reduce unnecessary alloc for charset-building
Chore(style): improve string formatting
Chore: Makefile: add profiling, test-quick
Fix: improve minimization of charset redundancy
Test: refactor: break out some nested code
Feat: validate given values to be non-negative
Chore(CI): speed up Fedora build a bit
Build: fix Makefile portability/conventions
Chore(style): tiny style fixes from go-consistent
Chore(lint): moar linters/formatters
Chore(dep): rebuild go.mod, go.sum
Doc: add clarifications to README
Refactor!: pass password requirements as a struct
Doc: update README for v2, add project status