diff --git a/.circleci/config.yml b/.circleci/config.yml index 11c6ede82b..d865907c91 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,16 +30,16 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - save_cache: key: v1-deps-{{ checksum "package-lock.json" }} paths: - node_modules - - run: npm run downloadsolc_assets + - run: yarn run downloadsolc_assets - run: npx nx build remix-ide - run: npx nx build remix-ide-e2e-src-local-plugin - - run: npm run build:libs + - run: yarn run build:libs - run: mkdir persist && zip -r persist/dist.zip dist - persist_to_workspace: root: . @@ -65,7 +65,7 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - run: name: Remix Libs Linting command: ./apps/remix-ide/ci/lint.sh @@ -92,9 +92,9 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm i - - run: cd dist/libs/remix-tests && npm install - - run: npm run test:libs + - run: yarn install + - run: cd dist/libs/remix-tests && yarn install + - run: yarn run test:libs remix-ide-chrome: docker: @@ -128,7 +128,7 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - run: name: Start Selenium command: java -jar /usr/local/bin/selenium.jar @@ -171,7 +171,7 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - run: name: Start Selenium command: java -jar /usr/local/bin/selenium.jar @@ -214,7 +214,7 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - run: name: Start Selenium command: java -jar /usr/local/bin/selenium.jar @@ -256,7 +256,7 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - run: name: Start Selenium command: java -jar /usr/local/bin/selenium.jar @@ -299,7 +299,7 @@ jobs: - restore_cache: keys: - v1-deps-{{ checksum "package-lock.json" }} - - run: npm install + - run: yarn install - run: name: Start Selenium command: java -jar /usr/local/bin/selenium.jar @@ -328,9 +328,9 @@ jobs: steps: - checkout - - run: npm install - - run: npm run downloadsolc_assets - - run: npm run build:production + - run: yarn install + - run: yarn run downloadsolc_assets + - run: yarn run build:production - run: name: Deploy command: | @@ -357,9 +357,9 @@ jobs: steps: - checkout - - run: npm install - - run: npm run downloadsolc_assets - - run: npm run build:production + - run: yarn install + - run: yarn run downloadsolc_assets + - run: yarn run build:production - run: name: Deploy command: | @@ -385,10 +385,10 @@ jobs: steps: - checkout - - run: npm install - - run: npm run build:libs - - run: npm run downloadsolc_assets - - run: npm run build:production + - run: yarn install + - run: yarn run build:libs + - run: yarn run downloadsolc_assets + - run: yarn run build:production - run: name: Deploy command: | diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml index b023c4ffcc..3fb3a3031f 100644 --- a/.github/workflows/publish-action.yml +++ b/.github/workflows/publish-action.yml @@ -9,11 +9,11 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 - - run: npm install + - run: yarn install - run: ls - run: pwd - - run: npm run downloadsolc_assets - - run: npm run build:production + - run: yarn run downloadsolc_assets + - run: yarn run build:production - run: echo "action_state=$('./apps/remix-ide/ci/publishIpfs')" >> $GITHUB_ENV - uses: mshick/add-pr-comment@v1 with: diff --git a/README.md b/README.md index a96b99c249..aea4299352 100644 --- a/README.md +++ b/README.md @@ -8,18 +8,23 @@ [![Twitter Follow](https://img.shields.io/twitter/follow/ethereumremix?style=social)](https://twitter.com/ethereumremix) # Remix Project +**Remix Project** is a rich toolset including Remix IDE, a comprehensive smart contract development tool. The Remix Project also includes Remix Plugin Engine and Remix Libraries which are low-level tools for wider use. -**Remix Project** is a platform for development tools that use a plugin architecture. It encompasses sub-projects including Remix Plugin Engine, Remix Libraries, and of course Remix IDE. +## Remix IDE +**Remix IDE** is used for the entire journey of contract development by users of any knowledge level. It fosters a fast development cycle and has a rich set of plugins with intuitive GUIs. The IDE comes in 2 flavors and a VSCode extension: -**Remix IDE** is an open source web and desktop application. It fosters a fast development cycle and has a rich set of plugins with intuitive GUIs. Remix is used for the **entire journey of contract development with [Solidity language](https://soliditylang.org/)** as well as a playground for learning and teaching [Ethereum](https://ethereum.org/). +**Remix Online IDE**, see: [https://remix.ethereum.org](https://remix.ethereum.org) -Start developing using Remix on browser, visit: [https://remix.ethereum.org](https://remix.ethereum.org) +:point_right: Supported browsers: Firefox v100.0.1 & Chrome v101.0.4951.64. No support for Remix's use on tablets or smartphones or telephones. -For desktop version, see releases: [https://github.com/ethereum/remix-desktop/releases](https://github.com/ethereum/remix-desktop/releases) +**Remix Desktop IDE**, see releases: [https://github.com/ethereum/remix-desktop/releases](https://github.com/ethereum/remix-desktop/releases) -![Remix screenshot](https://github.com/ethereum/remix-project/raw/master/apps/remix-ide/remix_screenshot.png) +![Remix screenshot](https://github.com/ethereum/remix-project/raw/master/apps/remix-ide/remix-screenshot-400h.png) -:point_right: **Remix libraries** work as a core of native plugins of Remix IDE. Read more about libraries [here](libs/README.md) +**VSCode extension**, see: [Ethereum-Remix](https://marketplace.visualstudio.com/items?itemName=RemixProject.ethereum-remix) + +## Remix libraries +Remix libraries are essential for Remix IDE's native plugins. Read more about libraries [here](libs/README.md) ## Offline Usage @@ -30,7 +35,7 @@ Note: It contains the latest supported version of Solidity available at the time ## Setup -* Install **NPM** and **Node.js**. See [Guide](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
+* Install **Yarn** and **Node.js**. See [Guide for NodeJs](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) and [Yarn install](https://classic.yarnpkg.com/lang/en/docs/install)
*Supported versions:* ```bash "engines": { @@ -40,7 +45,7 @@ Note: It contains the latest supported version of Solidity available at the time ``` * Install [Nx CLI](https://nx.dev/react/cli/overview) globally to enable running **nx executable commands**. ```bash -npm install -g @nrwl/cli +yarn global add @nrwl/cli ``` * Clone the github repository (`wget` need to be installed first): @@ -50,8 +55,8 @@ git clone https://github.com/ethereum/remix-project.git * Build `remix-project`: ```bash cd remix-project -npm install -npm run build:libs // Build remix libs +yarn install +yarn run build:libs // Build remix libs nx build nx serve ``` @@ -63,12 +68,12 @@ Go to your `text editor` and start developing. Browser will automatically refres ## Production Build To generate react production builds for remix-project. ```bash -npm run build:production +yarn run build:production ``` Build can be found in `remix-project/dist/apps/remix-ide` directory. ```bash -npm run serve:production +yarn run serve:production ``` Production build will be served by default to `http://localhost:8080/` or `http://127.0.0.1:8080/` @@ -133,17 +138,17 @@ For example, to run unit tests of `remix-analyzer`, use `nx test remix-analyzer` To run the Selenium tests via Nightwatch: - - Install Selenium for first time: `npm run selenium-install` - - Run a selenium server: `npm run selenium` + - Install Selenium for first time: `yarn run selenium-install` + - Run a selenium server: `yarn run selenium` - Build & Serve Remix: `nx serve` - Run all the end-to-end tests: - for Firefox: `npm run nightwatch_local_firefox`, or + for Firefox: `yarn run nightwatch_local_firefox`, or - for Google Chrome: `npm run nightwatch_local_chrome` + for Google Chrome: `yarn run nightwatch_local_chrome` - Run a specific test case instead, use a command like this: - - npm run nightwatch_local_ballot + - yarn run nightwatch_local_ballot The package.json file contains a list of all the tests you can run. @@ -163,7 +168,7 @@ To run the Selenium tests via Nightwatch: There is a script to allow selecting the browser and a specific test to run: ``` -npm run select_test +yarn run select_test ``` You need to have @@ -209,13 +214,13 @@ module.exports = { - change package json to locally run all group tests: ``` - "nightwatch_local_debugger": "npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/debugger_*.spec.js --env=chrome", + "nightwatch_local_debugger": "yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js dist/apps/remix-ide-e2e/src/tests/debugger_*.spec.js --env=chrome", ``` - run the build script to build the test files if you want to run the locally ``` -npm run build:e2e +yarn run build:e2e ``` ### Locally testing group tests @@ -229,12 +234,12 @@ You can tag any test with a groupname, for example, #group10 and easily run the This script will give you an option menu, just select the test you want ``` -npm run select_test +yarn run select_test ``` #### method 2 ``` -npm run group_test --test=debugger --group=10 --env=chromeDesktop +yarn run group_test --test=debugger --group=10 --env=chromeDesktop ``` - specify chromeDesktop to see the browser action, use 'chrome' to run it headless diff --git a/apps/remix-ide-e2e/src/select_tests.sh b/apps/remix-ide-e2e/src/select_tests.sh index 65fa5c1656..ee1c4e38be 100644 --- a/apps/remix-ide-e2e/src/select_tests.sh +++ b/apps/remix-ide-e2e/src/select_tests.sh @@ -24,7 +24,7 @@ do *) echo "invalid option $REPLY";; esac done -npm run build:e2e +yarn run build:e2e PS3='Select a test or command: ' TESTFILES=( $(grep -IRiL "\'@disabled\': \?true" "dist/apps/remix-ide-e2e/src/tests" | grep "\.spec\|\.test\|plugin_api" | sort ) ) @@ -42,6 +42,6 @@ do done else # run the selected test - npm run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js $opt --env=$BROWSER + yarn run build:e2e && nightwatch --config dist/apps/remix-ide-e2e/nightwatch.js $opt --env=$BROWSER fi done diff --git a/apps/remix-ide-e2e/src/tests/compiler_api.test.ts b/apps/remix-ide-e2e/src/tests/compiler_api.test.ts index 8a6ca27cd3..2adc5a4c62 100644 --- a/apps/remix-ide-e2e/src/tests/compiler_api.test.ts +++ b/apps/remix-ide-e2e/src/tests/compiler_api.test.ts @@ -46,7 +46,7 @@ module.exports = { browser .addFile('test_updateConfiguration.js', { content: updateConfiguration }) .executeScript('remix.exeCurrent()') - .pause(5000) + .pause(15000) .addFile('test_updateConfiguration.sol', { content: simpleContract }) .verifyContracts(['StorageTestUpdateConfiguration'], { wait: 5000, version: '0.6.8+commit.0bbfe453' }) }, diff --git a/apps/remix-ide-e2e/src/tests/fileManager_api.test.ts b/apps/remix-ide-e2e/src/tests/fileManager_api.test.ts index 78e4ee8f1a..32da1f4828 100644 --- a/apps/remix-ide-e2e/src/tests/fileManager_api.test.ts +++ b/apps/remix-ide-e2e/src/tests/fileManager_api.test.ts @@ -71,7 +71,7 @@ module.exports = { .addFile('mkdirFile.js', { content: executeMkdir }) .executeScript('remix.exeCurrent()') .pause(2000) - .waitForElementPresent('[data-id="treeViewLitreeViewItemTest_Folder"]', 60000) + .waitForElementPresent('[data-id="treeViewLitreeViewItemTest_Folder"]', 80000) }, 'Should execute `readdir` api from file manager external api #group3': function (browser: NightwatchBrowser) { diff --git a/apps/remix-ide-e2e/src/tests/plugin_api.ts b/apps/remix-ide-e2e/src/tests/plugin_api.ts index d0cdfacf13..8409cb935d 100644 --- a/apps/remix-ide-e2e/src/tests/plugin_api.ts +++ b/apps/remix-ide-e2e/src/tests/plugin_api.ts @@ -409,7 +409,7 @@ module.exports = { .addFile('test_modal.js', { content: testModalToasterApi }) .executeScript('remix.execute(\'test_modal.js\')') .useCss() - .waitForElementVisible('*[data-id="test_id_1_ModalDialogModalBody-react"]') + .waitForElementVisible('*[data-id="test_id_1_ModalDialogModalBody-react"]', 60000) .assert.containsText('*[data-id="test_id_1_ModalDialogModalBody-react"]', 'message 1') .modalFooterOKClick('test_id_1_') // check the script runner notifications diff --git a/apps/remix-ide/.travis.yml b/apps/remix-ide/.travis.yml index ef1c5da85e..c8790fa6b8 100644 --- a/apps/remix-ide/.travis.yml +++ b/apps/remix-ide/.travis.yml @@ -9,8 +9,8 @@ branches: - master - remix_live script: - - npm install - - npm run lint && npm run test && npm run make-mock-compiler && npm run build + - yarn install + - yarn run lint && yarn run test && yarn run make-mock-compiler && yarn run build - wget http://selenium-release.storage.googleapis.com/3.5/selenium-server-standalone-3.5.3.jar - wget http://chromedriver.storage.googleapis.com/2.30/chromedriver_linux64.zip - unzip chromedriver_linux64.zip diff --git a/apps/remix-ide/README.md b/apps/remix-ide/README.md index 77535515cb..8f84d6771f 100644 --- a/apps/remix-ide/README.md +++ b/apps/remix-ide/README.md @@ -26,7 +26,7 @@ Install **npm** and **node.js** (see https://docs.npmjs.com/getting-started/inst Remix-ide has been published as an npm module: ```bash -npm install remix-ide -g +yarn global add remix-ide remix-ide ``` Or if you want to clone the github repository (`wget` need to be installed first) : @@ -36,12 +36,12 @@ git clone https://github.com/ethereum/remix-ide.git git clone https://github.com/ethereum/remix.git # only if you plan to link remix and remix-ide repositories and develop on it. cd remix # only if you plan to link remix and remix-ide repositories and develop on it. -npm install # only if you plan to link remix and remix-ide repositories and develop on it. -npm run bootstrap # only if you plan to link remix and remix-ide repositories and develop on it. +yarn install # only if you plan to link remix and remix-ide repositories and develop on it. +yarn run bootstrap # only if you plan to link remix and remix-ide repositories and develop on it. cd remix-ide -npm install -npm run setupremix # only if you plan to link remix and remix-ide repositories and develop on it. +yarn install +yarn run setupremix # only if you plan to link remix and remix-ide repositories and develop on it. npm start ``` @@ -112,40 +112,40 @@ nvm --version Register new unit test files in `test/index.js`. The tests are written using [tape](https://www.npmjs.com/package/tape). -Run the unit tests via: `npm test` +Run the unit tests via: `yarn test` -For local headless browser tests run `npm run test-browser` -(requires Selenium to be installed - can be done with `npm run selenium-install`) +For local headless browser tests run `yarn run test-browser` +(requires Selenium to be installed - can be done with `yarn run selenium-install`) -Running unit tests via `npm test` requires at least node v7.0.0 +Running unit tests via `yarn test` requires at least node v7.0.0 ## Browser Testing To run the Selenium tests via Nightwatch: - - Build Remix IDE and serve it: `npm run build && npm run serve` # starts web server at localhost:8080 - - Make sure Selenium is installed `npm run selenium-install` # don't need to repeat - - Run a selenium server `npm run selenium` - - Run all the tests `npm run nightwatch_local_firefox` or `npm run nightwatch_local_chrome` + - Build Remix IDE and serve it: `yarn run build && yarn run serve` # starts web server at localhost:8080 + - Make sure Selenium is installed `yarn run selenium-install` # don't need to repeat + - Run a selenium server `yarn run selenium` + - Run all the tests `yarn run nightwatch_local_firefox` or `yarn run nightwatch_local_chrome` - Or run a specific test case: - - npm run nightwatch_local_ballot + - yarn run nightwatch_local_ballot - - npm run nightwatch_local_libraryDeployment + - yarn run nightwatch_local_libraryDeployment - - npm run nightwatch_local_solidityImport + - yarn run nightwatch_local_solidityImport - - npm run nightwatch_local_recorder + - yarn run nightwatch_local_recorder - - npm run nightwatch_local_transactionExecution + - yarn run nightwatch_local_transactionExecution - - npm run nightwatch_local_staticAnalysis + - yarn run nightwatch_local_staticAnalysis - - npm run nightwatch_local_signingMessage + - yarn run nightwatch_local_signingMessage - - npm run nightwatch_local_console + - yarn run nightwatch_local_console - - npm run nightwatch_local_remixd # remixd needs to be run + - yarn run nightwatch_local_remixd # remixd needs to be run **NOTE:** - **the `ballot` tests suite** requires to run `ganache-cli` locally. diff --git a/apps/remix-ide/ci/browser_test.sh b/apps/remix-ide/ci/browser_test.sh index f9385198b5..7a9b536f0c 100755 --- a/apps/remix-ide/ci/browser_test.sh +++ b/apps/remix-ide/ci/browser_test.sh @@ -6,14 +6,14 @@ BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} echo "$BUILD_ID" TEST_EXITCODE=0 -npm run ganache-cli & -npm run serve:production & +yarn run ganache-cli & +yarn run serve:production & echo 'sharing folder: ' $PWD '/apps/remix-ide/contracts' & -npm run remixd & +yarn run remixd & sleep 5 -npm run build:e2e +yarn run build:e2e TESTFILES=$(grep -IRiL "\'@disabled\': \?true" "dist/apps/remix-ide-e2e/src/tests" | grep "\.spec\|\.test" | sort | circleci tests split ) for TESTFILE in $TESTFILES; do diff --git a/apps/remix-ide/ci/browser_tests.sh b/apps/remix-ide/ci/browser_tests.sh index 4a093f6b5d..3070563e52 100755 --- a/apps/remix-ide/ci/browser_tests.sh +++ b/apps/remix-ide/ci/browser_tests.sh @@ -15,13 +15,13 @@ BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} echo "$BUILD_ID" TEST_EXITCODE=0 -npm run ganache-cli & -npm run serve & +yarn run ganache-cli & +yarn run serve & setupRemixd sleep 5 -npm run nightwatch_parallel || TEST_EXITCODE=1 +yarn run nightwatch_parallel || TEST_EXITCODE=1 TESTFILES=$(circleci tests glob "./apps/remix-ide/test-browser/tests/**/*.test.js" | circleci tests split ) for TESTFILE in $TESTFILES; do ./node_modules/.bin/nightwatch --config ./apps/remix-ide/nightwatch.js --env chrome $TESTFILE || TEST_EXITCODE=1 diff --git a/apps/remix-ide/ci/browser_tests_plugin_api.sh b/apps/remix-ide/ci/browser_tests_plugin_api.sh index ab94f74a31..a955297d12 100755 --- a/apps/remix-ide/ci/browser_tests_plugin_api.sh +++ b/apps/remix-ide/ci/browser_tests_plugin_api.sh @@ -6,13 +6,13 @@ BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} echo "$BUILD_ID" TEST_EXITCODE=0 -npm run ganache-cli & -npm run serve:production & +yarn run ganache-cli & +yarn run serve:production & npx nx serve remix-ide-e2e-src-local-plugin & sleep 5 -npm run build:e2e +yarn run build:e2e TESTFILES=$(grep -IRiL "\'@disabled\': \?true" "dist/apps/remix-ide-e2e/src/tests" | grep "plugin_api" | sort | circleci tests split ) for TESTFILE in $TESTFILES; do diff --git a/apps/remix-ide/ci/flaky.sh b/apps/remix-ide/ci/flaky.sh index 8a2dac3e73..41e6c69528 100755 --- a/apps/remix-ide/ci/flaky.sh +++ b/apps/remix-ide/ci/flaky.sh @@ -2,7 +2,7 @@ set -e -npm run build:e2e +yarn run build:e2e TESTFILES=$(grep -IRiL "\'@disabled\': \?true" "dist/apps/remix-ide-e2e/src/tests" | grep "\.flaky" | sort ) # count test files @@ -18,10 +18,10 @@ BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} echo "$BUILD_ID" TEST_EXITCODE=0 -npm run ganache-cli & -npm run serve:production & +yarn run ganache-cli & +yarn run serve:production & echo 'sharing folder: ' $PWD '/apps/remix-ide/contracts' & -npm run remixd & +yarn run remixd & npx nx serve remix-ide-e2e-src-local-plugin & sleep 5 diff --git a/apps/remix-ide/ci/lint.sh b/apps/remix-ide/ci/lint.sh index f0d0345391..fcedab9655 100755 --- a/apps/remix-ide/ci/lint.sh +++ b/apps/remix-ide/ci/lint.sh @@ -13,7 +13,7 @@ KEYS=$(jq -r '.projects | keys' workspace.json | tr -d '[],"') then echo ${row} fi -done) | circleci tests split | { while read i;do npm run lint $i; done } +done) | circleci tests split | { while read i;do yarn run lint $i; done } echo "$TEST_EXITCODE" if [ "$TEST_EXITCODE" -eq 1 ] diff --git a/apps/remix-ide/docs/locations.md b/apps/remix-ide/docs/locations.md index 7a74c67185..ae806e3c0e 100644 --- a/apps/remix-ide/docs/locations.md +++ b/apps/remix-ide/docs/locations.md @@ -5,6 +5,10 @@ So if you've found the documentation to Remix but don't know where to find Remix - An online version is available at [https://remix.ethereum.org](https://remix.ethereum.org). This version is stable and is updated at almost every release. - An alpha online version is available at [https://remix-alpha.ethereum.org](https://remix-alpha.ethereum.org). This is not a stable version. -- npm `remix-ide` package `npm install remix-ide -g`. `remix-ide` create a new instance of `Remix IDE` available at [http://127.0.0.1:8080](http://127.0.0.1:8080) and make the current folder available to Remix IDE by automatically starting `remixd`. +- npm `remix-ide` package `yarn global add remix-ide`. `remix-ide` create a new instance of `Remix IDE` available at [http://127.0.0.1:8080](http://127.0.0.1:8080) and make the current folder available to Remix IDE by automatically starting `remixd`. see [Connection to `remixd`](https://remix-ide.readthedocs.io/en/latest/remixd.html) for more information about sharing local file with `Remix IDE`. + - GitHub release: [https://github.com/ethereum/remix-ide/releases](https://github.com/ethereum/remix-ide/releases) . The source code is packaged at every release but still need to be built using `npm run build`. + +- GitHub release: [https://github.com/ethereum/remix-ide/releases](https://github.com/ethereum/remix-ide/releases) . The source code is packaged at every release but still need to be built using `yarn run build`. + diff --git a/apps/remix-ide/docs/remixd.md b/apps/remix-ide/docs/remixd.md index 45e2d2062c..3fc7b1bdb3 100644 --- a/apps/remix-ide/docs/remixd.md +++ b/apps/remix-ide/docs/remixd.md @@ -8,10 +8,7 @@ The code of `remixd` is [here](https://github.com/ethereum/remixd) . `remixd` can be globally installed using the following command: -`npm install -g remixd` - -Or just install it in the directory of your choice by removing the -g flag: -`npm install remixd` +`yarn global add @remix-project/remixd` Then from the terminal, the command `remixd -s --remix-ide ` will start `remixd` and will share the given folder with remix-ide. diff --git a/apps/remix-ide/release-process.md b/apps/remix-ide/release-process.md index 45842919b0..511c8ad74e 100644 --- a/apps/remix-ide/release-process.md +++ b/apps/remix-ide/release-process.md @@ -9,7 +9,6 @@ This document includes: - git checkout origin/master - git checkout -b bumpVersion - update package.json version - - remove package-lock.json version and generate a new one with `npm install` - merge PR - git fetch origin master - git checkout origin/master @@ -18,9 +17,9 @@ This document includes: - github-changes -o ethereum -r remix-ide -a --only-pulls --use-commit-body --only-merges --between-tags previous_version...next_version - publish a release in github using the changelog - rm -rf node_modules - - npm install + - yarn install - remove all soljson.js files in root folder - - npm run build + - yarn run build - npm publish - after remix_live is updated, drop the zip (from https://github.com/ethereum/remix-live/) to the release. @@ -29,7 +28,6 @@ This document includes: - git checkout origin/master - git checkout -b bumpVersion - update package.json version to the new version "vx.x.x-beta.1" - - remove package-lock/json version and generate a new one with `npm install` - merge PR - git fetch origin master - git checkout origin/master diff --git a/apps/remix-ide/remix-screenshot-400h.png b/apps/remix-ide/remix-screenshot-400h.png new file mode 100644 index 0000000000..74ac1e57dc Binary files /dev/null and b/apps/remix-ide/remix-screenshot-400h.png differ diff --git a/apps/remix-ide/remix_screenshot.png b/apps/remix-ide/remix_screenshot.png deleted file mode 100644 index 76df964d6d..0000000000 Binary files a/apps/remix-ide/remix_screenshot.png and /dev/null differ diff --git a/apps/remix-ide/src/app/panels/tab-proxy.js b/apps/remix-ide/src/app/panels/tab-proxy.js index ec8026c517..43e15f5af4 100644 --- a/apps/remix-ide/src/app/panels/tab-proxy.js +++ b/apps/remix-ide/src/app/panels/tab-proxy.js @@ -24,7 +24,7 @@ export class TabProxy extends Plugin { this.themeQuality = 'dark' } - onActivation () { + async onActivation () { this.on('theme', 'themeChanged', (theme) => { this.themeQuality = theme.quality // update invert for all icons @@ -169,6 +169,13 @@ export class TabProxy extends Plugin { this.on('manager', 'pluginDeactivated', (profile) => { this.removeTab(profile.name) }) + + try { + this.themeQuality = (await this.call('theme', 'currentTheme') ).quality + } catch (e) { + console.log('theme plugin has an issue: ', e) + } + this.renderComponent() } focus (name) { @@ -292,7 +299,15 @@ export class TabProxy extends Plugin { } updateComponent(state) { - return + return } renderComponent () { diff --git a/apps/remix-ide/src/app/tabs/ganache-provider.tsx b/apps/remix-ide/src/app/tabs/ganache-provider.tsx index b73cb18786..002e31a3a2 100644 --- a/apps/remix-ide/src/app/tabs/ganache-provider.tsx +++ b/apps/remix-ide/src/app/tabs/ganache-provider.tsx @@ -23,7 +23,7 @@ export class GanacheProvider extends AbstractProvider { body (): JSX.Element { return (
Note: To run Ganache on your system, run -
npm install -g ganache
+
yarn global add ganache
ganache
For more info, visit: Ganache Documentation
Ganache JSON-RPC Endpoint:
diff --git a/libs/remix-analyzer/README.md b/libs/remix-analyzer/README.md index d81b93b787..a2cc46d6bd 100644 --- a/libs/remix-analyzer/README.md +++ b/libs/remix-analyzer/README.md @@ -10,7 +10,7 @@ ### Installation `@remix-project/remix-analyzer` is an NPM package and can be installed using NPM as: -`npm install @remix-project/remix-analyzer` +`yarn add @remix-project/remix-analyzer` ### How to use diff --git a/libs/remix-astwalker/README.md b/libs/remix-astwalker/README.md index cc6416b8b0..6b03957968 100644 --- a/libs/remix-astwalker/README.md +++ b/libs/remix-astwalker/README.md @@ -10,7 +10,7 @@ ### Installation `@remix-project/remix-astwalker` is an NPM package and can be installed using NPM as: -`npm install @remix-project/remix-astwalker` +`yarn add @remix-project/remix-astwalker` ### How to use diff --git a/libs/remix-debug/README.md b/libs/remix-debug/README.md index c8ea008043..e512499d36 100644 --- a/libs/remix-debug/README.md +++ b/libs/remix-debug/README.md @@ -10,7 +10,7 @@ ### Installation `@remix-project/remix-debug` is an NPM package and can be installed using NPM as: -`npm install @remix-project/remix-debug` +`yarn add @remix-project/remix-debug` ### How to use diff --git a/libs/remix-lib/README.md b/libs/remix-lib/README.md index 31075ad154..64a6706ef3 100644 --- a/libs/remix-lib/README.md +++ b/libs/remix-lib/README.md @@ -10,7 +10,7 @@ ### Installation `@remix-project/remix-lib` is an NPM package and can be installed using NPM as: -`npm install @remix-project/remix-lib` +`yarn add @remix-project/remix-lib` ### How to use diff --git a/libs/remix-simulator/README.md b/libs/remix-simulator/README.md index ebd7b31aff..bf1b0c675a 100644 --- a/libs/remix-simulator/README.md +++ b/libs/remix-simulator/README.md @@ -10,7 +10,7 @@ ### Installation `@remix-project/remix-simulator` is an NPM package and can be installed using NPM as: -`npm install @remix-project/remix-simulator` +`yarn add @remix-project/remix-simulator` ### How to use diff --git a/libs/remix-solidity/README.md b/libs/remix-solidity/README.md index 2e448074fc..45f0cda698 100644 --- a/libs/remix-solidity/README.md +++ b/libs/remix-solidity/README.md @@ -12,7 +12,7 @@ `@remix-project/remix-solidity` is an NPM package and can be installed using NPM as: -`npm install @remix-project/remix-solidity` +`yarn add @remix-project/remix-solidity` ### How to use diff --git a/libs/remix-tests/README.md b/libs/remix-tests/README.md index f08ca19985..81a3bc6aaf 100644 --- a/libs/remix-tests/README.md +++ b/libs/remix-tests/README.md @@ -12,11 +12,11 @@ To know more about Remix IDE `Solidity Unit Testing Plugin`, visit [Remix IDE of ### Installation * As a dev dependency: -`npm install --save-dev @remix-project/remix-tests` +`yarn add --dev @remix-project/remix-tests` * As a global NPM module to use as CLI: -`npm -g install @remix-project/remix-tests` +`yarn global add @remix-project/remix-tests` To confirm installation, run: ``` diff --git a/libs/remix-tests/tests/testRunner.cli.spec.ts b/libs/remix-tests/tests/testRunner.cli.spec.ts index 496f6f4936..65bea514da 100644 --- a/libs/remix-tests/tests/testRunner.cli.spec.ts +++ b/libs/remix-tests/tests/testRunner.cli.spec.ts @@ -11,7 +11,7 @@ describe('testRunner: remix-tests CLI', () => { const dirContent = result.stdout.toString() // Install dependencies if 'node_modules' is not already present if(!dirContent.includes('node_modules')) { - execSync('npm install', { cwd: resolve(__dirname + '/../../../dist/libs/remix-tests') }) + execSync('yarn install', { cwd: resolve(__dirname + '/../../../dist/libs/remix-tests') }) } } diff --git a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx index 0c718a8865..7787daeddf 100644 --- a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +++ b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx @@ -75,6 +75,25 @@ export interface EditorUIProps { export const EditorUI = (props: EditorUIProps) => { const [, setCurrentBreakpoints] = useState({}) + const defaultEditorValue = ` + \t\t\t\t\t\t\t ____ _____ __ __ ___ __ __ ___ ____ _____ + \t\t\t\t\t\t\t| _ \\ | ____| | \\/ | |_ _| \\ \\/ / |_ _| | _ \\ | ____| + \t\t\t\t\t\t\t| |_) | | _| | |\\/| | | | \\ / | | | | | | | _| + \t\t\t\t\t\t\t| _ < | |___ | | | | | | / \\ | | | |_| | | |___ + \t\t\t\t\t\t\t|_| \\_\\ |_____| |_| |_| |___| /_/\\_\\ |___| |____/ |_____|\n\n + \t\t\t\t\t\t\tKeyboard Shortcuts:\n + \t\t\t\t\t\t\t\tCTRL + S: Compile the current contract\n + \t\t\t\t\t\t\t\tCtrl + Shift + F : Open the File Explorer\n + \t\t\t\t\t\t\t\tCtrl + Shift + A : Open the Plugin Manager\n + \t\t\t\t\t\t\t\tCTRL + SHIFT + S: Compile the current contract & Run an associated script\n\n + \t\t\t\t\t\t\tImportant Links:\n + \t\t\t\t\t\t\t\tOfficial website about the Remix Project: https://remix-project.org/\n + \t\t\t\t\t\t\t\tOfficial documentation: https://remix-ide.readthedocs.io/en/latest/\n + \t\t\t\t\t\t\t\tGithub: https://github.com/ethereum/remix-project\n + \t\t\t\t\t\t\t\tGitter: https://gitter.im/ethereum/remix\n + \t\t\t\t\t\t\t\tMedium: https://medium.com/remix-ide\n + \t\t\t\t\t\t\t\tTwitter: https://twitter.com/ethereumremix\n + ` const editorRef = useRef(null) const monacoRef = useRef(null) const currentFileRef = useRef('') @@ -422,7 +441,8 @@ export const EditorUI = (props: EditorUIProps) => { language={editorModelsState[props.currentFile] ? editorModelsState[props.currentFile].language : 'text'} onMount={handleEditorDidMount} beforeMount={handleEditorWillMount} - options={{ glyphMargin: true }} + options={{ glyphMargin: true, readOnly: true}} + defaultValue={defaultEditorValue} />
{ // @ts-ignore const versionEthers = await import('raw-loader!ethers/lib/_version.d.ts') versionEthers.default = versionEthers.default.replace(/@ethersproject\//g, '@ethersproject_') - console.log(versionEthers.default) monaco.languages.typescript.typescriptDefaults.addExtraLib(versionEthers.default, `file:///node_modules/@types/_version-ethers-lib/index.d.ts`) // @ts-ignore const utilEthers = await import('raw-loader!ethers/lib/utils.d.ts') utilEthers.default = utilEthers.default.replace(/@ethersproject\//g, '@ethersproject_') - console.log(utilEthers.default) monaco.languages.typescript.typescriptDefaults.addExtraLib(utilEthers.default, `file:///node_modules/@types/utils-ethers-lib/index.d.ts`) // @ts-ignore @@ -171,14 +169,12 @@ export const loadTypes = async (monaco) => { ethers.default = ethers.default.replace(/.\/_version/g, '_version-ethers-lib') ethers.default = ethers.default.replace(/.\/ethers/g, 'ethers-lib') ethers.default = ethers.default.replace(/@ethersproject\//g, '@ethersproject_') - console.log(ethers.default) monaco.languages.typescript.typescriptDefaults.addExtraLib(ethers.default, `file:///node_modules/@types/ethers-lib/index.d.ts`) // @ts-ignore const indexEthers = await import('raw-loader!ethers/lib/index.d.ts') indexEthers.default = indexEthers.default.replace(/.\/ethers/g, 'ethers-lib') indexEthers.default = indexEthers.default.replace(/@ethersproject\//g, '@ethersproject_') - console.log(indexEthers.default) monaco.languages.typescript.typescriptDefaults.addExtraLib(indexEthers.default, `file:///node_modules/@types/ethers/index.d.ts`) // Web3 diff --git a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx index c43267df17..cbb5f05179 100644 --- a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx +++ b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.tsx @@ -4,7 +4,6 @@ import './remix-ui-home-tab.css' import { ModalDialog } from '@remix-ui/modal-dialog' // eslint-disable-line import { Toaster } from '@remix-ui/toaster' // eslint-disable-line import PluginButton from './components/pluginButton' // eslint-disable-line -import { QueryParams } from '@remix-project/remix-lib' import { ThemeContext, themes } from './themeContext' declare global { interface Window { diff --git a/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx b/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx index 1009f5aca3..499d0d1eb1 100644 --- a/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx +++ b/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx @@ -10,7 +10,7 @@ export interface TabsUIProps { onZoomOut: () => void onZoomIn: () => void onReady: (api: any) => void - themeQuality: "dark" + themeQuality: string } export interface TabsUIApi { diff --git a/libs/remix-ui/tree-view/src/lib/remix-ui-tree-view.tsx b/libs/remix-ui/tree-view/src/lib/remix-ui-tree-view.tsx index 37f9c49dad..4f47c123c4 100644 --- a/libs/remix-ui/tree-view/src/lib/remix-ui-tree-view.tsx +++ b/libs/remix-ui/tree-view/src/lib/remix-ui-tree-view.tsx @@ -7,7 +7,7 @@ export const TreeView = (props: TreeViewProps) => { const { children, id, ...otherProps } = props return ( -
    +
      { children }
    ) diff --git a/libs/remix-ui/workspace/src/lib/components/file-label.tsx b/libs/remix-ui/workspace/src/lib/components/file-label.tsx index ed5b75e628..e4bbbee19b 100644 --- a/libs/remix-ui/workspace/src/lib/components/file-label.tsx +++ b/libs/remix-ui/workspace/src/lib/components/file-label.tsx @@ -57,7 +57,7 @@ export const FileLabel = (props: FileLabelProps) => { > { file.name } diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index 293b6d63cc..9e0b0a0f04 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -134,6 +134,7 @@ export function Workspace () { + @@ -192,7 +193,7 @@ export function Workspace () { title='Delete'>