0.251   2020-04-29  Released-By: PERLANCAR; Urgency: low

	- Tweak Rinci metadata: replace deprecated
	  x.schema.{,element_}entity with more specific schema.


0.250   2017-11-06  Released-By: PERLANCAR

	- No functional changes.

	- Exclude Windows from testing to avoid hanging the testing client
	  [RT#123507].


0.24    2017-07-10  Released-By: PERLANCAR

	- No functional changes.

	- Remove usage of Log::Any.


0.23    2016-10-07  Released-By: PERLANCAR

	- [Experimental] Increase safety/compatibility with other programs that
	  might write to the passwd files by locking all the
	  passwd/shadow/group/gshadow files themselves instead of just
	  passwd.lock file (see [GH#1]).

	- [Bugfix] Regression bug, when we switched to File::Flock::Retry,
	  locking was accidentally always done for all actions including
	  read-only ones [GH#1].


0.22    2015-10-22  Released-By: PERLANCAR

	- No functional changes.

	- Replace File::Flock with the more lightweight File::Flock::Retry.


0.21    2015-09-06  Released-By: PERLANCAR

	- No functional changes.

	- [dist] Move spec prereqs from RuntimeRequires to
	  DevelopRecommends to reduce deps but still allow indicating spec
	  requirement.


0.20    2015-07-01  Released-By: PERLANCAR

	- No functional changes.

	- Fix Rinci metadata (add missing args 'schema's).


0.19    2015-07-01  Released-By: PERLANCAR

	- No functional changes.

	- Update Rinci metadata (args_groups -> args_rels).


0.18    2015-03-13  Released-By: PERLANCAR

        - No functional changes.

        - [Build] [Bugfix] Rebuild with DZP:Rinci::AddPrereqs 0.02 which no
          longer add prereqs to Perinci::Sub::ArgEntity::* unless if required by
          CLI scripts. The addition of Perinci::Sub::ArgEntity::unix_* causes a
          circular dependency [RT#102700].


0.17    2015-03-10  Released-By: PERLANCAR

	- No functional changes.

	- Change result metadata 'result_format_options' ->
	  'format_options'.


0.16    2015-03-07  Released-By: PERLANCAR

	- No functional changes.

	- Tweak/fix Rinci metadata: fix a pos, add some
          x.schema.{entity,element_entity} for completion.


0.15    2015-03-06  Released-By: PERLANCAR

	- No functional changes.

	- Tweak Rinci metadata: add some argument positions, schemas, etc.


0.14    2015-03-06  Released-By: PERLANCAR

	- No functional changes.

	- Give hints of table column order when returning detailed list of
	  users/groups.


0.13     2015-03-06  Released-By: PERLANCAR

         - No functional changes.

         - Some minor tweaks and POD fixes.


0.12     2014-05-17  Released-By: SHARYANTO

         - No functional changes.

         - Replace File::Slurp with File::Slurp::Tiny.


0.11     2014-03-21  Released-By: SHARYANTO

         - No functional changes.

         - Add 'use experimental smartmatch' for perl 5.18.


0.10     2012-09-06  Released-By: SHARYANTO

         - Use Crypt::Password::Util's crypt() to create encrypted password in a
           more portable way.


0.09     2012-09-06  Released-By: SHARYANTO

         - No functional changes.

         - In test script, use Crypt::Password::Util's looks_like_crypt() to
           check encrypted password instead of /^\$6\$/  Released-By: implies SSHA512
           because different OS'es use different crypt types.


0.08     2012-09-05  Released-By: SHARYANTO

         - Add function: set_user_groups().


0.07     2012-09-05  Released-By: SHARYANTO

         - Add function: add_delete_user_groups().


0.06     2012-09-01  Released-By: SHARYANTO

         [ENHANCEMENTS]

         - Allow adding user with non-unique UID.

         - Allow adding group with non-unique GID.


0.05     2012-08-31  Released-By: SHARYANTO

         [ENHANCEMENTS]

         - Add function: list_users_and_groups().

         - Add some overview information about the module.


0.04     2012-08-31  Released-By: SHARYANTO

         [ENHANCEMENTS]

         - add_user(): Add option 'group' to allow setting primary group that is
           not the same as group with the same name as user (e.g.
           add_user(user=>'nobody', group=>'nogroup')). The group (in this case,
           'nogroup') must already exist.


0.03     2012-08-31  Released-By: SHARYANTO

         - Convert several package-lexical variables into package variables
           (our) to make it accessible from other packages.

         - Update examples in Synopsis.


0.02     2012-08-31  Released-By: SHARYANTO

         [ENHANCEMENTS]

         - Implement the rest of the functions not yet implemented in the
           previous release: modify_user(), modify_group(), delete_user(),
           delete_group(), set_user_password(), add_user_to_group(),
           delete_user_from_group().

         - Add functions: is_member(), user_exists(), group_exists(),
           get_user_groups().


0.01     2012-08-30  Released-By: SHARYANTO

         - First release. I created a new module instead of using
           Passwd::Unix::Alt mainly because of these reasons: 1) got tired of
           having to input passwd, shadow, group, gshadow separately; with
           Unix::Passwd::File I just need to specify etc_dir; 2) I couldn't get
           locking to work, something which I think is important and I'd rather
           start with a clean codebase to make sure this and other things work;
           3) want a cleaner interface, without any global error variable. This
           release does not include some functions yet: modify_user(),
           modify_group(), delete_user(), delete_group(), set_user_password(),
           add_user_to_group(), delete_user_from_group().