Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 21 additions & 11 deletions .github/workflows/check_links.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
name: Check Links
name: CI

on: [pull_request]
on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
# Runs every Thursday at 20:23 UTC to avoid bit rot
- cron: "20 23 * * 4"

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: Build
run: cargo build --verbose
working-directory: ci
- name: Run tests
run: cargo test --verbose
working-directory: ci
- uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Render list
run: make render
- uses: stefanzweifel/git-auto-commit-action@v4.1.2
with:
branch: ${{ github.head_ref }}
commit_message: Commit list
commit_user_name: GitHub Actions Bot
commit_user_email: github-actions-bot@analysis-tools.dev
commit_author: GitHub Actions Bot <github-actions-bot@analysis-tools.dev>
65 changes: 25 additions & 40 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# How to add a new tool to the list

Please feel free to open a pull request if you know of a code analysis tool that is not mentioned here.
If you're in doubt if a tool is a good fit for the list, **don't open an issue, but create a pull request right away** because that's easier to handle. Thanks! :smiley:
Please feel free to open a pull request if you know of a code analysis tool that
is not mentioned here.
If you're in doubt if a tool is a good fit for the list, **don't open an issue,
but create a pull request right away** because that's easier to handle. Thanks!
:smiley:

### Requirements

Expand All @@ -12,54 +15,36 @@ Each tool on the list should be

### Format

```Markdown
* [Project Name](https://github.com/author/project-name) - A short, but meaningful description. Maximum two lines long.
```
e.g.:
The main `README.md` is just a rendered version of the data. To add a new tool,
please edit `data/data.yml`.

```Markdown
* [CMetrics](https://github.com/MetricsGrimoire/CMetrics) [OSS] - Measures size and complexity for C files
```

for **proprietary tools**, please add a "copyright emoji" (`:copyright:`):

```Markdown
* [Functor Prevent](http://www.functor.se/products/prevent/) :copyright: - Static code analysis for C code.
```

### Ordering

Please make sure to keep the alphabetical, case-insensitive ordering of the
tools.

### Description length

Make each tool description as precise as possible.
Please limit the description to **200 characters**.

### Categories

If you can, please limit yourself to only one category.
This way, all tools get treated fairly and the list is easier to read.
- Make each tool description as precise as possible.
Please limit the description to **500 characters**.
- Please keep the tools in alphabetical order.
- By default, we assume that the tool is open source.
If a tool is proprietary, add `proprietary: true`.
- Please add as many categories as possible. You can choose from the categories
in `data/categories.yml` If a tool does not match any existing category, feel
free to start a new category.

Finally, create a pull request with all your changes.
You can call `make render` to check for errors before.
This is optional, because it will also be done when creating
a pull request.

# How to mark a tool as unmaintained/deprecated

Sometimes it happens that a tool becomes unmaintained and there's nothing wrong
with that.
Sometimes a tool becomes unmaintained and there's nothing wrong with that.
After all, a tool can still be very valuable to the community - even without
frequent updates.
However, since it is one of the goals of this project to allow people to make an
informed decision on what is the best tool for the job, we are marking
unmaintained or deprecated tools with a :warning: (`:warning:`) sign.
This sign indicates that the community does not recommend to use this tool for
new projects anymore.

unmaintained or deprecated tools.
[Here](https://github.com/mre/awesome-static-analysis/issues/223) is a nice
discussion about why we think this is necessary. If you find a tool, which is
unmaintained, please create a pull request which adds the `:warning:` sign and
provide an objective explanation as to why you think the tool should be marked.
Every deprecation will be handled on a case-by-case basis.

unmaintained, please add `deprecated: true` to the entry in `data/data.yml` and
create a pull request in which you provide an objective explanation as to why
you think the tool should be marked deprecated. Every deprecation will be
handled on a case-by-case basis.

**Thanks for helping out!** :tada:
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ serve: link
deploy: link
mkdocs gh-deploy

.PHONY: render
render:
(cd data/render && cargo run -- ../../data/categories.yml ../../data/data.yml) > README.md
Loading