Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improve clarinet integrate, clarinet contracts publish and testing harness reliability #240

Merged
merged 90 commits into from
Mar 29, 2022

Conversation

lgalabru
Copy link
Contributor

@lgalabru lgalabru commented Feb 7, 2022

As a short term shortcut, Orchestra is going to be consuming Clarinet as library - I currently think that the correct mid term approach would be to move all the code in charge of clarinet integrate in its own crate / lib at some point, which is almost the case with the stacks-devnet-js bindings.
Orchestra is heavily relying on a stable devnet, and so I had to address a bunch of gaps, locally, in order to make progress.
Issues addressed: #239, #225, #38.
With the latest changes, it now takes 30s on my M1 to start a devnet with the counter contract, and 1m40 for a larger protocol that would involve 80-ish contracts (vs 5m and 10m with the current version).
This PR is also improving the contract deployment feature (now under clarinet contracts publish), way more robust for deploying large protocols and fixing an issue that was happening with Mainnet deployments.

lgalabru and others added 30 commits December 23, 2021 11:44
chore: update develop branch
Since the default branch is `develop`, when users clone the repo, it
will be in this branch by default. This change clarifies in the README
that if they want the latest stable code, they should switch to the
`main` branch.

Add information about updated the deno submodule when pulling into a
previously checked out repo.

Resolves: #231
docs: clarify develop vs main branch
By passing a path to a clarity file after `clarinet check`, just that
one file will be checked, instead of using the Clarinet.toml file.
This will be useful during the transition period as we switch from the
old parser to the new parser. The version can be set in Clarinet.toml by
adding `parser_version = [12]` under `[project]`.
Replacing previous links to Ludo's unlisted videos on his account
Adding image file for Clarinet tutorial playlist link
Adding new link to Ludo's Clarinet tutorials on the Hiro Youtube page
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/frontend/cli.rs
#	src/integrate/events_observer.rs
#	src/poke/mod.rs
#	src/publish/mod.rs
@lgalabru lgalabru force-pushed the feat/various-improvements branch from 33f0cb2 to 9075092 Compare March 29, 2022 16:00
@lgalabru lgalabru force-pushed the feat/various-improvements branch from 9075092 to 7a12579 Compare March 29, 2022 16:05
@lgalabru lgalabru changed the title Orchestra requirements + various improvements feat: improve clarinet integrate, clarinet contracts publish and testing harness reliability Mar 29, 2022
Co-authored-by: Brice <brice@hiro.so>
@lgalabru lgalabru requested a review from obycode March 29, 2022 21:16
Copy link
Member

@obycode obycode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thanks for the fixes.

@lgalabru lgalabru enabled auto-merge (rebase) March 29, 2022 21:40
@obycode obycode disabled auto-merge March 29, 2022 21:42
@lgalabru lgalabru merged commit e8bb0fc into develop Mar 29, 2022
@lgalabru lgalabru deleted the feat/various-improvements branch March 29, 2022 21:59
lgalabru added a commit that referenced this pull request Mar 30, 2022
…ing harness reliability (#240)

* wip

* chore: setup test #1

* feat: outline rough backbone

* chore: update clap

* feat: migrate to actor based architecture

* feat: indexing more data

* refactor: ordered_contracts isolation, exposing new types in stacks-devnet-js

* fix: link title typo

* docs: clarify develop vs main branch

Since the default branch is `develop`, when users clone the repo, it
will be in this branch by default. This change clarifies in the README
that if they want the latest stable code, they should switch to the
`main` branch.

Add information about updated the deno submodule when pulling into a
previously checked out repo.

Resolves: #231

* ci: ignore RUSTSEC-2022-0006 for now

* feat: update to work with new parser

* feat: add option to check single file

By passing a path to a clarity file after `clarinet check`, just that
one file will be checked, instead of using the Clarinet.toml file.

* feat: add option to select parser version

This will be useful during the transition period as we switch from the
old parser to the new parser. The version can be set in Clarinet.toml by
adding `parser_version = [12]` under `[project]`.

* Adding new link to Ludo's Clarinet tutorials on the Hiro Youtube page

Replacing previous links to Ludo's unlisted videos on his account

* Adding image file for Clarinet tutorial playlist link

* Update README.md

* feat: deeper indexing

* feat: add "get_contract_source" to stacks rpc client

* feat: improve contracts deployments

* feat: introduce beforeContractsDeployment hook

* chore: cargo fmt

* feat: introduce ability to cache requirements

* chore: update deno

* chore: remove deps

* chore: update clarity_repl dep

* feat: basic handling of microblocks

* chore: cargo.lock

* chore: addition adjustments

* chore: cargo fmt

* chore: update to rust 2021

* chore: optimizing devnet (good progress)

* feat: make containers binding option (false by default)

* feat: speed up deployments

* chore: assign todos

* chore: cargo fmt

* chore: update Cargo.lock

* chore: fix warnings, cargo audit

* chore: update cargo / rust

* chore: update nightly

* chore: self review

* chore: update clarity-repl

* chore: cargo fmt

* fix: stacks-devnet-js

* chore: test can't be enabled for now

* chore: update docker images

* fix: windows compatibility

* fix: build

* chore: cleaning orchestrator

* fix: config adjustments

* fix: address windows networking issues

* fix: node bindings

* feat: improve deployments (stability + ui)

* refactor: revisit automining approach

* chore: minor adjustments

* fix: more adjustments, fix build

* chore: remove caveman instructions

* feat: add ability to discard bitcoin blocks

* Update node-bindings/lib/types.ts

Co-authored-by: Brice <brice@hiro.so>

* Update src/indexer/chains/stacks.rs

Co-authored-by: Brice <brice@hiro.so>

* Update src/integrate/orchestrator.rs

Co-authored-by: Brice <brice@hiro.so>

* fix: use future version of clarinet lib by default

* fix: explore / api enabled by default

* fix: set of adjustments / handling feedbacks

* chore: cargo fmt

* Update node-bindings/lib/types.ts

Co-authored-by: Brice <brice@hiro.so>

* Update node-bindings/lib/types.ts

Co-authored-by: Brice <brice@hiro.so>

* Update src/integrate/ui/mod.rs

Co-authored-by: Brice <brice@hiro.so>

* fix: more adjustments

* fix: address warnings, additional feedbacks

* chore: fix merge issue

* chore: update clap

* chore: cargo fmt

* chore: downgrade crossbeam

* chore: update nightly

* chore: add comment describing publish process

* chore: use compatible nightly

* chore: cargo fmt + removing deps

* fix: use specify grcov version in CI

* fix: attempt to use rust-stable with grcov

* Update src/publish/mod.rs

Co-authored-by: Brice <brice@hiro.so>

Co-authored-by: Jose Soto <josecanhelp@gmail.com>
Co-authored-by: Brice <brice@hiro.so>
Co-authored-by: Joseph Bender <jdbender128@gmail.com>
blockstack-devops pushed a commit that referenced this pull request Mar 31, 2022
# [0.28.0](v0.27.0...v0.28.0) (2022-03-31)

### Bug Fixes

* address #279 ([69253d3](69253d3))
* adjust some env variables ([6bd3436](6bd3436))
* attempt to repair Test workflow ([cf1d598](cf1d598))
* handle errors during file creation properly ([88b14b2](88b14b2)), closes [#229](#229)
* try another nightly ([5694857](5694857))
* upgrade @mapbox/node-pre-gyp from 1.0.6 to 1.0.8 ([0eff1a7](0eff1a7))
* upgrade typescript from 4.5.2 to 4.5.5 ([0129097](0129097))

### Features

* **debugger:** add telemetry for debugger ([4438e23](4438e23))
* **deugger:** add debugger info to README ([3026df7](3026df7))
* improve clarinet integrate, clarinet contracts publish and testing harness reliability ([#240](#240)) ([b9b6f74](b9b6f74)), closes [#1](#1) [#231](#231)
* update interfaces for debugger in REPL ([38a89b5](38a89b5))
* use lib v0.28.0 ([354fecf](354fecf))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants