From 91cb9e0fa2f5d1fa4caff9448cd59a52aaa056b1 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Thu, 9 Nov 2023 15:57:57 -0500 Subject: [PATCH 1/2] Update APACK for namespaces After https://github.com/abapGit/abapGit/pull/6639 --- src/user-guide/reference/apack.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/user-guide/reference/apack.md b/src/user-guide/reference/apack.md index a8ae6ac4d..843f58842 100755 --- a/src/user-guide/reference/apack.md +++ b/src/user-guide/reference/apack.md @@ -4,7 +4,7 @@ category: reference order: 80 --- -Packages with a class that implements `ZIF_APACK_MANIFEST` (interface is automatically created at initial start of abapGit) can define metadata that is interpreted by clients which support the APACK package and dependency management framework. +Packages with a class that implements `ZIF_APACK_MANIFEST` (the interface is automatically created at the initial start of abapGit) can define metadata that is interpreted by clients which support the APACK package and dependency management framework. :::info APACK including dependencies is currently only supported by abapGit for ABAP Development Tools (ADT). Please also see the [respective tutorial](https://developers.sap.com/tutorials/abap-environment-abapgit.html) for details. @@ -17,21 +17,25 @@ Such an APACK implementation class must reside in the top-level ABAP package whi The metadata follows the [POM format by Apache Maven](https://maven.apache.org/pom.html#Maven_Coordinates) and specifies additional information as well: - `group_id`: Unique name for your organization or project, e.g. `github.com/abapGit` -- `artifact_id`: Name for the project, needs to be unique together with the specified `group_id`, e.g. `abapGit` -- `version`: Version of your project, should adhere to the [semantic versioning concept](https://semver.org/), e.g. `1.85` +- `artifact_id`: The name for the project, needs to be unique together with the specified `group_id`, e.g. `abapGit` +- `version`: The version of your project, should adhere to the [semantic versioning concept](https://semver.org/), e.g. `1.85` - `repository_type`: Currently fixed to `abapGit` as it's currently the only supported repository type and is set automatically during serialization - `git_url`: The URL where your main repository is located, e.g. `https://github.com/abapGit/abapGit.git` -- `dependencies`: Optional, only needs to be filled if this project has dependencies to other projects. You only need to specify `group_id`, `artifact_id`, `version` and `git_url` to identify the dependency. `target_package` is ignored during serialization. **Note:** Be sure to specify the `git_url` for each dependency properly as this is currently the only way how dependencies can automatically be resolved. +- `dependencies`: Optional, only needs to be filled if this project has dependencies to other projects. You only need to specify `group_id`, `artifact_id`, `version`, and `git_url` to identify the dependency. `target_package` is ignored during serialization. **Note:** Be sure to specify the `git_url` for each dependency properly as this is currently the only way how dependencies can automatically be resolved. If such an implementation class is detected during the serialization process, a corresponding `.apack-manifest.xml` file will be created on the top level of the Git repository. This contains the APACK metadata information. +### APACK in Namespaces + +If your project is using a namespace, then using `ZIF_APACK_MANIFEST` will not work (since it's not part of the namespace, obviously). Simply copy `ZIF_APACK_MANIFEST` to `/namespace/ZIF_APACK_MANIFEST` and use this interface in your APACK implementation class (requires abapGit v1.126.0 or higher). + ### Transporting APACK implementation classes -The interface `ZIF_APACK_MANIFEST` is automatically created as local object, i.e. in package `$TMP`. In case you intend to transport projects containing an implementation class to follow-on systems, you either need to remove the implementation class from the transport or ensure that `ZIF_APACK_MANIFEST` is available on each follow-on system in order to avoid syntax errors. So, either let abapGit create it in all systems (don't do that on production) or change the package assignment to a package with the same transport target as your projects and transport them together. +The interface `ZIF_APACK_MANIFEST` is automatically created as a local object, i.e. in package `$TMP`. If you intend to transport projects containing an implementation class to follow-on systems, you either need to remove the implementation class from the transport or ensure that `ZIF_APACK_MANIFEST` is available on each follow-on system to avoid syntax errors. So, either let abapGit create it in all systems (don't do that on production) or change the package assignment to a package with the same transport target as your projects and transport them together. ### Examples See the sample code on GitHub (uses `IF_APACK_MANIFEST` which is exclusively available on the SAP Cloud Platform ABAP Environment. However, the descriptor format is compatible with `ZIF_APACK_MANIFEST`.): - [YY Data Service](https://github.com/SAP/abap-platform-yy) -- [JSON ABAP Konverter](https://github.com/SAP/abap-platform-jak) (specifies a dependency to the YY Data Service) +- [JSON ABAP Konverter](https://github.com/SAP/abap-platform-jak) (specifies a dependency on the YY Data Service) From 9a1fc5a98d61f162810e8b0f3c3bc32a21fee5a6 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Thu, 9 Nov 2023 17:16:02 -0500 Subject: [PATCH 2/2] Update apack.md --- src/user-guide/reference/apack.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/user-guide/reference/apack.md b/src/user-guide/reference/apack.md index 843f58842..40c32a4d6 100755 --- a/src/user-guide/reference/apack.md +++ b/src/user-guide/reference/apack.md @@ -1,10 +1,10 @@ --- title: APACK category: reference -order: 80 +order: 88 --- -Packages with a class that implements `ZIF_APACK_MANIFEST` (the interface is automatically created at the initial start of abapGit) can define metadata that is interpreted by clients which support the APACK package and dependency management framework. +Packages with a class that implements `ZIF_APACK_MANIFEST` (the interface is automatically created at the initial start of abapGit) can define metadata that is interpreted by clients that support the APACK package and dependency management framework. :::info APACK including dependencies is currently only supported by abapGit for ABAP Development Tools (ADT). Please also see the [respective tutorial](https://developers.sap.com/tutorials/abap-environment-abapgit.html) for details.