Skip to content

Commit 50530ad

Browse files
committed
Merge remote-tracking branch 'origin/main' into MILAB-6848_fix-sc-tcr-chain-labels
2 parents 0cb7124 + 27856bf commit 50530ad

59 files changed

Lines changed: 2535 additions & 3022 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yaml

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,67 +11,73 @@ on:
1111
workflow_dispatch: {}
1212
jobs:
1313
init:
14-
if: github.repository != 'milaboratory/platforma-sequence-properties'
15-
runs-on: ubuntu-latest
14+
runs-on: hz-ubuntu-dind
1615
steps:
1716
- uses: milaboratory/github-ci/actions/context/init@v4
1817
with:
1918
version-canonize: false
2019
branch-versioning: main
2120
run:
22-
if: github.repository != 'milaboratory/platforma-sequence-properties'
2321
needs:
2422
- init
25-
2623
uses: milaboratory/github-ci/.github/workflows/node-simple-pnpm.yaml@v4
2724
with:
28-
app-name: 'Block: sequence-properties'
25+
app-name: 'Block: Sequence Properties'
2926
app-name-slug: 'block-sequence-properties'
30-
31-
node-version: '20.x'
32-
build-script-name: 'build'
27+
node-version: '22.x'
28+
gha-runner-label: hz-ubuntu-dind
29+
build-script-name: 'build:dev-local'
30+
build-before-publish-script-name: 'build:release'
3331
pnpm-recursive-build: false
3432

3533
test: true
3634
test-script-name: 'test'
3735
pnpm-recursive-tests: false
3836
team-id: 'ciplopen'
3937

38+
publish-to-public: 'true'
4039
package-path: 'block'
41-
publish-to-public: true
42-
create-tag: true
40+
create-tag: 'true'
41+
42+
# Require the published `block` package to be bumped by a changeset on
43+
# PRs (empty changeset or the `skip-changelog` label waives it). Needs
44+
# the input to exist on the pinned `@v4` reusable workflow.
45+
require-package-path-bump: true
4346

4447
npmrc-config: |
4548
{
4649
"registries": {
4750
"https://registry.npmjs.org/": {
48-
"scopes": ["milaboratories", "platforma-open", "platforma-sdk"],
51+
"scopes": ["milaboratories", "platforma-sdk", "platforma-open"],
4952
"tokenVar": "NPMJS_TOKEN"
50-
},
51-
"https://npm.pkg.github.com/": {
52-
"scopes": ["milaboratory"],
53-
"tokenVar": "NODE_AUTH_TOKEN"
5453
}
5554
}
5655
}
57-
5856
secrets:
5957
env: |
6058
{ "PL_LICENSE": ${{ toJSON(secrets.MI_LICENSE) }},
6159
"MI_LICENSE": ${{ toJSON(secrets.MI_LICENSE) }},
62-
6360
"NPMJS_TOKEN": ${{ toJSON(secrets.NPMJS_TOKEN) }},
6461
"PL_CI_TEST_USER": ${{ toJSON(secrets.PL_CI_TEST_USER) }},
6562
"PL_CI_TEST_PASSWORD": ${{ toJSON(secrets.PL_CI_TEST_PASSWORD) }},
6663
6764
"AWS_CI_IAM_MONOREPO_SIMPLE_ROLE": ${{ toJSON(secrets.AWS_CI_IAM_MONOREPO_SIMPLE_ROLE) }},
6865
"AWS_CI_TURBOREPO_S3_BUCKET": ${{ toJSON(secrets.AWS_CI_TURBOREPO_S3_BUCKET) }},
66+
67+
"HZ_CI_TURBO_S3_BUCKET": ${{ toJSON(vars.HZ_CI_TURBO_S3_BUCKET) }},
68+
"HZ_CI_TURBO_S3_ENDPOINT": ${{ toJSON(vars.HZ_CI_TURBO_S3_ENDPOINT) }},
69+
"HZ_CI_TURBO_S3_REGION": ${{ toJSON(vars.HZ_CI_TURBO_S3_REGION) }},
70+
"HZ_CI_TURBO_S3_ACCESS_KEY": ${{ toJSON(secrets.HZ_CI_TURBO_S3_ACCESS_KEY) }},
71+
"HZ_CI_TURBO_S3_SECRET_KEY": ${{ toJSON(secrets.HZ_CI_TURBO_S3_SECRET_KEY) }},
72+
"HZ_CI_CACHE_S3_ACCESS_KEY": ${{ toJSON(secrets.HZ_CI_CACHE_S3_ACCESS_KEY) }},
73+
"HZ_CI_CACHE_S3_SECRET_KEY": ${{ toJSON(secrets.HZ_CI_CACHE_S3_SECRET_KEY) }},
74+
6975
"PL_REGISTRY_PLATFORMA_OPEN_UPLOAD_URL": ${{ toJSON(secrets.PL_REGISTRY_PLOPEN_UPLOAD_URL) }},
7076
"QUAY_USERNAME": ${{ toJSON(secrets.QUAY_USERNAME) }},
7177
"QUAY_ROBOT_TOKEN": ${{ toJSON(secrets.QUAY_ROBOT_TOKEN) }} }
7278
73-
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
7479
SLACK_CHANNEL: ${{ secrets.SLACK_BLOCKS_CI_CHANNEL }}
80+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
7581

7682
GH_ZEN_APP_ID: ${{ secrets.GH_ZEN_APP_ID }}
7783
GH_ZEN_APP_PRIVATE_KEY: ${{ secrets.GH_ZEN_APP_PRIVATE_KEY }}

.github/workflows/mark-stable.yaml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,19 @@ on:
33
workflow_dispatch: {}
44
jobs:
55
init:
6-
if: github.repository != 'milaboratory/platforma-sequence-properties'
76
runs-on: ubuntu-latest
87
steps:
98
- uses: milaboratory/github-ci/actions/context/init@v4
109
with:
1110
version-canonize: false
1211
branch-versioning: main
1312
run:
14-
if: github.repository != 'milaboratory/platforma-sequence-properties'
1513
needs:
1614
- init
1715
uses: milaboratory/github-ci/.github/workflows/block-mark-stable.yaml@v4
1816
with:
19-
app-name: 'Block: sequence-properties - Mark Stable'
20-
node-version: '20.x'
17+
app-name: 'Block: Sequence Properties - Mark Stable'
18+
node-version: '22.x'
2119
npmrc-config: |
2220
{
2321
"registries": {
@@ -32,5 +30,5 @@ jobs:
3230
{ "NPMJS_TOKEN": ${{ toJSON(secrets.NPMJS_TOKEN) }},
3331
"AWS_CI_IAM_MONOREPO_SIMPLE_ROLE": ${{ toJSON(secrets.AWS_CI_IAM_MONOREPO_SIMPLE_ROLE) }} }
3432
35-
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
3633
SLACK_CHANNEL: ${{ secrets.SLACK_BLOCKS_CI_CHANNEL }}
34+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}

.npmrc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
//registry.npmjs.org/:always-auth=true
22
//registry.npmjs.org/:_authToken=${NPMJS_TOKEN}
33
@milaboratories:registry=https://registry.npmjs.org/
4-
@platforma-open:registry=https://registry.npmjs.org/
54
@platforma-sdk:registry=https://registry.npmjs.org/
6-
//npm.pkg.github.com/:always-auth=true
7-
//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}
8-
@milaboratory:registry=https://npm.pkg.github.com/
5+
@platforma-open:registry=https://registry.npmjs.org/

.prettierrc

Lines changed: 0 additions & 7 deletions
This file was deleted.

.structure

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":2}

.vscode/settings.json

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,3 @@
11
{
2-
"vitest.disableWorkspaceWarning": true,
3-
"editor.defaultFormatter": "oxc.oxc-vscode",
4-
"[typescript]": {
5-
"editor.defaultFormatter": "oxc.oxc-vscode",
6-
"editor.tabSize": 2
7-
},
8-
"[vue]": {
9-
"editor.defaultFormatter": "oxc.oxc-vscode",
10-
"editor.tabSize": 2
11-
},
12-
"cSpell.words": [
13-
"datasource",
14-
"pframe",
15-
"prerun"
16-
],
17-
"editor.codeActionsOnSave": {
18-
"source.fixAll.eslint": "always"
19-
},
20-
"eslint.enable": true,
21-
"eslint.format.enable": true,
22-
"[javascript]": {
23-
"editor.defaultFormatter": "oxc.oxc-vscode",
24-
"editor.tabSize": 2
25-
},
26-
"[css]": {
27-
"editor.defaultFormatter": "oxc.oxc-vscode",
28-
"editor.tabSize": 2
29-
},
30-
"[scss]": {
31-
"editor.defaultFormatter": "oxc.oxc-vscode",
32-
"editor.tabSize": 2
33-
},
34-
"[html]": {
35-
"editor.defaultFormatter": "oxc.oxc-vscode",
36-
"editor.tabSize": 2
37-
},
38-
"[yaml]": {
39-
"editor.defaultFormatter": "oxc.oxc-vscode",
40-
"editor.tabSize": 2
41-
},
42-
"[markdown]": {
43-
"editor.defaultFormatter": "oxc.oxc-vscode",
44-
"editor.tabSize": 2
45-
},
46-
"[json]": {
47-
"editor.defaultFormatter": "oxc.oxc-vscode",
48-
"editor.tabSize": 2
49-
},
50-
"typescript.tsdk": "./node_modules/typescript/lib"
2+
"typescript.tsdk": "node_modules/typescript/lib"
513
}

block/CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
## 1.0.0
22

3+
## 1.6.0
4+
5+
### Minor Changes
6+
7+
- 849d8eb: Migrate onto the structurer and upgrade the SDK
8+
9+
The block now follows the canonical `block-tools structure` layout on
10+
block-tools 2.14.3, with the SDK bumped to model/ui-vue 1.83.x, workflow-tengo
11+
6.8.3, tengo-builder 4.0.23 and test 1.83.2.
12+
13+
Two changes are visible outside the block:
14+
15+
- **A new `kind` component** declares the block's identity and its init-params
16+
contract. `BlockParams` is `{ inputAnchor?: PlRef }`, so a project template
17+
can seed a new instance with the dataset to analyse. Every other field in the
18+
block's data is view state and still defaults.
19+
- **`block` is now a slim facade.** It publishes with no dependencies, bundles
20+
the whole block into `dist/` plus `block-pack/`, and exports
21+
`SequencePropertiesBlockPointer` for consumers that add the block from code.
22+
23+
`@platforma-sdk/ui-vue` is on 1.83.3, which publishes the component
24+
declaration files its own type entry re-exports again — 1.83.1 had dropped
25+
them and broke the facade build.
26+
27+
- c340cab: Read the input's declared `pl7.app/modality` instead of guessing from the run-id key
28+
29+
`synthetic-repertoire-profiler` runs one pipeline over both antibody/TCR parents and designed
30+
libraries, and everything it emits sits on the modality-neutral `pl7.app/variantKey` axis. It
31+
keeps the same `pl7.app/repertoire/extractionRunId` key in both cases, so a VDJ run used to be
32+
read as amplicon and scanned as one whole sequence — its FR1–FR4 regions, CDR3 included, were
33+
never used.
34+
35+
The profiler now declares which kind of repertoire it produced in the entity-axis domain, and
36+
this block reads that declaration: `vdj` takes the per-region antibody/TCR path, `amplicon` the
37+
whole-sequence path. A VDJ run therefore gets CDR3 charge and hydrophobicity, and full-chain
38+
properties, the same as MiXCR input does.
39+
40+
Datasets with no declaration keep the previous behaviour exactly, so projects made before the
41+
declaration landed are unaffected.
42+
43+
Two smaller things follow from it. A declared VDJ input carries no receptor — the profiler has
44+
none to emit, since germline auto-detect builds its reference from the user's own parent
45+
sequences — so the "receptor not detected" notice no longer tells those users to pick a MiXCR
46+
preset they never used; it says the labels defaulted to the antibody convention and that only
47+
labels are affected. And modality detection moved into its own workflow module so it could be
48+
unit-tested; `pnpm test` on the workflow package now runs those tests.
49+
350
## 1.5.2
451

552
### Patch Changes

block/index.d.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

block/index.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

block/package.json

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,42 @@
11
{
22
"name": "@platforma-open/milaboratories.sequence-properties",
3-
"version": "1.5.2",
3+
"version": "1.6.0",
4+
"files": [
5+
"dist",
6+
"block-pack"
7+
],
8+
"type": "module",
9+
"main": "./dist/index.js",
10+
"module": "./dist/index.js",
11+
"types": "./dist/index.d.ts",
12+
"exports": {
13+
".": {
14+
"sources": "./src/index.ts",
15+
"types": "./dist/index.d.ts",
16+
"default": "./dist/index.js"
17+
}
18+
},
419
"scripts": {
5-
"build": "shx rm -rf ./block-pack && block-tools pack",
20+
"build": "ts-builder build --target block-facade && block-tools pack",
621
"mark-stable": "block-tools mark-stable -r 's3://milab-euce1-prod-pkgs-s3-block-registry/pub/releases/?region=eu-central-1'",
7-
"prepublishOnly": "block-tools pack && block-tools publish --unstable -r 's3://milab-euce1-prod-pkgs-s3-block-registry/pub/releases/?region=eu-central-1' --registry-serve-url https://blocks.pl-open.science",
8-
"do-pack": "shx rm -f *.tgz && block-tools pack && pnpm pack && shx mv *.tgz package.tgz"
22+
"prepublishOnly": "block-tools publish -r s3://milab-euce1-prod-pkgs-s3-block-registry/pub/releases/?region=eu-central-1 --registry-serve-url https://blocks.pl-open.science",
23+
"do-pack": "shx rm -f package.tgz && pnpm pack && shx mv *.tgz package.tgz",
24+
"check": "ts-builder type-check --target block-facade"
925
},
10-
"files": [
11-
"index.d.ts",
12-
"index.js"
13-
],
14-
"dependencies": {
15-
"@platforma-sdk/model": "catalog:",
16-
"@platforma-open/milaboratories.sequence-properties.workflow": "workspace:*",
26+
"dependencies": {},
27+
"devDependencies": {
28+
"@milaboratories/ts-builder": "catalog:",
29+
"@milaboratories/ts-configs": "catalog:",
30+
"@platforma-open/milaboratories.sequence-properties.kind": "workspace:*",
1731
"@platforma-open/milaboratories.sequence-properties.model": "workspace:*",
18-
"@platforma-open/milaboratories.sequence-properties.ui": "workspace:*"
32+
"@platforma-open/milaboratories.sequence-properties.ui": "workspace:*",
33+
"@platforma-open/milaboratories.sequence-properties.workflow": "workspace:*",
34+
"@platforma-sdk/block-tools": "catalog:",
35+
"@platforma-sdk/model": "catalog:",
36+
"shx": "catalog:",
37+
"typescript": "catalog:"
1938
},
39+
"packageManager": "pnpm@9.15.0",
2040
"block": {
2141
"components": {
2242
"workflow": "@platforma-open/milaboratories.sequence-properties.workflow/dist/tengo/tpl/main.plj.gz",
@@ -43,9 +63,5 @@
4363
"logo": "file:../logos/organization-logo.png"
4464
}
4565
}
46-
},
47-
"devDependencies": {
48-
"@platforma-sdk/block-tools": "catalog:"
49-
},
50-
"packageManager": "pnpm@9.15.0"
66+
}
5167
}

0 commit comments

Comments
 (0)