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

fix(frontend-canister): allow overwriting default HTTP headers #2689

Merged
merged 32 commits into from Oct 21, 2022

Conversation

smallstepman
Copy link
Contributor

@smallstepman smallstepman commented Oct 14, 2022

Description

Let's use HashMap instead of Vec to aggregate headers, this will allow overwriting headers which are provided by default by asset canister, like Content-Type, Content-Encoding, Cache-Control.

Example .ic-assets.json config

[
    {
        "match": "web-gz.data.gz",
        "headers": {
            "Content-Type": "application/octet-stream",
            "content-encoding": "gzip" 
        }
    }
]

Notice

It's still impossible to set a custom ETag header since its value is set after user-configured headers (ignore let streaming_strategy =...):

if let Some(arg_headers) = asset.headers.as_ref() {
for (k, v) in arg_headers {
headers.insert(k.to_owned(), v.to_owned());
}
}
let streaming_strategy = create_token(asset, enc_name, enc, key, chunk_index)
.map(|token| StreamingStrategy::Callback { callback, token });
let (status_code, body) = if etags.contains(&enc.sha256) {
(304, RcBytes::default())
} else {
headers.insert(
"ETag".to_string(),
format!("\"{}\"", hex::encode(enc.sha256)),
);
(200, enc.content_chunks[chunk_index].clone())

This is desirable.

Example use-case

Some dapps require setting custom content-encoding and content-type.
Before this change, attempting to overwrite content-type via .ic-assets.json5 would cause duplicating HTTP header, e.g.
image

Metadata

closes https://github.com/dfinity/dx-triage/issues/152
continuation of dfinity/cdk-rs#282
requested by @zhangwei983

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

Checklist:

  • The title of this PR complies with Conventional Commits.
  • I have edited the CHANGELOG accordingly.
  • I have made corresponding changes to the documentation.

CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
Marcin Nowak-Liebiediew added 16 commits October 17, 2022 16:16
a17be27 - try using apple gzip instead of brew gzip
1b570d3 - Update build-frontend-canister.yml
97a95fb - add --locked to cargo build in scripts/update-froentend-canister.sh
b529231 - use macos-latest instead of ubuntu in frontend canister building GHA
1ab6340 - comment some stuff from gha workflow
a1006ab - try to use gnu readlink
915a090 - back to ubuntu, trying to disable ic-wasm
884e49b - ^ forgot to upload wasm
26e853b - disable everything besides cargo build
e99c868 - use ubuntu 20.04 (instead of latest (22.04))
a368d69 - use macos-latest, only cargo build --release (no gzip nor ic-wasm)
9c8a07f - recreated cargo.lock file
54c24d0 - trying rust-toolchain:channel=stable
6783976 - use macos-12 instead of latest (11.7)
@smallstepman smallstepman enabled auto-merge (squash) October 19, 2022 09:50
Copy link
Member

@ericswanson-dfinity ericswanson-dfinity left a comment

Choose a reason for hiding this comment

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

Can we have an e2e test for this?

Marcin Nowak-Liebiediew added 2 commits October 19, 2022 16:37
@smallstepman smallstepman merged commit 5332235 into master Oct 21, 2022
@smallstepman smallstepman deleted the mnl/fix--allow-overwritting-default-headers branch October 21, 2022 10:22
smallstepman pushed a commit that referenced this pull request Nov 4, 2022
commit ba029a5
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Sun Oct 30 18:10:22 2022 +0100

    build:  niv advisory-db: update fe7b79e8 -> 9e505174 (#2722)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@fe7b79e8...9e505174](rustsec/advisory-db@fe7b79e...9e50517)

    * [`6a06cf85`](rustsec/advisory-db@6a06cf8) Add CVE-2022-36086 for linked_list_allocator ([RustSec/advisory-db⁠#1448](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1448))
    * [`9e505174`](rustsec/advisory-db@9e50517) Assigned RUSTSEC-2022-0063 to linked_list_allocator ([RustSec/advisory-db⁠#1449](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1449))

commit ff5a1d2
Author: Marcin Nowak-Liebiediew <marcin.liebiediew@dfinity.org>
Date:   Fri Oct 28 17:34:22 2022 +0200

    feat(frontend-canister): add warning if a config is provided in `.ic-assets.json` but not used (#2705)

    whenever the developer creates a `{"match":....}` rule in .ic-assets.json that didn't match anything, we will display a warning, like so:
    > WARNING: 1 unused configuration in .../assets-dir/.ic-assets.json config file:
    > {
    >   "match": "bloop",
    >   "cache": {
    >     "max_age": 2000
    >   }
    > }

    additionally (should've been part of separate PR):
    - refactor: moved all functions needed for de/serialization and pretty-printing into a separate module, leaving core business logic more easily visually separate from the rest of the code
    - added comments for main data structures and functions
    - made core data structures and methods public (change from pub(crate)) in case someone would want to use ic_asset::asset_config outside of dfx

commit f4ec163
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Wed Oct 26 15:06:58 2022 -0700

    feat: Warn if an unencrypted identity is used (#2678)

    This logs a warning if the user performs a mainnet action while using an unencrypted identity. Implements SDK-641.

commit da85938
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Tue Oct 25 14:34:19 2022 -0700

    chore: Rewrite build script in Rust (#2706)

    The build script currently requires a shell script to curl all the bundled assets and pack them into tarballs. This PR rewrites the script in Rust, which not only does all the fetching in parallel but supports Windows.

    The format of the sources manifest has been changed from a shell script to a .toml file, as the latter is far more easily consumed from Rust and will help eliminate some edge cases like `motoko-base`.

    Given Windows assets, DFX now builds on Windows. Linux assets are substituted as a stopgap since technically any external program can be used through WSL, but we probably want to have a proper Windows asset set eventually.

commit 48d3c5e
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Tue Oct 25 13:27:29 2022 +0200

    chore: update replica version to 3e1be131 (#2712)

    Updated replica to elected commit 3e1be1316341811db5c9300935c4236bfab8fa2a.
    This incorporates the following executed proposals:
    - [87631](https://dashboard.internetcomputer.org/proposal/87631)

commit 091932f
Author: Jason <98767015+dfx-json@users.noreply.github.com>
Date:   Tue Oct 25 00:26:12 2022 -0700

    chore: add quickstart reference (#2714)

    * chore: add quickstart reference

    * chore: add quickstart reference to index.md

commit caf1b33
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Mon Oct 24 14:43:06 2022 -0700

    chore: update Motoko to 0.7.1 (#2715)

commit d74c1ee
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Mon Oct 24 22:03:18 2022 +0200

    fix: broken link in new .mo project README (#2710)

    Fixes #2708

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit adc04ee
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Mon Oct 24 19:15:20 2022 +0200

    build:  niv advisory-db: update 6a422853 -> fe7b79e8 (#2713)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@6a422853...fe7b79e8](rustsec/advisory-db@6a42285...fe7b79e)

    * [`e40084b1`](rustsec/advisory-db@e40084b) Add advisory for logging of access tokens in matrix-sdk ([RustSec/advisory-db⁠#1444](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1444))
    * [`fe7b79e8`](rustsec/advisory-db@fe7b79e) Assigned RUSTSEC-2022-0062 to matrix-sdk ([RustSec/advisory-db⁠#1445](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1445))

commit 7819485
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Mon Oct 24 06:48:49 2022 -0700

    feat: configurable custom wasm sections (#2679)

    See https://dfinity.atlassian.net/browse/SDK-660, https://dfinity.atlassian.net/browse/SDK-347

commit db3de4d
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Sun Oct 23 18:49:15 2022 +0200

    build:  niv advisory-db: update 1736a7bd -> 6a422853 (#2707)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@1736a7bd...6a422853](rustsec/advisory-db@1736a7b...6a42285)

    * [`cdcbc33c`](rustsec/advisory-db@cdcbc33) Add unmaintained `parity-wasm` ([RustSec/advisory-db⁠#1441](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1441))
    * [`6a422853`](rustsec/advisory-db@6a42285) Assigned RUSTSEC-2022-0061 to parity-wasm ([RustSec/advisory-db⁠#1443](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1443))

commit 5332235
Author: Marcin Nowak-Liebiediew <marcin.liebiediew@dfinity.org>
Date:   Fri Oct 21 12:22:19 2022 +0200

    fix(frontend-canister): allow overwriting default HTTP headers (#2689)

    Change to use HashMap instead of Vec to aggregate HTTP Headers, and also cast all HTTP Header keys lowercase. This change required an updating asset canister wasm.

commit 9aa0060
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Wed Oct 19 10:30:10 2022 +0200

    chore: update replica version to f7e3c96a (#2702)

commit 7ddc32d
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Tue Oct 18 06:17:27 2022 -0700

    feat: dfx info replica-port (#2700)

    Fixes https://dfinity.atlassian.net/browse/SDK-777

commit d8f5198
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Tue Oct 18 05:08:42 2022 -0700

    chore: revert conventional pr title action to 2.2.3 (#2701)

    It turns out that version 2.4.4 doesn't exist, so all PRs will fail, like here:
       https://github.com/dfinity/sdk/actions/runs/3272056132/jobs/5382599495

    The workflow actually tests vs the base branch (pull_request_target), so the altering PR used the old version:
       https://github.com/dfinity/sdk/actions/runs/3271406085/jobs/5381159987

commit 2149b05
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Oct 18 10:26:27 2022 +0200

    chore: Squash warnings (#2695)

    # Description
    New warnings have appeared in GitHub CI.  Some were addressed in #2693 .  This addresses more of them.

commit 15ab3c0
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Mon Oct 17 15:34:00 2022 -0700

    fix: report an error if a custom canister both defines a wasm URL and has a build step (#2697)

    # Description

    It's not well-defined what should happen if a custom canister has both a `wasm` field that is a URL (meaning dfx downloads the wasm file) and a `build` field (presumably telling how to build the wasm file), so we disallow the combination for the time being.

    Fixes https://dfinity.atlassian.net/browse/SDK-776

    # How Has This Been Tested?

    Added an e2e test.

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [x] I have made corresponding changes to the documentation.

commit 3d879a6
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Mon Oct 17 23:22:04 2022 +0200

    chore: update replica version to cbf9a3bb (#2692)

    Updated replica to elected commit cbf9a3bbd63f37f343f5ebc44e88eafff1481767.
    This incorporates the following executed proposals:
    - [86279](https://dashboard.internetcomputer.org/proposal/86279)

commit d9565fd
Author: Max <bitdivine@users.noreply.github.com>
Date:   Mon Oct 17 19:06:34 2022 +0200

    chore: Bump github actions that use node v12 (#2693)

    # Description
    There are currently a lot of warnings that make it hard to see real problems.

    Some easy-to-fix problems stem from:

    > Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/cache, actions/upload-artifact, actions/cache

    # Changes
    - Bump github actions to use later versions of node

commit 745a5c2
Author: Saikat Das <saikatdas0790@gmail.com>
Date:   Mon Oct 17 20:49:39 2022 +0530

    docs: dfx canister request-status requires canister to be specified (#2690)

commit 780f793
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Mon Oct 17 15:21:54 2022 +0200

    fix: do not build remote canisters (#2687)

    # Description

    If a canister config specifies a “remote” canister ID, like the NNS subnet canisters do, or if the canister is deployed from another directory locally, it should skip the build step.

    Fixes [SDK-766](https://dfinity.atlassian.net/browse/SDK-766)

    # How Has This Been Tested?

    Added checks to CI that remote canisters are not processed in:
    - `dfx deploy`
    - `dfx build`
    - `dfx generate`

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit 5c5a8c4
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Mon Oct 17 04:46:50 2022 -0700

    test: add basic canister http test (#2683)

    The original intent was to run a webserver during CI for this test, but that turned out not to be possible:
    - the canister http service requires the https scheme
    - the canister http service rejects requests to a local https server using a key/cert generated by openssl, with:
       "Failed to connect: error trying to connect: The certificate was not trusted."

    Instead, this test reads https://smartcontracts.org and looks for some terms that should always show up there

    Fixes https://dfinity.atlassian.net/browse/SDK-453

commit b7cc028
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Sun Oct 16 18:47:22 2022 +0200

    build:  niv advisory-db: update 842d34ee -> 2418d0b0 (#2691)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@842d34ee...2418d0b0](rustsec/advisory-db@842d34e...2418d0b)

    * [`99a38655`](rustsec/advisory-db@99a3865) Add CVE-2022-3358 for openssl-src ([RustSec/advisory-db⁠#1433](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1433))
    * [`2418d0b0`](rustsec/advisory-db@2418d0b) Assigned RUSTSEC-2022-0059 to openssl-src ([RustSec/advisory-db⁠#1434](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1434))

commit 57006b5
Author: Nicolas Mattia <nicolas@dfinity.org>
Date:   Fri Oct 14 12:16:57 2022 +0200

    chore: remove unused variable (#2686)

    This removes a variable that wasn't being used (warnings were silenced because name was `_all`).

commit 04dedba
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Wed Oct 12 21:11:22 2022 -0700

    feat: Make platform-specific code Windows-compatible (#2663)

    The road to Windows support starts with cleaning up the Unix-env assumptions. Thankfully there are not many.

    - `$HOME` and `/tmp` usage is replaced with dirs_next functions on Windows, including for dotfolder assumptions like `.cache`. These will wind up in `~\AppData` locations.

    - File modes are conditionally compiled in; they are only used to set the execute permission, which is on-by-default in Windows.

    - Where we require an explicit file path to the pkcs11 library, the correct default path for the platform is displayed in help strings.

    - Where directory symlinks are created on Linux, junctions are created on Windows, as symlinks require Windows to be in developer mode.

    - The color support check has been replaced from an OS check to an actual color support check (we had previously been giving the wrong answer for alternate macOS terminals like iTerm)

    This PR goes out of its way not to change any existing behavior. dirs-next is only used on Windows; dfx still does the wrong thing on macOS. Perhaps whether to migrate to Apple's official application directories should be revisited in a future PR.

    Also, no CI checks are added yet. 'Builds on Windows' is rather a low bar; things like $HOME can't easily be caught in CI until the code is actually ready to run the full battery of e2e tests.

    Implements SDK-751.

commit 1f4d960
Author: Jason <98767015+dfx-json@users.noreply.github.com>
Date:   Wed Oct 12 09:39:03 2022 -0700

    Update LICENSE (#2680)

commit ae92c38
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Tue Oct 11 19:01:53 2022 +0200

    build:  niv advisory-db: update 222ccf84 -> 842d34ee (#2677)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@222ccf84...842d34ee](rustsec/advisory-db@222ccf8...842d34e)

    * [`2baed2be`](rustsec/advisory-db@2baed2b) Add notice inconceivable ([RustSec/advisory-db⁠#1430](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1430))
    * [`842d34ee`](rustsec/advisory-db@842d34e) Assigned RUSTSEC-2022-0058 to inconceivable ([RustSec/advisory-db⁠#1432](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1432))

commit fd7c401
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Tue Oct 11 13:53:01 2022 +0200

    chore: add issue template (#2619)

    # Description

    Adding a basic issue template, and redirecting people to the forum for questions about dfx use and to discussions for feature requests.

    First step of [SDK-743](https://dfinity.atlassian.net/browse/SDK-743)

    # How Has This Been Tested?

    Can't be tested AFAIK

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [ ] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit 52600e0
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Tue Oct 11 02:49:53 2022 -0700

    refactor: e2e workflow: do not check dynamic-linked libraries (#2674)

    The publish workflow already performs this, so we don't need to duplicate the logic.

commit 39dc5f3
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Tue Oct 11 10:10:45 2022 +0200

    fix: dfx schema should not break on invalid dfx.json (#2670)

    # Description

    `dfx schema` should not refuse to work when a broken dfx.json is present.

    Fixes #2437, [SDK-667](https://dfinity.atlassian.net/browse/SDK-667)

    # How Has This Been Tested?

    Added e2e.

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit 9de1104
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Tue Oct 11 09:13:14 2022 +0200

    chore: update documentation: --memo is mandatory for ledger transfer (#2631)

    # Description

    Fixes #1991

    # How Has This Been Tested?

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [ ] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit ce9ac3d
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Mon Oct 10 13:47:59 2022 -0700

    fix: Fix derivation path (#2672)

    * Fix derivation path

    * Update known seed for test

    Co-authored-by: Linwei Shang <linwei.shang@dfinity.org>
    Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

commit 8e67974
Author: Kyle Peacock <kylpeacock@gmail.com>
Date:   Mon Oct 10 12:30:20 2022 -0700

    chore: update JSDOC type to support plug agent (#1827)

    * chore: update JS types to support plug agent
    [SDK-127]

    * moving types to .d.ts file

    * formatting + IDL import

commit cc254f5
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Mon Oct 10 17:49:50 2022 +0200

    chore: update replica version to 10c03410 (#2669)

    Updated replica to elected commit 10c0341032ac00c9728ecefa1e82e919f0f09022.

commit a812524
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Mon Oct 10 02:08:04 2022 -0700

    Add a -y flag to deploy/install (#2667)

    Add a -y flag to deploy/install

commit 4e4a39d
Author: Max <bitdivine@users.noreply.github.com>
Date:   Mon Oct 10 09:21:19 2022 +0200

    feat: nns usability improvements (#2668)

    # Description
    The `dfx nns`commands are technically ready to use but can be confusing or hard to use, even though they should be very simple.  The following issues are addressed.

    ## Local network type
    `dfx nns install` needs to be run with particular network settings.  There is an existing check that the network type is "system" and an error message but the error message doesn't seem to be helping; it is not clear or explicit enough, it doesn't give people the information they need to configure the network.

    **Change:** Expand the error message with explicit steps the user needs to take.

    ![Screenshot from 2022-10-08 04-42-03](https://user-images.githubusercontent.com/5982633/194685534-23b23a4e-59c5-422d-b36e-5e62d894be63.png)

    ## Help is not shown
    `dfx nns --help` was not showing subcommands.  This was intentional as the nns subcommands were stubbed in, however now the subcommands have been implemented.

    **Change:** Make the subcommands public and tweak their descriptions.

    ## `--network` option is advertised but unused
    No current `nns` commands use the `--network` flag, yet the flag is advertised.

    **Change:** Remove the `--network` flag from the `nns` subcommand.

    # How Has This Been Tested?

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [x] I have made corresponding changes to the documentation.
      This is a noop

commit 763c2bb
Author: Linwei Shang <linwei.shang@dfinity.org>
Date:   Fri Oct 7 02:16:59 2022 -0400

    chore: bump candid v0.8.2 (#2662)

    * chore: bump candid v0.8.1

    * candid v0.8.2

    * update frontend canister

commit eb15234
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Thu Oct 6 10:20:51 2022 -0700

    chore: Delete OpenSSL (#2659)

    I don't know if we used to use OpenSSL for more in the past, but right now we only use it for sha2, which is capably provided by the `sha2` crate instead. In the meantime every last problem I have had with the build system has been due to OpenSSL's inclusion. This PR removes the last vestiges of OpenSSL along with the build system hacks necessary to build it.

commit 94a6204
Author: Max <bitdivine@users.noreply.github.com>
Date:   Wed Oct 5 09:42:39 2022 +0200

    docs: Start documenting nns commands (#2601)

    # Description

    Note: This should be merged after the [secp256k1 PR](#2598), as the docs mention command line access to toy ICP.

    # How Has This Been Tested?
    I have run the example commands manually.

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [x] I have made corresponding changes to the documentation.

commit 8deb431
Author: Claudio Russo <claudio@dfinity.org>
Date:   Wed Oct 5 03:23:26 2022 +0100

    fix: Compute Motoko dependencies in linear (not exponential) time by detecting visited imports (#2647)

    * add import before descending, to prevent exponential revisting of imports

    * reorder check

    * formatting

    * revert ref

    * edit changelog

commit c03c3c5
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Tue Oct 4 19:12:35 2022 +0200

    build:  niv advisory-db: update c83c2102 -> 222ccf84 (#2650)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@c83c2102...222ccf84](rustsec/advisory-db@c83c210...222ccf8)

    * [`db48ddc2`](rustsec/advisory-db@db48ddc) Add unmaintained `badge` ([RustSec/advisory-db⁠#1428](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1428))
    * [`222ccf84`](rustsec/advisory-db@222ccf8) Assigned RUSTSEC-2022-0057 to badge ([RustSec/advisory-db⁠#1431](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1431))

commit 8f0a749
Author: Adam Spofford <93943719+adamspofford-dfinity@users.noreply.github.com>
Date:   Mon Oct 3 23:07:21 2022 -0700

    fix: Add useful error message to `dfx canister info` (#2617)

    `dfx canister info` reports an uninformative 'lookup path was unknown' message if the canister doesn't exist, unlike `dfx canister status` whose 404 contains the direct information that the canister doesn't exist. This PR provides a more useful error message in this case.

    Fixes SDK-651.

commit 873fe7c
Author: Nathan Mc Grath <contact@nathanos.dev>
Date:   Mon Oct 3 16:12:23 2022 +0200

    fix(generate): add missing typescript types and fix issues with bindings array in dfx.json (#2616)

    fixes #2615

commit 92caaab
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Fri Sep 30 19:06:22 2022 +0200

    Update generate.rs (#2614)

    Co-authored-by: Linwei Shang <linwei.shang@dfinity.org>

commit 3df8a76
Author: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com>
Date:   Fri Sep 30 02:50:04 2022 -0700

    chore: bump Candid UI (#2612)

    Bump Rust dependency, minor bug fixes.

commit 8289aa5
Author: Max <bitdivine@users.noreply.github.com>
Date:   Fri Sep 30 04:44:43 2022 +0200

    refactor: Factor out code for calling arbitrary bundled binaries (#2611)

    ## Motivation
    There are several bundled binaries, including `ic-admin` and `sns`.  We have a wrapper for calling `sns` but it works perfectly for other bundled binaries as well.  So let's reuse it.

commit 3b939ce
Author: Max <bitdivine@users.noreply.github.com>
Date:   Thu Sep 29 13:33:25 2022 +0200

    test: Retry in the case of network errors (#2606)

    # Description
    This is an attempt to reduce test flakiness.  In particular, many tests die due to external network errors.  These failures can probably be addressed by retries.

    Note:  This does not attempt to address internal network errors.  E.g. port conflicts (I have seen this only ~once~ twice on a random port) or `dfx start` failing to respond to http requests.

commit e7b3333
Author: Max <bitdivine@users.noreply.github.com>
Date:   Wed Sep 28 14:45:11 2022 +0200

    feat: Lazy download (#2599)

    # Description
    Some but not all nns-wasms are downloaded only if they do not already exist.  With this change all NNS wasm downloads occur only if the wasm is not already present.  This should help testing when one has a slow internet connection.

commit 06a1deb
Author: Dimitris Sarlis <dimitris@dfinity.org>
Date:   Tue Sep 27 16:25:43 2022 +0200

    feat: Add subnet type argument when creating canisters (#2584)

    Adds a new optional argument when creating canisters through dfx that allows users to choose a specific "type" of subnet that their canister can be created on. These user-facing types are different than the existing types of subnets in the registry (system,verified, application) and are mostly useful for allowing users to choose a subnet with some certain characteristics. Additionally, the ability to list available subnet types is added through a new subcommand of `dfx ledger`.

commit af74ba7
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Sep 27 11:49:49 2022 +0200

    feat: secp256k1 account (#2598)

    # Description
    Currently `dfx nns install` creates a test account with ICP, however it uses an ed25519 key.  Command line tools typically use secp256k1 keys.  It would be useful to have an account that can be used easily with cli tools.

    # Changes
    Initialize an account controlled by a secp256k1 key.

commit a44adb4
Author: Adam Bratschi-Kaye <90606735+adambratschikaye@users.noreply.github.com>
Date:   Mon Sep 26 22:51:04 2022 +0200

    fix: Only kill main process on `dfx stop` (#2604)

    Currently the `dfx stop` command tries to kill every child of the main
    `dfx` process. This causes the replica to panic when the
    `sandbox_launcher` or `canister_sandbox` processes are killed (since it
    never expects them to be killed). Instead the `dfx stop` command should
    just kill the main `dfx` process and wait for all the children to stop.

    This fixes issue
    [RUN-351](https://dfinity.atlassian.net/browse/RUN-351).

    Co-authored-by: Linwei Shang <linwei.shang@dfinity.org>

commit a21e11b
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Mon Sep 26 16:52:22 2022 +0200

    chore: add ubuntu 22.04 to CI (#2596)

    We got reports of problems on Ubuntu 22.04. Because of this, we're adding it to CI

    As discussed, this does the following:
    - Add 22.04 to Publish workflow
    - Add 22.04 to Smoke tests
    - port build steps from Publish to e2e build

commit 7ae3117
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Mon Sep 26 10:59:24 2022 +0200

    build:  niv advisory-db: update a25cb0b5 -> c83c2102 (#2603)

    ## Changelog for advisory-db:
    Branch: main
    Commits: [rustsec/advisory-db@a25cb0b5...c83c2102](rustsec/advisory-db@a25cb0b...c83c210)

    * [`c8981d88`](rustsec/advisory-db@c8981d8) Add unmaintained `clipboard` ([RustSec/advisory-db⁠#1267](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1267))
    * [`c83c2102`](rustsec/advisory-db@c83c210) Assigned RUSTSEC-2022-0056 to clipboard ([RustSec/advisory-db⁠#1425](http://r.duckduckgo.com/l/?uddg=https://github.com/RustSec/advisory-db/issues/1425))

commit 218abbb
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Sat Sep 24 07:35:54 2022 +0200

    chore: update replica version to release candidate 9173c5f1 (#2594)

    For emphasis, at the time of this writing this commit is not elected.

commit c398533
Author: Marcin Nowak-Liebiediew <marcin.liebiediew@dfinity.org>
Date:   Thu Sep 22 18:26:39 2022 +0200

    fix(typescript): add index.d.ts file for type safety when importing generated declarations (#2597)

    * fix(typescript): add index.d.ts file for type safety when importing generated declarations
    * Update e2e/tests-dfx/generate.bash
    * fixes #2537

    Co-authored-by: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>

commit 6fb3f91
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Thu Sep 22 00:55:30 2022 -0700

    fix: add new nns wasm: ic-ckbtc-minter (#2593)

    # Description

    This is needed by the next replica release candidate.  See test failures: https://github.com/dfinity/sdk/actions/runs/3103188746/jobs/5026356601

    # How Has This Been Tested?

    Tested locally.

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] (no need) I have edited the CHANGELOG accordingly.
    - [x] (no need) I have made corresponding changes to the documentation.

commit 1fd1f6b
Author: DFINITY bot <58022693+dfinity-bot@users.noreply.github.com>
Date:   Wed Sep 21 23:41:13 2022 +0200

    chore: update replica version to 6de9963f (#2591)

commit e45ebe6
Author: Linwei Shang <linwei.shang@dfinity.org>
Date:   Wed Sep 21 16:47:27 2022 -0400

    chore: upgrade ic-wasm to v0.2.0 (#2590)

    * chore: upgrade ic-wasm to v0.2.0

    * fmt

    * update frontend canister

    * update frontend wasm in workflow

    * Revert "update frontend wasm in workflow"

    This reverts commit 9ac0f25.

    * update frontend canister

commit 6b8015b
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Wed Sep 21 15:48:25 2022 +0200

    chore: reduce noisiness of dfx start (#2575)

    # Description

    Further reduction of noisiness of dfx start. It now (once the `ic-starter` changes make it into the bundled replica version) prints:
    ```
    Running dfx start for version 0.12.0-beta.2+rev39.44004c4b
    Using shared network 'local' defined in /Users/ssiff/.config/dfx/networks.json
    Dashboard: http://localhost:59135/_/dashboard
    ```

    Previous extra output is moved to `--verbose`.

    Fixes [SDK-728](https://dfinity.atlassian.net/browse/SDK-728)

    # How Has This Been Tested?

    Mostly manual, but some test now require `--verbose`

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit cc6c857
Author: Severin Siffert <severin.siffert@dfinity.org>
Date:   Wed Sep 21 14:50:26 2022 +0200

    chore: remove dfx version pin from default project (#2589)

    # Description

    As discussed in yesterday's meeting we discussed removing the version pin from the default project.

    # How Has This Been Tested?

    tested manually

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
    - [ ] I have made corresponding changes to the documentation.

commit 44004c4
Author: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com>
Date:   Tue Sep 20 23:14:29 2022 -0700

    chore: update JSON schema docs (#2588)

    Co-authored-by: Linwei Shang <linwei.shang@dfinity.org>

commit a32ae7a
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Sep 20 20:16:38 2022 +0200

    fix: Valid canister-based env vars (#2574)

    # Description
    Hyphens are not valid in shell environment variables, but do occur in canister names such as nns-dapp.  This poses a problem for vars with names such as `CANISTER_ID_${CANISTER_NAME}`.

    Changes:
    - In env vars set by dfx, replace hyphens by underscores.

commit 96e4e6b
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Sep 20 18:21:19 2022 +0200

    fix: Lock SNS version (#2587)

    # Description
    `dfx sns import` was pulling did files from master, so the did files did not match the installed wasms, causing some commands that used to work to fail.

    Now, it was actually useful to be able to pull recent did files, so while setting the default reference to download from to the replica commit, I maintained the ability to pull from master by introducing an environment variable `DFX_IC_REF` that can be used to override the commit.  I have added the same env var to `dfx nns install` and `dfx sns import` so that all the wasms are in sync, with the same commit.

commit 3caa3cb
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Sep 20 16:19:41 2022 +0200

    refactor: Factor out common code for sns cli (#2586)

    # Description
    There is a function that calls the sns cli and that deals with corner cases.  This is used in e.g. `dfx sns config validate`.  In this PR the common code is also used in `dfx sns config create`.

commit 4fa74b9
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Sep 20 15:06:57 2022 +0200

    feat: dfx sns deploy (#2571)

    # Description
    This PR implements the previously agreed-upon command:
    ```
    dfx sns deploy
    ```
    The implementation covers only the core use case and does not cover enhancements such as specifying the location of the config file.

    # Changes
    - Implemented `dfx sns deploy`
    - Fixed doc lints; requiring documentation was not previously enforced so there were quite a few functions with missing documentation.  I have filled them in, somewhat minimally but hopefully sufficiently to be useful.

commit be94446
Author: Max <bitdivine@users.noreply.github.com>
Date:   Tue Sep 20 13:11:37 2022 +0200

    feat: Install the build from the cache (#2568)

    # Description
    The e2e tests take quite long to run.  Viewed positively, `dfx cache install` is the most heavily tested part of dfx, as a large part of the e2e testing time is dedicated to installing dfx at the start of each test, after building (9 minutes).

    Arguably, while laudable, installing dfx does not need to be tested so heavily.  The data in `.cache/dfinity/versions/$VERSION_BEING_TESTED` is immutable so it should suffice to run `dfx cache install` once and then reuse that data in all tests.  The one exception is the handful (literally 5) tests that assume that they start in a clean environment; for them the cache would have to be cleared before starting.

    Note: All the test files run in parallel, however we do hit concurrency limits with 64 tests on a limit of 50 Mac runners, especially if more than one PR is merging, so jobs do run somewhat sequentially.  Also, dfx is installed for every test in every file.  For the 4-test sns file, running locally dropped from 2m30s to 1m (installing once instead of 4 times).  For files with more tests the time saving with be correspondingly faster.

    # How Has This Been Tested?
    * See CI
    * I have run bash tests locally.  The speedup in local development is nice.

    # Checklist:

    - [x] The title of this PR complies with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
    - [x] I have edited the CHANGELOG accordingly.
      - Noop as this is a process change
    - [x] I have made corresponding changes to the documentation.
      - Noop as this is a process change
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.

None yet

2 participants