我是 Solidity 新手,正在 Remix 上运行代码。无论我指定什么版本的编译器,我都会不断收到相同的错误。有人可以帮我吗?“编译器版本 ^0.8.0 不满足 r semver 要求”到底是什么意思?
这是我的代码:
// SPDX-License-Identifier: UNLICENSED
Run Code Online (Sandbox Code Playgroud)
编译指示可靠性 ^ 0.8.0;
合约存储{
struct People {
uint256 favoriteNumber;
string name;
}
mapping(string => uint256) public nameToFavoriteNumber;
People[] public people;
function addPerson(uint _personFavoriteNumber, string memory _personName ) public {
people.push(People({favoriteNumber: _personFavoriteNumber, name: _personName}));
nameToFavoriteNumber[_personName] = _personFavoriteNumber;
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个 package foo,并将foo我在多个 Python 脚本中使用的二进制共享对象打包起来。
现在我想向 Foo 推出一个新的重大更新。
semvar 中具有不同主要版本的旧依赖项可以通过 PyPI 分发吗?如果是这样,怎么办?
我知道主要优点,package-lock.json我同意这一点.它不仅在最后一次安装中锁定下载的版本,而且还锁定了uri ...在大多数情况下,这是必要的,因为它可以复制最相似的项目.
但有一件事对我来说似乎很奇怪,它package.json具有声明依赖性的功能dependency: ^1.0.0,应该让npm在每个安装中下载该软件包的最新版本和兼容版本.
我正在一个我真正需要的项目.否则,每次我的依赖项发布补丁时,都需要进行新的提交更新,package.json只更改版本,因此我的管道也可以覆盖package-lock.json.
简而言之,似乎在package.json使用某个功能时......会package-lock.json阻止那个功能.
我错过了什么吗?
考虑使用这些版本的库(例如 NPM 包):
如果我^1.0.0在依赖项中指定,将安装什么版本?1.1.0-prerelease是最新版本,但我认为任何预发布版本都不满足我未指定预发布部分的范围。我尝试过使用https://semver.npmjs.com,但 lodash 不存在预发布也是最新的情况。
对于@semantic-release,[major].[minor].[patch],主要、次要、补丁的最大数量是多少?即999.999.999?
我有几个 gitlab 存储库,其中一般设置涉及一个master分支、一个stage(预发布)分支和一个dev分支。
所有 3 个分支的推送权限均被禁用。
工作流程是从dev分支中派生任何修补程序、错误修复和功能。当您对发布感到满意时,您将向 提交合并请求dev。最终,当内部准备好稳定的构建时dev;将为该分支提交合并请求stage。最后,当您对预发布感到满意时,您将提交分支的合并请求master。
我配置了 CI/CD,以便通过自动生成文件从master和分支自动执行测试、构建和部署。分支部署到 UAT s3 Bucket 并部署到生产 s3 Bucket。stageCHANGELOG.mdstagemaster
部署是通过Semantic Versioning 2.0.0它来处理的,它负责更新版本、生成变更日志和部署。
我有一个与上面描述的类似的设置,除了它是一个 monorepo,所以我用来Lerna处理发布(部署)和{"conventionalCommits": true}复制Semantic Versioning 2.0.0的行为。我在 monorepo 中使用独立版本控制。
和 的Semantic Versioning 2.0.0设置都Lerna强制master分支始终位于 和 分支之后或等于stage和dev分支;并且stage分支始终位于分支后面或等于dev分支,就像级联效应一样。
dev>= stage …
semantic-versioning gitlab gitlab-ci lerna conventional-commits
我试图找出如何正确使用npm versionprepatch (也是 premajor 或 preminor)/ preid 选项来增加后缀后面的计数器。
例如:
v.0.5.22并想附加-rcnpm version prepatch --preid rcv.0.5.23-rc.0,到目前为止还好。v.0.5.24-rc.0,v.0.5.23-rc.1得到我怎样才能只增加后面的计数器-rc.并保留补丁号?或者我误解了 prepatch / preid 的目的?
目前,我正在尝试使用 GitHub Actions 将应用程序的凹凸版本自动化,作为 PR 合并的一部分。有一个自定义脚本可以识别应用程序的当前版本和 PR 附带的标签,并在存储版本号的文件上相应地更改主要|次要|补丁版本。重要的是,版本碰撞仅在合并 PR 时发生,并且作为 GitHub Actions 的一部分,因为它有助于避免版本文件中的合并冲突,并消除了手动碰撞版本的方式。
下面给出了 GitHub Actions 代码片段。
jobs:
release:
# Skip on Pull Request Close event.
if: "!(github.event_name == 'pull_request' && !github.event.pull_request.merged)"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
- id: bumpversion
if: github.event.pull_request.merged
env:
PR_LABELS: ${{ toJson(github.event.pull_request.labels) }}
run: bash .github/scripts/bump_version.sh -l "${PR_LABELS}"
Run Code Online (Sandbox Code Playgroud)
该bump_version.sh脚本具有下面给出的函数,该函数可以进行版本更改,然后将其推送到分支main。
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
echo "commiting the version bump changes..."
git add .
git commit -m "Bump …Run Code Online (Sandbox Code Playgroud) versioning github pull-request semantic-versioning github-actions
我们有一个使用 lerna 的单一存储库。对于每个拉取请求,我们希望创建一个预发布版本并发布它。
为了更好地理解演示项目=> react-lerna-demo
封装结构:
正常发布就可以正常工作。但预发布存在以下问题。
4.0.6-1b596d6.0^4.0.0"@keth-dev/lerna-demo-util-lib": "4.0.6-1b596d6.0"(请参阅更改这在 npm v7 之前有效。但现在它抛出一个错误:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: @keth-dev/lerna-demo-web-app@4.0.5
npm ERR! Found: @keth-dev/lerna-demo-util-lib@4.0.6-1b596d6.0
npm ERR! node_modules/@keth-dev/lerna-demo-util-lib
npm ERR! @keth-dev/lerna-demo-util-lib@"4.0.6-1b596d6.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! …Run Code Online (Sandbox Code Playgroud) npm ×4
versioning ×3
lerna ×2
github ×1
gitlab ×1
gitlab-ci ×1
javascript ×1
node.js ×1
npm-install ×1
package.json ×1
packing ×1
pip ×1
pull-request ×1
pypi ×1
python-3.x ×1
remix ×1
solidity ×1