proteomics-foundation 0.3.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ # Bijux shared
2
+ .DS_Store
3
+ .idea/
4
+ .vscode/
5
+ .tox/
6
+ .tox
7
+ .venv/
8
+ .venv
9
+ .venv-esm/
10
+ .coverage
11
+ .coverage.*
12
+ **/.coverage
13
+ **/.coverage.*
14
+ .python-version
15
+ .mypy_cache/
16
+ .pytest_cache/
17
+ .ruff_cache/
18
+ .hypothesis/
19
+ .hypothesis
20
+ .benchmarks
21
+ .nox/
22
+ .cache/
23
+ .tmp/
24
+ .github/tmp/
25
+ site/
26
+ build/
27
+ dist/
28
+ htmlcov/
29
+ **/coverage.xml
30
+ node_modules/
31
+ *.egg-info/
32
+ pip-wheel-metadata/
33
+
34
+ artifacts/
35
+ artifacts
36
+ packages/*/artifacts/
37
+ packages/*/artifacts
38
+
39
+ **/__pycache__/
40
+ **/.pytest_cache/
41
+ **/.ruff_cache/
42
+ **/.mypy_cache/
43
+ **/.pytype/
44
+ **/.hypothesis/
45
+ **/.hypothesis
46
+ **/.benchmarks/
47
+ **/.benchmarks
48
+ **/.tox/
49
+ **/.tox
50
+ **/.venv/
51
+ **/.venv
52
+ **/.nox/
53
+ **/.cache/
54
+ **/site/
55
+ **/build/
56
+ **/dist/
57
+ **/htmlcov/
58
+ **/*.egg-info/
59
+ **/*.pyc
60
+ **/*.pyo
61
+ *.swp
62
+ *.swo
@@ -0,0 +1,22 @@
1
+ # Changelog
2
+
3
+ All notable changes for `proteomics-foundation` are recorded here.
4
+
5
+ ## Unreleased
6
+
7
+ ## 0.3.8 - 2026-07-01
8
+
9
+ ### Added
10
+
11
+ - Added the `proteomics-foundation` distribution as the short install and
12
+ import alias for `bijux-proteomics-foundation`.
13
+ - Added alias-package contract and README guidance that points short-name
14
+ users back to the canonical foundation owner and its handbook.
15
+
16
+ ### Changed
17
+
18
+ - Aligned the fallback version and canonical dependency floor with the
19
+ `0.3.8` release line.
20
+ - Routed the alias through governed compatibility helpers and clean-checkout
21
+ verification so the short distribution stays a forwarding layer instead of a
22
+ second foundation surface.
@@ -0,0 +1 @@
1
+ ../../LICENSE
@@ -0,0 +1 @@
1
+ ../../NOTICE
@@ -0,0 +1,205 @@
1
+ Metadata-Version: 2.4
2
+ Name: proteomics-foundation
3
+ Version: 0.3.8
4
+ Summary: Install and import alias package for bijux-proteomics-foundation.
5
+ Project-URL: Homepage, https://bijux.io/bijux-proteomics/
6
+ Project-URL: Documentation, https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/
7
+ Project-URL: Repository, https://github.com/bijux/bijux-proteomics
8
+ Project-URL: Issues, https://github.com/bijux/bijux-proteomics/issues
9
+ Project-URL: Changelog, https://github.com/bijux/bijux-proteomics/blob/main/packages/proteomics-foundation/CHANGELOG.md
10
+ Project-URL: Security, https://github.com/bijux/bijux-proteomics/blob/main/SECURITY.md
11
+ Author-email: Bijan Mousavi <bijan@bijux.io>
12
+ Maintainer-email: Bijan Mousavi <bijan@bijux.io>
13
+ License: Apache-2.0
14
+ License-File: LICENSE
15
+ License-File: NOTICE
16
+ Keywords: compatibility,foundation,packaging,proteomics
17
+ Classifier: Development Status :: 3 - Alpha
18
+ Classifier: Intended Audience :: Developers
19
+ Classifier: Intended Audience :: Science/Research
20
+ Classifier: License :: OSI Approved :: Apache Software License
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3 :: Only
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
27
+ Classifier: Programming Language :: Python :: 3.14
28
+ Classifier: Typing :: Typed
29
+ Requires-Python: <4,>=3.11
30
+ Requires-Dist: bijux-proteomics-foundation<0.4.0,>=0.3.8
31
+ Description-Content-Type: text/markdown
32
+
33
+ # proteomics-foundation
34
+
35
+ <!-- bijux-proteomics-badges:generated:start -->
36
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](https://pypi.org/project/proteomics-foundation/)
37
+ [![Typing: typed](https://img.shields.io/badge/typing-typed%20(PEP%20561)-0A7BBB)](https://pypi.org/project/proteomics-foundation/)
38
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-0F766E)](https://github.com/bijux/bijux-proteomics/blob/main/LICENSE)
39
+ [![CI Status](https://github.com/bijux/bijux-proteomics/actions/workflows/verify.yml/badge.svg?branch=main)](https://github.com/bijux/bijux-proteomics/actions/workflows/verify.yml?query=branch%3Amain)
40
+ [![GitHub Repository](https://img.shields.io/badge/github-bijux%2Fbijux--proteomics-181717?logo=github)](https://github.com/bijux/bijux-proteomics)
41
+
42
+ [![proteomics-foundation](https://img.shields.io/pypi/v/proteomics-foundation?label=proteomics--foundation&logo=pypi)](https://pypi.org/project/proteomics-foundation/)
43
+ [![agentic-proteins](https://img.shields.io/pypi/v/agentic-proteins?label=agentic--proteins&logo=pypi)](https://pypi.org/project/agentic-proteins/)
44
+ [![bijux-proteomics-foundation](https://img.shields.io/pypi/v/bijux-proteomics-foundation?label=foundation&logo=pypi)](https://pypi.org/project/bijux-proteomics-foundation/)
45
+ [![bijux-proteomics-core](https://img.shields.io/pypi/v/bijux-proteomics-core?label=core&logo=pypi)](https://pypi.org/project/bijux-proteomics-core/)
46
+ [![bijux-proteomics-runtime](https://img.shields.io/pypi/v/bijux-proteomics-runtime?label=runtime&logo=pypi)](https://pypi.org/project/bijux-proteomics-runtime/)
47
+ [![bijux-proteomics-intelligence](https://img.shields.io/pypi/v/bijux-proteomics-intelligence?label=intelligence&logo=pypi)](https://pypi.org/project/bijux-proteomics-intelligence/)
48
+ [![bijux-proteomics-knowledge](https://img.shields.io/pypi/v/bijux-proteomics-knowledge?label=knowledge&logo=pypi)](https://pypi.org/project/bijux-proteomics-knowledge/)
49
+ [![bijux-proteomics-lab](https://img.shields.io/pypi/v/bijux-proteomics-lab?label=lab&logo=pypi)](https://pypi.org/project/bijux-proteomics-lab/)
50
+
51
+ [![agentic-proteins](https://img.shields.io/badge/agentic--proteins-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fagentic-proteins)
52
+ [![bijux-proteomics-foundation](https://img.shields.io/badge/foundation-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-foundation)
53
+ [![bijux-proteomics-core](https://img.shields.io/badge/core-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-core)
54
+ [![bijux-proteomics-intelligence](https://img.shields.io/badge/intelligence-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-intelligence)
55
+ [![bijux-proteomics-knowledge](https://img.shields.io/badge/knowledge-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-knowledge)
56
+ [![bijux-proteomics-lab](https://img.shields.io/badge/lab-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-lab)
57
+
58
+ [![proteomics-foundation docs](https://img.shields.io/badge/docs-proteomics--foundation-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
59
+ [![agentic-proteins docs](https://img.shields.io/badge/docs-agentic--proteins-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/02-agentic-proteins/)
60
+ [![bijux-proteomics-foundation docs](https://img.shields.io/badge/docs-foundation-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
61
+ [![bijux-proteomics-core docs](https://img.shields.io/badge/docs-core-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/04-bijux-proteomics-core/)
62
+ [![bijux-proteomics-runtime docs](https://img.shields.io/badge/docs-runtime-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/09-bijux-proteomics-runtime/)
63
+ [![bijux-proteomics-intelligence docs](https://img.shields.io/badge/docs-intelligence-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/05-bijux-proteomics-intelligence/)
64
+ [![bijux-proteomics-knowledge docs](https://img.shields.io/badge/docs-knowledge-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/06-bijux-proteomics-knowledge/)
65
+ [![bijux-proteomics-lab docs](https://img.shields.io/badge/docs-lab-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/)
66
+ <!-- bijux-proteomics-badges:generated:end -->
67
+
68
+ `proteomics-foundation` is the compatibility alias for the canonical foundation
69
+ owner `bijux-proteomics-foundation`.
70
+ It is the install and import alias for bijux-proteomics-foundation.
71
+
72
+ Use this package when you want a shorter distribution and import name for the
73
+ serialization, schema, and compatibility kernel without creating a second
74
+ foundation owner.
75
+
76
+ ## Alias at a glance
77
+
78
+ - Use `proteomics-foundation` when you want a shorter package name for the
79
+ shared kernel without changing who owns the contracts.
80
+ - Start with the
81
+ [canonical foundation package docs](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
82
+ because this package only forwards into that owner surface.
83
+ - Route all schema, serialization, and compatibility behavior to
84
+ `bijux-proteomics-foundation`; keep this package focused on compatibility
85
+ naming.
86
+
87
+ ## 0.3.8 Release Highlights
88
+
89
+ - The alias now routes readers to the current foundation handbook instead of
90
+ reading like a second kernel surface.
91
+ - Compatibility prose now makes the canonical ownership and forwarding-only
92
+ contract explicit in the first screen.
93
+
94
+ ## Installation
95
+
96
+ ```bash
97
+ pip install proteomics-foundation
98
+ ```
99
+
100
+ ## Public APIs
101
+
102
+ The alias forwards the canonical foundation exports through
103
+ `proteomics_foundation`:
104
+
105
+ ```python
106
+ from proteomics_foundation import DocumentSchema, hash_payload, to_canonical_json
107
+
108
+ schema = DocumentSchema(
109
+ created_by="proteomics-foundation",
110
+ document_kind="readme_example",
111
+ package_name="proteomics-foundation",
112
+ )
113
+ payload = {
114
+ "document_kind": schema.document_kind,
115
+ "schema_version": schema.schema_version,
116
+ }
117
+ rendered = to_canonical_json(payload)
118
+ digest = hash_payload(payload)
119
+
120
+ assert '"readme_example"' in rendered
121
+ assert digest
122
+ ```
123
+
124
+ ## Package identity
125
+
126
+ - Distribution name: `proteomics-foundation`
127
+ - Import root: `proteomics_foundation`
128
+ - Canonical owner package: `bijux-proteomics-foundation`
129
+ - Canonical owner import root: `bijux_proteomics_foundation`
130
+
131
+ ## Package boundaries
132
+
133
+ - this package owns compatibility naming for the foundation surface
134
+ - schema, serialization, compatibility, and outcome contracts remain owned by
135
+ `bijux-proteomics-foundation`
136
+ - new behavior must land in the canonical owner before alias exports change
137
+
138
+ ## What this package must not do
139
+
140
+ - define a second foundation kernel
141
+ - drift away from canonical serialization or compatibility behavior
142
+ - become a separate owner for outcome or schema policy
143
+
144
+ ## Contract checkpoints
145
+
146
+ - alias exports must forward to the canonical foundation package cleanly
147
+ - docs must name the canonical owner explicitly
148
+ - compatibility updates must stay covered by alias-package tests
149
+
150
+ ## Choose this package when
151
+
152
+ - you want a shorter import and distribution name for foundation contracts
153
+ - migration or ergonomics favor `proteomics_foundation`
154
+ - compatibility packaging work needs a named alias for the foundation owner
155
+
156
+ ## Route elsewhere when
157
+
158
+ - the change alters schema, serialization, compatibility, or outcome behavior
159
+ - the work introduces exports that are not already owned by foundation
160
+ - the alias would stop being forwarding-only
161
+
162
+ ## Verification route
163
+
164
+ - run alias compatibility tests before changing imports or metadata
165
+ - review `docs/ARCHITECTURE.md`, `docs/BOUNDARIES.md`, and `docs/CONTRACTS.md`
166
+ when alias claims or routing language change
167
+ - validate the canonical foundation README and tests when behavior changes are
168
+ proposed
169
+
170
+ ## Review questions
171
+
172
+ - does the change preserve this package as a naming alias only
173
+ - is the canonical foundation owner still explicit in docs and behavior
174
+ - would the same outcome remain correct if consumers imported the canonical
175
+ package directly
176
+
177
+ ## Escalation route
178
+
179
+ - route kernel behavior changes to `bijux-proteomics-foundation`
180
+ - stop and review alias boundaries when package-local semantics start appearing
181
+ - escalate before release when import or metadata drift could confuse ownership
182
+
183
+ ## Consumer impact signals
184
+
185
+ - import-path or package-name changes are high-impact because downstream code
186
+ may depend on them directly
187
+ - alias documentation changes should still be reviewed against the canonical
188
+ foundation owner
189
+ - wording-only clarifications carry lower release risk than routing or metadata
190
+ changes
191
+
192
+ ## Explicit non-goals
193
+
194
+ - this package does not own scientific workflow or evidence semantics
195
+ - this package does not define runtime, intelligence, knowledge, or lab policy
196
+ - this package does not replace the canonical foundation release surface
197
+
198
+ ## Documentation
199
+
200
+ - Release guidance lives in this `README.md`, this package `CHANGELOG.md`, and
201
+ package `docs/*.md` under the canonical foundation owner surface.
202
+ - [Product architecture](https://bijux.io/bijux-proteomics/01-bijux-proteomics/foundation/product-architecture/)
203
+ - [Cross-package ownership](https://bijux.io/bijux-proteomics/01-bijux-proteomics/foundation/cross-package-ownership/)
204
+ - [Canonical foundation package docs](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
205
+ - [Changelog](CHANGELOG.md)
@@ -0,0 +1,173 @@
1
+ # proteomics-foundation
2
+
3
+ <!-- bijux-proteomics-badges:generated:start -->
4
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](https://pypi.org/project/proteomics-foundation/)
5
+ [![Typing: typed](https://img.shields.io/badge/typing-typed%20(PEP%20561)-0A7BBB)](https://pypi.org/project/proteomics-foundation/)
6
+ [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-0F766E)](https://github.com/bijux/bijux-proteomics/blob/main/LICENSE)
7
+ [![CI Status](https://github.com/bijux/bijux-proteomics/actions/workflows/verify.yml/badge.svg?branch=main)](https://github.com/bijux/bijux-proteomics/actions/workflows/verify.yml?query=branch%3Amain)
8
+ [![GitHub Repository](https://img.shields.io/badge/github-bijux%2Fbijux--proteomics-181717?logo=github)](https://github.com/bijux/bijux-proteomics)
9
+
10
+ [![proteomics-foundation](https://img.shields.io/pypi/v/proteomics-foundation?label=proteomics--foundation&logo=pypi)](https://pypi.org/project/proteomics-foundation/)
11
+ [![agentic-proteins](https://img.shields.io/pypi/v/agentic-proteins?label=agentic--proteins&logo=pypi)](https://pypi.org/project/agentic-proteins/)
12
+ [![bijux-proteomics-foundation](https://img.shields.io/pypi/v/bijux-proteomics-foundation?label=foundation&logo=pypi)](https://pypi.org/project/bijux-proteomics-foundation/)
13
+ [![bijux-proteomics-core](https://img.shields.io/pypi/v/bijux-proteomics-core?label=core&logo=pypi)](https://pypi.org/project/bijux-proteomics-core/)
14
+ [![bijux-proteomics-runtime](https://img.shields.io/pypi/v/bijux-proteomics-runtime?label=runtime&logo=pypi)](https://pypi.org/project/bijux-proteomics-runtime/)
15
+ [![bijux-proteomics-intelligence](https://img.shields.io/pypi/v/bijux-proteomics-intelligence?label=intelligence&logo=pypi)](https://pypi.org/project/bijux-proteomics-intelligence/)
16
+ [![bijux-proteomics-knowledge](https://img.shields.io/pypi/v/bijux-proteomics-knowledge?label=knowledge&logo=pypi)](https://pypi.org/project/bijux-proteomics-knowledge/)
17
+ [![bijux-proteomics-lab](https://img.shields.io/pypi/v/bijux-proteomics-lab?label=lab&logo=pypi)](https://pypi.org/project/bijux-proteomics-lab/)
18
+
19
+ [![agentic-proteins](https://img.shields.io/badge/agentic--proteins-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fagentic-proteins)
20
+ [![bijux-proteomics-foundation](https://img.shields.io/badge/foundation-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-foundation)
21
+ [![bijux-proteomics-core](https://img.shields.io/badge/core-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-core)
22
+ [![bijux-proteomics-intelligence](https://img.shields.io/badge/intelligence-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-intelligence)
23
+ [![bijux-proteomics-knowledge](https://img.shields.io/badge/knowledge-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-knowledge)
24
+ [![bijux-proteomics-lab](https://img.shields.io/badge/lab-ghcr-181717?logo=github)](https://github.com/bijux/bijux-proteomics/pkgs/container/bijux-proteomics%2Fbijux-proteomics-lab)
25
+
26
+ [![proteomics-foundation docs](https://img.shields.io/badge/docs-proteomics--foundation-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
27
+ [![agentic-proteins docs](https://img.shields.io/badge/docs-agentic--proteins-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/02-agentic-proteins/)
28
+ [![bijux-proteomics-foundation docs](https://img.shields.io/badge/docs-foundation-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
29
+ [![bijux-proteomics-core docs](https://img.shields.io/badge/docs-core-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/04-bijux-proteomics-core/)
30
+ [![bijux-proteomics-runtime docs](https://img.shields.io/badge/docs-runtime-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/09-bijux-proteomics-runtime/)
31
+ [![bijux-proteomics-intelligence docs](https://img.shields.io/badge/docs-intelligence-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/05-bijux-proteomics-intelligence/)
32
+ [![bijux-proteomics-knowledge docs](https://img.shields.io/badge/docs-knowledge-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/06-bijux-proteomics-knowledge/)
33
+ [![bijux-proteomics-lab docs](https://img.shields.io/badge/docs-lab-2563EB?logo=materialformkdocs&logoColor=white)](https://bijux.io/bijux-proteomics/07-bijux-proteomics-lab/)
34
+ <!-- bijux-proteomics-badges:generated:end -->
35
+
36
+ `proteomics-foundation` is the compatibility alias for the canonical foundation
37
+ owner `bijux-proteomics-foundation`.
38
+ It is the install and import alias for bijux-proteomics-foundation.
39
+
40
+ Use this package when you want a shorter distribution and import name for the
41
+ serialization, schema, and compatibility kernel without creating a second
42
+ foundation owner.
43
+
44
+ ## Alias at a glance
45
+
46
+ - Use `proteomics-foundation` when you want a shorter package name for the
47
+ shared kernel without changing who owns the contracts.
48
+ - Start with the
49
+ [canonical foundation package docs](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
50
+ because this package only forwards into that owner surface.
51
+ - Route all schema, serialization, and compatibility behavior to
52
+ `bijux-proteomics-foundation`; keep this package focused on compatibility
53
+ naming.
54
+
55
+ ## 0.3.8 Release Highlights
56
+
57
+ - The alias now routes readers to the current foundation handbook instead of
58
+ reading like a second kernel surface.
59
+ - Compatibility prose now makes the canonical ownership and forwarding-only
60
+ contract explicit in the first screen.
61
+
62
+ ## Installation
63
+
64
+ ```bash
65
+ pip install proteomics-foundation
66
+ ```
67
+
68
+ ## Public APIs
69
+
70
+ The alias forwards the canonical foundation exports through
71
+ `proteomics_foundation`:
72
+
73
+ ```python
74
+ from proteomics_foundation import DocumentSchema, hash_payload, to_canonical_json
75
+
76
+ schema = DocumentSchema(
77
+ created_by="proteomics-foundation",
78
+ document_kind="readme_example",
79
+ package_name="proteomics-foundation",
80
+ )
81
+ payload = {
82
+ "document_kind": schema.document_kind,
83
+ "schema_version": schema.schema_version,
84
+ }
85
+ rendered = to_canonical_json(payload)
86
+ digest = hash_payload(payload)
87
+
88
+ assert '"readme_example"' in rendered
89
+ assert digest
90
+ ```
91
+
92
+ ## Package identity
93
+
94
+ - Distribution name: `proteomics-foundation`
95
+ - Import root: `proteomics_foundation`
96
+ - Canonical owner package: `bijux-proteomics-foundation`
97
+ - Canonical owner import root: `bijux_proteomics_foundation`
98
+
99
+ ## Package boundaries
100
+
101
+ - this package owns compatibility naming for the foundation surface
102
+ - schema, serialization, compatibility, and outcome contracts remain owned by
103
+ `bijux-proteomics-foundation`
104
+ - new behavior must land in the canonical owner before alias exports change
105
+
106
+ ## What this package must not do
107
+
108
+ - define a second foundation kernel
109
+ - drift away from canonical serialization or compatibility behavior
110
+ - become a separate owner for outcome or schema policy
111
+
112
+ ## Contract checkpoints
113
+
114
+ - alias exports must forward to the canonical foundation package cleanly
115
+ - docs must name the canonical owner explicitly
116
+ - compatibility updates must stay covered by alias-package tests
117
+
118
+ ## Choose this package when
119
+
120
+ - you want a shorter import and distribution name for foundation contracts
121
+ - migration or ergonomics favor `proteomics_foundation`
122
+ - compatibility packaging work needs a named alias for the foundation owner
123
+
124
+ ## Route elsewhere when
125
+
126
+ - the change alters schema, serialization, compatibility, or outcome behavior
127
+ - the work introduces exports that are not already owned by foundation
128
+ - the alias would stop being forwarding-only
129
+
130
+ ## Verification route
131
+
132
+ - run alias compatibility tests before changing imports or metadata
133
+ - review `docs/ARCHITECTURE.md`, `docs/BOUNDARIES.md`, and `docs/CONTRACTS.md`
134
+ when alias claims or routing language change
135
+ - validate the canonical foundation README and tests when behavior changes are
136
+ proposed
137
+
138
+ ## Review questions
139
+
140
+ - does the change preserve this package as a naming alias only
141
+ - is the canonical foundation owner still explicit in docs and behavior
142
+ - would the same outcome remain correct if consumers imported the canonical
143
+ package directly
144
+
145
+ ## Escalation route
146
+
147
+ - route kernel behavior changes to `bijux-proteomics-foundation`
148
+ - stop and review alias boundaries when package-local semantics start appearing
149
+ - escalate before release when import or metadata drift could confuse ownership
150
+
151
+ ## Consumer impact signals
152
+
153
+ - import-path or package-name changes are high-impact because downstream code
154
+ may depend on them directly
155
+ - alias documentation changes should still be reviewed against the canonical
156
+ foundation owner
157
+ - wording-only clarifications carry lower release risk than routing or metadata
158
+ changes
159
+
160
+ ## Explicit non-goals
161
+
162
+ - this package does not own scientific workflow or evidence semantics
163
+ - this package does not define runtime, intelligence, knowledge, or lab policy
164
+ - this package does not replace the canonical foundation release surface
165
+
166
+ ## Documentation
167
+
168
+ - Release guidance lives in this `README.md`, this package `CHANGELOG.md`, and
169
+ package `docs/*.md` under the canonical foundation owner surface.
170
+ - [Product architecture](https://bijux.io/bijux-proteomics/01-bijux-proteomics/foundation/product-architecture/)
171
+ - [Cross-package ownership](https://bijux.io/bijux-proteomics/01-bijux-proteomics/foundation/cross-package-ownership/)
172
+ - [Canonical foundation package docs](https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/)
173
+ - [Changelog](CHANGELOG.md)
@@ -0,0 +1,59 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.27.0,<1.31", "hatch-vcs>=0.4.0,<1.0"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "proteomics-foundation"
7
+ dynamic = ["version"]
8
+ description = "Install and import alias package for bijux-proteomics-foundation."
9
+ readme = "README.md"
10
+ license = { text = "Apache-2.0" }
11
+ requires-python = ">=3.11,<4"
12
+ authors = [{ name = "Bijan Mousavi", email = "bijan@bijux.io" }]
13
+ maintainers = [{ name = "Bijan Mousavi", email = "bijan@bijux.io" }]
14
+ keywords = ["proteomics", "foundation", "compatibility", "packaging"]
15
+ classifiers = [
16
+ "Development Status :: 3 - Alpha",
17
+ "Intended Audience :: Science/Research",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: Apache Software License",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3 :: Only",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Programming Language :: Python :: 3.13",
26
+ "Programming Language :: Python :: 3.14",
27
+ "Typing :: Typed",
28
+ ]
29
+ dependencies = [
30
+ "bijux-proteomics-foundation>=0.3.8,<0.4.0",
31
+ ]
32
+
33
+ [project.urls]
34
+ Homepage = "https://bijux.io/bijux-proteomics/"
35
+ Documentation = "https://bijux.io/bijux-proteomics/03-bijux-proteomics-foundation/"
36
+ Repository = "https://github.com/bijux/bijux-proteomics"
37
+ Issues = "https://github.com/bijux/bijux-proteomics/issues"
38
+ Changelog = "https://github.com/bijux/bijux-proteomics/blob/main/packages/proteomics-foundation/CHANGELOG.md"
39
+ Security = "https://github.com/bijux/bijux-proteomics/blob/main/SECURITY.md"
40
+
41
+ [tool.hatch.version]
42
+ source = "vcs"
43
+ tag-pattern = "^v(?P<version>.*)$"
44
+ fallback-version = "0.3.8"
45
+ raw-options = { git_describe_command = "git describe --dirty --tags --long --match 'v*'", local_scheme = "dirty-tag", version_scheme = "guess-next-dev", root = "../..", search_parent_directories = true }
46
+
47
+ [tool.hatch.build]
48
+ include = [
49
+ "README.md",
50
+ "CHANGELOG.md",
51
+ "src/proteomics_foundation/py.typed",
52
+ ]
53
+ force-include = { "LICENSE" = "LICENSE", "NOTICE" = "NOTICE" }
54
+
55
+ [tool.hatch.build.targets.wheel]
56
+ packages = ["src/proteomics_foundation"]
57
+
58
+ [tool.hatch.build.targets.wheel.package-data]
59
+ "proteomics_foundation" = ["py.typed"]