Skip to content

Commit f3628e7

Browse files
committed
first draft of development.md
1 parent b5f3cc1 commit f3628e7

1 file changed

Lines changed: 51 additions & 24 deletions

File tree

  • docs/develop/marketplace-packages/development

docs/develop/marketplace-packages/development/index.md

Lines changed: 51 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ tags:
88

99
## Introduction
1010

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.
1212

1313
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.
1515

1616
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.
1818

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.
2020

2121
## Package Structure
2222

@@ -26,10 +26,10 @@ Use the [package-template](https://github.com/eccenca/cmem-package-template) to
2626

2727
!!! info "No publication without license"
2828

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.
3030

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.
3333

3434
### Manifest
3535

@@ -53,21 +53,21 @@ It is used to present package details and contents to the `inspect` commands<!--
5353
: Semantic version identifier string of the package, but limited to proper releases.
5454

5555
`metadata.name`
56-
: The package name in english
56+
: The package name in English.
5757

5858
`metadata.description`
59-
: The package description in english.
59+
: The package description in English.
6060

6161
`metadata_comment`
6262
: A maintainer or publisher comment.
6363

6464
#### Files
6565

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`.
6767

6868
##### Graphs
6969

70-
Add the following structure to add a graph.
70+
Use the following structure to include a graph.
7171
`register_as_vocabulary` and `import_into` are optional instructions.
7272
We suggest to organize graphs in a respective sub-folder (here `graphs/`), but this is up to you:
7373

@@ -89,7 +89,7 @@ We suggest to organize graphs in a respective sub-folder (here `graphs/`), but t
8989

9090
##### Projects
9191

92-
Add the following structure to add a project.
92+
Use the following structure to include a project.
9393
We suggest to organize projects in a respective sub-folder (here `projects/`), but this is up to you:
9494

9595
```json
@@ -106,12 +106,12 @@ We suggest to organize projects in a respective sub-folder (here `projects/`), b
106106

107107
#### Dependencies
108108

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.
110110
The dependencies are added to the `manifest.json` as described in the next sections.
111111

112112
##### Python Plugin Packages
113113

114-
Add the following to declare a dependency to a python plugin:
114+
Use the following to declare a dependency to a Python plugin:
115115

116116
```json
117117
"dependencies": [
@@ -126,7 +126,7 @@ Add the following to declare a dependency to a python plugin:
126126

127127
##### (Vocabulary) Packages
128128

129-
Add the following to declare a dependency to a (vocabulary) package:
129+
Use the following to declare a dependency to a (vocabulary) package:
130130

131131
```json
132132
"dependencies": [
@@ -139,11 +139,42 @@ Add the following to declare a dependency to a (vocabulary) package:
139139
]
140140
```
141141

142-
## Building Packages
142+
## Package Development Cycle
143143

144-
!!! info "`cmemc package build` reference"
144+
!!! info "`cmemc package` reference"
145145

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:
153+
154+
![Corporate Memory Marketplace Package Lifecycle](../mpp-lifecycle.svg){ width="50%" }
155+
156+
### Installing (local) Packages
157+
158+
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
147178

148179
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.
149180

@@ -152,10 +183,6 @@ This will build a package archive from a package directory.
152183

153184
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`.
154185

155-
## Publishing Packages
156-
157-
!!! info "`cmemc package publish` reference"
158-
159-
Refer to [TODO: link](./) for the complete command reference.
186+
### Publishing Packages
160187

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

Comments
 (0)