default branch updates (#4572)

* Update build.yml

* docs updates

* readme and contributing adjusted
This commit is contained in:
Lars Hvam 2021-02-28 18:07:37 +01:00 committed by GitHub
parent da43c34fc4
commit 02a8c719a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 87 additions and 89 deletions

View File

@ -23,12 +23,12 @@ jobs:
npm run merge npm run merge
npm run merge.ci npm run merge.ci
- name: deploy-merged-build - name: deploy-merged-build
if: github.ref == 'refs/heads/master' && github.repository == 'abapGit/abapGit' if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
env: env:
GITHUB_API_KEY: ${{ secrets.MY_TOKEN }} GITHUB_API_KEY: ${{ secrets.MY_TOKEN }}
run: ./ci/deploy-merged-build.sh run: ./ci/deploy-merged-build.sh
- name: deploy-release-tag - name: deploy-release-tag
if: github.ref == 'refs/heads/master' && github.repository == 'abapGit/abapGit' if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
env: env:
GITHUB_API_KEY: ${{ secrets.GITHUB_TOKEN }} GITHUB_API_KEY: ${{ secrets.GITHUB_TOKEN }}
run: ./ci/deploy-release-tag.sh run: ./ci/deploy-release-tag.sh

View File

@ -4,7 +4,7 @@
* Before starting any significant development, open an issue and propose your solution first. A discussion can save a lot of unnecessary work. It also helps others know that this is being worked on. * Before starting any significant development, open an issue and propose your solution first. A discussion can save a lot of unnecessary work. It also helps others know that this is being worked on.
* It is in your best interest to keep the commits/PRs as small as possible and solve one thing at a time. The smaller your change is, the easier it is to review and it will be more likely to get accepted. * It is in your best interest to keep the commits/PRs as small as possible and solve one thing at a time. The smaller your change is, the easier it is to review and it will be more likely to get accepted.
* Commit often, whenever something is working, and is a step in the right direction do a commit or PR. This way other contributors can see the changes, and it will minimize the risk of merge conflicts. * Commit often, whenever something is working, and is a step in the right direction do a commit or PR. This way other contributors can see the changes, and it will minimize the risk of merge conflicts.
@ -16,11 +16,9 @@ A bug is a _demonstrable problem_ that is caused by the code in the repository.
Guidelines for bug reports: Guidelines for bug reports:
1. **Use the GitHub issue search** — check if the issue has already been 1. **Use the GitHub issue search** — check if the issue has already been reported.
reported.
2. **Check if the issue has been fixed** — try to reproduce it using the 2. **Check if the issue has been fixed** — try to reproduce it using the latest version or development branch in the repository.
latest `master` or development branch in the repository.
3. **Demonstrate the problem** — provide clear steps that can be reproduced. 3. **Demonstrate the problem** — provide clear steps that can be reproduced.

View File

@ -1,6 +1,6 @@
![CI](https://github.com/abapGit/abapGit/workflows/CI/badge.svg) ![CI](https://github.com/abapGit/abapGit/workflows/CI/badge.svg)
[![Slack](https://abapgit-slackinviter.herokuapp.com/badge.svg)](https://abapgit-slackinviter.herokuapp.com/) [![Slack](https://abapgit-slackinviter.herokuapp.com/badge.svg)](https://abapgit-slackinviter.herokuapp.com/)
[![abap package version](https://img.shields.io/endpoint?url=https://shield.abap.space/version-shield-json/github/abapGit/abapGit/src/zif_abapgit_version.intf.abap/gc_abap_version&label=version)](https://github.com/abapGit/abapGit/blob/master/src/zif_abapgit_version.intf.abap) [![abap package version](https://img.shields.io/endpoint?url=https://shield.abap.space/version-shield-json/github/abapGit/abapGit/src/zif_abapgit_version.intf.abap/gc_abap_version&label=version)](https://github.com/abapGit/abapGit/blob/main/src/zif_abapgit_version.intf.abap)
# <img src="docs/img/logo.svg" height="40" alt="abapGit logo"> # <img src="docs/img/logo.svg" height="40" alt="abapGit logo">
@ -17,11 +17,11 @@ Works with: [GitHub](https://github.com/),
ABAP Version: 702 or higher ABAP Version: 702 or higher
Latest build: [zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap) Latest build: [zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap)
*Notes: Some people reported that browsers have issues displaying the file with almost 100k lines. The easiest solution is to "Save as" the link above and then open it with any editor/viewer (notepad included) and copy from there. If your SAP GUI editor freezes when pasting the code, use Utilities > More Utilities > Upload/Download > Upload in the editor instead.* *Notes: Some people reported that browsers have issues displaying the file with almost 100k lines. The easiest solution is to "Save as" the link above and then open it with any editor/viewer (notepad included) and copy from there. If your SAP GUI editor freezes when pasting the code, use Utilities > More Utilities > Upload/Download > Upload in the editor instead.*
It is recommened to use SAP GUI for Windows, since there are known issues related to running abapGit and SAP GUI for Java. The focus of abapGit is on supporting [ADT](https://github.com/abapGit/ADT_Frontend) instead of supporting SAP GUI for Java. It is recommened to use SAP GUI for Windows, since there are known issues related to running abapGit and SAP GUI for Java. The focus of abapGit is on supporting [ADT](https://github.com/abapGit/ADT_Frontend) instead of supporting SAP GUI for Java.
## Design Goals ## Design Goals
- Easy installation - Easy installation

View File

@ -9,7 +9,7 @@
</div> </div>
<div class="content"> <div class="content">
<h1>{{ page.title }}</h1> <h1>{{ page.title }}</h1>
<small><a href="{{ site.github.repository_url }}/tree/master/docs/{{ page.path }}">{% octicon pencil %} Improve this page</a></small> <small><a href="{{ site.github.repository_url }}/tree/main/docs/{{ page.path }}">{% octicon pencil %} Improve this page</a></small>
{{ content }} {{ content }}
</div> </div>
</div> </div>

View File

@ -19,7 +19,7 @@
<div class="content"> <div class="content">
<h1>{{ page.title }}</h1> <h1>{{ page.title }}</h1>
<small><a href="{{ site.github.repository_url }}/tree/master/docs/collections/{{ page.path }}">{% octicon pencil %} Improve this page</a></small> <small><a href="{{ site.github.repository_url }}/tree/main/docs/collections/{{ page.path }}">{% octicon pencil %} Improve this page</a></small>
{{ content }} {{ content }}
</div> </div>
</div> </div>

View File

@ -10,8 +10,8 @@ abapGit uses SIL and MIT licensed fonts, they are included in the distribution a
To add an icon to the icon set follow the next procedure: To add an icon to the icon set follow the next procedure:
1. Add the icon to repo [abapGit/icon-font](https://github.com/abapGit/icon-font) as documented [here](https://github.com/abapGit/icon-font/blob/master/README.md) 1. Add the icon to repo [abapGit/icon-font](https://github.com/abapGit/icon-font) as documented [here](https://github.com/abapGit/icon-font/blob/main/README.md)
2. Get the new abapGit font and icon files from the icon-font GitHub action 2. Get the new abapGit font and icon files from the icon-font GitHub action
3. Go to transaction `SMW0` and display the abapGit MIME objects (Binary > Package $abapgit) 3. Go to transaction `SMW0` and display the abapGit MIME objects (Binary > Package $abapgit)
4. Upload the new font file to ZABAPGIT_ICON_FONT 4. Upload the new font file to ZABAPGIT_ICON_FONT
5. Upload the new CSS file to ZABAPGIT_ICON_FONT_CSS 5. Upload the new CSS file to ZABAPGIT_ICON_FONT_CSS

View File

@ -5,7 +5,7 @@ order: 80
******************************* *******************************
This page describes how to execute various abapGit tasks using your own code. These classes and methods have existed for quite some time and are stable. However, they do **not** provide a guaranteed API. Future changes are a possibility. This page describes how to execute various abapGit tasks using your own code. These classes and methods have existed for quite some time and are stable. However, they do **not** provide a guaranteed API. Future changes are a possibility.
## Repositories ## ## Repositories ##
@ -88,8 +88,8 @@ IF ls_checks-transport-required = abap_true.
ls_checks-transport-transport = 'SIDK900000'. "transport request ls_checks-transport-transport = 'SIDK900000'. "transport request
ENDIF. ENDIF.
zcl_abapgit_repo_srv=>get_instance( )->purge( zcl_abapgit_repo_srv=>get_instance( )->purge(
io_repo = lo_repo io_repo = lo_repo
is_check = ls_check ). is_check = ls_check ).
``` ```
@ -168,9 +168,9 @@ li_background->run(
ii_log = li_log ii_log = li_log
it_settings = lt_settings ). it_settings = lt_settings ).
``` ```
Alternatively, implement your own logic using interface `zif_abapgit_background` (see Alternatively, implement your own logic using interface `zif_abapgit_background` (see
[Background Package](https://github.com/abapGit/abapGit/tree/master/src/background) for details). [Background Package](https://github.com/abapGit/abapGit/tree/main/src/background) for details).
### Pull Changes ## ### Pull Changes ##
@ -187,7 +187,7 @@ li_background->run(
``` ```
Alternative 1: implement your own logic using interface `zif_abapgit_background` (see Alternative 1: implement your own logic using interface `zif_abapgit_background` (see
[Background Package](https://github.com/abapGit/abapGit/tree/master/src/background) for details). [Background Package](https://github.com/abapGit/abapGit/tree/main/src/background) for details).
Alternative 2: Use the following code to trigger the pull. Alternative 2: Use the following code to trigger the pull.
@ -262,8 +262,8 @@ Download ZIP file of an offline repository to frontend:
```abap ```abap
lv_xstr = zcl_abapgit_zip=>export( lo_repo ). lv_xstr = zcl_abapgit_zip=>export( lo_repo ).
zcl_abapgit_ui_factory=>get_frontend_services( )->file_download( zcl_abapgit_ui_factory=>get_frontend_services( )->file_download(
iv_path = lv_file_with_path iv_path = lv_file_with_path
iv_xstr = lv_xstr ). iv_xstr = lv_xstr ).
``` ```

View File

@ -3,7 +3,7 @@ title: Contributing
order: 5 order: 5
--- ---
General contribution guidelines can be found [here](https://github.com/abapGit/abapGit/blob/master/CONTRIBUTING.md). General contribution guidelines can be found [here](https://github.com/abapGit/abapGit/blob/main/CONTRIBUTING.md).
How to submit a pull request: How to submit a pull request:
@ -11,7 +11,7 @@ How to submit a pull request:
Having already [installed](https://docs.abapgit.org/guide-install.html#install-standalone-version) the abapGit standalone program, Having already [installed](https://docs.abapgit.org/guide-install.html#install-standalone-version) the abapGit standalone program,
1. [Install the development version](https://docs.abapgit.org/guide-install.html#install-developer-version) of abapGit, by running `ZABAPGIT_STANDALONE` and either: 1. [Install the development version](https://docs.abapgit.org/guide-install.html#install-developer-version) of abapGit, by running `ZABAPGIT_STANDALONE` and either:
1. cloning your *own [fork](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-collaborative-development-models)* of the [abapGit repository](https://github.com/abapGit/abapGit) using abapGit's "New Online" option or 1. cloning your *own [fork](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-collaborative-development-models)* of the [abapGit repository](https://github.com/abapGit/abapGit) using abapGit's "New Online" option or
2. [downloading the zip file and installing it](https://docs.abapgit.org/guide-install.html#install-developer-version) using the "New Offline" option 2. [downloading the zip file and installing it](https://docs.abapgit.org/guide-install.html#install-developer-version) using the "New Offline" option
2. When specifying a package for the repository in step 1, assign a different (new, e.g. `$ZABAPGIT`) package to the one `ZABAPGIT_STANDALONE` is in 2. When specifying a package for the repository in step 1, assign a different (new, e.g. `$ZABAPGIT`) package to the one `ZABAPGIT_STANDALONE` is in
@ -27,4 +27,4 @@ Alternatively to the steps above, use the GitHub webinterface to change the file
If you already have an old fork and would like to create a new pull request, you can sync your old fork to current state following this guide: [Sync your fork to original repository](https://github.com/KirstieJane/STEMMRoleModels/wiki/Syncing-your-fork-to-the-original-repository-via-the-browser). If you already have an old fork and would like to create a new pull request, you can sync your old fork to current state following this guide: [Sync your fork to original repository](https://github.com/KirstieJane/STEMMRoleModels/wiki/Syncing-your-fork-to-the-original-repository-via-the-browser).
After your pull request is merged to the abapGit master branch, abapmerge will automatically run to build the standalone report version of abapGit. Every time a commit is pushed to the master branch, Github Actions is triggered to perform this build. It uses [abapmerge](https://github.com/larshp/abapmerge) to merge all the includes into a single file (the standalone version) which can be downloaded from [https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap) After your pull request is merged to the abapGit default branch, abapmerge will automatically run to build the standalone report version of abapGit. Every time a commit is pushed to the default branch, Github Actions is triggered to perform this build. It uses [abapmerge](https://github.com/larshp/abapmerge) to merge all the includes into a single file (the standalone version) which can be downloaded from [https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap)

View File

@ -37,4 +37,4 @@ Notes section using header format:
+ Notes..... + Notes.....
``` ```
Check [abapGit changelog](https://github.com/abapGit/abapGit/blob/master/changelog.txt) as texample Check [abapGit changelog](https://github.com/abapGit/abapGit/blob/main/changelog.txt) as an example

View File

@ -11,9 +11,9 @@ All object serializers must implement interface `ZIF_ABAPGIT_OBJECT` and be name
In general, only SAP Standard APIs for retriving and updating object information shall be used. If that is not possible, try using `ZCL_ABAPGIT_OBJECTS_GENERIC` which handles any logical transport object. In general, only SAP Standard APIs for retriving and updating object information shall be used. If that is not possible, try using `ZCL_ABAPGIT_OBJECTS_GENERIC` which handles any logical transport object.
As code is stored in git, no usernames, timestamps, states (e.g. active/inactive) or other system specific information should be part of the serialized object files. Only the active, most recent and consistent version of an object shall be serialized. As code is stored in git, no usernames, timestamps, states (e.g. active/inactive) or other system specific information should be part of the serialized object files. Only the active, most recent and consistent version of an object shall be serialized.
If an inactive version of an object exists, the class shall indicate so in the `is_active` method. abapGit displays such objects with a yellow bolt icon in the repo view. However, the inactive version must be ignored by the serializer. If an inactive version of an object exists, the class shall indicate so in the `is_active` method. abapGit displays such objects with a yellow bolt icon in the repo view. However, the inactive version must be ignored by the serializer.
As a result, a repo shall only contain the definition of active objects. Therefore, the deserializer can assume that the repo contains a consistent object definition and shall create an active version of the object (or update and activate it). As a result, a repo shall only contain the definition of active objects. Therefore, the deserializer can assume that the repo contains a consistent object definition and shall create an active version of the object (or update and activate it).
@ -28,9 +28,9 @@ Parameter | Description
These parameters are stored in attributes `MS_ITEM` and `MV_LANGUAGE` respectively. These parameters are stored in attributes `MS_ITEM` and `MV_LANGUAGE` respectively.
## Interface ## Interface
Serializers must implement all methods of interface [`ZIF_ABAPGIT_OBJECT`](https://github.com/abapGit/abapGit/blob/master/src/objects/zif_abapgit_object.intf.abap): Serializers must implement all methods of interface [`ZIF_ABAPGIT_OBJECT`](https://github.com/abapGit/abapGit/blob/main/src/objects/zif_abapgit_object.intf.abap):
Method | Description Method | Description
-------|------------ -------|------------
@ -38,7 +38,7 @@ Method | Description
`DESERIALIZE` | Contains of all process steps to create or update an object based on one or more files `DESERIALIZE` | Contains of all process steps to create or update an object based on one or more files
`DELETE` | Contains of all process steps to delete an object based on one or more files `DELETE` | Contains of all process steps to delete an object based on one or more files
`EXISTS` | Returns whether a given object already exists in any state (i.e. return `abap_true` for inactive objects) `EXISTS` | Returns whether a given object already exists in any state (i.e. return `abap_true` for inactive objects)
`IS_LOCKED` | Returns whether a given object is currently locked `IS_LOCKED` | Returns whether a given object is currently locked
`IS_ACTIVE` | Returns whether a given object exists in active state `IS_ACTIVE` | Returns whether a given object exists in active state
`CHANGED_BY` | Returns the name of the use who last changed a given object (if undetermined, return `c_user_unknown`) `CHANGED_BY` | Returns the name of the use who last changed a given object (if undetermined, return `c_user_unknown`)
`JUMP` | Navigates to the corresponding object maintenance screen `JUMP` | Navigates to the corresponding object maintenance screen
@ -46,7 +46,7 @@ Method | Description
`GET_COMPARATOR` | Triggered before deserialization to perform checks (for example, to warn the user that database tables are changed) `GET_COMPARATOR` | Triggered before deserialization to perform checks (for example, to warn the user that database tables are changed)
`GET_DESERIALIZE_STEPS` | Defines the deserialzation step or steps used to build the processing sequence (see below) `GET_DESERIALIZE_STEPS` | Defines the deserialzation step or steps used to build the processing sequence (see below)
Example: [`DOMA`](https://github.com/abapGit/abapGit/blob/master/src/objects/zcl_abapgit_object_doma.clas.abap). Example: [`DOMA`](https://github.com/abapGit/abapGit/blob/main/src/objects/zcl_abapgit_object_doma.clas.abap).
### Metadata ### Metadata
@ -60,7 +60,7 @@ Attribute | Description
`DDIC` | Set to `abap_true` if it is a DDIC object type (used for mass activation of DDIC objects) `DDIC` | Set to `abap_true` if it is a DDIC object type (used for mass activation of DDIC objects)
`LATE_DESER` | Obsolete (to be removed) `LATE_DESER` | Obsolete (to be removed)
It's recommended to fill `CLASS` and `VERSION` metadata using `SUPER->GET_METADATA( )` and then changing settings as required. It's recommended to fill `CLASS` and `VERSION` metadata using `SUPER->GET_METADATA( )` and then changing settings as required.
### Deserialization Step ### Deserialization Step
@ -68,13 +68,13 @@ It is mandatory to provide at least one deserialization step (see below).
## Super Class ## Super Class
Serializers can take advantage of the following methods in [`ZCL_ABAPGIT_OBJECTS_SUPER`](https://github.com/abapGit/abapGit/blob/master/src/objects/zcl_abapgit_objects_super.clas.abap): Serializers can take advantage of the following methods in [`ZCL_ABAPGIT_OBJECTS_SUPER`](https://github.com/abapGit/abapGit/blob/main/src/objects/zcl_abapgit_objects_super.clas.abap):
Method | Description Method | Description
-------|------------ -------|------------
`GET_METADATA` | Return default metadata for class and version `GET_METADATA` | Return default metadata for class and version
`CORR_INSERT` | Insert object into a transport (for transportable objects) `CORR_INSERT` | Insert object into a transport (for transportable objects)
`TADIR_INSERT` | Insert object into TADIR `TADIR_INSERT` | Insert object into TADIR
`EXISTS_A_LOCK_ENTRY_FOR` | Check if an enqueue lock exists `EXISTS_A_LOCK_ENTRY_FOR` | Check if an enqueue lock exists
`SET_DEFAULT_PACKAGE` | Set SAP package for it can't be supplied via APIs for RS_CORR_INSERT `SET_DEFAULT_PACKAGE` | Set SAP package for it can't be supplied via APIs for RS_CORR_INSERT
`IS_ACTIVE` | Method to check if an ABAP Workbench object or it's parts are active `IS_ACTIVE` | Method to check if an ABAP Workbench object or it's parts are active
@ -89,17 +89,17 @@ Method | Description
-------|------------ -------|------------
`SERIALIZE_LONGTEXTS` | Serialize document including I18N handling `SERIALIZE_LONGTEXTS` | Serialize document including I18N handling
`DESERIALIZE_LONGTEXTS` | Deserialize document including I18N handling `DESERIALIZE_LONGTEXTS` | Deserialize document including I18N handling
`DELETE_LONGTEXTS` | Delete document `DELETE_LONGTEXTS` | Delete document
## Generic Class ## Generic Class
If it's not possible to provide a native implementation for an object serializer, using generic class [`ZCL_ABAPGIT_OBJECTS_GENERIC`](https://github.com/abapGit/abapGit/blob/master/src/objects/zcl_abapgit_objects_generic.clas.abap) is possible for logical transport objects (see table `OBJH`, object type `L`). If it's not possible to provide a native implementation for an object serializer, using generic class [`ZCL_ABAPGIT_OBJECTS_GENERIC`](https://github.com/abapGit/abapGit/blob/main/src/objects/zcl_abapgit_objects_generic.clas.abap) is possible for logical transport objects (see table `OBJH`, object type `L`).
Example: [`IWMO`](https://github.com/abapGit/abapGit/blob/master/src/objects/zcl_abapgit_object_iwmo.clas.abap). Example: [`IWMO`](https://github.com/abapGit/abapGit/blob/main/src/objects/zcl_abapgit_object_iwmo.clas.abap).
## Serialize Object ## Serialize Object
The serialize method shall produce one or several files containing the data that represents a given object. There are a few methods available to define files and attach data using [`ZIF_ABAPGIT_OUTPUT_XML`](https://github.com/abapGit/abapGit/blob/master/src/xml/zif_abapgit_xml_output.intf.abap) (input parameter `IO_XML`). The serialize method shall produce one or several files containing the data that represents a given object. There are a few methods available to define files and attach data using [`ZIF_ABAPGIT_OUTPUT_XML`](https://github.com/abapGit/abapGit/blob/main/src/xml/zif_abapgit_xml_output.intf.abap) (input parameter `IO_XML`).
Method | Description Method | Description
-------|------------ -------|------------
@ -110,7 +110,7 @@ Method | Description
## Deserialize Object ## Deserialize Object
The deserialize method shall read the file or files representing a given object and create such object in the system. If such object already exist, it shall be updated according to the definition in the file or files. There are a few methods available to process files using [`ZIF_ABAPGIT_INPUT_XML`](https://github.com/abapGit/abapGit/blob/master/src/xml/zif_abapgit_xml_input.intf.abap) (input parameter `IO_XML`). The deserialize method shall read the file or files representing a given object and create such object in the system. If such object already exist, it shall be updated according to the definition in the file or files. There are a few methods available to process files using [`ZIF_ABAPGIT_INPUT_XML`](https://github.com/abapGit/abapGit/blob/main/src/xml/zif_abapgit_xml_input.intf.abap) (input parameter `IO_XML`).
Method | Description Method | Description
-------|------------ -------|------------
@ -133,11 +133,11 @@ The activation queue is built separately for each phase (see 'Deserialize Proces
## Internationalization (I18N) ## Internationalization (I18N)
In general, the serializer class shall process texts of an object in all available languages i.e. the original language as well as any translations. It shall respect the "Serialize Main Language Only" setting of a repository and limit the texts to the language provided to the constructor (`MV_LANGUAGE`). In general, the serializer class shall process texts of an object in all available languages i.e. the original language as well as any translations. It shall respect the "Serialize Main Language Only" setting of a repository and limit the texts to the language provided to the constructor (`MV_LANGUAGE`).
The recommended approach is to check `io_xml->i18n_params( )-serialize_master_lang_only = abap_false` and then serialize the additional translations in the XML (typically using `I18N` prefix). During deserialize the translation languages can then be retrieved and processed accordingly ( The recommended approach is to check `io_xml->i18n_params( )-serialize_master_lang_only = abap_false` and then serialize the additional translations in the XML (typically using `I18N` prefix). During deserialize the translation languages can then be retrieved and processed accordingly (
Example: [`TABL`](https://github.com/abapGit/abapGit/blob/master/src/objects/zcl_abapgit_object_tabl.clas.abap). Example: [`TABL`](https://github.com/abapGit/abapGit/blob/main/src/objects/zcl_abapgit_object_tabl.clas.abap).
## Testing ## Testing
@ -158,13 +158,13 @@ Example (using `SUSH`):
abapGit determines which objects need to be serialized based on the SAP package assigned to a repository (including subpackages unless "Ignore subpackages" is selected in the repository settings). The list of objects is then sorted by package, object type, and object name. abapGit determines which objects need to be serialized based on the SAP package assigned to a repository (including subpackages unless "Ignore subpackages" is selected in the repository settings). The list of objects is then sorted by package, object type, and object name.
If a sufficient number of work processes is available, abapGit will activate objects in parallel (unless "Disable Parallel Processing" is selected in the repository settings). If a sufficient number of work processes is available, abapGit will activate objects in parallel (unless "Disable Parallel Processing" is selected in the repository settings).
For details, see [`ZCL_ABAPGIT_SERIALIZE`](https://github.com/abapGit/abapGit/blob/master/src/zcl_abapgit_serialize.clas.abap). For details, see [`ZCL_ABAPGIT_SERIALIZE`](https://github.com/abapGit/abapGit/blob/main/src/zcl_abapgit_serialize.clas.abap).
### Deserialize Process ### Deserialize Process
Objects are deserialized in three phases. After each phase all objects included in the phase will be activated. Objects are deserialized in three phases. After each phase all objects included in the phase will be activated.
Step | Description | Activation Step | Description | Activation
-----|-------------|----------- -----|-------------|-----------
@ -172,10 +172,10 @@ Step | Description | Activation
`ABAP` | Used for non-DDIC objects (code or mostly anything else) which might depend on DDIC objects | Workbench Mass Activation `ABAP` | Used for non-DDIC objects (code or mostly anything else) which might depend on DDIC objects | Workbench Mass Activation
`LATE` | Used for objects that depend on other objects processed in the previous two phases | DDIC & Workbench Mass Activation `LATE` | Used for objects that depend on other objects processed in the previous two phases | DDIC & Workbench Mass Activation
Within each phase, the sequence of objects is determined by abapGit based on known object type dependencies. For details, see [`ZCL_ABAPGIT_OBJECTS->PRIORITIZE_DESER`](https://github.com/abapGit/abapGit/blob/master/src/objects/zcl_abapgit_objects.clas.abap#L1047). Within each phase, the sequence of objects is determined by abapGit based on known object type dependencies. For details, see [`ZCL_ABAPGIT_OBJECTS->PRIORITIZE_DESER`](https://github.com/abapGit/abapGit/blob/main/src/objects/zcl_abapgit_objects.clas.abap#L1047).
### Uninstall Process ### Uninstall Process
During uninstallation of a repository, abapGit will determine the objects in the same fashion as the serialize process. The sequence of objects is determined by abapGit based on known object type dependencies. For details, see [`ZCL_ABAPGIT_DEPENDENCIES->RESOLVE`](https://github.com/abapGit/abapGit/blob/master/src/zcl_abapgit_dependencies.clas.abap#L69). During uninstallation of a repository, abapGit will determine the objects in the same fashion as the serialize process. The sequence of objects is determined by abapGit based on known object type dependencies. For details, see [`ZCL_ABAPGIT_DEPENDENCIES->RESOLVE`](https://github.com/abapGit/abapGit/blob/main/src/zcl_abapgit_dependencies.clas.abap#L69).
Note: There are suggestions to [refactor the logic to determine the processing order](https://github.com/abapGit/abapGit/issues/3536). Note: There are suggestions to [refactor the logic to determine the processing order](https://github.com/abapGit/abapGit/issues/3536).

View File

@ -3,7 +3,7 @@ title: Unit Tests
order: 70 order: 70
--- ---
abapGit uses dependency lookup as an approach for writing unit tests, see example in ZCL_ABAPGIT_TADIR, ZCL_ABAPGIT_FACTORY, and [ZCL_ABAPGIT_INJECTOR](https://github.com/abapGit/abapGit/blob/master/src/zcl_abapgit_injector.clas.testclasses.abap). abapGit uses dependency lookup as an approach for writing unit tests, see example in ZCL_ABAPGIT_TADIR, ZCL_ABAPGIT_FACTORY, and [ZCL_ABAPGIT_INJECTOR](https://github.com/abapGit/abapGit/blob/main/src/zcl_abapgit_injector.clas.testclasses.abap).
Unit tests that create and delete objects in the system are categorized as dangerous, these tests can be enabled via "Advanced > Settings". Unit tests that create and delete objects in the system are categorized as dangerous, these tests can be enabled via "Advanced > Settings".

View File

@ -14,7 +14,7 @@ abapGit exists in 2 flavours: _standalone_ version or _developer_ version.
abapGit requires SAP BASIS version 702 or higher. abapGit requires SAP BASIS version 702 or higher.
## Install Standalone Version ## ## Install Standalone Version ##
1. Download the [ABAP code](https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap) (right click -> save-as) to a file. 1. Download the [ABAP code](https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap) (right click -> save-as) to a file.
2. Via `SE38` or `SE80`, create a new report named `ZABAPGIT_STANDALONE` (formerly `ZABAPGIT_FULL`). Note: Do *not* use the name `ZABAPGIT` if you plan to install the developer version. 2. Via `SE38` or `SE80`, create a new report named `ZABAPGIT_STANDALONE` (formerly `ZABAPGIT_FULL`). Note: Do *not* use the name `ZABAPGIT` if you plan to install the developer version.
3. In source code change mode, upload the code from the file using Utilities -> More Utilities -> Upload/Download -> Upload 3. In source code change mode, upload the code from the file using Utilities -> More Utilities -> Upload/Download -> Upload
4. Activate 4. Activate
@ -32,7 +32,7 @@ In order to contribute to the abapGit project, you install the developer version
Prerequisite to using the online feature is that [SSL must be setup](guide-ssl-setup.html). If your system is not connected to the Internet (e.g. behind a firewall) or doesn't allow proper SSL configuration, then you can use the offline scenario (see below). Prerequisite to using the online feature is that [SSL must be setup](guide-ssl-setup.html). If your system is not connected to the Internet (e.g. behind a firewall) or doesn't allow proper SSL configuration, then you can use the offline scenario (see below).
1. Run the standalone version of abapGit 1. Run the standalone version of abapGit
1. On the repository overview page, select "New Online" 1. On the repository overview page, select "New Online"
1. Enter `https://github.com/abapGit/abapGit/` for the URL 1. Enter `https://github.com/abapGit/abapGit/` for the URL
1. Enter package name `$ABAPGIT` (or select an existing or create new package) 1. Enter package name `$ABAPGIT` (or select an existing or create new package)
1. Select "Clone Online Repo" 1. Select "Clone Online Repo"
@ -47,7 +47,7 @@ Download latest version of the abapGit developer version from https://github.com
![](img/zip_download.png) ![](img/zip_download.png)
1. Run the standalone version of abapGit 1. Run the standalone version of abapGit
1. On the repository overview page, select "New Offline" 1. On the repository overview page, select "New Offline"
1. Enter repo name `abapGit` and package name `$ABAPGIT` (or select an existing or create new package) 1. Enter repo name `abapGit` and package name `$ABAPGIT` (or select an existing or create new package)
1. Select "Create Offline Repo" 1. Select "Create Offline Repo"
1. Select "Import <sup>zip</sup>" 1. Select "Import <sup>zip</sup>"

View File

@ -7,7 +7,7 @@ order: 20
## Standalone Version ## Standalone Version
To update to the current version, upload the code from [zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap) into the ZABAPGIT_STANDALONE report (formerly ZABAPGIT_FULL) and activate the program. To update to the current version, upload the code from [zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap) into the ZABAPGIT_STANDALONE report (formerly ZABAPGIT_FULL) and activate the program.
## Developer Version ## Developer Version
@ -15,11 +15,11 @@ If you have installed the abapGit developer version (in a separate package like
### Online project ### Online project
If your system is connected to the Internet, create an online repository for your abapGit package. When you view the repository and update are available, a "Pull" link will appear in the menu. When you select "Pull", the system will download and install the latest version of the code. If your system is connected to the Internet, create an online repository for your abapGit package. When you view the repository and update are available, a "Pull" link will appear in the menu. When you select "Pull", the system will download and install the latest version of the code.
### Offline project ### Offline project
If your system is not connected to the Internet, create an offline repository. To update abapGit download the ZIP file from [https://github.com/abapGit/abapGit/archive/master.zip](https://github.com/abapGit/abapGit/archive/master.zip), and select "Import ZIP" in your abapGit repository. If your system is not connected to the Internet, create an offline repository. To update abapGit download the ZIP file from [https://github.com/abapGit/abapGit/archive/main.zip](https://github.com/abapGit/abapGit/archive/main.zip), and select "Import ZIP" in your abapGit repository.
### Troubleshooting ### Troubleshooting

View File

@ -3,7 +3,7 @@ title: Welcome
--- ---
abapGit is a git client for ABAP developed in ABAP. It requires SAP BASIS version 702 or higher. abapGit is a git client for ABAP developed in ABAP. It requires SAP BASIS version 702 or higher.
Latest build: [zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap) Latest build: [zabapgit.abap](https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap)
For questions/comments/bugs/feature requests/wishes please create an [issue](https://github.com/abapGit/abapGit/issues) For questions/comments/bugs/feature requests/wishes please create an [issue](https://github.com/abapGit/abapGit/issues)

View File

@ -28,5 +28,5 @@ This will overwrite the files in the repository to have the latest format, compa
| abapGit | Download | XML Serialization | | abapGit | Download | XML Serialization |
| :------------- |:------------- |:-------------| | :------------- |:------------- |:-------------|
| v1.0.0 to current | [Link](https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap) | v1.0.0 | | v1.0.0 to current | [Link](https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap) | v1.0.0 |
| v0.0.0 to v0.113.0 | [Link](https://raw.githubusercontent.com/abapGit/abapGit/v0.113.0/zabapgit.prog.abap) | v0.2-alpha | | v0.0.0 to v0.113.0 | [Link](https://raw.githubusercontent.com/abapGit/abapGit/v0.113.0/zabapgit.prog.abap) | v0.2-alpha |

View File

@ -10,34 +10,34 @@ See also [abapGit Icon Font](https://github.com/abapGit/icon-font).
Icon | Description | Code Icon | Description | Code
:----- | :------------ | :------------ :----- | :------------ | :------------
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/chevron-down.svg" width="30" height="30"> | Arrow Down | (chevron-down) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/chevron-down.svg" width="30" height="30"> | Arrow Down | (chevron-down)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/chevron-left.svg" width="30" height="30"> | Arrow Left | (chevron-left) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/chevron-left.svg" width="30" height="30"> | Arrow Left | (chevron-left)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/chevron-right.svg" width="30" height="30"> | Arrow Right | (chevron-right) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/chevron-right.svg" width="30" height="30"> | Arrow Right | (chevron-right)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/chevron-up.svg" width="30" height="30"> | Arrow Up | (chevron-up) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/chevron-up.svg" width="30" height="30"> | Arrow Up | (chevron-up)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/star.svg" width="30" height="30"> | Favorite | (star) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/star.svg" width="30" height="30"> | Favorite | (star)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/file-image.svg" width="30" height="30"> | File - Binary | (file-image) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/file-image.svg" width="30" height="30"> | File - Binary | (file-image)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/file-code.svg" width="30" height="30"> | File - Code | (file-code) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/file-code.svg" width="30" height="30"> | File - Code | (file-code)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/file.svg" width="30" height="30"> | File - General | (file) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/file.svg" width="30" height="30"> | File - General | (file)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/file-alt.svg" width="30" height="30"> | File - Object | (file-alt) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/file-alt.svg" width="30" height="30"> | File - Object | (file-alt)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/folder.svg" width="30" height="30"> | Folder | (folder) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/folder.svg" width="30" height="30"> | Folder | (folder)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/exclamation-circle.svg" width="30" height="30"> | Message - Error | (exclamation-circle) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/exclamation-circle.svg" width="30" height="30"> | Message - Error | (exclamation-circle)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/exclamation-triangle.svg" width="30" height="30"> | Message - Warning | (exclamation-triangle) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/exclamation-triangle.svg" width="30" height="30"> | Message - Warning | (exclamation-triangle)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/arrow-circle-up.svg" width="30" height="30"> | News/Changelog | (arrow-circle-up) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/arrow-circle-up.svg" width="30" height="30"> | News/Changelog | (arrow-circle-up)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/bolt.svg" width="30" height="30"> | Object - Inactive | (bolt) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/bolt.svg" width="30" height="30"> | Object - Inactive | (bolt)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/lock.svg" width="30" height="30"> | Object - Locked | (lock) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/lock.svg" width="30" height="30"> | Object - Locked | (lock)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/check.svg" width="30" height="30"> | OK | (check) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/check.svg" width="30" height="30"> | OK | (check)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/code-branch.svg" width="30" height="30"> | Repository - Branch | (code-branch) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/code-branch.svg" width="30" height="30"> | Repository - Branch | (code-branch)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/code-commit.svg" width="30" height="30"> | Repository - Merge | (code-commit) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/code-commit.svg" width="30" height="30"> | Repository - Merge | (code-commit)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/plug.svg" width="30" height="30"> | Repository - Offline | (plug) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/plug.svg" width="30" height="30"> | Repository - Offline | (plug)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/cloud-upload-alt.svg" width="30" height="30"> | Repository - Online | (cloud-upload-alt) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/cloud-upload-alt.svg" width="30" height="30"> | Repository - Online | (cloud-upload-alt)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/bars.svg" width="30" height="30"> | Repository Picker | (bars) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/bars.svg" width="30" height="30"> | Repository Picker | (bars)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/box.svg" width="30" height="30"> | SAP Package | (box) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/box.svg" width="30" height="30"> | SAP Package | (box)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/truck-solid.svg" width="30" height="30"> | SAP Transport | (truck-solid) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/truck-solid.svg" width="30" height="30"> | SAP Transport | (truck-solid)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/cog.svg" width="30" height="30"> | Settings | (cog) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/cog.svg" width="30" height="30"> | Settings | (cog)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/user-solid.svg" width="30" height="30"> | User | (user-solid) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/user-solid.svg" width="30" height="30"> | User | (user-solid)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/fire-alt.svg" width="30" height="30"> | (currently not used) | (fire-alt) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/fire-alt.svg" width="30" height="30"> | (currently not used) | (fire-alt)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/sliders-h.svg" width="30" height="30"> | (currently not used) | (sliders-h) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/sliders-h.svg" width="30" height="30"> | (currently not used) | (sliders-h)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/snowflake.svg" width="30" height="30"> | (currently not used) | (snowflake) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/snowflake.svg" width="30" height="30"> | (currently not used) | (snowflake)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/briefcase.svg" width="30" height="30"> | (currently not used) | (briefcase) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/briefcase.svg" width="30" height="30"> | (currently not used) | (briefcase)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/cloud-commit.svg" width="30" height="30"> | (currently not used) | (cloud-commit) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/cloud-commit.svg" width="30" height="30"> | (currently not used) | (cloud-commit)
<img src="https://raw.githubusercontent.com/abapGit/icon-font/master/svg/cloud-solid.svg" width="30" height="30"> | (currently not used) | (cloud-solid) <img src="https://raw.githubusercontent.com/abapGit/icon-font/main/svg/cloud-solid.svg" width="30" height="30"> | (currently not used) | (cloud-solid)