forked from axeman/erpnext-nix
Update bench, erpnext, frappe versions
bench: 5.16.2 -> 5.16.4 https://github.com/frappe/bench/releases/tag/v5.16.4 erpnext: 14.26.0 -> 14.30.6 https://github.com/frappe/erpnext/releases/tag/v14.30.6 Use new relaxed dependency: rapidfuzz frappe: 14.37.0 -> 14.40.3 https://github.com/frappe/frappe/releases/tag/v14.40.3 Add update.sh script to quickly update all versions in pin.nix Sort erpnext dependencies like upstream Update Readme with docs how to use update.sh script
This commit is contained in:
parent
446a2b6dea
commit
7763af845d
11
README.md
11
README.md
|
@ -20,6 +20,17 @@ nix build --json .#run-erpnext \
|
|||
| cachix push pub-solar
|
||||
```
|
||||
|
||||
### Updating `bench`, `erpnext`, `frappe` versions and hashes
|
||||
Versions and hashes are in `srcs/pin.nix`. To quickly update those to the
|
||||
latest version, run:
|
||||
```
|
||||
cd srcs
|
||||
./update.sh
|
||||
|
||||
# If you need specific versions, specify them as arguments
|
||||
./update.sh <bench_version> <erpnext_version> <frappe_version>
|
||||
```
|
||||
|
||||
### NixOS VM
|
||||
Initial setup:
|
||||
```
|
||||
|
|
|
@ -10,17 +10,18 @@ let
|
|||
pinData = import ../srcs/pin.nix;
|
||||
inherit (pinData) erpnextVersion;
|
||||
inherit (pinData.hashes) erpnextSrcHash;
|
||||
inherit (pinData.hashes) erpnextYarnHash;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "frappe";
|
||||
repo = "erpnext";
|
||||
rev = "v${erpnextVersion}";
|
||||
hash = erpnextSrcHash;
|
||||
sha256 = erpnextSrcHash;
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
sha256 = "sha256-Vho4BSbxcsVYExLvUaeoc3xIpbXoCUP/4jw4RwGnWGY=";
|
||||
sha256 = erpnextYarnHash;
|
||||
};
|
||||
|
||||
mkApp = import ./mk-app.nix {
|
||||
|
|
|
@ -10,17 +10,18 @@ let
|
|||
pinData = import ../srcs/pin.nix;
|
||||
inherit (pinData) frappeVersion;
|
||||
inherit (pinData.hashes) frappeSrcHash;
|
||||
inherit (pinData.hashes) frappeYarnHash;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "frappe";
|
||||
repo = "frappe";
|
||||
rev = "v${frappeVersion}";
|
||||
hash = frappeSrcHash;
|
||||
sha256 = frappeSrcHash;
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
sha256 = "sha256-PBdMUz9gJIoQaqQYbdk+xnd8CyZPmdeyz/9WznCb4Ss=";
|
||||
sha256 = frappeYarnHash;
|
||||
};
|
||||
mkApp = import ./mk-app.nix {
|
||||
inherit path runCommand nodejs yarn nodePackages;
|
||||
|
|
|
@ -22,13 +22,13 @@ let
|
|||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "frappe-bench";
|
||||
version = "5.16.2";
|
||||
version = benchVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "frappe";
|
||||
repo = "bench";
|
||||
rev = "v${benchVersion}";
|
||||
hash = benchSrcHash;
|
||||
sha256 = benchSrcHash;
|
||||
};
|
||||
|
||||
format = "pyproject";
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, pythonRelaxDepsHook
|
||||
, fetchFromGitHub
|
||||
, pythonRelaxDepsHook
|
||||
|
||||
, taxjar
|
||||
, gocardless-pro
|
||||
, plaid-python
|
||||
, unidecode
|
||||
# Core dependencies
|
||||
, pycountry
|
||||
, python-youtube
|
||||
, tweepy
|
||||
, redisearch
|
||||
, googlemaps
|
||||
, python-stdnum
|
||||
, frappe
|
||||
, bench
|
||||
, unidecode
|
||||
, redisearch
|
||||
, rapidfuzz
|
||||
|
||||
# Integration dependencies
|
||||
, gocardless-pro
|
||||
, googlemaps
|
||||
, plaid-python
|
||||
, python-youtube
|
||||
, taxjar
|
||||
, tweepy
|
||||
}:
|
||||
let
|
||||
pinData = import ../srcs/pin.nix;
|
||||
|
@ -29,7 +31,7 @@ buildPythonPackage rec {
|
|||
owner = "frappe";
|
||||
repo = pname;
|
||||
rev = "v${erpnextVersion}";
|
||||
hash = erpnextSrcHash;
|
||||
sha256 = erpnextSrcHash;
|
||||
};
|
||||
|
||||
format = "flit";
|
||||
|
@ -37,20 +39,24 @@ buildPythonPackage rec {
|
|||
nativeBuildInputs = [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [
|
||||
"pycountry"
|
||||
"rapidfuzz"
|
||||
"Unidecode"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
taxjar
|
||||
gocardless-pro
|
||||
plaid-python
|
||||
unidecode
|
||||
# Core dependencies
|
||||
pycountry
|
||||
python-youtube
|
||||
tweepy
|
||||
redisearch
|
||||
googlemaps
|
||||
python-stdnum
|
||||
frappe
|
||||
unidecode
|
||||
redisearch
|
||||
rapidfuzz
|
||||
|
||||
# Integration dependencies
|
||||
gocardless-pro
|
||||
googlemaps
|
||||
plaid-python
|
||||
python-youtube
|
||||
taxjar
|
||||
tweepy
|
||||
];
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
, pythonRelaxDepsHook
|
||||
, fetchFromGitHub
|
||||
|
||||
# core dependencies
|
||||
# Core dependencies
|
||||
, babel
|
||||
, click
|
||||
, filelock
|
||||
|
@ -70,9 +70,8 @@
|
|||
, xlrd
|
||||
, zxcvbn
|
||||
, markdownify
|
||||
, bench
|
||||
|
||||
# integration dependencies
|
||||
# Integration dependencies
|
||||
, boto3
|
||||
, dropbox
|
||||
, google-api-python-client
|
||||
|
@ -94,7 +93,7 @@ buildPythonPackage rec {
|
|||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${frappeVersion}";
|
||||
hash = frappeSrcHash;
|
||||
sha256 = frappeSrcHash;
|
||||
};
|
||||
|
||||
format = "flit";
|
||||
|
|
14
srcs/pin.nix
14
srcs/pin.nix
|
@ -1,10 +1,12 @@
|
|||
{
|
||||
frappeVersion = "14.37.0";
|
||||
erpnextVersion = "14.26.0";
|
||||
benchVersion = "5.16.2";
|
||||
benchVersion = "5.16.4";
|
||||
erpnextVersion = "14.30.6";
|
||||
frappeVersion = "14.40.3";
|
||||
hashes = {
|
||||
"benchSrcHash" = "sha256-SF/RwY54OKXTDIYz4LsQIR03QoCKPIGey60DO8TdonY=";
|
||||
"erpnextSrcHash" = "sha256-hPOgHADkrylc6OCbDyXCQfSYe5wliIhNcXpLE0hxmJ0=";
|
||||
"frappeSrcHash" = "sha256-f0BkNByKtqXaG6L4+llwy9kmI8gbjvZdKzkzrbA6PI4=";
|
||||
"benchSrcHash" = "nIEFTCiyjfkCtpeeoQY+9zfoHQXZ5NOgXgLaz5ki150=";
|
||||
"erpnextSrcHash" = "E+1vW73a3dp0YIVM0Ybt55DEi/7kDIKB4xTac+D49l4=";
|
||||
"erpnextYarnHash" = "0rjqlw0lff1wwbzl62g8nnjlhz3km2km3vqj2dccawpi4q2kh6jn";
|
||||
"frappeSrcHash" = "byzPj4kJRgU1Fs5wyr9FZU2NyoxX0qePNY/KicEvGcY=";
|
||||
"frappeYarnHash" = "0az1kdqcwmpzryrdg6ag4q5pqxy67vcns654d888l9307x9lq5rw";
|
||||
};
|
||||
}
|
||||
|
|
71
srcs/update.sh
Executable file
71
srcs/update.sh
Executable file
|
@ -0,0 +1,71 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github
|
||||
|
||||
if [ "$#" -gt 3 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates packaging data for the ERPNext packages."
|
||||
echo "Usage: $0 [git bench release tag] [git erpnext release tag] [git frappe release tag]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
bench_version="$1"
|
||||
erpnext_version="$2"
|
||||
frappe_version="$3"
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "$bench_version" ]; then
|
||||
bench_version="$(wget -q -O- "https://api.github.com/repos/frappe/bench/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
if [ -z "$erpnext_version" ]; then
|
||||
erpnext_version="$(wget -q -O- "https://api.github.com/repos/frappe/erpnext/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
if [ -z "$frappe_version" ]; then
|
||||
frappe_version="$(wget -q -O- "https://api.github.com/repos/frappe/frappe/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
|
||||
# strip leading "v"
|
||||
bench_version="${bench_version#v}"
|
||||
erpnext_version="${erpnext_version#v}"
|
||||
frappe_version="${frappe_version#v}"
|
||||
|
||||
# Bench
|
||||
bench_src_hash=$(nix-prefetch-github frappe bench --rev "v${bench_version}" | jq -r .sha256)
|
||||
|
||||
# Erpnext
|
||||
erpnext_src="https://raw.githubusercontent.com/frappe/erpnext/v$erpnext_version"
|
||||
erpnext_src_hash="$(nix-prefetch-github frappe erpnext --rev "v${erpnext_version}" | jq -r .sha256)"
|
||||
|
||||
erpnext_tmpdir=$(mktemp -d)
|
||||
trap 'rm -rf "$erpnext_tmpdir"' EXIT
|
||||
|
||||
pushd "$erpnext_tmpdir"
|
||||
wget -q "$erpnext_src/yarn.lock"
|
||||
erpnext_yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
popd
|
||||
|
||||
# Frappe
|
||||
frappe_src="https://raw.githubusercontent.com/frappe/frappe/v$frappe_version"
|
||||
frappe_src_hash="$(nix-prefetch-github frappe frappe --rev "v${frappe_version}" | jq -r .sha256)"
|
||||
|
||||
frappe_tmpdir=$(mktemp -d)
|
||||
trap 'rm -rf "$frappe_tmpdir"' EXIT
|
||||
|
||||
pushd "$frappe_tmpdir"
|
||||
wget -q "$frappe_src/yarn.lock"
|
||||
frappe_yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
popd
|
||||
|
||||
cat > pin.nix << EOF
|
||||
{
|
||||
benchVersion = "$bench_version";
|
||||
erpnextVersion = "$erpnext_version";
|
||||
frappeVersion = "$frappe_version";
|
||||
hashes = {
|
||||
"benchSrcHash" = "$bench_src_hash";
|
||||
"erpnextSrcHash" = "$erpnext_src_hash";
|
||||
"erpnextYarnHash" = "$erpnext_yarn_hash";
|
||||
"frappeSrcHash" = "$frappe_src_hash";
|
||||
"frappeYarnHash" = "$frappe_yarn_hash";
|
||||
};
|
||||
}
|
||||
EOF
|
73
update.sh
Normal file
73
update.sh
Normal file
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=../../../../../ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github
|
||||
|
||||
if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates packaging data for the ERPNext packages."
|
||||
echo "Usage: $0 [git bench release tag] $1 [git erpnext release tag] $2 [git frappe release tag]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
bench_version="$1"
|
||||
erpnext_version="$3"
|
||||
frappe_version="$2"
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "$bench_version" ]; then
|
||||
bench_version="$(wget -q -O- "https://api.github.com/repos/frappe/bench/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
if [ -z "$erpnext_version" ]; then
|
||||
erpnext_version="$(wget -q -O- "https://api.github.com/repos/frappe/erpnext/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
if [ -z "$frappe_version" ]; then
|
||||
frappe_version="$(wget -q -O- "https://api.github.com/repos/frappe/frappe/releases?per_page=1" | jq -r '.[0].tag_name')"
|
||||
fi
|
||||
|
||||
# strip leading "v"
|
||||
bench_version="${bench_version#v}"
|
||||
erpnext_version="${erpnext_version#v}"
|
||||
frappe_version="${frappe_version#v}"
|
||||
|
||||
# Bench
|
||||
bench_src_hash=$(nix-prefetch-github frappe bench --rev "v${bench_version}" | jq -r .sha256)
|
||||
|
||||
popd
|
||||
|
||||
# Erpnext
|
||||
erpnext_src="https://raw.githubusercontent.com/frappe/erpnext/v$erpnext_version"
|
||||
erpnext_src_hash="$(nix-prefetch-github frappe erpnext --rev "v${erpnext_version}" | jq -r .sha256)"
|
||||
|
||||
erpnext_tmpdir=$(mktemp -d)
|
||||
trap 'rm -rf "$erpnext_tmpdir"' EXIT
|
||||
|
||||
pushd "$erpnext_tmpdir"
|
||||
wget -q "$erpnext_src/yarn.lock"
|
||||
erpnext_yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
popd
|
||||
|
||||
# Frappe
|
||||
frappe_src="https://raw.githubusercontent.com/frappe/frappe/v$frappe_version"
|
||||
frappe_src_hash="$(nix-prefetch-github frappe frappe --rev "v${frappe_version}" | jq -r .sha256)"
|
||||
|
||||
frappe_tmpdir=$(mktemp -d)
|
||||
trap 'rm -rf "$frappe_tmpdir"' EXIT
|
||||
|
||||
pushd "$frappe_tmpdir"
|
||||
wget -q "$frappe_src/yarn.lock"
|
||||
frappe_yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
||||
popd
|
||||
|
||||
cat > pin.nix << EOF
|
||||
{
|
||||
benchVersion = "$bench_version";
|
||||
erpnextVersion = "$erpnext_version";
|
||||
frappeVersion = "$frappe_version";
|
||||
hashes = {
|
||||
"benchSrcHash" = "$bench_src_hash";
|
||||
"erpnextSrcHash" = "$erpnext_src_hash";
|
||||
"erpnextYarnHash" = "$erpnext_yarn_hash";
|
||||
"frappeSrcHash" = "$frappe_src_hash";
|
||||
"frappeYarnHash" = "$frappe_yarn_hash";
|
||||
};
|
||||
}
|
||||
EOF
|
Loading…
Reference in a new issue