update documentation

* fix broken links
* remove v1 related stuff
* restructure
This commit is contained in:
Sebastian Sdorra
2020-06-11 07:16:31 +02:00
committed by René Pfeuffer
parent fbf4757bb1
commit d03af49df9
27 changed files with 84 additions and 315 deletions

View File

@@ -1,39 +0,0 @@
---
title: State of SCM-Manager 2 development
---
The development of SCM-Manager 2.0.0 is organised in [Trello Boards](https://trello.com/scmmanager).
## [Milestone 1](https://trello.com/b/oit1MD92/scm-manager-2-0-0-milestone-1)
### Main goals
* remove deprecated and unused stuff
* remove old style listeners
* replace [guava eventbus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained) with [legman](https://github.com/sdorra/legman)
* introduce new plugin structure
* offline plugin installation/updates/deinstallation
* use java 7 as default
* use of [annotation processors](http://docs.oracle.com/javase/7/docs/api/javax/annotation/processing/Processor.html) instead of classpath scanning
* move non core modules (plugin-backend, maven plugins, etc.) to separate repositories
## [Milestone 2](https://trello.com/b/Afb3hoJ9/scm-manager-2-0-0-milestone-2)
### Main goals
* use [apache shiro](http://shiro.apache.org/) everywhere
* improve authentication
* improve user and group management
* use permission instead of roles
## [Milestone 3](https://trello.com/b/eLvqTGGe/scm-manager-2-0-0-milestone-3)
### Main goals
* completely new designed rest api
## Milestone 4
### Main goals
* completely new user interface
## Milestone 5
### Main goals
* improve repository api

View File

@@ -1,67 +0,0 @@
---
title: Command line client
---
You can download the command line client from
[here](http://www.scm-manager.org/download/) (the scm-cli-client).
### Examples
**1\. Store username, password and server url**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar --user scmadmin --password madmin --server http://localhost:8080/scm store-config
store config
```
**2\. List all repositories**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar list-repositories
ID: fbb64701-6dd3-4847-8588-26f693736961
Name: scm
Type: hg
E-Mail: s.sdorra@gmail.com
Description: SCM-Manager
Public: false
Creation-Date: 2011-06-03 16:13:19
Last-Modified: 2011-06-03 16:15:38
URL: http://localhost:8080/scm/hg/scm
Permissions:
WRITE - sdorra (Group: false)
```
**3\. Create a new user**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar create-user --name test --display-name "Test User" --mail "test@scm-manager.org" --password secret
Name: test
Display Name: Test User
Type: xml
E-Mail: test@scm-manager.org
Administrator: false
Creation-Date:
Last-Modified:
```
**4\. Add write permission for user test to repository scm**
```bash
$ java -jar scm-cli-client-1.47-jar-with-dependencies.jar add-permission fbb64701-6dd3-4847-8588-26f693736961 --name test -t WRITE
ID: fbb64701-6dd3-4847-8588-26f693736961
Name: scm
Type: hg
E-Mail: s.sdorra@gmail.com
Description: SCM-Manager
Public: false
Creation-Date: 2011-06-03 16:13:19
Last-Modified: 2011-06-03 16:15:38
URL: http://localhost:8080/scm/hg/scm
Permissions:
WRITE - sdorra (Group: false)
WRITE - test (Group: false)
```

View File

@@ -1,5 +1,6 @@
---
title: Logging
subtitle: Configuration and locations of SCM-Manager logging
---
SCM-Manager logs information which can be useful, if the system does not behave as expected.
@@ -14,4 +15,21 @@ The logging behavior depends on your operating system and installation.
| Mac OS X | ~/Library/Logs/SCM-Manager |
| Windows | $BASEDIR\logs |
The location of the **$BASEDIR** can be found [here](basedirectory).
The location of the **$BASEDIR** can be found [here](../basedirectory/).
## Configuration
The logging behaviour of SCM-Manager can be configured via an xml file.
The syntax and properties can be found [here](http://logback.qos.ch/manual/configuration.html).
The location of the file depends also on the type of installation.
| Type of Installation | Path |
|----------------------|---------|
| Docker | /opt/scm-server/conf/logging.xml |
| RPM | /etc/scm/logging.xml |
| DEB | /etc/scm/logging.xml |
| Unix | $EXTRACT_PATH/scm-server/conf/logging.xml |
| Mac OS X | $EXTRACT_PATH/scm-server/conf/logging.xml |
| Windows | $EXTRACT_PATH/scm-server/conf/logging.xml |
**$EXTRACT_PATH** is the path were you etract the content of the package.

View File

@@ -1,8 +1,20 @@
---
title: SCM-Server and Apache mod_proxy
title: Reverse Proxy
subtitle: How to use SCM-Manager with common reverse proxies
displayToc: true
---
### Apache configuration
TODO reverse proxies in general send X-Forwarded headers ...
### nginx
TODO ...
### Apache
<!--
TODO: does this set X-Forwarded Headers?
-->
```apache
ProxyPass /scm http://localhost:8080/scm
@@ -16,8 +28,16 @@ ProxyPassReverse /scm http://servername:8080/scm
- **Warning**: Setting ProxyPassReverseCookiePath would most likely cause problems with session handling!
- **Note**: If you encounter timeout problems, please have a look at [Apache Module mod_proxy#Workers](http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers).
### HA-Proxy
TODO ...
### SCM-Server conf/server-config.xml
<!--
TODO: do we need it
-->
NOTE: This file is found in the installation directory, not the user\'s
home directory.
@@ -43,15 +63,3 @@ Example:
</Arg>
</Call>
```
### SCM-Manager Configuration version 1.5 and above
1. Login as an admin user and select \"General\"
2. Set the \"Base Url\" to the URL of the Apache (**warning:** don\'t check \"Force Base Url\")
3. Save the new new settings
### SCM-Manager Configuration before version 1.5
1. Login as an admin user and select \"General\"
2. Set the Serverport to the apache port (normally port 80)
3. Save the new settings

View File

@@ -2,6 +2,11 @@
title: SCM-Server SSL
---
<!--
TODO: Update
Node: https://ssl-config.mozilla.org/#server=jetty&version=9.4.28&config=intermediate&guideline=5.4
-->
**Note**: This document describes a ssl configuration with a
self-signed certificate

View File

@@ -1,36 +0,0 @@
---
title: SCM-Server and Apache mod_jk
---
### Apache Configuration
```apache
JkWorkersFile /etc/apache2/jkworkers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel info
JkMount /scm* worker1
```
### JK Workers File (jkworkers.properties)
```ini
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
```
### SCM-Server conf/server-config.xml
Uncomment the following lines:
```xml
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.ajp.Ajp13SocketConnector">
<Set name="port">8009</Set>
</New>
</Arg>
</Call>
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -1,9 +0,0 @@
---
title: Configuration
partiallyActive: true
---
* [Base Directory](basedirectory/)
* [Logging](logging/)
* [SCM-Server and Apache mod\_proxy](apache/apache-mod_proxy/)
* [SCM-Server and Apache mod\_jk](apache/apache-mod_jk/)

View File

@@ -1,14 +0,0 @@
The logging behaviour of SCM-Manager can be configured via an xml file.
The syntax and properties can be found [here](http://logback.qos.ch/manual/configuration.html).
The location of the file depends also on the type of installation.
| Type of Installation | Path |
|----------------------|---------|
| Docker | /opt/scm-server/conf/logging.xml |
| RPM | /etc/scm/logging.xml |
| DEB | /etc/scm/logging.xml |
| Unix | $EXTRACT_PATH/scm-server/conf/logging.xml |
| Mac OS X | $EXTRACT_PATH/scm-server/conf/logging.xml |
| Windows | $EXTRACT_PATH/scm-server/conf/logging.xml |
**$EXTRACT_PATH** is the path were you etract the content of the package.

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -1,5 +1,6 @@
---
title: Permission Concept
subtitle: Fine-grained permission for SCM-Manager v2
---
This documents describes a concept for a fine-grained permission managing via the SCMMv2 UI.
@@ -16,7 +17,7 @@ This documents describes a concept for a fine-grained permission managing via th
### Status Quo SCMv1
[SCMMv1 's permissions](../Permissions.md) are only related to Repositories:
SCMMv1 's permissions](../Permissions.md) are only related to Repositories:
* Users can either have the Permission READ, WRITER or OWNER
* globally (for all repositories) or
@@ -121,11 +122,11 @@ In order to fulfill the requirements, this concept describes
The global permission component can be reached from **either user and groups** components navigations. The following mockup
shows this in the user component:
![Permissions mockup user](docs/en/resources/permissions-mockup-user.jpg)
![Permissions mockup user](assets/permissions-mockup-user.jpg)
The layout of the permission component UI could look like this:
![Permissions mockup global permissions](docs/en/resources/permissions-mockup-global-permissions.jpg)
![Permissions mockup global permissions](assets/permissions-mockup-global-permissions.jpg)
The UI
* queries all available global permissions from the REST API (shiro strings),
@@ -141,7 +142,7 @@ permissions (see `PermissionType`).
The UI is extended like so:
![Permissions mockup repository permissions](docs/en/resources/permissions-mockup-repository-permissions.jpg)
![Permissions mockup repository permissions](assets/permissions-mockup-repository-permissions.jpg)
#### Existing repository dialog

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

View File

@@ -2,7 +2,7 @@
title: Migrate a v1 plugin
---
Before starting, make sure to read the [Plugin Development](docs/en/plugin-development.mdpment.md).
Before starting, make sure to read the [Plugin Development](../plugin-development).
To migrate an existing SCM-Manager 1.x Plugin, you have to do the following steps:
@@ -119,7 +119,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
### Java sources (src/main/java)
* try to compile the sources: `mvn compile`
* fix problems (See [API changes](api-changes.md))
* fix problems (TODO more help here)
* Remove XML accept headers from REST Resource classes -> SCMMv2 supports JSON only
* Migrate REST Resources (e.g. `v2`, add to Index Resource, Update Links) - See core plugins Git, Hg, Svn, e.g. [`GitConfigResource`](https://github.com/scm-manager/scm-manager/blob/develop/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitConfigResource.java)
@@ -139,7 +139,7 @@ diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml
"postinstall" : "ui-plugins postinstall"
},
"dependencies": {
"@scm-manager/ui-plugins" : "2.0.0-rc7"
"@scm-manager/ui-plugins" : "2.0.0"
}
}
```
@@ -164,10 +164,10 @@ Some more hints:
* For Configuration UIs use [`ConfigurationBinder`](https://github.com/scm-manager/scm-manager/blob/develop/scm-ui/ui-components/src/config/ConfigurationBinder.tsx) - See core plugins Git, Hg, Svn, e.g. [scm-git-plugin/index.ts](https://github.com/scm-manager/scm-manager/blob/develop/scm-plugins/scm-git-plugin/src/main/js/index.ts).
Note that `readOnly` property checks if update link is returned by REST resource
* Don't forget [i18n for Plugins](docs/en/i18n-for-plugins.mdugins.md)
* Don't forget [i18n for Plugins](../i18n-for-plugins)
# Further reading
* [scm-manager/ui-extensions README](scm-ui/ui-extensions/README.md) - Extension Points within SCM-Manager
* [UI Extensions](../../ui-extensions) - Extend the SCM-Manager UI
* [scm-manager/ui-components](https://github.com/scm-manager/scm-manager/tree/develop/scm-ui/ui-components) - Reusable UI components within SCM-Manager
* [smp-maven-plugin](https://github.com/scm-manager/smp-maven-plugin) - Plugin that facilitates efficient plugin development for SCMM

View File

@@ -95,18 +95,17 @@ In order to extend the ui the plugin requires a `package.json` in the project ro
"postinstall" : "ui-plugins postinstall"
},
"dependencies": {
"@scm-manager/ui-plugins" : "2.0.0-rc7"
"@scm-manager/ui-plugins" : "2.0.0"
}
}
```
The `main` field of the `package.json` describes the main entry point of the plugin.
The file specified at `main` should use the `binder` from the [@scm-manager/ui-extensions](../../scm-ui/ui-extensions) in oder to bind its extensions.
For more information of extensions, binder and extension points, please have a look at the [README.md](../../scm-ui/ui-extensions/README.md) of @scm-manager/ui-extensions.
The file specified at `main` should use the `binder` from the [@scm-manager/ui-extensions](../../ui-extensions) in oder to bind its extensions.
If the plugins gets build (`mvn package` or `mvn install`), the [buildfrontend-maven-plugin](https://github.com/sdorra/buildfrontend-maven-plugin), will call the `build` script of `package.json`.
The build script triggers the `plugin` command of [@scm-manager/ui-scripts](../../scm-ui/ui-scripts).
The build script triggers the `plugin` command of `@scm-manager/ui-scripts`.
The `ui-scripts` will do the following steps:
* traverses the import statements of the script specified at `main`

View File

@@ -8,35 +8,25 @@ If you want to share your plugin with SCM-Manager users, you can publish it to t
* Create a or Git repository for your plugin
* Develop your plugin as described in [Create a plugin](../create/)
* Fork the [Plugin Center Repository](https://github.com/scm-manager/plugin-center)
* Create a folder with the name of your plugin under the `src/plugins` directory
* Put a `index.md` which starts with frontmatter metadata, which describes your plugin e.g.:
* Create a folder with the name of your plugin under the `content/plugins` directory
* Create a `plugin.yml` in taht folder, which describes your plugin e.g.:
```yaml
---
name: scm-cas-plugin
displayName: CAS
description: CAS Authentication plugin for version 2.x of SCM-Manager
category: authentication
author: Cloudogu GmbH
---
```
* Document your plugin with [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) below the frontmatter header
* Commit your work and open a pull request. Put the url to your plugin repository into the description of the pull request.
After you have opened the pull request.
We will do a few steps to integrate your plugin into the plugin center:
* We will create a fork of your plugin under the [SCM-Manager Team](https://github.com/scm-manager/) and give your account write permissions
* After that we will create a Jenkins job for your plugin on [oss.cloudogu.com](https://oss.cloudogu.com/jenkins/job/scm-manager/job/scm-manager-bitbucket/)
* After that we will create a Jenkins job for your plugin on [oss.cloudogu.com](https://oss.cloudogu.com/jenkins/job/scm-manager-plugins/)
* At the end we will accept your pull request
From now on you can work with the repository in the [SCM-Manager Team](https://github.com/scm-manager/).
Every time you release your plugin (push a tag to the repository) the Jenkins job will build your plugin and release it to the plugin center.
# Architecture
The following picture shows the architecture of the involved systems.
![Architecture](architecture.jpg "Plugin Center Architecture")
Every time you release your plugin (push a release branch e.g.: release/1.0.1) the Jenkins job will build your plugin and release it to the plugin center.

View File

@@ -12,4 +12,4 @@ Use this as a kind of a checklist whenever you develop something in the UI of SC
| ☐ | add help icons to input components |
| ☐ | not use colors directly, but refer to `is-primary` or `is-warning` |
| ☐ | make sure your view works on mobile devices |
| ☐ | document [extension points in wiki](docs/en/extension-points.mdoints.md) |
| ☐ | document [extension points](../plugins/extension-points) |

View File

@@ -1,4 +1,7 @@
# ui-extensions
---
title: UI-Extensions
subtitle: How to extend the SCM-Manager UI with plugins
---
UI-Extensions contains the building blocks for the [SCM-Manager](https://scm-manager.org) ui extension system.

View File

@@ -7,56 +7,24 @@ title: Frequently Asked Questions
Username: `scmadmin`\
Password: `scmadmin`
### Where does SCM-Manager store its configuration, log files and the repositories?
### Where does SCM-Manager store its configuration, data and repositories?
SCM-Manager stores the complete data in a directory called .scm (the
SCM-Manager home directory). This directory is located in the home
directory of the user which is the owner of the process. Except for [rpm
and deb](RPM%20and%20DEB%20packages.md)
installations, for those installations the home directory is located at
/var/lib/scm.
All data which is created by SCM-Manager, is stored in the SCM-Manager base directory.
The location of the base directory depends on your type of installation.
Please have a look at the [documentation](../configuration/basedirectory/).
### How can I change the SCM-Manager home directory?
You could change the SCM-Manager home directory in a few ways:
- Edit the scm.properties (WEB-INF/classes) file and add the path to
your folder f.e. `scm.home=/var/scm`
- Set an environment variable SCM\_HOME with the path of your
directory
- Start your application server with a java property called `scm.home`
f.e. `-Dscm.home=/var/scm`
### Can I create a directory structure for scm-manager repositories?
Yes, since version 1.9 you can create directory structures. You can just
use a \"/\" in the name of the repository to create the structure. For
example the repositories Project/module-1, Project/module-2 and
OtherProject/module-1 will result in the following structure.
```text
+ Project
| - module-1
| - module-2
+ OtherProject
| - module-1
```
For more information have a look at [#47](https://github.com/scm-manager/scm-manager/issues/47 "Support for directory structure").
### After creation of a new public repository I am trying to clone it anonymously, but I got request of user and password. What am I doing wrong?
You have to enable \"Allow Anonymous Access\" at Config-\>General.
There are several ways to change the location of the home directory: [documentation](../configuration/basedirectory/#change-base-directory-location)
### Where does SCM-Manager stores it log files?
SCM-Manager stores the log files in a directory called \"logs\" which is
located in the home directory (see question \"Where does SCM-Manager
store its configuration, log files and the repositories?\").
The location of the log files depends on your operation system and the type of installation.
Please have a look at the [documentation](../configuration/logging/).
### How do I enable trace logging?
Edit scm-server/conf/logging.xml change the line from:
Find the location of your `logging.xml` in the [documentation](../configuration/logging/#configuration) and change the following line from:
```xml
<logger name="sonia.scm" level="INFO" />
@@ -67,17 +35,8 @@ to:
<logger name="sonia.scm" level="TRACE" />
```
If you are using the war version with an application server such as
tomcat, you have to edit the logback.xml in WEB-INF/classes.
After changing the configuration, SCM-Manager must be restarted.
### How do I install plugins?
Select Config-\>Plugins. This is supposed to show you a list of all
available plugins to install. It is not a place to configure existing
plugins. Install Package does not take you to the install screen\... If
you only see the installed plugins, see the next question.
### Why don\'t I see any installable plugins on the plugin tab?
Is the SCM-Manager server behind a proxy server? Then you have to
configure your proxyserver at Config-\>General.
Find the plugin you like to install at [plugins](/plugins#categories) and follow the installation instructions on the install page of the plugin.

View File

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 313 KiB

View File

@@ -23,7 +23,7 @@ To specify the new names (and namespaces), the SCM-Manager version 2 starts a mi
You can open this wizard in an internet browser using the URL of your installation (eg. http://localhost:8080/scm/).
![Migration Wizard](screenshots/migration-wizard.png)
![Migration Wizard](assets/migration-wizard.png)
In the figure you can see an example of the page. We tried to guess meaningful names, but for sure you want to make some changes here. Beside choosing new namespaces and names you have to select a migration strategy for each repository. The strategies are described on the page as follows:

View File

@@ -1,27 +1,28 @@
- section: Getting started
entries:
- /installation/
- /configuration/
- /migrate-scm-manager-from-v1/
- /faq/
- /known-issues/
- section: Administration
entries:
- /administration/scm-server-ssl/
- /administration/basedirectory/
- /administration/logging/
- /administration/command-line-client/
- /administration/scm-server-ssl/
- /administration/reverse-proxies/
- section: Development
entries:
- /development/intellij-idea-configuration/
- /development/build-from-source/
- /development/ui-common-pitfall/
- /administration/permission-concept/
- /development/permission-concept/
- /development/error-handling/
- /development/i18n/
- /development/definition-of-done/
- /development/ui-dod/
- /development/decision-table/
- section: Plugin Development
entries:

View File

@@ -1,10 +0,0 @@
---
title: Revision Control Plugin Comparison
---
| Plugin Name | Name | Core-Plugin | Requirements | Url |
| --- | --- | --- | --- | --- |
| scm-svn-plugin | Subversion | X | | <http://subversion.apache.org> |
| scm-git-plugin | Git | X | | <http://git-scm.com> |
| scm-hg-plugin | Mercurial | X | [Python (v.2.6)](http://www.python.org/getit/releases/2.6), Mercurial | <https://www.mercurial-scm.org/> |
| scm-bzr-plugin | Bazaar | | Python, Bazaar | <http://bazaar.canonical.com> |

View File

@@ -1,40 +0,0 @@
---
title: State of SCM-Manager 2 development
---
The development of SCM-Manager 2.0.0 is organised in [Trello Boards](https://trello.com/scmmanager).
## [Milestone 1](https://trello.com/b/oit1MD92/scm-manager-2-0-0-milestone-1)
### Main goals
* remove deprecated and unused stuff
* remove old style listeners
* replace [guava eventbus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained) with [legman](https://github.com/sdorra/legman)
* introduce new plugin structure
* offline plugin installation/updates/deinstallation
* use java 7 as default
* use of [annotation processors](http://docs.oracle.com/javase/7/docs/api/javax/annotation/processing/Processor.html) instead of classpath scanning
* move non core modules (plugin-backend, maven plugins, etc.) to separate repositories
## [Milestone 2](https://trello.com/b/Afb3hoJ9/scm-manager-2-0-0-milestone-2)
### Main goals
* use [apache shiro](http://shiro.apache.org/) everywhere
* improve authentication
* improve user and group management
* use permission instead of roles
## [Milestone 3](https://trello.com/b/eLvqTGGe/scm-manager-2-0-0-milestone-3)
### Main goals
* completely new designed rest api
## Milestone 4
### Main goals
* completely new user interface
## Milestone 5
### Main goals
* improve repository api