mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-15 14:26:33 +01:00
e0816431a2
Otherwise references to the Python interpreter inside the set are wrong, as demonstrated by: ``` nix with import <nixpkgs> { }; let python' = python3.override { packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); }; }; in python'.pkgs.python.pkgs.requests ``` which returns the _non_ overriden requests. And the same with `self`: ``` with import <nixpkgs> { }; let python' = python3.override { self = python'; packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); }; }; in python'.pkgs.python.pkgs.requests ``` which returns the overriden requests. This can manifest itself as file collisions when constructing environments or as subtly incorrect dependency graphs.
160 lines
3.4 KiB
Nix
160 lines
3.4 KiB
Nix
{ lib
|
|
, fetchFromGitLab
|
|
, makeWrapper
|
|
, python3
|
|
, antlr4_9
|
|
}:
|
|
|
|
let
|
|
|
|
python = python3.override {
|
|
self = python;
|
|
packageOverrides = self: super: {
|
|
antlr4-python3-runtime = super.antlr4-python3-runtime.override {
|
|
antlr4 = antlr4_9;
|
|
};
|
|
|
|
baserow_premium = self.buildPythonPackage rec {
|
|
pname = "baserow_premium";
|
|
version = "1.12.1";
|
|
format = "setuptools";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "bramw";
|
|
repo = pname;
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-zT2afl3QNE2dO3JXjsZXqSmm1lv3EorG3mYZLQQMQ2Q=";
|
|
};
|
|
|
|
sourceRoot = "${src.name}/premium/backend";
|
|
|
|
doCheck = false;
|
|
};
|
|
|
|
django = super.django_3;
|
|
};
|
|
};
|
|
in
|
|
|
|
with python.pkgs; buildPythonApplication rec {
|
|
pname = "baserow";
|
|
version = "1.12.1";
|
|
format = "setuptools";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "bramw";
|
|
repo = pname;
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-zT2afl3QNE2dO3JXjsZXqSmm1lv3EorG3mYZLQQMQ2Q=";
|
|
};
|
|
|
|
sourceRoot = "${src.name}/backend";
|
|
|
|
postPatch = ''
|
|
# use input files to not depend on outdated peer dependencies
|
|
mv requirements/base.{in,txt}
|
|
mv requirements/dev.{in,txt}
|
|
|
|
# remove dependency constraints
|
|
sed -i requirements/base.txt \
|
|
-e 's/[~<>=].*//' -i requirements/base.txt \
|
|
-e 's/zope-interface/zope.interface/' \
|
|
-e 's/\[standard\]//'
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
makeWrapper
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
autobahn
|
|
advocate
|
|
antlr4-python3-runtime
|
|
boto3
|
|
cached-property
|
|
celery-redbeat
|
|
channels
|
|
channels-redis
|
|
daphne
|
|
dj-database-url
|
|
django-celery-beat
|
|
django-celery-email
|
|
django-cors-headers
|
|
django-health-check
|
|
django-redis
|
|
django-storages
|
|
drf-jwt
|
|
drf-spectacular
|
|
faker
|
|
gunicorn
|
|
importlib-resources
|
|
itsdangerous
|
|
pillow
|
|
pyparsing
|
|
psutil
|
|
psycopg2
|
|
redis
|
|
regex
|
|
requests
|
|
service-identity
|
|
setuptools
|
|
tqdm
|
|
twisted
|
|
unicodecsv
|
|
uvicorn
|
|
watchgod
|
|
zipp
|
|
] ++ uvicorn.optional-dependencies.standard;
|
|
|
|
postInstall = ''
|
|
wrapProgram $out/bin/baserow \
|
|
--prefix PYTHONPATH : "$PYTHONPATH" \
|
|
--prefix DJANGO_SETTINGS_MODULE : "baserow.config.settings.base"
|
|
'';
|
|
|
|
nativeCheckInputs = [
|
|
baserow_premium
|
|
boto3
|
|
freezegun
|
|
httpretty
|
|
openapi-spec-validator
|
|
pyinstrument
|
|
pytestCheckHook
|
|
pytest-django
|
|
pytest-unordered
|
|
responses
|
|
zope-interface
|
|
];
|
|
|
|
fixupPhase = ''
|
|
cp -r src/baserow/contrib/database/{api,action,trash,formula,file_import} \
|
|
$out/${python.sitePackages}/baserow/contrib/database/
|
|
cp -r src/baserow/core/management/backup $out/${python.sitePackages}/baserow/core/management/
|
|
'';
|
|
|
|
disabledTests = [
|
|
# Disable linting checks
|
|
"flake8_plugins"
|
|
];
|
|
|
|
disabledTestPaths = [
|
|
# Disable premium tests
|
|
"../premium/backend/src/baserow_premium"
|
|
"../premium/backend/tests/baserow_premium"
|
|
# Disable database related tests
|
|
"tests/baserow/contrib/database"
|
|
"tests/baserow/api"
|
|
"tests/baserow/core"
|
|
"tests/baserow/ws"
|
|
];
|
|
|
|
DJANGO_SETTINGS_MODULE = "baserow.config.settings.test";
|
|
|
|
meta = with lib; {
|
|
description = "No-code database and Airtable alternative";
|
|
homepage = "https://baserow.io";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ onny ];
|
|
mainProgram = "baserow";
|
|
};
|
|
}
|