diff --git a/build/publish.ts b/build/publish.ts index 56bad0300..e215272e3 100644 --- a/build/publish.ts +++ b/build/publish.ts @@ -4,14 +4,14 @@ import { writeFileSync } from 'fs'; import path from 'path'; import ora from 'ora'; import packageJson from 'package-json'; -import { gt } from 'semver'; +import { gt, prerelease } from 'semver'; import { getWorkspaces, spawnAsync } from './utils'; const { CI, GITHUB_EVENT_NAME, GITHUB_REF, } = process.env; -const tag = GITHUB_REF === 'refs/heads/master' ? 'latest' : GITHUB_REF === 'refs/heads/develop' ? 'dev' : undefined; +const tag = GITHUB_REF === 'refs/heads/master' ? 'latest' : GITHUB_REF === 'refs/heads/next' ? 'dev' : undefined; if (CI && (!tag || GITHUB_EVENT_NAME !== 'push')) { console.log('publish skipped.'); @@ -54,8 +54,10 @@ if (CI && (!tag || GITHUB_EVENT_NAME !== 'push')) { console.log(`publishing ${name}@${bumpMap[name]} ...`); if (tag === 'dev') { const pkg = require(`${name}/package.json`); - pkg.version += '-dev'; - writeFileSync(path.resolve(`${name}/package.json`), JSON.stringify(pkg)); + if (!prerelease(pkg.version)) { + pkg.version += '-dev'; + writeFileSync(path.resolve(`${name}/package.json`), JSON.stringify(pkg)); + } } await spawnAsync( `yarn npm publish --access public --tag ${tag}`, diff --git a/packages/elastic/index.ts b/packages/elastic/index.ts index ae8a228aa..c8b1abbdf 100644 --- a/packages/elastic/index.ts +++ b/packages/elastic/index.ts @@ -82,6 +82,13 @@ async function run({ domainId }, report) { } export const apply = (ctx: Context) => { + ctx.setting.SystemSetting(Schema.object({ + 'elastic-search': Schema.object({ + url: Schema.string().role('url').default('http://127.0.0.1:9200'), + indexSize: Schema.number().role('indexSize').default(10000).min(0).step(1), + }), + })); + ctx.on('problem/add', async (doc, docId) => { await client.index({ index: 'problem', diff --git a/packages/elastic/package.json b/packages/elastic/package.json index f180a1a22..dd14ba924 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -1,11 +1,14 @@ { "name": "@hydrooj/elastic-search", - "version": "1.1.8", + "version": "1.2.0-alpha.0", "main": "index.ts", "repository": "https://github.com/hydro-dev/Hydro", "author": "undefined ", "license": "AGPL-3.0-or-later", "dependencies": { "@elastic/elasticsearch": "^8.17.1" + }, + "engines": { + "hydrooj": ">=5.0.0-alpha.0" } } diff --git a/packages/elastic/setting.yaml b/packages/elastic/setting.yaml deleted file mode 100644 index f40c9cc15..000000000 --- a/packages/elastic/setting.yaml +++ /dev/null @@ -1,4 +0,0 @@ -url: - value: http://127.0.0.1:9200 -indexSize: - value: 10000 \ No newline at end of file diff --git a/packages/geoip/index.ts b/packages/geoip/index.ts index 7e6dd8710..2fe923bb9 100644 --- a/packages/geoip/index.ts +++ b/packages/geoip/index.ts @@ -36,6 +36,6 @@ export default class GeoIPService extends Service { } } -export async function apply(ctx: Context) { - ctx.set('geoip', new GeoIPService(ctx)); +export function apply(ctx: Context) { + ctx.plugin(GeoIPService); } diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 177a189b6..46f56758f 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "3.4.4", + "version": "3.5.0-alpha.0", "main": "./src/index.ts", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index c1745c591..cd6859cd9 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "4.19.1", + "version": "5.0.0-alpha.0", "bin": "bin/hydrooj.js", "main": "src/plugin-api", "module": "src/plugin-api", diff --git a/packages/migrate/package.json b/packages/migrate/package.json index ff339e0dc..0d138687b 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/migrate", - "version": "0.4.3", + "version": "0.4.4-alpha.0", "main": "index.ts", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", diff --git a/packages/onsite-toolkit/package.json b/packages/onsite-toolkit/package.json index 1589656c0..cf2d16a7e 100644 --- a/packages/onsite-toolkit/package.json +++ b/packages/onsite-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/onsite-toolkit", - "version": "0.0.4", + "version": "0.0.5-alpha.0", "dependencies": { "@react-spring/web": "^9.7.5", "react-use": "^17.6.0" diff --git a/packages/prom-client/index.ts b/packages/prom-client/index.ts index 0eee59696..47d2fc44b 100644 --- a/packages/prom-client/index.ts +++ b/packages/prom-client/index.ts @@ -1,7 +1,7 @@ import { hostname } from 'os'; import { AggregatorRegistry, Metric } from 'prom-client'; import { - Context, Handler, superagent, SystemModel, + Context, Handler, Schema, superagent, SystemModel, } from 'hydrooj'; import { createRegistry } from './metrics'; @@ -43,6 +43,14 @@ class MetricsHandler extends Handler { } export function apply(ctx: Context) { + ctx.setting.SystemSetting(Schema.object({ + 'prom-client': Schema.object({ + name: Schema.string().description('basic auth username while requesting metrics').default('admin'), + password: Schema.string().role('password').description('basic auth password while requesting metrics').default('admin'), + gateway: Schema.string().role('gateway').description('Leave blank to disable push gateway').default(''), + collect_rate: Schema.number().role('collect_rate').default(1).description('Collect rate'), + }), + })); if (process.env.HYDRO_CLI) return; const registry = createRegistry(ctx); ctx.on('metrics', (id, metrics) => { instances[id] = metrics; }); diff --git a/packages/prom-client/package.json b/packages/prom-client/package.json index 3c61e33d6..6cb655782 100644 --- a/packages/prom-client/package.json +++ b/packages/prom-client/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/prom-client", - "version": "0.1.10", + "version": "0.2.0-alpha.0", "main": "index.ts", "dependencies": { "prom-client": "^15.1.3" diff --git a/packages/prom-client/setting.yaml b/packages/prom-client/setting.yaml deleted file mode 100644 index 96c1efb86..000000000 --- a/packages/prom-client/setting.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: - type: text - name: Auth Username - desc: basic auth username while requesting metrics - default: admin -password: - type: password - name: Auth Password - desc: basic auth password while requesting metrics - default: admin -collect_rate: - type: number - name: Collect Rate - desc: The collect rate scale (default:1) - default: 1 -gateway: - type: text - name: Push gateway endpoint - desc: Leave blank to disable push gateway - default: "" diff --git a/packages/sonic/package.json b/packages/sonic/package.json index 843faf1ec..bf3fb051d 100644 --- a/packages/sonic/package.json +++ b/packages/sonic/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/sonic", - "version": "1.3.3", + "version": "1.4.0-alpha.0", "description": "Sonic search service", "main": "index.ts", "preferUnplugged": true, diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index ab2e52578..34586fc19 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.57.0", + "version": "4.58.0-alpha.0", "author": "undefined ", "license": "AGPL-3.0", "main": "index.ts", diff --git a/packages/utils/package.json b/packages/utils/package.json index ed10b085a..e4f8016ea 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.4.33", + "version": "1.4.34-alpha.0", "description": "hydrooj utils", "main": "lib/utils.ts", "repository": "https://github.com/hydro-dev/Hydro.git",