Skip to content

Commit 85cc204

Browse files
committed
Readme updates and new screenshots
1 parent 31f2ce7 commit 85cc204

15 files changed

+158
-84
lines changed

CONTRIBUTING.md

+59-33
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,82 @@
11
# Contributing to Leantime
2-
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
2+
We love your input! We want to make contributing to Leantime as easy and transparent as possible. There are many ways to contribute:
33

4-
- Reporting a bug
5-
- Discussing the current state of the code
6-
- Submitting a fix
7-
- Proposing new features
8-
- Translating files
9-
- Becoming a maintainer
4+
5+
## Development Process
6+
7+
We use `master` as our primary development branch. All changes should be made through feature branches and pull requests:
8+
9+
1. Fork the repository and create your branch from `master`
10+
2. Create feature branches using the format: `feature/your-feature-name`
11+
3. For bug fixes use: `fix/bug-description`
12+
4. For documentation updates use: `docs/what-you-documented`
13+
5. For translations use Crowdin instead of direct pull requests
1014

1115
## We Develop with GitHub
12-
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
16+
We use GitHub to host code, track issues and feature requests, and accept pull requests. Pull requests are the best way to propose changes.
17+
18+
### Pull Request Process
1319

14-
## We Use [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow), So All Code Changes Happen Through Pull Requests
15-
Pull requests are the best way to propose changes to the codebase (we use [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow)). We actively welcome your pull requests:
20+
1. Ensure your code follows our coding standards (PSR-12)
21+
2. Add/update tests for any new features
22+
3. Update documentation as needed
23+
4. Ensure all tests pass locally
24+
5. Run code style checks:
25+
```bash
26+
make codesniffer
27+
make phpstan
28+
```
29+
6. Include screenshots for user interface changes
30+
7. Update the CHANGELOG.md if needed
31+
8. Sign the Contributor License Agreement when prompted
32+
33+
### Quality Requirements
1634

17-
1. Fork the repo and create your branch from `master`.
18-
2. If you've added code that should be tested, add tests.
19-
3. If you've changed APIs, update the documentation.
20-
4. Ensure the test suite passes.
21-
5. Make sure your code lints.
22-
6. Issue that pull request!
2335

2436
## Contributor License Agreements
2537
Developers who wish to contribute code to be considered for inclusion in Leantime must first complete a Contributor License Agreement (CLA).
2638
We use CLA assistant to manage signatures. You will be asked to sign the CLA with your first pull request. Subsequent pull requests will not require additional signatures. Please keep in mind that:
27-
- If you are an individual writing the code on your own time and you're SURE you are the sole owner of any intellectual property you contribute, you can sign the license as an individual contributor
28-
- If you are writing the code as part of your job, or if there is any possibility that your employers might think they own any intellectual property you create, then you should reach out to us at [email protected] for a Corporate Contributor License Agreement (this will allow any employee at your company to contribute without having to sign individual CLAs).
2939

30-
## Report bugs using GitHub's [issues]([https://github.com/Leantime/leantime/issues](https://github.com/Leantime/leantime/issues))
40+
## Report bugs using GitHub's [issues](https://github.com/Leantime/leantime/issues)
3141
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/Leantime/leantime/issues); it's that easy!
3242

3343
## Translations
3444
We use Crowdin to manage our translations. Please update translations in [this project](https://crowdin.com/project/leantime)
35-
At this point we will stop accepting PRs into the language files directly as this is causing issues with the Crowdin sync process.
45+
At this point we will stop accepting pull requests into the language files directly as this is causing issues with the Crowdin sync process.
3646

3747
## Write bug reports with detail, background, and sample code
3848
[This is an example](http://stackoverflow.com/q/12488905/180626) of a bug report, and we have modeled the issue templates after that. Here's [another example from Craig Hockenberry](http://www.openradar.me/11905408), an app developer whom I greatly respect.
3949

4050
**Great Bug Reports** tend to have:
4151

42-
- A quick summary and/or background
43-
- Steps to reproduce
4452
- Be specific!
4553
- Give sample code if you can. [My stackoverflow question](http://stackoverflow.com/q/12488905/180626) includes sample code that *anyone* with a base R setup can run to reproduce what I was seeing
46-
- What you expected would happen
47-
- What actually happens
48-
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
4954

5055
People *love* thorough bug reports. I'm not even kidding.
5156

57+
## Development Setup
58+
59+
1. Fork and clone the repository
60+
2. Install dependencies:
61+
```bash
62+
make install-deps-dev
63+
```
64+
3. Set up your environment:
65+
- Copy `.env.example` to `.env`
66+
- Configure your database
67+
- Set up local development server
68+
69+
4. Run development build:
70+
```bash
71+
make build-dev
72+
```
73+
74+
5. Run tests:
75+
```bash
76+
make unit-test
77+
make acceptance-test
78+
```
79+
5280
## Use a Consistent Coding Style
5381
We are using the [PSR-12 coding style](https://www.php-fig.org/psr/psr-12/) for PHP.
5482

@@ -57,10 +85,10 @@ We are using the [PSR-12 coding style](https://www.php-fig.org/psr/psr-12/) for
5785
As mentioned above we are following PSR-12 naming conventions. Some areas are not covered in the standard and will be covered in this section. For sake of completion we include all naming conventions in this section.
5886

5987
**Classes**
60-
Pascal Case (Example: `leantime.core.controller.frontcontroller`
88+
Pascal Case (Example: `Leantime\\Core\\Http\\Request`)
6189

6290
**Class Methods**
63-
Camel Case (Example: `$object->getItem()`
91+
Camel Case (Example: `$object->getItem()`)
6492

6593
**Variable Names**
6694
Camel Case (Example: `$variableName`)
@@ -72,18 +100,16 @@ Camel Case (Example: `$array['indexDefinition']`)
72100
Macro Case (Example: `MY_CONSTANT`)
73101

74102
**Event Strings**
75-
Pascal Case with periods for the path (Example: `Leantime.Core.Method.SomeEvent`)
103+
Camel Case with periods for the path (Example: `leantime.core.controller.frontController.someEvent`)
76104

77105
**HTML elements, classes, ids**
78-
Kebab Case (Example: `<div class="my-class" id="my-id">`
106+
Kebab Case (Example: `<div class="my-class" id="my-id">`)
79107

80108
**Blade Components**
81-
Kebab Case (Example: `<x-global::my-directive>`
109+
Kebab Case (Example: `<x-global::my-directive>`)
82110

83111
**Blade File Names**
84-
Kebab Case + `blade.php` (Example: my-directive.blade.php`)
85-
86-
112+
Kebab Case + `blade.php` (Example: `my-directive.blade.php`)
87113

88114
## References
89115
This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebookarchive/draft-js/blob/5dd99d327066f5f0b30b95ab95770822cff1ac65/CONTRIBUTING.md)

SECURITY.md

+26-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Security Policy
22

3+
## Supported Versions
4+
5+
We currently support the following versions with security updates:
6+
7+
| Version | Supported |
8+
| ------- | ------------------ |
9+
| 3.4.x | :white_check_mark: |
10+
| < 3.4 | :x: |
11+
312
## Reporting a Vulnerability
413

5-
Please e-mail all security issue findings to [email protected]
14+
Leantime takes security seriously. If you discover a security vulnerability, please follow these steps:
15+
16+
1. **Do NOT disclose the vulnerability publicly**
17+
2. Email [email protected] with details about the vulnerability
18+
3. Allow up to 48 hours for an initial response
19+
4. Work with us to resolve the issue before any public disclosure
20+
21+
For more information, visit our [Responsible Disclosure Policy](https://leantime.io/responsible-disclosure-policy/)
22+
23+
## Security Best Practices
24+
25+
When deploying Leantime:
26+
1. Always use Hypertext Transfer Protocol Secure
27+
2. Keep PHP and all dependencies up to date
28+
3. Enable two-factor authentication
29+
4. Use strong passwords
30+
5. Regular backups

composer.json

+49-26
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
11
{
22
"name": "leantime/leantime",
3-
"description": "Open source project management system",
4-
"version": "3.4.0",
3+
"description": "Open source project management system for non-project managers. Simple like Trello, powerful like Jira. Built with neurodiversity in mind.",
54
"type": "project",
6-
"license": "AGPL-3.0",
7-
"config": {
8-
"platform-check": false,
9-
"platform": {
10-
"php": "8.2.0"
11-
},
12-
"allow-plugins": {
13-
"dealerdirect/phpcodesniffer-composer-installer": true,
14-
"metasyntactical/composer-plugin-license-check": true,
15-
"php-http/discovery": true,
16-
"phpstan/extension-installer": true,
17-
"wikimedia/composer-merge-plugin": true
18-
}
19-
},
5+
"keywords": [
6+
"project-management", "task-management", "kanban", "gantt", "php", "mysql",
7+
"jira-alternative", "clickup-alternative", "asana-alternative", "agile",
8+
"scrum", "lean", "innovation-management", "neurodiversity-friendly"
9+
],
10+
"homepage": "http://leantime.io",
11+
"readme": "README.md",
12+
"license": "AGPL-3.0-only",
2013
"authors": [
2114
{
2215
"name": "Marcel Folaron",
23-
"email": "[email protected]"
16+
"email": "[email protected]",
17+
"homepage": "http://leantime.io"
2418
}
2519
],
26-
"repositories": [
20+
"support": {
21+
"email": "[email protected]",
22+
"issues": "https://github.com/Leantime/leantime/issues",
23+
"docs": "https://docs.leantime.io",
24+
"chat": "https://discord.com/invite/YJeNS7VkQh",
25+
"security": "https://leantime.io/responsible-disclosure-policy/"
26+
},
27+
"funding": [
2728
{
28-
"type": "vcs",
29-
"url": "https://github.com/leantime/leantime-documentor.git"
29+
"type": "Github Sponsor",
30+
"url": "https://github.com/sponsors/Leantime"
31+
},
32+
{
33+
"type": "Support Leantime",
34+
"url": "https://marketplace.leantime.io/product/support-leantime"
3035
}
3136
],
3237
"require": {
@@ -85,8 +90,8 @@
8590
"metasyntactical/composer-plugin-license-check": "^2.1",
8691
"phpseclib/phpseclib": "~3.0",
8792
"spatie/icalendar-generator": "^2.6",
88-
"sentry/sentry-laravel": "4.8.0",
89-
"stripe/stripe-php": "v7.128.0",
93+
"sentry/sentry-laravel": "~4.8.0",
94+
"stripe/stripe-php": "~7.128.0",
9095
"crispchat/php-crisp-api": "^1.7",
9196
"php-http/httplug": "^2.4",
9297
"laravel/sanctum": "^3.3",
@@ -135,8 +140,7 @@
135140
"psr-4": {
136141
"Leantime\\": [
137142
"app/"
138-
],
139-
"": "app/"
143+
]
140144
},
141145
"files": [
142146
"app/helpers.php"
@@ -149,13 +153,31 @@
149153
],
150154
"Unit\\": [
151155
"tests/Unit/"
152-
],
153-
"": "app/"
156+
]
154157
},
155158
"files": [
156159
"app/helpers.php"
157160
]
158161
},
162+
"repositories": [
163+
{
164+
"type": "vcs",
165+
"url": "https://github.com/leantime/leantime-documentor.git"
166+
}
167+
],
168+
"config": {
169+
"platform-check": false,
170+
"platform": {
171+
"php": "8.2.0"
172+
},
173+
"allow-plugins": {
174+
"dealerdirect/phpcodesniffer-composer-installer": true,
175+
"metasyntactical/composer-plugin-license-check": true,
176+
"php-http/discovery": true,
177+
"phpstan/extension-installer": true,
178+
"wikimedia/composer-merge-plugin": true
179+
}
180+
},
159181
"extra": {
160182
"installer-paths": {
161183
"app/Plugins/{$name}/": [
@@ -168,6 +190,7 @@
168190
]
169191
},
170192
"merge-plugin": {
193+
"ignore-duplicates": true,
171194
"include": [
172195
"app/Plugins/*/composer.json"
173196
]

0 commit comments

Comments
 (0)