Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
/commit_hash.txt
/prerelease.txt

# Auth config for ppa release
/.release_ppa_auth

# Compiled Object files
*.slo
*.lo
Expand Down
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Bugfixes:

Build System:
* Enable Linux arm64 binaries for testing and releases.
* Ubuntu PPA Packages: Discontinue the PPA as a binary distribution channel.
* Update minimum version requirements of Boost to 1.83.0 for non-windows builds and of GCC and Clang to 13.3 and 18.1.3, respectively. Fixes infinite recursion on `boost::rational` comparison affecting compiler binaries built with GCC<14.0 and Boost<1.75.

### 0.8.30 (2025-05-07)
Expand Down
18 changes: 0 additions & 18 deletions ReleaseChecklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
- [ ] GitHub account with access to [solidity](https://github.com/argotorg/solidity), [solc-js](https://github.com/argotorg/solc-js),
[solc-bin](https://github.com/argotorg/solc-bin), [solidity-website](https://github.com/argotorg/solidity-website).
- [ ] DockerHub account with push rights to the [`solc` image](https://hub.docker.com/r/ethereum/solc).
- [ ] Launchpad (Ubuntu One) account with a membership in the ["Ethereum" team](https://launchpad.net/~ethereum) and
a gnupg key for your email in the `ethereum.org` domain (has to be version 1, gpg2 won't work).
- [ ] Ubuntu/Debian dependencies of the Docker script: `docker-buildx`.
- [ ] Ubuntu/Debian dependencies of the PPA scripts: `devscripts`, `debhelper`, `dput`, `git`, `wget`, `ca-certificates`.
- [ ] [npm Registry](https://www.npmjs.com) account added as a collaborator for the [`solc` package](https://www.npmjs.com/package/solc).
- [ ] Access to the [solidity_lang Twitter account](https://twitter.com/solidity_lang).
- [ ] [Reddit](https://www.reddit.com) account that is at least 10 days old with a minimum of 20 comment karma (`/r/ethereum` requirements).
Expand All @@ -24,8 +21,6 @@ At least a day before the release:
- [ ] Rerun CI on the top commits of main branches in all repositories that do not have daily activity by creating a test branch or PR:
- [ ] `solc-js`
- [ ] `solc-bin` (make sure the bytecode comparison check did run)
- [ ] (Optional) Create a prerelease in our Ubuntu PPA by following the steps in the PPA section below on `develop` rather than on a tag.
This is recommended especially when dealing with PPA for the first time, when we add a new Ubuntu version or when the PPA scripts were modified in this release cycle.
- [ ] Verify that the release tarball of `solc-js` works.
Bump version locally, add `soljson.js` from CI, build it, compare the file structure with the previous version, install it locally and try to use it.
- [ ] Review [Learning from Past Releases](https://notes.argot.org/@solidity-release-mistakes) to make sure you don't repeat the same mistakes.
Expand Down Expand Up @@ -82,19 +77,6 @@ At least a day before the release:
- [ ] Make sure `docker-buildx` is installed.
- [ ] Run `./scripts/docker_deploy_manual.sh v$VERSION`.

### PPA
- [ ] Create `.release_ppa_auth` at the root of your local Solidity checkout and set `LAUNCHPAD_EMAIL` and `LAUNCHPAD_KEYID` to your key's email and key id.
- [ ] Double-check that the `DISTRIBUTIONS` list in `scripts/release_ppa.sh` contains the most recent versions of Ubuntu.
- [ ] Run `scripts/release_ppa.sh v$VERSION` to create the PPA release.
This will create a single package containing static binary for older Ubuntu versions in the [`~ethereum/ethereum-static` PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum-static)
and separate packages with dynamically-linked binaries for recent versions (those listed in `DISTRIBUTIONS`) in the [`~ethereum/ethereum` PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum).
- [ ] Wait for the build to be finished and published for *all architectures* (currently we only build for `amd64`, but we may add `arm` in the future).
**SERIOUSLY: DO NOT PROCEED EARLIER!!!**
- [ ] *After* the package with the static build is *published*, use it to create packages for older Ubuntu versions.
Copy the static package to the [`~ethereum/ethereum` PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum)
for the destination series `Trusty`, `Xenial`, `Bionic`, and `Focal`
while selecting `Copy existing binaries`.

### Release solc-js
- [ ] Wait until solc-bin was properly deployed. You can test this via remix - a test run through remix is advisable anyway.
- [ ] Increment the version number, create a pull request for that, merge it after tests succeeded.
Expand Down
20 changes: 3 additions & 17 deletions docs/installing-solidity.rst
Original file line number Diff line number Diff line change
Expand Up @@ -116,23 +116,9 @@ Linux Packages
Binary packages of Solidity are available at
`solidity/releases <https://github.com/argotorg/solidity/releases>`_.

We also have PPAs for Ubuntu, you can get the latest stable
version using the following commands:

.. code-block:: bash

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

The nightly version can be installed using these commands:

.. code-block:: bash

sudo add-apt-repository ppa:ethereum/ethereum
sudo add-apt-repository ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install solc
Ubuntu packages for versions up to 0.8.30 are available in the
`ethereum/ethereum PPA <https://launchpad.net/~ethereum/+archive/ubuntu/ethereum>`_.
However, we have discontinued this distribution method and future versions will not be added there.

Furthermore, some Linux distributions provide their own packages. These packages are not directly
maintained by us but usually kept up-to-date by the respective package maintainers.
Expand Down
14 changes: 5 additions & 9 deletions docs/layout-of-source-files.rst
Original file line number Diff line number Diff line change
Expand Up @@ -153,22 +153,18 @@ since Solidity 0.7.4.
SMTChecker
~~~~~~~~~~

This component has to be enabled when the Solidity compiler is built
and therefore it is not available in all Solidity binaries.
The :ref:`build instructions<smt_solvers_build>` explain how to activate this option.
It is activated for the Ubuntu PPA releases in most versions,
but not for the Docker images, Windows binaries or the
statically-built Linux binaries. It can be activated for solc-js via the
`smtCallback <https://github.com/argotorg/solc-js#example-usage-with-smtsolver-callback>`_ if you have an SMT solver
installed locally and run solc-js via node (not via the browser).

If you use ``pragma experimental SMTChecker;``, then you get additional
:ref:`safety warnings<formal_verification>` which are obtained by querying an
SMT solver.
The component does not yet support all features of the Solidity language and
likely outputs many warnings. In case it reports unsupported features, the
analysis may not be fully sound.

.. note::

The ``SMTChecker`` pragma is deprecated and will be removed.
To enable SMTChecker, simply select :ref:`select an engine<smtchecker_engines>` when invoking the compiler.

.. index:: source file, ! import, module, source unit

.. _import:
Expand Down
22 changes: 0 additions & 22 deletions scripts/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,28 +40,6 @@ else
function printLog { echo -e "$(tput setaf 3)$1$(tput sgr0)"; }
fi

function checkDputEntries
{
local pattern="$1"
grep "${pattern}" /etc/dput.cf --quiet || \
fail "Error: Missing ${pattern//\\/} section in /etc/dput.cf (check top comment in release_ppa.sh for more information)."
}

function sourcePPAConfig
{
[[ "$LAUNCHPAD_KEYID" == "" && "$LAUNCHPAD_EMAIL" == "" ]] || fail

# source keyid and email from .release_ppa_auth
if [[ -e .release_ppa_auth ]]
then
# shellcheck source=/dev/null
source "${REPO_ROOT}/.release_ppa_auth"
fi

[[ "$LAUNCHPAD_KEYID" != "" && "$LAUNCHPAD_EMAIL" != "" ]] || \
fail "Error: Couldn't find variables \$LAUNCHPAD_KEYID or \$LAUNCHPAD_EMAIL in sourced file .release_ppa_auth (check top comment in $0 for more information)."
}

function printStackTrace
{
printWarning ""
Expand Down
Loading