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
19 changes: 19 additions & 0 deletions .github/workflows/auto-generate-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Generate changelog
on:
release:
types: [created, edited]

jobs:
generate-changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: BobAnkh/auto-generate-changelog@master
with:
REPO_NAME: 'BobAnkh/auto-generate-changelog'
ACCESS_TOKEN: ${{secrets.GITHUB_TOKEN}}
PATH: '/CHANGELOG.md'
COMMIT_MESSAGE: 'docs(CHANGELOG): update release notes'
TYPE: 'feat:Feature,fix:Bug Fixes,docs:Documentation,refactor:Refactor,perf:Performance Improvements'
37 changes: 37 additions & 0 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Create Release
on:
workflow_dispatch:
inputs:
releaseversion:
description: 'Specify release version (e.g. 2.0.1)'
required: true
default: ''
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Replace Versions
run: |
sed -i "s/^version = .*$/version = \"${{github.event.inputs.releaseversion}}\"/g" pyproject.toml
sed -i "s/^__version__ = .*$/__version__ = \"${{github.event.inputs.releaseversion}}\"/g" atcodertools/release_management/version.py
- name: Make sure diff exists
run: |
git diff --stat --exit-code atcodertools/release_management/version.py
git diff --stat --exit-code pyproject.toml
- uses: EndBug/add-and-commit@v7.0.0
with:
author_name: github-actions
author_email: 41898282+github-actions[bot]@users.noreply.github.com

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.event.inputs.releaseversion }}
release_name: Release ${{ github.event.inputs.releaseversion }}
body: |
Release version ${{ github.event.inputs.releaseversion }}
draft: false
prerelease: false
47 changes: 0 additions & 47 deletions .github/workflows/nosetests.yml

This file was deleted.

35 changes: 35 additions & 0 deletions .github/workflows/stylecheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Check no style violation

on:
push:
branches: [ stable ]
pull_request:
branches: [ stable ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python 3.6
uses: actions/setup-python@v2
with:
python-version: 3.6

- name: Install Poetry
run: |
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

- name: Add path for Poetry
run: echo "$HOME/.poetry/bin" >> $GITHUB_PATH

- name: Install Dependencies
run: poetry install --no-interaction

- name: Check styles
run: |
poetry run flake8 --ignore=E501,W503,W605 --exclude=atcodertools/tools/templates/,tests/resources/test_codegen/ atcodertools tests
poetry run autopep8 -r . --exclude 'default_template.py,test_codegen' --diff | tee check_autopep8
test ! -s check_autopep8
49 changes: 49 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Run unit tests & integration tests

on:
push:
branches: [ stable ]
pull_request:
branches: [ stable ]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ 3.6, 3.8 ]
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install Poetry
run: |
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

- name: Add path for Poetry
run: echo "$HOME/.poetry/bin" >> $GITHUB_PATH

- name: Install Dependencies
run: poetry install --no-interaction

# Install Compilers for integration tests
- name: Install D compiler
uses: dlang-community/setup-dlang@v1
with:
compiler: dmd-latest

- name: Install other compilers
run: |
sudo apt-get update
sudo apt-get install nim mono-complete

- name: Run Unit Tests and Integration Tests
run: |
poetry run atcoder-tools gen arc050 --without-login
poetry run nosetests tests --exe -v --with-coverage --cover-package=atcodertools
poetry run codecov
36 changes: 36 additions & 0 deletions .github/workflows/upload-python-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Upload Python Package

on:
release:
types: [ created ]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python 3.6
uses: actions/setup-python@v2
with:
python-version: 3.6

- name: Install Poetry
run: |
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

- name: Add path for Poetry
run: echo "$HOME/.poetry/bin" >> $GITHUB_PATH

- name: Install Dependencies
run: poetry install --no-interaction
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
rm -rf dist/
poetry build
poetry run twine upload --repository-url https://test.pypi.org/legacy/ dist/*

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ debug.py
atcoder_tools.egg-info/
build/
dist/
check_autopep8
30 changes: 0 additions & 30 deletions .travis.yml

This file was deleted.

95 changes: 95 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
_Sorry for non-Japanese readers, but currently the English version of the contribution guide is unavailable although your contribution is welcome.
In the meanwhile, please try machine translation or ask [@kyuridenamida](https://twitter.com/kyuridenamida) directly on Twitter for the contribution guideline._

# コントリビューションガイド

AtCoderToolsへのコントリビューションに興味を持って頂きありがとうございます。このガイドの目的は2つです。

- コードの品質を保ち、メンテナンスコストを下げ、少ない労力で継続的な開発を行っていくためのお願いをお伝えすること
- 開発者が機能追加・修正に対して何をしたら良いかを明らかにすること。

不明瞭な部分があったらissueを立てて報告してください。あなたのフィードバックはいつでも歓迎です。

## 開発環境のセットアップ

### 1. 適切なPythonバージョンを用意

ユーザーの環境にpython 3.6以降がインストールされていることを想定しています。
それらは各自で各々インストールしてください。

### 2. Poetryを通じたパッケージにインストール
依存ライブラリのインストールはpoetryを通じて行います。
poetryのインストールはhttps://cocoatomo.github.io/poetry-ja/ を参照してください。

プロジェクトのルートディレクトリで以下のコマンドを実行することで環境がインストールできます。
```
poetry install
```

## 開発フロー

少し注文が多いですが、メンテナ一人で継続的にメンテナンスしていくためには開発者の皆様に以下のことをお願いすることが必要不可欠です。
どうかご理解いただけると幸いです。

### 1. フォークする

https://github.com/kyuridenamida/atcoder-tools を開き、右上のForkボタンでatcoder-toolsをforkしてください。

### 2. 実装をする

気をつけてほしいことは現状2つです。

- 変更範囲を不必要に大きくしない。 2つの独立した変更を一緒くたに行うことは避ける。
- コマンドの下位互換性を大切にする。難しい場合はIssue等で相談してください。
- 過去のconfigが動くこと
- 過去のコマンドが動くこと

複雑な機能については実装前にめissue等でデザインを相談していただくと手戻りコストが少ないかもしれません。

### 3. テストを書く

特に理由が無い場合Lineカバレッジ 100% を要求します。
またバグの修正の場合も、バグが修正されたことを確認するテストを書いてください。

### 4. ドキュメントを書く
新しいコマンドラインパラメータやConfigの場合、README.mdにドキュメントを書いてください。

### 5. Linterをかける
自動整形や不要なインポートを静的チェックします。

### 6. ユニットテストが通ることを確認する
TODO: ここ

### 7. Commitする + Pushする

このプロジェクトにおいてのコミットメッセージの規約は以下の通りです。
- 英語で書く

変更をCommitしてPushします。できるだけ英語だと嬉しいです。
実装とテストのコミットが複数あっても構いませんし細かいことは気にしません。

### 8. プルリクエストを送る

変更内容の概要を書いてください。英語で書いてくれると嬉しいですが、日本語とその機械翻訳の結果とかでもいいです。
概要はテンプレートに従うと楽ですが、必要に応じて独自の書き方でも構いません。
少なくとも

- なぜこの変更が必要か? (簡潔なもので良い)
- 何をしたか? (コードを読む際に手助けになる程度で良い)
- どういう挙動が期待されるか? (メンテナが手元で動作チェックする時に必要)

を書いてくださると嬉しいです。

### 9. ビルドが通ったバッジが緑色になっていることを確認する

### 10. @kyuridenamidaからレビューを受ける
@kyuridenamidaが頑張ってレビューをします。

申し訳ないですが、機能によっては必ずマージされるわけではないです。
少しでもatcoder-toolsの責務じゃないと思ったら事前に相談してくれると嬉しいです。

### 11. マージされる
不定期です。

### 12. リリースされる。
おめでとうございます。あなたの機能はリリースされました。
3 changes: 0 additions & 3 deletions MANIFEST.in

This file was deleted.

28 changes: 28 additions & 0 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Why is this change needed?

_A simple background is fine. e.g. I want to do YYYY for the situation of XXXX._

_(Japanese)
なぜこの変更が必要か?
簡潔なもので良い。
(例) ○○の状況で△△できるようにしたいから_

## What did you implement?

_A minimal highlight of your change is fine. e.g. Add parameter XXXX in the config._

_(Japanese)
何をしたか?
コードを読む際に手助けになる程度で良い。
(例) ○○というconfigのパラメータを追加した。_

## What behavior do you expect?

_This is required for the verification of your functionality by the maintainer.
e.g. When you have file XXX and execute command YYY, then you will see ZZZ in the console output._

_(Japanese)
どういう挙動が期待されるか?
メンテナが手元で動作チェックする時に必要。
(例) ☓☓というファイルがある状態で○○というコマンドを実行した際に△△という出力がコンソールにされる。_

Loading