Skip to content

Releases: ApeWorX/ape

Ape 0.8.9

12 Jul 17:41
e1c9dcf
Compare
Choose a tag to compare

Changes

  • feat: IPython integration with ABI-related constructs @antazoey (#2174)
  • docs: fix module path for SignableMessage @antazoey (#2175)
  • feat: support configuring test account initial balance @antazoey (#2173)
  • feat: handle commas and underscores in currency string conversions @antazoey (#2172)
  • test: show we can use namedtuples and web3 namedtuples @antazoey (#2171)
  • fix: bug where ENS domains were not handled in account history queries @antazoey (#2170)
  • fix: improve the error message for exceptions during fetching contract types from explorer @antazoey (#2169)

Special thanks to: @antazoey

Ape 0.8.8

02 Jul 21:22
bd53c7a
Compare
Choose a tag to compare

Changes

  • fix: create data dir in clean method @antazoey (#2167)
  • fix: issue where could not compile file and subdir in the same command @antazoey (#2168)
  • perf: improve performance of project.get_contract() @antazoey (#2166)

Special thanks to: @antazoey

Ape 0.8.7

01 Jul 17:57
d58c75a
Compare
Choose a tag to compare

Changes

Special thanks to: @antazoey

Ape 0.8.6

01 Jul 14:03
6ce3b49
Compare
Choose a tag to compare

Changes

  • feat: supporting geth --dev newer versions @antazoey (#2162)
  • feat: easily create projects from site-packages @antazoey (#2163)
  • feat: show events in pretty call-trace or from receipt @antazoey (#2161)
  • feat: ethereum.decode_returndata values to be comparable with currency strings @antazoey (#2159)

Special thanks to: @antazoey

Ape 0.8.5

20 Jun 19:44
c153052
Compare
Choose a tag to compare

Changes

  • fix: issues showing lines for plugin config validation errors @antazoey (#2157)
  • fix: pin peer dependency numpy<2 @antazoey (#2155)
  • fix: better error when missing base-ecosystem plugin for custom networks @antazoey (#2156)
  • test: run functional and integration tests separately in CI/CD @antazoey (#2147)
  • fix: issue where could not define custom networks in any non-local project @antazoey (#2153)
  • chore: use official install-geth-tools @antazoey (#2152)
  • fix: issue with list-errors and mismatched config types @antazoey (#2151)
  • fix: issue where plugin config loading error was not shown @antazoey (#2150)
  • test: re-enable macos-latest in CI @dtdang (#2120)
  • feat: allow comparing currency values to currency strings @antazoey (#2149)
  • docs: document environment variable support in ape-config.yaml files @antazoey (#2148)
  • feat: allow forking custom networks automatically @antazoey (#2145)
  • docs: document more fully the contract-creation metadata feature @antazoey (#2146)
  • fix: allow random RPCs to work for custom networks @antazoey (#2144)
  • fix: issue where Ape tries starting geth-dev for custom networks w/o URIs @antazoey (#2140)
  • feat: create config.isolate_data_folder() method @antazoey (#2139)

Special thanks to: @antazoey and @dtdang

Ape 0.8.4

13 Jun 18:14
114781d
Compare
Choose a tag to compare

Changes

Special thanks to: @antazoey, @banteg and @fivecut

Ape 0.8.3

06 Jun 20:42
29269bc
Compare
Choose a tag to compare

Changes

  • fix: issue with --force flag on ape pm commands @antazoey (#2119)
  • fix: issues with remapping and dependency detection in foundry projects @antazoey (#2117)
  • docs: solidity mapping @dtdang (#2116)
  • fix: issues with manifest-dependencies, evm-version in foundry projects, and unpacking @antazoey (#2114)
  • feat: foundry project config reading @antazoey (#2113)
  • fix: issue where v-prefix was required if using ref as a version in GH dependencies @antazoey (#2112)
  • fix: issue where v prefix mattered in dependency mapping @antazoey (#2111)
  • docs: update userguides and notes [APE-1752] @dtdang (#2109)
  • test: fix issue in test debug code @antazoey (#2110)
  • fix: allow regex globs for compile exclusions @antazoey (#2108)
  • docs: update receipt for 0.8 changes [APE-1752] @dtdang (#2107)
  • fix: issue where trusted plugins showed up as 3rd party @antazoey (#2106)

Special thanks to: @antazoey and @dtdang

Ape 0.8.2

01 Jun 04:03
5665aba
Compare
Choose a tag to compare

Changes

  • fix: issue where call coverage didn't increment @antazoey (#2105)
  • fix: bug preventing hyphenated plugin configs from working @antazoey (#2104)

Special thanks to: @antazoey

Ape 0.8.1

31 May 18:44
9c8dca1
Compare
Choose a tag to compare

Changes

Special thanks to: @antazoey, @dtdang, @theodorecurtil and @xrchz

Ape 0.8.0

31 May 16:36
Compare
Choose a tag to compare

Changes

BREAKING CHANGES

Project Refactor

These are changes directly related to the massive project refactor.

Please delete your .build/ folders and your .ape/packages folder for a cleaner 0.8 migration.

  • refactor!: The default base path for compiling projects is now the project root instead of the contracts folder.
    Source IDs now include the contracts/ prefix everywhere.
    Import remappings no longer need /contracts in the key.
    This aligns more with how other frameworks work and how import statements are expected to be.

  • refactor!: Import remappings are no longer needed (most of the time!).
    Now, it will generate them by default using items from the dependencies.
    The source ID change (above) afforded this.

  • refactor!: Projects are no longer contextual.
    You can create as many ape.Project objects as you like and use them anywhere.

  • refactor!: Dependency system changes.
    Now, Dependency objects are separate from projects and have utilities for managing their installs.
    Do project.dependencies["MyDep"]["1.0.0"].project to access the project of a local dependency.
    Dependency source files are cached differently and allow for better management across your file system.

  • refactor!: Config is per-project now.
    In order to support having many projects in the root context at once, each project needs to have its own config.
    Config also serializes and deserializes from and to .yaml and is a Pydantic model.

  • refactor!: The .cache folder in ape-solidity is no longer generated in your projects.
    ape-solidity compiles in a sandbox now instead.
    You can delete any lingering .cache folders on your file system.
    As a side-effect, configuring the location of the .cache folder was removed, and any issues where dependencies were improperly modified in a .cache folder are resolved.

  • refactor!: ManagerAccessMixin.project_manager was renamed to ManagerAccessMixin.local_project to reflect that it is no longer a singleton, and it only refers to the project at the current-working directory.

  • refactor!: ape-pm now defines the non-default dependency and project API implementations, such as GithubDependency.

  • refactor!: LocalProject (a subclass of ProjectManager for projects on the local file-system) now delegates to sub-managers for various tasks, such as .contracts as a dict-like ContractManager, .sources as a dict-like SourceManager, .deployments, etc, simulating objects from the ethpm_types.PackageManifest with higher up functionalities related to local file-system projects.
    ProjectManager is a base class containing factory-like behavior for creating ProjectManager subclasses, such as LocalProject or Project.
    Project is a base that only needs a PackageManifest to work (think ape.Project.from_manifest()).
    LocalProject contains various features for local-projects but for the most part is interoperable with its base Project, as the manifest is the root of all the functionality.

  • refactor!: CompilerAPI now accepts iterators of source paths and yield contract types.

  • refactor!: ape pm remove is now ape pm uninstall to mirror ape pm install.

Other

  • refactor!: The Trace API is more defined at the API level (ape.api.trace).
    ape.types.TraceFrame and ape.types.CallTreeNode have been removed.
    ape-ethereum only serializes using types from evm-trace now.
    Enrichments happens at lower-level dict-data and more under-the-hood for performance reasons.
    The trace API defines behavior of traces at a very abstract level.
    ape-ethereum implements all rich functionality Ape is known for with its traces.
    It is easier to pass along extra arguments to get_transaction_trace such as debug_ kwargs for customizing trace behavior more.
    This is the first step to better traces. (#1864) (#2090) (#2093)

  • refactor! ape-geth has been renamed to ape-node (#1982)

  • refactor!: Goerli and mumbai networks have been removed (#1993) (#2085).

  • refactor!: Deleted all deprecated items (#1984) (#2057)

  • refactor!: network.config is now the network's config and not its ecosystem's. (#1981).

  • refactor!: Python 3.8 is no longer supported (011ca9d)

  • refactor!: The Github client is now internal and no longer a public API exposed in Ape.
    Also, it uses the requests library directly instead of a package to interact with GitHub. (6670ed7)

  • feat!: New abstract property in TestProviderAPI for .auto_mine!
    It comes also with a setter.
    Note: this was already implemented everywhere, but now it is official for plugins to recognize.

  • refactor!: AccountContainerAPI now requires a name= instead of a data_folder=; it uses the data_folder set in the config plus its name and .data_folder is now read-only.
    This is simplifies the API with little effect, as tests often change the root data folder anyway.

  • feat!: Contract creation metadata, changes how a contract's defining receipt is laid out in Ape.
    No longer it is just a receipt, now it is full object with other creation-related properties that be necessary, such as its factory.
    Ape now has additional ways of checking for this creation data, depending on your node,
    and problematic ways have been removed.
    Thank you @banteg (#2001).

  • feat!: The minimum pytest requirement has bumped to the 8.0 range

  • refactor!: ape.modules is no longer a thing.

  • refactor!: SourceTraceback now requires a ContractSource instead of a ContractType during init.

OTHER CHANGES

  • feat: You can now create project objects from package manifest using ape.Project.from_manifest() (#1960).

  • feat: add doctesting with github workflow @dtdang (#2092)

  • fix: datetime utcnow bug @antazoey (#2096)

  • fix: When ape-vyper or ape-solidity are not installed and you try to compile .vy or .sol, you will be asked to install (#1960)

  • fix: Excluded sources are no longer part of sources.paths as new exclusions come in (#1960)

  • feat: The home directory is hidden wherever paths are used, including also in ape console to preserver more anonymity (#1931).

  • refactor: ape pm command improvements, such as the formatting of the list outputs (#1960).

  • chore: fix typos @simlecode (#2094)

  • fix: plugin warning message didn't show unimplemented methods @antazoey (#2091)

  • fix: bug where compilers output selection wasn't updating when sources changes compiler @antazoey (#2089)

Special thanks to: @NotPeopling2day, @antazoey, @banteg, @dtdang and @simlecode