synapse-admin: 0.10.0 -> 0.10.3, add updateScript (#395273)

This commit is contained in:
Maciej Krüger
2025-04-08 04:02:11 +02:00
committed by GitHub
2 changed files with 107 additions and 120 deletions
@@ -1,91 +0,0 @@
{
"name": "synapse-admin",
"version": "0.10.0",
"description": "Admin GUI for the Matrix.org server Synapse",
"type": "module",
"author": "Awesome Technologies Innovationslabor GmbH",
"license": "Apache-2.0",
"homepage": ".",
"repository": {
"type": "git",
"url": "https://github.com/Awesome-Technologies/synapse-admin"
},
"devDependencies": {
"@babel/preset-env": "^7.24.4",
"@babel/preset-react": "^7.24.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^15.0.2",
"@testing-library/user-event": "^14.5.2",
"@vitejs/plugin-react": "^4.0.0",
"babel-jest": "^29.7.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-prettier": "^5.1.3",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-fetch-mock": "^3.0.3",
"prettier": "^3.2.5",
"react-test-renderer": "^18.2.0",
"vite": "^5.0.0",
"vite-plugin-version-mark": "^0.0.13"
},
"dependencies": {
"@haleos/ra-language-german": "^1.0.0",
"@haxqer/ra-language-chinese": "^4.16.2",
"@mui/icons-material": "^5.15.15",
"@mui/material": "^5.15.15",
"@mui/styles": "^5.15.15",
"papaparse": "^5.4.1",
"ra-language-farsi": "^4.2.0",
"ra-language-french": "^4.16.15",
"ra-language-italian": "^3.13.1",
"react": "^18.0.0",
"react-admin": "^4.16.15",
"react-dom": "^18.0.0"
},
"scripts": {
"start": "vite serve",
"build": "vite build",
"fix:other": "yarn prettier --write",
"fix:code": "yarn test:lint --fix",
"fix": "yarn fix:code && yarn fix:other",
"prettier": "prettier --ignore-path .gitignore \"**/*.{js,jsx,json,md,scss,yaml,yml}\"",
"test:code": "jest",
"test:lint": "eslint --ignore-path .gitignore --ext .js,.jsx .",
"test:style": "yarn prettier --list-different",
"test": "yarn test:style && yarn test:lint && yarn test:code"
},
"babel": {
"presets": [
"@babel/preset-env",
[
"@babel/preset-react",
{
"runtime": "automatic"
}
]
]
},
"eslintConfig": {
"extends": "react-app"
},
"jest": {
"testEnvironment": "jsdom",
"setupFilesAfterEnv": [
"<rootDir>/src/setupTests.js"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
+107 -29
View File
@@ -1,67 +1,145 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
mkYarnPackage,
nodejs,
yarn-berry,
cacert,
nix-update-script,
formats,
baseUrl ? null,
writeShellScriptBin,
}:
mkYarnPackage rec {
let
config = lib.optionalAttrs (baseUrl != null) { restrictBaseUrl = baseUrl; };
configFormat = formats.json { };
configFile = configFormat.generate "synapse-admin-config" config;
in
stdenv.mkDerivation (finalAttrs: {
pname = "synapse-admin";
version = "0.10.0";
version = "0.10.3";
src = fetchFromGitHub {
owner = "Awesome-Technologies";
repo = "synapse-admin";
tag = version;
sha256 = "sha256-3MC5PCEwYfZzJy9AW9nHTpvU49Lk6wbYC4Rcv9J9MEg=";
tag = finalAttrs.version;
hash = "sha256-o2HzGuKjmIeJ+Kxd9KiFWmQgGVtvRdydiQJlr6P0+s8=";
};
packageJSON = ./package.json;
# we cannot use fetchYarnDeps because that doesn't support yarn 2/berry lockfiles
yarnOfflineCache = stdenv.mkDerivation {
pname = "yarn-deps";
inherit (finalAttrs) version src;
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-vpCwPL1B+hbIaVSHtlkGjPAteu9BFNNmCTE66CSyFkg=";
nativeBuildInputs = [ yarn-berry ];
dontInstall = true;
env = {
YARN_ENABLE_TELEMETRY = 0;
NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt";
};
supportedArchitectures = builtins.toJSON {
os = [
"darwin"
"linux"
];
cpu = [
"arm"
"arm64"
"ia32"
"x64"
];
libc = [
"glibc"
"musl"
];
};
configurePhase = ''
runHook preConfigure
export HOME="$NIX_BUILD_TOP"
yarn config set enableGlobalCache false
yarn config set cacheFolder $out
yarn config set --json supportedArchitectures "$supportedArchitectures"
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
mkdir -p $out
yarn install --immutable --mode skip-build
runHook postBuild
'';
outputHash = "sha256-hIz+tWaDiq9qslEKjRyNzC0z1zA5TFgVr/hf3/T6YGw=";
outputHashMode = "recursive";
};
nativeBuildInputs = [
(writeShellScriptBin "git" "echo ${version}")
nodejs
yarn-berry
];
NODE_ENV = "production";
${if baseUrl != null then "REACT_APP_SERVER" else null} = baseUrl;
env = {
NODE_ENV = "production";
};
# error:0308010C:digital envelope routines::unsupported
NODE_OPTIONS = "--openssl-legacy-provider";
postPatch = ''
substituteInPlace vite.config.ts \
--replace-fail "git describe --tags" "echo ${finalAttrs.version}"
'';
configurePhase = ''
runHook preConfigure
export HOME="$NIX_BUILD_TOP"
yarn config set enableGlobalCache false
yarn config set cacheFolder $yarnOfflineCache
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
export HOME=$(mktemp -d)
yarn --offline run build
yarn install --immutable --immutable-cache
yarn build
runHook postBuild
'';
distPhase = ''
runHook preDist
installPhase = ''
runHook preInstall
cp -r deps/synapse-admin/dist $out
cp -r dist $out
cp ${configFile} $out/config.json
runHook postDist
runHook postInstall
'';
dontFixup = true;
dontInstall = true;
passthru.updateScript = nix-update-script { };
meta = with lib; {
meta = {
description = "Admin UI for Synapse Homeservers";
homepage = "https://github.com/Awesome-Technologies/synapse-admin";
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [
changelog = "https://github.com/Awesome-Technologies/synapse-admin/releases/tag/${finalAttrs.version}";
license = lib.licenses.asl20;
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
maintainers = with lib.maintainers; [
mkg20001
ma27
];
};
}
})