seacms/docs/en/dev.md
2023-03-16 21:59:03 +01:00

124 lines
3.4 KiB
Markdown

# Documentation for developpers
This package is the the main SeaCMS package.
## Installation
- install [`git`](https://git-scm.com/downloads)
- install [`composer`](https://getcomposer.org/download/)
- clone repository
```bash
git clone https://git.defis.info/SeaCMS/seacms.git seacms
```
- choose the folder name by replacing `seacms` in the command line by the wanted path
or (equivalent to `git clone`)
```bash
mkdir seacms
cd seacms
git init
git remote add origin https://git.defis.info/SeaCMS/seacms.git
git fetch --all
git checkout master
```
- then start `composer install`
### If you want use one dependency in local
- create the file `main-config.json` in root folder
- keep on branch `master`
- put this This will use symlink to these folders only if existing
```
{
"local-repositories": {
"composer-plugin": "seacms/composer-plugin",
"pico-content-editor": "seacms/pico-content-editor",
"pico": {
"packageName": "picocms/pico",
"version": "dev-fix-compatibility-php8"
},
"seacms-app": "seacms/seacms-app",
"seacms-api": "seacms/seacms-api",
"seacms-auth": "seacms/seacms-auth",
"seacms-theme": "seacms/seacms-theme"
}
}
```
- type `composer update` in command line
- be careful not to push `composer.lock` to main repo if you don't know what you are doing
If trouble during `composer update`, you can:
1. clear cache `composer cc`
2. delete folder `vendor` before `composer update`
## TODO
- [ ] set contact addresses into `CODE_OF_CONDUCT.md` files
- [ ] update `composer.json` file as described below
- [ ] create a `SUPPORT.md` file at the root
- [ ] update content of `.github/CONTRIBUTING.md`
- [ ] check content of `.github/PULL_REQUEST_TEMPLATE.md`
- [ ] update docs (French + English) for installation
## `composer.json` file
This files needs to be updated.
Currently, it uses `"minimum-stability": "dev",` to allow usage of `alpha` revisions of packages.
### TODO
add these fields :
```json
"name": "TODO To be defined",
"description": "TODO to complete",
"homepage": "TODO To set",
"authors": [
{
"name": "xxx",
"email": "TODO complete",
"homepage": "TODO complete",
"role": "Developer"
},
{
"name": "xxx",
"email": "TODO complete",
"homepage": "TODO complete",
"role": "Developer"
},
],
"support": {
"email": "support@example.org",
"issues": "url",
"source": "url",
"docs": "url",
"chat": "url",
"rss": "url",
},
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/phpdoctrine"
},
{
"type": "tidelift",
"url": "https://tidelift.com/subscription/pkg/packagist-doctrine_doctrine-bundle"
},
{
"type": "other",
"url": "https://www.doctrine-project.org/sponsorship.html"
}
]
```
## `.github` folder
It was choosen to name the folder as `.github` to allow compatibility for forks on GitHUb even if the folder could be named `.gitea`.
## reserved folders' name
- `vendor` for composer
- `node_modules` for `npm` and `yarn`
- `archives` for archives' creation
- `sites` for subsites on a farm
- `public` for assets `public/img` `public/js` `public/css` , ....
- `p` for main content path