Release Notes¶
2.2.0¶
- Refactor to configuration API to stop writing the default config to
~/.populus/configin favor of using the default config file baked into the populus library.
2.1.0¶
- Support for solidity
v0.4.18andv0.4.19
2.0.0¶
- Drop gevent support.
- Change upstream dependency for
ethereum-utilsto new library nameeth-utils
1.11.2¶
- Bugfix for running tests without explicitely declared project root dir.
1.11.1¶
- Bugfix for wait utils in
wait_for_block.
1.11.0¶
- Update to confguration API to support both project level configuration files as well as user level configuration files.
--wait-for-synccli argument in$ populus deploynow defaults toFalse(previous defaulted toTrue)- Deprecation of Go-Ethereum based
Chainobjects in preparation for upcoming Environments API which will replace the Chain API. - New
$ populus chain newcommand for initializing local development chains. - Removal of
$ populus config setand$ populus config deleteCLI comands.
1.10.3¶
- Add deprecation warning for upcoming removal of python 2 support.
1.10.2¶
- Deprecate support for
geventbased threading.
1.10.1¶
- Upstream bugfix for change to internal
web3.pyAPI.
1.10.0¶
- Support for specifying project directory via any of
pytest.ini,--populus-project, or via environment variablePYTEST_POPULUS_PROJECT. - Support for running populus commands from outside of the project directory with
-p/--project. - Deprecate support for
solc<0.4.11. - Deprecate
Project.write_config()in preparation for configuration API refactors. - Deprecate
$ populus config setandpopulus config deletecommands in preparatin for configuration API refactors.
1.9.1¶
- Bugfix for
Wait.wait_for_blockAPI when interacting with a tester chain.
1.9.0¶
- Bugfix for
SolcStandardJSONBackencompilation. Settings for this compiler now appropriately split between standard JSON input and compiler command line arguments. - Deprecate:
project.contracts_source_dirand releated settingcompilation.contracts_source_dir. - New API:
project.contracts_source_dirsreplaces deprecated singularproject.contracts_source_dir. - New setting
compilation.contracts_source_dirs.
1.8.1¶
- Add
--loggingoption to main cli command to set logging level.
1.8.0¶
- Change default compiler backend to
populus.compilation.backends.SolcAutoBackendwhich will automatically select the appropriate solc compiler backend based on the current installed version olf solc. - Add support for standard JSON based solc compilation.
- Bugfix: Compilation now correctly respects import remappings.
1.7.0¶
- Remove deprecated
chain.contract_factoriesAPI. - Remove deprecated
chain.get_contract_factoryAPI. - Remove deprecated
chain.is_contract_availableAPI. - Remove deprecated
chain.get_contractAPI. - Remove deprecated
chain.deployed_contractsAPI. - Remove deprecated
contractspytest fixture. - Remove deprecated
project.compiled_contracts_file_pathAPI - Remove deprecated
project.contracts_dirAPI - Remove deprecated
project.build_dirAPI - Remove deprecated
project.compiled_contractsAPI - Remove deprecated
project.blockchains_dirAPI - Remove deprecated
project.get_blockahin_data_dirAPI - Remove deprecated
project.get_blockchain_chaindata_dirAPI - Remove deprecated
project.get_blockchain_dapp_dirAPI - Remove deprecated
project.get_blockchain_ipc_pathAPI - Remove deprecated
project.get_blockchain_nodekey_pathAPI
1.6.9¶
- Bump py-geth version to account for removed
--ipcapiCLI flag.
1.6.8¶
- Allow for empty passwords when unlocking accounts.
1.6.7¶
- Bugfix for registrar address sorting to handle nodes which were fast synced and do not have access to the full chain history.
1.6.6¶
- Add support to contract provider to handle case where registrar has more than one address for a given contract.
1.6.5¶
- Bugfix for compilation of abstract contracts.
1.6.4¶
- Bugfix for
project.configsetter function not setting correct value.
1.6.3¶
- Add
TestContractsBackendfor loading test contracts.
1.6.2¶
- Fix incorrect example test file from
$ populus initcommand.
1.6.1¶
- Fix warning message for outdated config file so that it actually shows up in terminal.
1.6.0¶
- Introduce new Registrar API.
- Introduce new Provider API
- Deprecate
Chain.get_contract_factory,Chain.get_contractandChain.is_contract_availableAPIs. - Deprecate
Chain.contract_factoriesAPI. - Deprecate
Chain.deployed_contractsAPI. - Remove deprecated migrations API.
1.5.3¶
- Bump
web3.pyversion to pull in upstream fixes forethereum-abi-utils
1.5.2¶
- Bugfix for remaining
web3.utilsimports
1.5.1¶
- Update upstream
web3.pydependency. - Switch to use
ethereum-utilslibrary.
1.5.0¶
- Remove gevent dependency
- Mark migrations API for deprecation.
- Mark unmigrated_chain testing fixture for deprecation.
- Mark
contractsfixture for deprecation. Replaced bybase_contract_factoriesfixture. - Deprecate and remove old
populus.iniconfiguration scheme. - Add new configuration API.
1.4.2¶
- Upstream version bumps for web3 and ethtestrpc
- Change to use new web3.providers.tester.EthereumTesterProvider for test fixtures.
1.4.1¶
- Stop-gap fix for race-condition error from upstream: https://github.com/pipermerriam/web3.py/issues/80
1.4.0¶
- Contract source directory now configurable via populus.ini file.
- Updates to upstream dependencies.
1.3.0¶
- Bugfix for geth data_dir directory on linux systems.
1.2.2¶
- Support solc 0.4.x
1.2.1¶
- Support legacy JSON-RPC spec for
eth_getTransactionReceiptin wait API.
1.2.0¶
- All function in the
chain.waitapi now take apoll_intervalparameter which controls how aggressively they will poll for changes. - The
projectfixture now caches the compiled contracts across test runs.
1.1.0¶
This release begins the first deprecation cycle for APIs which will be removed in future releases.
- Deprecated: Entire migrations API
- New configuration API which replaces the
populus.inibased configuration. - Removal of
geventas a required dependency. Threading and other asynchronous operations now default to standard library tools with the option to enable the gevent with an environment variableTHREADING_BACKEND==gevent
1.0.0¶
This is the first release of populus that should be considered stable.
- Remove
$ populus webcommand - Remove
populus.soliditymodule in favor ofpy-solcpackage for solidity compilation. - Remove
populus.gethmodule in favor ofpy-gethfor running geth. - Complete refactor of pytest fixtures.
- Switch to
web3.pyfor all blockchain interactions. - Compilation:
- Remove filtering. Compilation now always compiles all contracts.
- Compilation now runs with optimization turned on by default. Can be disabled with
--no-optimizie. - Remove use of./project-dir/librariesdirectory. All contracts are now expected to reside in the./project-dir/contractsdirectory. - New
populus.ProjectAPI. - New Migrations API:
-
$ populus chain initfor initializing a chain with the Registrar contract. -$ populus makemigrationfor creating migration files. -$ populus migratefor executing migrations. - New configuration API:
- New commands
$ populus config,$ populus config:setand$ populus config:unsetfor managing configuratino. - New Chain API:
- Simple programatic running of project chains.
- Access to
web3.eth.contractobjects for all project contracts. - Access to pre-linked code based on previously deployed contracts.
0.8.0¶
- Removal of the
--logfilecommand line argument. This is a breaking change as it will break when used with older installs ofgeth.
0.7.5¶
- Bugfix:
populus initnow creates thelibrariesdirectory - Bugfix:
populus compile --watchno longer fails if thelibrariesdirectory isn’t present.
0.7.4¶
- Bugfix for the
geth_accountsfixture. - Bugfix for project initialization fixtures.
- Allow returning of
indexedevent data from Event.get_log_data - Fix EthTesterClient handling of TransactionErrors to allow continued EVM interactions.
- Bugfix for long Unix socket paths.
- Enable whisper when running a geth instance.
- Better error output from compile errors.
- Testing bugfixes.
0.7.3¶
- Add
denomspytest fixture - Add
accountspytest fixture - Experimental synchronous function calls on contracts with
function.s(...) - Bugfixes for function group argument validation.
- Bugfixes for error handling within EthTesterClient
- Inclusion of Binary Runtime in compilation
- Fixes for tests that were dependent on specific solidity versions.
0.7.2¶
- Make the ethtester client work with asynchronous code.
0.7.1¶
- Adds
ipc_clientfixture.
0.7.0¶
- When a contract function call that is supposed to return data returns no data an error was thown. Now a custom exception is thrown. This is a breaking change as previously for addresses this would return the empty address.
0.6.6¶
- Actually fix the address bug.
0.6.5¶
- Fix bug where addresses were getting double prefixed with
0x
0.6.3¶
- Bugfix for Event.get_log_data
- Add
get_codeandget_accountsmethods to EthTesterClient - Add
0xprefixing to addresses returned by functions with multiple return values.
0.6.3¶
- Shorted path to cli tests to stay under 108 character limit for unix sockets.
- Adds tracking of contract addresses deployed to test chains.
- New
redeployfeature available withinpopulus attachas well as notification that your contracts have changed and may require redeployment.
0.6.2¶
- Shorted path to cli tests to stay under 108 character limit for unix sockets.
- Allow passing
--verbositytag intopopulus chain run - Expand documentation with example use case for populus deploy/chain/attach commands.
0.6.1¶
- Change the default gas for transactions to be a percentage of the max gas.
0.6.0¶
- Improve
populus deploycommand. - Optional dry run to test chain
- Prompts user for confirmation on production deployments.
- Derives gas needs based on dry-run deployment.
- Improve
- Addition of
deploy_coinbasetesting fixture. - Renamed
Contract._meta.rpc_clientto beContract._meta.blockchain_clientto be more appropriately named since theEthTesterClientis not an RPC client. - Renamed
rpc_clientargument toblockchain_clientin all relevant functions. - Moved
get_max_gasfunction onto blockchain clients. - Moved
wait_for_transactionfunction onto blockchain clients. - Moved
wait_for_blockfunction onto blockchain clients. - Bugfix when decoding large integers.
- Reduced
gasLimiton genesis block for test chains to3141592. - Updated dependencies to newer versions.
0.5.4¶
- Additional support for library contracts which will be included in compilation.
deployed_contractsautomatically derives deployment order and dependencies as well as linking library addresses.deployed_contractsnow comes with the transaction receipts for the deploying transaction attached.- Change to use
pyethashfrom pypi
0.5.3¶
- New
populus attachcommand for launching interactive python repl with contracts and rpc client loaded into local scope. - Support for auto-linking of library contracts for the
deployed_contractstesting fixture.
0.5.2¶
- Rename
rpc_serverfixture totestrpc_server - Introduce
populus_configmodule level fixture which holds all of the default values for other populus module level fixtures that are configurable. - Add new configuration options for
deployed_contractsfixture to allow declaration of which contracts are deployed, dependency ordering and constructor args. - Improve overall documentation around fixtures.
0.5.1¶
- Introduce the
ethtester_clientwhich has the same API as the eth_rpc_client.Client class but interacts directly with theethereum.testermodule - Add ability to control the manner through which the
deployed_contractsfixture communicates with the blockchain via thedeploy_clientfixture. - Re-organization of the contracts module.
- Support for multiple contract functions with the same name.
- Basic support for extracting logs and log data from transactions.
0.5.0¶
- Significant refactor to the
Contractand relatedFunctionandEventobjects used to interact with contracts. - Major improvements to robustness of
geth_nodefixture. deployed_contractstesting fixture no longer provides it’s own rpc server. Now you must either provide you own, or use thegeth_nodeorrpc_serveralongside it in tests.geth_nodefixture now writes to a logfile located in./chains/<chain-name>/logs/for both cli and test case runs.
0.4.3¶
- Add support for address function args with a 0x prefix.
0.4.2¶
- Add
initcommand for initializing a populus project.
0.4.1¶
- Missing
index.htmlfile.
0.4.0¶
- Add blockchain management via
populus chaincommands which wrapsgethlibrary. populus chain run <name>for running the chainpopulus chain reset <name>for resetting a chain
- Add blockchain management via
- Add html/css/js development support.
- Development webserver via
populus web runserver - Conversion of compiled contracts to web3 contract objects in javascript.
- Development webserver via
0.3.7¶
- Add support for decoding multiple values from a solidity function call.
0.3.6¶
- Add support for decoding
address``return types from contract functions.
0.3.5¶
- Add support for contract constructors which take arguments via the new
constructor_argsparameter to theContract.deploymethod.
0.3.4¶
- Fix bug where null bytes were excluded from the returned bytes.
0.3.3¶
- Fix a bug in the
sendTransactionmethods for contract functions that did not pass along most of the**kwargs. - Add new
Contract.get_balance()method to contracts.
0.3.2¶
- Enable decoding of
bytestypes returned by contract function calls.
0.3.1¶
- Enable decoding of
booleanvalues returned by contract function calls.
0.3.0¶
- Removed
watchcommand in favor of passing--watchinto thecompilecommand. - Add granular control to the
compilecommand so that you can specify specific files, contract names, or a combination of the two.
0.2.0¶
- Update to
pypiversion ofeth-testrpc - Add new watch command which observes the project contracts and recompiles them when they change.
- Improved shell output for compile command.
- Re-organized portions of the
utilsmodule into a newcompilationmodule.
0.1.4¶
- Fix broken import in
climodule.
0.1.3¶
- Remove the local RPC client in favor of using https://github.com/pipermerriam/ethereum-rpc-client
0.1.2¶
- Add missing pytest dependency.
0.1.1¶
- Fix bug when deploying contracts onto a real blockchain.
0.1.0¶
- Project Creation