mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-12 23:23:36 +00:00
Merge pull request #325683 from georgyo/lemmy-0.19.5
Lemmy 0.19.3 -> 0.19.5
This commit is contained in:
commit
eecc21df10
@ -1,149 +0,0 @@
|
||||
{
|
||||
"name": "lemmy-ui",
|
||||
"description": "An isomorphic UI for lemmy",
|
||||
"version": "0.19.3",
|
||||
"author": "Dessalines <tyhou13@gmx.com>",
|
||||
"license": "AGPL-3.0-only",
|
||||
"scripts": {
|
||||
"analyze": "webpack --mode=none",
|
||||
"build:dev": "webpack --env COMMIT_HASH=$(git rev-parse --short HEAD) --mode=development",
|
||||
"build:prod": "webpack --env COMMIT_HASH=$(git rev-parse --short HEAD) --mode=production",
|
||||
"clean": "yarn run rimraf dist",
|
||||
"dev": "yarn build:dev --watch",
|
||||
"lint": "yarn translations:generate && tsc --noEmit && eslint --report-unused-disable-directives --ext .js,.ts,.tsx \"src/**\" && prettier --check \"src/**/*.{ts,tsx,js,css,scss}\"",
|
||||
"postinstall": "husky install",
|
||||
"prebuild:dev": "yarn clean && node generate_translations.js",
|
||||
"prebuild:prod": "yarn clean && node generate_translations.js",
|
||||
"prepare": "husky install",
|
||||
"themes:build": "sass src/assets/css/themes/:src/assets/css/themes",
|
||||
"themes:watch": "sass --watch src/assets/css/themes/:src/assets/css/themes",
|
||||
"translations:generate": "node generate_translations.js",
|
||||
"translations:init": "git submodule init && yarn translations:update",
|
||||
"translations:update": "git submodule update --remote --recursive"
|
||||
},
|
||||
"repository": "https://github.com/LemmyNet/lemmy-ui",
|
||||
"engines": {
|
||||
"node": ">=8.9.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/plugin-proposal-decorators": "^7.23.7",
|
||||
"@babel/plugin-transform-runtime": "^7.23.7",
|
||||
"@babel/plugin-transform-typescript": "^7.23.6",
|
||||
"@babel/preset-env": "^7.23.8",
|
||||
"@babel/preset-typescript": "^7.21.5",
|
||||
"@babel/runtime": "^7.23.8",
|
||||
"@emoji-mart/data": "^1.1.0",
|
||||
"@shortcm/qr-image": "^9.0.2",
|
||||
"autosize": "^6.0.1",
|
||||
"babel-loader": "^9.1.3",
|
||||
"babel-plugin-inferno": "^6.7.1",
|
||||
"bootstrap": "^5.3.1",
|
||||
"check-password-strength": "^2.0.7",
|
||||
"classnames": "^2.5.1",
|
||||
"clean-webpack-plugin": "^4.0.0",
|
||||
"cookie": "^0.6.0",
|
||||
"copy-webpack-plugin": "^12.0.2",
|
||||
"css-loader": "^6.9.1",
|
||||
"date-fns": "^3.2.0",
|
||||
"emoji-mart": "^5.4.0",
|
||||
"emoji-short-name": "^2.0.0",
|
||||
"express": "~4.18.2",
|
||||
"history": "^5.3.0",
|
||||
"html-to-text": "^9.0.5",
|
||||
"husky": "^8.0.3",
|
||||
"i18next": "^23.7.16",
|
||||
"inferno": "^8.2.3",
|
||||
"inferno-create-element": "^8.2.3",
|
||||
"inferno-helmet": "^5.2.1",
|
||||
"inferno-hydrate": "^8.2.3",
|
||||
"inferno-i18next-dess": "0.0.2",
|
||||
"inferno-router": "^8.2.3",
|
||||
"inferno-server": "^8.2.3",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"lemmy-js-client": "0.19.2-alpha.1",
|
||||
"lodash.isequal": "^4.5.0",
|
||||
"markdown-it": "^14.0.0",
|
||||
"markdown-it-bidi": "^0.1.0",
|
||||
"markdown-it-container": "^4.0.0",
|
||||
"markdown-it-emoji": "^3.0.0",
|
||||
"markdown-it-footnote": "^4.0.0",
|
||||
"markdown-it-highlightjs": "^4.0.1",
|
||||
"markdown-it-html5-embed": "^1.0.0",
|
||||
"markdown-it-ruby": "^0.1.1",
|
||||
"markdown-it-sub": "^2.0.0",
|
||||
"markdown-it-sup": "^2.0.0",
|
||||
"mini-css-extract-plugin": "^2.7.7",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"run-node-webpack-plugin": "^1.3.0",
|
||||
"rxjs": "^7.8.1",
|
||||
"sanitize-html": "^2.11.0",
|
||||
"sass": "^1.70.0",
|
||||
"sass-loader": "^14.0.0",
|
||||
"serialize-javascript": "^6.0.2",
|
||||
"service-worker-webpack": "^1.0.0",
|
||||
"sharp": "0.32.6",
|
||||
"tippy.js": "^6.3.7",
|
||||
"toastify-js": "^1.12.0",
|
||||
"tributejs": "^5.1.3",
|
||||
"webpack": "^5.89.0",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"webpack-node-externals": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.23.7",
|
||||
"@types/autosize": "^4.0.0",
|
||||
"@types/bootstrap": "^5.2.6",
|
||||
"@types/cookie": "^0.6.0",
|
||||
"@types/express": "^4.17.17",
|
||||
"@types/html-to-text": "^9.0.0",
|
||||
"@types/lodash.isequal": "^4.5.6",
|
||||
"@types/markdown-it": "^13.0.7",
|
||||
"@types/markdown-it-container": "^2.0.6",
|
||||
"@types/node": "^20.11.5",
|
||||
"@types/path-browserify": "^1.0.0",
|
||||
"@types/sanitize-html": "^2.9.0",
|
||||
"@types/serialize-javascript": "^5.0.1",
|
||||
"@types/toastify-js": "^1.12.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
||||
"@typescript-eslint/parser": "^6.19.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-plugin-inferno": "^7.33.3",
|
||||
"eslint-plugin-jsx-a11y": "^6.7.1",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"import-sort-style-module": "^6.0.0",
|
||||
"lint-staged": "^15.2.0",
|
||||
"prettier": "^3.2.4",
|
||||
"prettier-plugin-import-sort": "^0.0.7",
|
||||
"prettier-plugin-organize-imports": "^3.2.3",
|
||||
"prettier-plugin-packagejson": "^2.4.9",
|
||||
"rimraf": "^5.0.0",
|
||||
"sortpack": "^2.4.0",
|
||||
"style-loader": "^3.3.4",
|
||||
"terser": "^5.27.0",
|
||||
"typescript": "^5.3.3",
|
||||
"typescript-language-server": "^4.3.1",
|
||||
"webpack-bundle-analyzer": "^4.9.0",
|
||||
"webpack-dev-server": "4.15.1"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{css, scss}": [
|
||||
"prettier --write"
|
||||
],
|
||||
"*.{ts,tsx,js}": [
|
||||
"prettier --write",
|
||||
"eslint --fix"
|
||||
],
|
||||
"package.json": [
|
||||
"sortpack"
|
||||
]
|
||||
},
|
||||
"packageManager": "yarn@1.22.19",
|
||||
"engineStrict": true,
|
||||
"importSort": {
|
||||
".js, .jsx, .ts, .tsx": {
|
||||
"style": "module",
|
||||
"parser": "typescript"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"serverVersion": "0.19.3",
|
||||
"uiVersion": "0.19.3",
|
||||
"serverHash": "sha256-iO7bY2oChx0cZbwgXMrrV4e1kffop9s4xmepNywnApU=",
|
||||
"serverCargoHash": "sha256-XXfg0o/LQ/imnsHsREoBXMDP1hU5Stxv0s6AP+o+USc=",
|
||||
"uiHash": "sha256-6GGiKCNL0PALdz0W0d1OOPyMIA5kaoL3148j9GWzrMM=",
|
||||
"uiYarnDepsHash": "sha256-UQ+B2vF34L+HuisyO7wdW2zCfEEGa8YdnoaB4jHi+DY="
|
||||
"serverVersion": "0.19.5",
|
||||
"uiVersion": "0.19.5",
|
||||
"serverHash": "sha256-ellHimZdbB5EQSHVsppBNYyZOODpUADvUn7u6JOu1ns=",
|
||||
"serverCargoHash": "sha256-UdFw8RPKYLqY98So8z9kiaVCl3b8KaqIoUMK/EV2uNM=",
|
||||
"uiHash": "sha256-bhbZQ8tDnJ6TWYj+ki/JQW8cbVjRfLzxaXRDX9JAIm4=",
|
||||
"uiPNPMDepsHash": "sha256-aJPa46a2W8xHlDzFt0QMFQtEoUSkFQtN9VhaQOvoVio="
|
||||
}
|
||||
|
@ -50,6 +50,10 @@ rustPlatform.buildRustPackage rec {
|
||||
checkFlags = [
|
||||
# test requires database access
|
||||
"--skip=session_middleware::tests::test_session_auth"
|
||||
|
||||
# tests require network access
|
||||
"--skip=scheduled_tasks::tests::test_nodeinfo_mastodon_social"
|
||||
"--skip=scheduled_tasks::tests::test_nodeinfo_voyager_lemmy_ml"
|
||||
];
|
||||
|
||||
passthru.updateScript = ./update.py;
|
||||
@ -59,7 +63,7 @@ rustPlatform.buildRustPackage rec {
|
||||
description = "🐀 Building a federated alternative to reddit in rust";
|
||||
homepage = "https://join-lemmy.org/";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ happysalada billewanick ];
|
||||
maintainers = with maintainers; [ happysalada billewanick georgyo ];
|
||||
mainProgram = "lemmy_server";
|
||||
};
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ lib
|
||||
, mkYarnPackage
|
||||
, stdenvNoCC
|
||||
, libsass
|
||||
, nodejs
|
||||
, python3
|
||||
, pkg-config
|
||||
, pnpm_9
|
||||
, fetchFromGitHub
|
||||
, fetchYarnDeps
|
||||
, nixosTests
|
||||
, vips
|
||||
, nodePackages
|
||||
@ -14,85 +14,70 @@
|
||||
let
|
||||
pinData = lib.importJSON ./pin.json;
|
||||
|
||||
pkgConfig = {
|
||||
node-sass = {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libsass python3 ];
|
||||
postInstall = ''
|
||||
LIBSASS_EXT=auto yarn --offline run build
|
||||
rm build/config.gypi
|
||||
'';
|
||||
};
|
||||
sharp = {
|
||||
nativeBuildInputs = [ pkg-config nodePackages.node-gyp nodePackages.semver ];
|
||||
buildInputs = [ vips ];
|
||||
postInstall = ''
|
||||
yarn --offline run install
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
name = "lemmy-ui";
|
||||
in
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
||||
pname = "lemmy-ui";
|
||||
version = pinData.uiVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
src = with finalAttrs; fetchFromGitHub {
|
||||
owner = "LemmyNet";
|
||||
repo = name;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
hash = pinData.uiHash;
|
||||
};
|
||||
in
|
||||
mkYarnPackage {
|
||||
|
||||
inherit src pkgConfig name version;
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pnpm_9.configHook
|
||||
];
|
||||
|
||||
buildInputs = [libsass vips ];
|
||||
|
||||
extraBuildInputs = [ libsass ];
|
||||
|
||||
packageJSON = ./package.json;
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
hash = pinData.uiYarnDepsHash;
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = pinData.uiPNPMDepsHash;
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace ./package.json \
|
||||
--replace '$(git rev-parse --short HEAD)' "${src.rev}" \
|
||||
--replace 'yarn clean' 'yarn --offline clean' \
|
||||
--replace 'yarn run rimraf dist' 'yarn --offline run rimraf dist'
|
||||
'';
|
||||
|
||||
yarnPreBuild = ''
|
||||
export npm_config_nodedir=${nodejs}
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
# Yarn writes cache directories etc to $HOME.
|
||||
export HOME=$PWD/yarn_home
|
||||
runHook preBuild
|
||||
|
||||
ln -sf $PWD/node_modules $PWD/deps/lemmy-ui/
|
||||
echo 'export const VERSION = "${version}";' > $PWD/deps/lemmy-ui/src/shared/version.ts
|
||||
pnpm build:prod
|
||||
|
||||
yarn --offline build:prod
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
# installPhase = ''
|
||||
# runHook preInstall
|
||||
|
||||
# mkdir -p $out/{bin,lib/${finalAttrs.pname}}
|
||||
# mv {dist,node_modules} $out/lib/${finalAttrs.pname}
|
||||
|
||||
# runHook postInstall
|
||||
|
||||
# '';
|
||||
preInstall = ''
|
||||
mkdir $out
|
||||
cp -R ./deps/lemmy-ui/dist $out
|
||||
cp -R ./dist $out
|
||||
cp -R ./node_modules $out
|
||||
'';
|
||||
|
||||
|
||||
distPhase = "true";
|
||||
|
||||
passthru.updateScript = ./update.py;
|
||||
passthru.tests.lemmy-ui = nixosTests.lemmy;
|
||||
passthru.commit_sha = src.rev;
|
||||
passthru.commit_sha = finalAttrs.src.rev;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Building a federated alternative to reddit in rust";
|
||||
homepage = "https://join-lemmy.org/";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ happysalada billewanick ];
|
||||
maintainers = with maintainers; [ happysalada billewanick georgyo ];
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -30,7 +30,7 @@ class Pin:
|
||||
serverHash: str = ""
|
||||
serverCargoHash: str = ""
|
||||
uiHash: str = ""
|
||||
uiYarnDepsHash: str = ""
|
||||
uiPNPMDepsHash: str = ""
|
||||
|
||||
filename: Optional[str] = None
|
||||
|
||||
@ -136,18 +136,10 @@ def make_server_pin(pin: Pin, attr: str) -> None:
|
||||
pin.write()
|
||||
|
||||
|
||||
def make_ui_pin(pin: Pin, package_json: str, attr: str) -> None:
|
||||
# Save a copy of package.json
|
||||
print("Getting package.json")
|
||||
with urlopen(
|
||||
f"https://raw.githubusercontent.com/{OWNER}/{UI_REPO}/{pin.uiVersion}/package.json"
|
||||
) as resp:
|
||||
with open(os.path.join(SCRIPT_DIR, package_json), "wb") as fd:
|
||||
fd.write(resp.read())
|
||||
|
||||
def make_ui_pin(pin: Pin, attr: str) -> None:
|
||||
pin.uiHash = prefetch_github(OWNER, UI_REPO, pin.uiVersion)
|
||||
pin.write()
|
||||
pin.uiYarnDepsHash = get_fod_hash(attr)
|
||||
pin.uiPNPMDepsHash = get_fod_hash(attr)
|
||||
pin.write()
|
||||
|
||||
|
||||
@ -160,4 +152,4 @@ if __name__ == "__main__":
|
||||
|
||||
pin = Pin(server_version, ui_version, filename=os.path.join(SCRIPT_DIR, "pin.json"))
|
||||
make_server_pin(pin, "lemmy-server")
|
||||
make_ui_pin(pin, "package.json", "lemmy-ui")
|
||||
make_ui_pin(pin, "lemmy-ui")
|
||||
|
Loading…
Reference in New Issue
Block a user