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