You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/develop/marketplace-packages/development/index.md
+51-24Lines changed: 51 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,15 +8,15 @@ tags:
8
8
9
9
## Introduction
10
10
11
-
Marketplace Packages are archives that wrap certain content, functionality and configuration of Corporate Memory used to share and extend any such.
11
+
Marketplace Packages are archives that bundle content, functionality, and configuration from Corporate Memory for sharing and reuse.
12
12
13
13
Each package has its own release cycle.
14
-
Packages can can be installed and uninstalled during runtime.
14
+
Packages can be installed and uninstalled during runtime.
15
15
16
16
In order to support the development and publication of Marketplace Packages, we published a [package-template](https://github.com/eccenca/cmem-package-template).
17
-
Please have a look at this to get started.
17
+
Please have a look at this template to get started.
18
18
19
-
This page gives an overview of the concepts you need to understand in order to develop plugins.
19
+
This page gives an overview of the concepts you need to understand in order to develop packages.
20
20
21
21
## Package Structure
22
22
@@ -26,10 +26,10 @@ Use the [package-template](https://github.com/eccenca/cmem-package-template) to
26
26
27
27
!!! info "No publication without license"
28
28
29
-
Packages without a license declaration can not be pusblished to a Corporate Memory Marketplace Server.
29
+
Packages without a license declaration cannot be published to a Corporate Memory Marketplace Server.
30
30
31
-
Our template will bootstrap with a_Apache License 2.0 ([`Apache-2.0`](https://spdx.org/licenses/Apache-2.0.html))_, see<https://spdx.org/licenses/> if you need a different.
32
-
You can remove a license entirely, however, a package that does not declare a license can not be published.
31
+
Our template will bootstrap with an_Apache License 2.0 ([`Apache-2.0`](https://spdx.org/licenses/Apache-2.0.html))_. See<https://spdx.org/licenses/> if you need a different license.
32
+
You can remove a license entirely; however, a package that does not declare a license cannot be published.
33
33
34
34
### Manifest
35
35
@@ -53,21 +53,21 @@ It is used to present package details and contents to the `inspect` commands<!--
53
53
: Semantic version identifier string of the package, but limited to proper releases.
54
54
55
55
`metadata.name`
56
-
: The package name in english
56
+
: The package name in English.
57
57
58
58
`metadata.description`
59
-
: The package description in english.
59
+
: The package description in English.
60
60
61
61
`metadata_comment`
62
62
: A maintainer or publisher comment.
63
63
64
64
#### Files
65
65
66
-
A package can contain graphs or Build projects, those contents are referenced in the `manifest.json`
66
+
A package can contain graphs or Build projects. These contents are referenced in the `manifest.json`.
67
67
68
68
##### Graphs
69
69
70
-
Add the following structure to add a graph.
70
+
Use the following structure to include a graph.
71
71
`register_as_vocabulary` and `import_into` are optional instructions.
72
72
We suggest to organize graphs in a respective sub-folder (here `graphs/`), but this is up to you:
73
73
@@ -89,7 +89,7 @@ We suggest to organize graphs in a respective sub-folder (here `graphs/`), but t
89
89
90
90
##### Projects
91
91
92
-
Add the following structure to add a project.
92
+
Use the following structure to include a project.
93
93
We suggest to organize projects in a respective sub-folder (here `projects/`), but this is up to you:
94
94
95
95
```json
@@ -106,12 +106,12 @@ We suggest to organize projects in a respective sub-folder (here `projects/`), b
106
106
107
107
#### Dependencies
108
108
109
-
Dependencies to other (vocabulary) packages or to python plugins can be declared in `copier copy` answers.
109
+
Dependencies to other (vocabulary) packages or to Python plugins can be declared in the`copier copy` answers.
110
110
The dependencies are added to the `manifest.json` as described in the next sections.
111
111
112
112
##### Python Plugin Packages
113
113
114
-
Add the following to declare a dependency to a python plugin:
114
+
Use the following to declare a dependency to a Python plugin:
115
115
116
116
```json
117
117
"dependencies": [
@@ -126,7 +126,7 @@ Add the following to declare a dependency to a python plugin:
126
126
127
127
##### (Vocabulary) Packages
128
128
129
-
Add the following to declare a dependency to a (vocabulary) package:
129
+
Use the following to declare a dependency to a (vocabulary) package:
130
130
131
131
```json
132
132
"dependencies": [
@@ -139,11 +139,42 @@ Add the following to declare a dependency to a (vocabulary) package:
139
139
]
140
140
```
141
141
142
-
## Building Packages
142
+
## Package Development Cycle
143
143
144
-
!!! info "`cmemc package build` reference"
144
+
!!! info "`cmemc package` reference"
145
145
146
-
Refer to [TODO: link](./) for the complete command reference.
146
+
Refer to [TODO: link](./) for the complete reference of the `package`command group.
147
+
148
+
Some packages are simply wrapping existing artifacts into a managed structure (e.g. existing vocabulary/ontology).
149
+
150
+
Most (solution) package development and evolution will be a back and forth between a package repository (making changes to `manifest.json` in terms of adding/removing dependencies, graph files, or Build project files) and a Corporate Memory (package development) instance.
151
+
152
+
The following pages give an overview about this feature:
Use the following command to install a local package folder content (or built `.cpa` file) to a Corporate Memory (package development) instance.
159
+
160
+
```sh
161
+
cmemc package install --input PATH
162
+
```
163
+
164
+
Make changes to graphs, configuration, or Build projects as needed.
165
+
Newly created or imported graphs or Build projects need to be registered in `manifest.json` so they will be fetched by `export`.
166
+
167
+
### Exporting Contents into a Package
168
+
169
+
Use the following command to export the file artifacts declared in `manifest.json` from a Corporate Memory (package development) instance to a local package folder.
170
+
171
+
```sh
172
+
cmemc package export PACKAGE_ID
173
+
```
174
+
175
+
Run this to initially populate package contents from a solution configuration or to update them after making changes on your Corporate Memory (package development) instance, in order to capture and eventually build/release them as a Marketplace Package.
176
+
177
+
### Building Packages
147
178
148
179
During development you can install a package from a local path (plain folder or a `.cpa` package) using the `cmemc package install --input PATH` command.
149
180
@@ -152,10 +183,6 @@ This will build a package archive from a package directory.
152
183
153
184
This command processes a package directory, validates its content including the manifest, and creates a versioned Corporate Memory package archive (`.cpa`) with the following naming convention: `{package_id}-v{version}.cpa`.
154
185
155
-
## Publishing Packages
156
-
157
-
!!! info "`cmemc package publish` reference"
158
-
159
-
Refer to [TODO: link](./) for the complete command reference.
186
+
### Publishing Packages
160
187
161
-
Package archives can be published to the marketplace using the `cmemc package publish` command.
188
+
Package archives can be published to the Marketplace Server using the `cmemc package publish` command.
0 commit comments