Compare commits
No commits in common. "cf735250b49241f6fd37d5f07f74f0ec6571aca2" and "cdac7ad5fc02c955832f974d06ff57436e37fde5" have entirely different histories.
cf735250b4
...
cdac7ad5fc
7 changed files with 36 additions and 17065 deletions
27
flake.lock
generated
27
flake.lock
generated
|
|
@ -2,11 +2,11 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"keycloak-realms": {
|
"keycloak-realms": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721562747,
|
"lastModified": 1721493163,
|
||||||
"narHash": "sha256-uHNWpe/j5Q7Ak9+SNQkCPy7t9ayQUDAt+2tZ7OFYv6Q=",
|
"narHash": "sha256-VmHIhv0VKcpL4IhP8kc5gIeIZNMS4Df9yHlPVc7LAlg=",
|
||||||
"owner": "rorosen",
|
"owner": "rorosen",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "79862894befe49e2837e3f5eefe11433eef6611a",
|
"rev": "162639ea7c3ac6578e77698ce71c2b1dc49ceffd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -21,11 +21,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732727306,
|
"lastModified": 1711263551,
|
||||||
"narHash": "sha256-4R+OVEmJ8yR7/gsxMQtC39b9f61SvELYQwKeXGAyFfo=",
|
"narHash": "sha256-lDaSa0yT0uzFXq1rB0DbD5MNi2TmG9DaTrZqZoPP/I4=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nixos-shell",
|
"repo": "nixos-shell",
|
||||||
"rev": "c61dce7cf5dc263d237ba8a7fc175b09642f96eb",
|
"rev": "b7e8a0c75c99d81039d1ca7eaab227e4814de638",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -51,17 +51,18 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733550349,
|
"lastModified": 1721471800,
|
||||||
"narHash": "sha256-NcGumB4Lr6KSDq+nIqXtNA8QwAQKDSZT7N9OTGWbTrs=",
|
"narHash": "sha256-+qIOk9CTI7yFtXJ6WU3OxLS5N9RUP57wiZ4aG9WJAxk=",
|
||||||
"owner": "NixOS",
|
"owner": "onny",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e2605d0744c2417b09f8bf850dfca42fcf537d34",
|
"rev": "1ab2b701851fdddd2480ca5a472a2f8e4a68a805",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "onny",
|
||||||
"ref": "nixos-24.11",
|
"ref": "hmr-enabler",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
|
|
|
||||||
40
flake.nix
40
flake.nix
|
|
@ -2,14 +2,15 @@
|
||||||
description = "Spawns lightweight nixos vm in a shell";
|
description = "Spawns lightweight nixos vm in a shell";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-24.11";
|
# FIXME
|
||||||
|
#nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||||
|
nixpkgs.url = "github:onny/nixpkgs/hmr-enabler";
|
||||||
nixos-shell.url = "github:Mic92/nixos-shell";
|
nixos-shell.url = "github:Mic92/nixos-shell";
|
||||||
keycloak-realms.url = "github:rorosen/nixpkgs/keycloak-realm-import";
|
keycloak-realms.url = "github:rorosen/nixpkgs/keycloak-realm-import";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixos-shell, ... }@inputs: let
|
outputs = { self, nixpkgs, nixos-shell, ... }@inputs: let
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
|
||||||
start =
|
start =
|
||||||
pkgs.writeShellScriptBin "start" ''
|
pkgs.writeShellScriptBin "start" ''
|
||||||
set -e
|
set -e
|
||||||
|
|
@ -23,48 +24,19 @@
|
||||||
specialArgs.inputs = inputs;
|
specialArgs.inputs = inputs;
|
||||||
modules = [
|
modules = [
|
||||||
(import ./vm-nextcloud.nix)
|
(import ./vm-nextcloud.nix)
|
||||||
|
nixos-shell.nixosModules.nixos-shell
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.x86_64-linux = {
|
devShells.x86_64-linux = {
|
||||||
default = with pkgs; mkShell {
|
default = with pkgs; mkShell {
|
||||||
nativeBuildInputs = with php84Packages; [
|
nativeBuildInputs = [
|
||||||
php84
|
php83Packages.composer
|
||||||
composer
|
|
||||||
php-cs-fixer
|
|
||||||
phpunit
|
phpunit
|
||||||
nodejs
|
nodejs
|
||||||
nodePackages.rollup
|
nodePackages.rollup
|
||||||
act
|
act
|
||||||
psalm
|
|
||||||
npm-check-updates
|
npm-check-updates
|
||||||
licensedigger
|
|
||||||
reuse
|
|
||||||
# FIXME nextcloud should support latest eslint version
|
|
||||||
(eslint.overrideAttrs (oldAttrs: rec {
|
|
||||||
version = "8.57.0";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "eslint";
|
|
||||||
repo = "eslint";
|
|
||||||
rev = "refs/tags/v${version}";
|
|
||||||
hash = "sha256-nXlS+k8FiN7rbxhMmRPb3OplHpl+8fWdn1nY0cjL75c=";
|
|
||||||
};
|
|
||||||
postPatch = ''
|
|
||||||
cp ${./package-lock.json} package-lock.json
|
|
||||||
'';
|
|
||||||
npmDepsHash = "sha256-DiXgAD0PvIIBxPAsdU8OOJIyvYI0JyPqu6sj7XN94hE=";
|
|
||||||
npmDeps = pkgs.fetchNpmDeps {
|
|
||||||
src = lib.fileset.toSource {
|
|
||||||
root = ./.;
|
|
||||||
fileset = lib.fileset.unions [
|
|
||||||
./package-lock.json
|
|
||||||
./package.json
|
|
||||||
];
|
|
||||||
};
|
|
||||||
name = "eslint-${version}-npm-deps";
|
|
||||||
hash = npmDepsHash;
|
|
||||||
};
|
|
||||||
}))
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ in {
|
||||||
|
|
||||||
services.caddy = lib.mkIf (cfg.webserver == "caddy") {
|
services.caddy = lib.mkIf (cfg.webserver == "caddy") {
|
||||||
enable = mkDefault true;
|
enable = mkDefault true;
|
||||||
virtualHosts."${cfg.hostName}" = {
|
virtualHosts."${if cfg.https then "https" else "http"}://${cfg.hostName}" = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
encode zstd gzip
|
encode zstd gzip
|
||||||
|
|
||||||
|
|
|
||||||
16819
package-lock.json
generated
16819
package-lock.json
generated
File diff suppressed because it is too large
Load diff
179
package.json
179
package.json
|
|
@ -1,179 +0,0 @@
|
||||||
{
|
|
||||||
"name": "eslint",
|
|
||||||
"version": "8.57.0",
|
|
||||||
"author": "Nicholas C. Zakas <nicholas+npm@nczconsulting.com>",
|
|
||||||
"description": "An AST-based pattern checker for JavaScript.",
|
|
||||||
"bin": {
|
|
||||||
"eslint": "./bin/eslint.js"
|
|
||||||
},
|
|
||||||
"main": "./lib/api.js",
|
|
||||||
"exports": {
|
|
||||||
"./package.json": "./package.json",
|
|
||||||
".": "./lib/api.js",
|
|
||||||
"./use-at-your-own-risk": "./lib/unsupported-api.js"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build:docs:update-links": "node tools/fetch-docs-links.js",
|
|
||||||
"build:site": "node Makefile.js gensite",
|
|
||||||
"build:webpack": "node Makefile.js webpack",
|
|
||||||
"build:readme": "node tools/update-readme.js",
|
|
||||||
"lint": "node Makefile.js lint",
|
|
||||||
"lint:docs:js": "node Makefile.js lintDocsJS",
|
|
||||||
"lint:docs:rule-examples": "node Makefile.js checkRuleExamples",
|
|
||||||
"lint:fix": "node Makefile.js lint -- fix",
|
|
||||||
"lint:fix:docs:js": "node Makefile.js lintDocsJS -- fix",
|
|
||||||
"release:generate:alpha": "node Makefile.js generatePrerelease -- alpha",
|
|
||||||
"release:generate:beta": "node Makefile.js generatePrerelease -- beta",
|
|
||||||
"release:generate:latest": "node Makefile.js generateRelease",
|
|
||||||
"release:generate:rc": "node Makefile.js generatePrerelease -- rc",
|
|
||||||
"release:publish": "node Makefile.js publishRelease",
|
|
||||||
"test": "node Makefile.js test",
|
|
||||||
"test:cli": "mocha",
|
|
||||||
"test:fuzz": "node Makefile.js fuzz",
|
|
||||||
"test:performance": "node Makefile.js perf"
|
|
||||||
},
|
|
||||||
"gitHooks": {
|
|
||||||
"pre-commit": "lint-staged"
|
|
||||||
},
|
|
||||||
"lint-staged": {
|
|
||||||
"*.js": "eslint --fix",
|
|
||||||
"*.md": "markdownlint --fix",
|
|
||||||
"lib/rules/*.js": [
|
|
||||||
"node tools/update-eslint-all.js",
|
|
||||||
"git add packages/js/src/configs/eslint-all.js"
|
|
||||||
],
|
|
||||||
"docs/src/rules/*.md": [
|
|
||||||
"node tools/check-rule-examples.js",
|
|
||||||
"node tools/fetch-docs-links.js",
|
|
||||||
"git add docs/src/_data/further_reading_links.json"
|
|
||||||
],
|
|
||||||
"docs/**/*.svg": "npx svgo -r --multipass"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"LICENSE",
|
|
||||||
"README.md",
|
|
||||||
"bin",
|
|
||||||
"conf",
|
|
||||||
"lib",
|
|
||||||
"messages"
|
|
||||||
],
|
|
||||||
"repository": "eslint/eslint",
|
|
||||||
"funding": "https://opencollective.com/eslint",
|
|
||||||
"homepage": "https://eslint.org",
|
|
||||||
"bugs": "https://github.com/eslint/eslint/issues/",
|
|
||||||
"dependencies": {
|
|
||||||
"@eslint-community/eslint-utils": "^4.2.0",
|
|
||||||
"@eslint-community/regexpp": "^4.6.1",
|
|
||||||
"@eslint/eslintrc": "^2.1.4",
|
|
||||||
"@eslint/js": "8.57.0",
|
|
||||||
"@humanwhocodes/config-array": "^0.11.14",
|
|
||||||
"@humanwhocodes/module-importer": "^1.0.1",
|
|
||||||
"@nodelib/fs.walk": "^1.2.8",
|
|
||||||
"@ungap/structured-clone": "^1.2.0",
|
|
||||||
"ajv": "^6.12.4",
|
|
||||||
"chalk": "^4.0.0",
|
|
||||||
"cross-spawn": "^7.0.2",
|
|
||||||
"debug": "^4.3.2",
|
|
||||||
"doctrine": "^3.0.0",
|
|
||||||
"escape-string-regexp": "^4.0.0",
|
|
||||||
"eslint-scope": "^7.2.2",
|
|
||||||
"eslint-visitor-keys": "^3.4.3",
|
|
||||||
"espree": "^9.6.1",
|
|
||||||
"esquery": "^1.4.2",
|
|
||||||
"esutils": "^2.0.2",
|
|
||||||
"fast-deep-equal": "^3.1.3",
|
|
||||||
"file-entry-cache": "^6.0.1",
|
|
||||||
"find-up": "^5.0.0",
|
|
||||||
"glob-parent": "^6.0.2",
|
|
||||||
"globals": "^13.19.0",
|
|
||||||
"graphemer": "^1.4.0",
|
|
||||||
"ignore": "^5.2.0",
|
|
||||||
"imurmurhash": "^0.1.4",
|
|
||||||
"is-glob": "^4.0.0",
|
|
||||||
"is-path-inside": "^3.0.3",
|
|
||||||
"js-yaml": "^4.1.0",
|
|
||||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
|
||||||
"levn": "^0.4.1",
|
|
||||||
"lodash.merge": "^4.6.2",
|
|
||||||
"minimatch": "^3.1.2",
|
|
||||||
"natural-compare": "^1.4.0",
|
|
||||||
"optionator": "^0.9.3",
|
|
||||||
"strip-ansi": "^6.0.1",
|
|
||||||
"text-table": "^0.2.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@babel/core": "^7.4.3",
|
|
||||||
"@babel/preset-env": "^7.4.3",
|
|
||||||
"@wdio/browser-runner": "^8.14.6",
|
|
||||||
"@wdio/cli": "^8.14.6",
|
|
||||||
"@wdio/concise-reporter": "^8.14.0",
|
|
||||||
"@wdio/globals": "^8.14.6",
|
|
||||||
"@wdio/mocha-framework": "^8.14.0",
|
|
||||||
"babel-loader": "^8.0.5",
|
|
||||||
"c8": "^7.12.0",
|
|
||||||
"chai": "^4.0.1",
|
|
||||||
"cheerio": "^0.22.0",
|
|
||||||
"common-tags": "^1.8.0",
|
|
||||||
"core-js": "^3.1.3",
|
|
||||||
"ejs": "^3.0.2",
|
|
||||||
"eslint": "file:.",
|
|
||||||
"eslint-config-eslint": "file:packages/eslint-config-eslint",
|
|
||||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
||||||
"eslint-plugin-eslint-plugin": "^5.2.1",
|
|
||||||
"eslint-plugin-internal-rules": "file:tools/internal-rules",
|
|
||||||
"eslint-plugin-jsdoc": "^46.2.5",
|
|
||||||
"eslint-plugin-n": "^16.6.0",
|
|
||||||
"eslint-plugin-unicorn": "^49.0.0",
|
|
||||||
"eslint-release": "^3.2.0",
|
|
||||||
"eslump": "^3.0.0",
|
|
||||||
"esprima": "^4.0.1",
|
|
||||||
"fast-glob": "^3.2.11",
|
|
||||||
"fs-teardown": "^0.1.3",
|
|
||||||
"glob": "^7.1.6",
|
|
||||||
"got": "^11.8.3",
|
|
||||||
"gray-matter": "^4.0.3",
|
|
||||||
"lint-staged": "^11.0.0",
|
|
||||||
"load-perf": "^0.2.0",
|
|
||||||
"markdown-it": "^12.2.0",
|
|
||||||
"markdown-it-container": "^3.0.0",
|
|
||||||
"markdownlint": "^0.32.0",
|
|
||||||
"markdownlint-cli": "^0.37.0",
|
|
||||||
"marked": "^4.0.8",
|
|
||||||
"memfs": "^3.0.1",
|
|
||||||
"metascraper": "^5.25.7",
|
|
||||||
"metascraper-description": "^5.25.7",
|
|
||||||
"metascraper-image": "^5.29.3",
|
|
||||||
"metascraper-logo": "^5.25.7",
|
|
||||||
"metascraper-logo-favicon": "^5.25.7",
|
|
||||||
"metascraper-title": "^5.25.7",
|
|
||||||
"mocha": "^8.3.2",
|
|
||||||
"mocha-junit-reporter": "^2.0.0",
|
|
||||||
"node-polyfill-webpack-plugin": "^1.0.3",
|
|
||||||
"npm-license": "^0.3.3",
|
|
||||||
"pirates": "^4.0.5",
|
|
||||||
"progress": "^2.0.3",
|
|
||||||
"proxyquire": "^2.0.1",
|
|
||||||
"recast": "^0.23.0",
|
|
||||||
"regenerator-runtime": "^0.14.0",
|
|
||||||
"rollup-plugin-node-polyfills": "^0.2.1",
|
|
||||||
"semver": "^7.5.3",
|
|
||||||
"shelljs": "^0.8.2",
|
|
||||||
"sinon": "^11.0.0",
|
|
||||||
"vite-plugin-commonjs": "^0.10.0",
|
|
||||||
"webdriverio": "^8.14.6",
|
|
||||||
"webpack": "^5.23.0",
|
|
||||||
"webpack-cli": "^4.5.0",
|
|
||||||
"yorkie": "^2.0.0"
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"ast",
|
|
||||||
"lint",
|
|
||||||
"javascript",
|
|
||||||
"ecmascript",
|
|
||||||
"espree"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
2
server
2
server
|
|
@ -1 +1 @@
|
||||||
Subproject commit 332b3efdf0df6bd489d83f58e8ffa677749d0774
|
Subproject commit 7d1ca956a7a09cb3777114d3c8849415382066fd
|
||||||
|
|
@ -1,11 +1,4 @@
|
||||||
{
|
{ pkgs, config, lib, options, inputs, ... }: {
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
options,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
memorySize = 8000;
|
memorySize = 8000;
|
||||||
|
|
@ -26,7 +19,7 @@
|
||||||
(self: super: {
|
(self: super: {
|
||||||
# Remove first run wizard and password policy check from Nextcloud
|
# Remove first run wizard and password policy check from Nextcloud
|
||||||
# package
|
# package
|
||||||
nextcloud30 = super.nextcloud30.overrideAttrs (oldAttrs: rec {
|
nextcloud29 = super.nextcloud29.overrideAttrs (oldAttrs: rec {
|
||||||
installPhase = oldAttrs.installPhase + ''
|
installPhase = oldAttrs.installPhase + ''
|
||||||
mkdir -p $out/
|
mkdir -p $out/
|
||||||
cp -R . $out/
|
cp -R . $out/
|
||||||
|
|
@ -42,17 +35,16 @@
|
||||||
# Setup Nextcloud including apps
|
# Setup Nextcloud including apps
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud30;
|
package = pkgs.nextcloud29;
|
||||||
hostName = "localhost";
|
hostName = "localhost";
|
||||||
extraApps = with config.services.nextcloud.package.packages.apps; {
|
extraApps = with config.services.nextcloud.package.packages.apps; {
|
||||||
inherit contacts calendar user_oidc hmr_enabler files_mindmap;
|
inherit contacts calendar user_oidc hmr_enabler;
|
||||||
};
|
};
|
||||||
extraAppsEnable = true;
|
extraAppsEnable = true;
|
||||||
config = {
|
config = {
|
||||||
adminuser = "admin";
|
adminuser = "admin";
|
||||||
adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
|
adminpassFile = "${pkgs.writeText "adminpass" "test123"}";
|
||||||
};
|
};
|
||||||
# FIXME currently broken
|
|
||||||
ensureUsers = {
|
ensureUsers = {
|
||||||
admin = {
|
admin = {
|
||||||
email = "admin@localhost";
|
email = "admin@localhost";
|
||||||
|
|
@ -116,6 +108,10 @@
|
||||||
target = /home/onny/projects/nixos-nextcloud-testumgebung/cleanup;
|
target = /home/onny/projects/nixos-nextcloud-testumgebung/cleanup;
|
||||||
cache = "none";
|
cache = "none";
|
||||||
};
|
};
|
||||||
|
"/var/lib/nextcloud/store-apps/files_mindmap2" = {
|
||||||
|
target = /home/onny/projects/nixos-nextcloud-testumgebung/files_mindmap2;
|
||||||
|
cache = "none";
|
||||||
|
};
|
||||||
#"/var/lib/nextcloud/server" = {
|
#"/var/lib/nextcloud/server" = {
|
||||||
# target = /home/onny/projects/nixos-nextcloud-testumgebung/server;
|
# target = /home/onny/projects/nixos-nextcloud-testumgebung/server;
|
||||||
# cache = "none";
|
# cache = "none";
|
||||||
|
|
@ -126,7 +122,9 @@
|
||||||
|
|
||||||
# Setup mail server
|
# Setup mail server
|
||||||
services.stalwart-mail = {
|
services.stalwart-mail = {
|
||||||
enable = false;
|
enable = true;
|
||||||
|
# FIXME remove package definition in 24.11
|
||||||
|
package = pkgs.stalwart-mail;
|
||||||
settings = {
|
settings = {
|
||||||
tracer.stdout = {
|
tracer.stdout = {
|
||||||
type = "stdout";
|
type = "stdout";
|
||||||
|
|
@ -232,12 +230,10 @@
|
||||||
hostname-strict-https = false;
|
hostname-strict-https = false;
|
||||||
};
|
};
|
||||||
database.passwordFile = "${pkgs.writeText "dbPassword" ''test123''}";
|
database.passwordFile = "${pkgs.writeText "dbPassword" ''test123''}";
|
||||||
realmFiles = [
|
realmFiles.OIDCDemo = builtins.toJSON realm;
|
||||||
(pkgs.writeText "OIDCDemo.json" (builtins.toJSON realm))
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
litecli
|
litecli
|
||||||
|
|
@ -256,7 +252,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nixVersions.stable;
|
package = pkgs.nixFlakes;
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue