CHANGES
=======

0.1.2
-----

* README: early release notice
* setup.cfg: fix keywords & classifiers

0.1.1
-----

* documentation & pypi upload url fix

0.1.0
-----

* TODO
* package: keywords & summary
* README - content
* empty README for tox & package description - FIXME
* README
* document serve and work_on
* moved commands to separate document
* README.md
* further simplified copy
* README: fix copy description after its simplification
* simplification: remove support for specifying multiple sources for copy
* set & unset error message on missing or partial explicit parameters
* set & unset error message on missing implicit repo parameter
* setup_for_pip_local & setup_for_pypi_python_org works with implicit repo parameter
* directory_repo & http_repo input error handling
* refactor
* error checking for missing repo parameters for use, forget, show, setup_*, serve, work_on
* added failing test for repo parameter checking
* fix use when implicit repo is valid, extract check_repo_exists
* command copy checks its parameter
* command use checks its parameter
* reformat README
* README: add logo
* pyrene.png
* logo
* improved show command
* formatting - separate completions from commands
* define -> http_repo & directory_repo
* complete_work_on
* fix README for use & work_on
* fix help for command `set`
* help for command `use`
* command use -> work_on, write_pip_conf_for -> use
* LICENSE
* fix setup.cfg
* complete "set attr=" with attr's existing value
* requirements.txt
* README
* made repo parameter optional for most commands
* 
* completion adjustments for commands use, set and unset
* active repo = implicit repo, lots of fragile tests rewritten
* 
* FIX: clean temporary package store even if download fails
* FIX: regex wheel matching
* DirectoryRepo.serve & .upload_packages creates missing repo directory
* junk attributes -> extra attributes
* 
* TODO
* help improvement
* README
* TODO
* more py3 fixes
* initial py3 fixes
* TODO
* name consistency: key,parameter,option -> attribute
* complete_unset
* command unset
* TODO
* Repo.print_attributes: slight function depth reduction & junk attributes are sorted
* colored output for show
* BadRepo - improve outputs
* Repos have a name
* NullRepo -> BadRepo
* Badly configured repos are instantiated as NullRepo
* Repo.print_attributes
* moved logic behind command show to Repo.print_attributes
* Repo.ATTRIBUTES has order
* test helper: Assertions.assertContainsInOrder
* TODO
* comment for USERNAME and SERVE_USERNAME being the same
* Revert "make REPO.SERVE_* attributes distinct from other attributes (username, password)"
* help for command serve
* DirectoryRepo.serve fix + tests
* class util.PyPI
* repos without type attributes are NullRepos
* Network.get_attribute("undefined-repo")
* NullRepo
* generate_password()
* make REPO.SERVE_* attributes distinct from other attributes (username, password)
* move repo attribute constants to a separate module
* Makefile
* Shell: when there is only one matching command complete with an extra space
* task marked done
* network is reloaded before every command
* Network.reload
* repo_manager -> network
* RepoManager -> Network
* file rename
* file rename
* TODO
* task marked done
* capture_stdout improvement
* TODO
* capture_stdout rewritten
* repo.get_as_pip_conf always succeed - defaults in use
* test refactor: capture_stdout
* serve directory - with ctrl-c to exit
* README
* serve directory - work in progress
* refactor + HttpRepo.serve
* serve command (does nothing yet)
* util.make_htpasswd & *UNTESTED* .pypi_server
* TODO
* mark task completed
* rename & fix docs
* mark task completed
* fix repo type references in documentation
* FileRepo renamed to DirectoryRepo
* FileRepo renamed to DirectoryRepo in repomanager
* Makefile
* TODO
* TODO
* documentation
* documentation
* mark task completed
* removed PipLocalRepo and repo type piplocal
* reformatting code for pep8
* setup_for_pip_local
* TODO
* mark task completed
* complete_setup_for_pypi_python_org
* setup_for_pypi_python_org
* mark task completed
* complete_copy does not complete immediately after "repo:"
* PyreneCmd.complete_copy & .complete_filenames
* mark task completed
* completions for forget, show, use commands
* DRY: PyreneCmd.complete_set uses complete_repo_name
* PyreneCmd.complete_repo_name - returns sorted output
* TODO
* PyreneCmd.complete_repo_name - with optional suffix
* TODO
* tasks updated
* doc updates
* missing test: copy with directory destination
* PyreneCmd._get_destination_repo
* copy uploads local files
* FIX setup.cfg
* invalid fixme: startup with invalid config raises exception
* cosmetic change
* prefix ini section names for repos with "repo:"
* README - developers
* README title simplified
* README.md symlink for README - for github
* README.rst -> README
* some doc fixes
* reponet -> pyrene in files
* rename: reponet -> pyrene (broken)
* task completed
* renamed test file to follow module name
* moved RepoNetCmd to shell.py & fixed py3 headers
* moved RepoManager to separate file
* removed unused test code
* RepoNet -> RepoNetCmd
* moved class Directory to utils
* extract repos
* extract some utility functions into reponet.util
* packaging done
* packaging
* finish paix -> reponet rename
* rename paix to reponet in files
* fix module reference for tests after rename
* renames
* TODOs
* improve repo name completion for set
* show command
* RepoManager.get_attributes
* list command
* copy clears up the temp directory
* Directory.clear
* use proper file/directory paths
* TODOs & FIXMEs
* drop -> forget
* HttpRepo.upload_packages
* update requirements.txt for upload
* upload from twine
* pip_install executes pip as subprocess
* Test_set_env - simplified
* command line tool | tool with CLI
* fixes
* added missing tests for repo attributes
* complete set
* refactort: attributes are exported on Repo interface
* test dry
* drop repo definition
* test for pip_install
* save on set
* RepoManager & *Repo implementations
* RepoManager.define - add missing parameter
* write_file
* mark pip_install as untested
* Directory
* top level commands are implemented without underlying machinery (= not yet working!)
* cleanup
* skipped tests for unimplemented commands
* cleanup
* copy command
* test: executor.copy(~/s, ~,d)
* Update README.txt
* README: fix url
* some implementation
* README.txt
