Skip to content

Commit

Permalink
Merge branch 'release/2.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
tienne-B committed Nov 30, 2020
2 parents 88036c6 + b32d139 commit a7e9b97
Show file tree
Hide file tree
Showing 1,182 changed files with 74,014 additions and 22,953 deletions.
12 changes: 8 additions & 4 deletions .eslintrc → .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
module.exports = {
"root": true,
"env": {
"node": true,
Expand All @@ -7,17 +7,21 @@
},
"extends": [
"plugin:vue/essential",
"standard"
// "plugin:vue/recommended" // TODO
"@vue/standard"
],
"rules": {
"comma-dangle": ["error", "always-multiline"], // Improve diffs
"comma-dangle": [
"error", "always-multiline"
], // Improve diffs
"func-names": "off", // Conflicts with vue
"object-shorthand": "off", // Conflicts with vue
"no-underscore-dangle": "off", // Conflicts with vue
// Vue-plugin lint rules
"vue/require-v-for-key": "off", // Requires not using <template>; breaks layouts
// Temporary; to fix
"no-console": "off",
"no-console": process.env.NODE_ENV === 'production' ? 'warn' : 'off',
"no-debugger": process.env.NODE_ENV === 'production' ? 'warn' : 'off',
"radix": "off",
},
"parserOptions": {
Expand Down
44 changes: 42 additions & 2 deletions .github/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,38 @@
Change Log
==========

2.5.0 (Nebelung)
----------------
*Release date: 30 November 2020*

- Added a preference to allow dedicated reply speaker. Thanks to Miha Frangež for the PR! (`#1584 <https://github.com/TabbycatDebate/tabbycat/issues/1584>`_)
- Private URL submissions now store the participant whose link was used rather than just their IP address (`#1586 <https://github.com/TabbycatDebate/tabbycat/issues/1586>`_)
- Added selectors for adjudicator positions in draw emails (`#1423 <https://github.com/TabbycatDebate/tabbycat/pull/1423>`_)
- Implemented debate postponement, allowing debates to be marked as "postponed" in the results page. Postponed debates do not block draw generation, contrary to unconfirmed debates. (`#1563 <https://github.com/TabbycatDebate/tabbycat/pull/1563>`_)
- Added round weights so that team points can be pondered between rounds, implementing tapered scoring. Weights only affect the sum of team points. (`#1512 <https://github.com/TabbycatDebate/tabbycat/pull/1512>`_)
- Optimisations to the database
- Adjudicator Feedback choices and draw flags are stored with PostgreSQL-specific arrays (`#1525 <https://github.com/TabbycatDebate/tabbycat/issues/1525>`_)
- Optimised database queries to create all debates in a draw at once (`#1376 <https://github.com/TabbycatDebate/tabbycat/pull/1376>`_)
- Optimised deletion of team private URLs (`#1618 <https://github.com/TabbycatDebate/tabbycat/pull/1618>`_)
- Reduced number of database queries in sending notifications (`#1592 <https://github.com/TabbycatDebate/tabbycat/pull/1592>`_)
- Delegated the calculation of team and speaker rankings to database functions where available, with metrics using the same query. (`#1617 <https://github.com/TabbycatDebate/tabbycat/pull/1617>`_)
- Improvements to the API, including
- Added URL field from the Room model to the Venues API endpoints as 'external URL'
- The Institution API endpoints show institutions' regions as their name, and regions can be created
- Breaks are now explorable and manipulable through the API.
- Overhauled the results framework to allow for more types of ballots
- BP finals now nominate only one team winning (`#527 <https://github.com/TabbycatDebate/tabbycat/issues/527>`_)
- There are now settings to allow tied-point and low-point wins, with declared winners (`#643 <https://github.com/TabbycatDebate/tabbycat/issues/643>`_)
- Two-team formats can now have scoreless ballots, and winner ballots are not restricted to elimination rounds (`#1003 <https://github.com/TabbycatDebate/tabbycat/issues/1003>`_)
- Results are now discoverable through the API.
- Added new translations and features to help translators
- Thanks to Pascal Alfadian for his work on an Indonesian translation!
- Added in-context translation through Crowdin enabling translations to be made directly on Tabbycat (`#1664 <https://github.com/TabbycatDebate/tabbycat/pull/1664>`_)
- Removed the simulated annealing adjudicator allocator. (`#1619 <https://github.com/TabbycatDebate/tabbycat/pull/1619>`_)
- Fixed issue with Sentry integration preventing some debugging info from being included in error reports
- Improved handling of multiple current rounds in record pages, and prevented data leakage


2.4.7
-----
*Release date: 15 October 2020*
Expand All @@ -10,6 +42,7 @@ Change Log
- Record pages now show concurrent rounds
- Non-public speaker categories are now hidden from public API endpoints when unauthenticated


2.4.6
-----
*Release date: 19 September 2020*
Expand All @@ -18,6 +51,7 @@ Change Log
- Fixed issue that made saving motions impossible through the Round API detail endpoint
- Fixed issue that made filtering by source team impossible for the Feedback API


2.4.5
-----
*Release date: 19 July 2020*
Expand All @@ -28,24 +62,27 @@ Change Log
- Improved sorting of feedback table when sorting 'difference between base score and current score' (thanks Zachary for the report)
- Fixed issue where the last saved counter was not updating on normal tables


2.4.4
-----
*Release date: 13 July 2020*

- Fixed colours associated with adjudicators' scores not showing
- Showed validation errors when using API with invalid field names
- Prevented Tabbycat from creating default conflicts with the API if already specififed in the request
- Fixed eligibilty API endpoints when a list of participants is not present
- Prevented Tabbycat from creating default conflicts with the API if already specified in the request
- Fixed eligibility API endpoints when a list of participants is not present
- Fixed speaker category eligibility API endpoint not accepting speakers
- Allowed updating teams, excluding speakers, through the team detail API endpoint
- Added date and time formats for Malay


2.4.3
-----
*Release date: 4 July 2020*

- Fixed issue preventing break eligibility from saving (`#1521 <https://github.com/TabbycatDebate/tabbycat/issues/1521>`_)


2.4.2
-----
*Release date: 22 June 2020*
Expand All @@ -54,6 +91,7 @@ Change Log
- Fixed participant record page crashes resulting from `#1511 <https://github.com/TabbycatDebate/tabbycat/pull/1511>`_ (`#1518 <https://github.com/TabbycatDebate/tabbycat/pull/1518>`_)
- Fixed hanging in preformed panel creation


2.4.1
-----
*Release date: 21 June 2020*
Expand All @@ -70,6 +108,7 @@ Change Log
- Fixed issue preventing the creation of speakers in teams through API
- Little updates and clarifications to the documentation


2.4.0 (Manx)
------------
*Release date: 14 June 2020*
Expand Down Expand Up @@ -101,6 +140,7 @@ Change Log
- Fixed issue causing even panels to be missed for user warnings (`#1465 <https://github.com/TabbycatDebate/tabbycat/issues/1465>`_)
- Stopped actively maintaining `local installation instructions for Windows <https://tabbycat.readthedocs.io/en/latest/install/windows.html>`_


2.3.3
-----
*Release date: 26 April 2020*
Expand Down
6 changes: 3 additions & 3 deletions .github/CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Style guide

For the front end interface design there is a style guide available at "/style/" once a tournament has been setup.

For python code, we use `flake8 <http://flake8.readthedocs.io>`_ to check for a non-strict series of style rules. Warnings will trigger a Travis CI build to fail. The entire codebase can be checked by using::
For python code, we use `flake8 <http://flake8.readthedocs.io>`_ to check for a non-strict series of style rules. Warnings will trigger a CI build to fail. The entire codebase can be checked by using::

$ pre-commit run flake8 --all-files

Expand Down Expand Up @@ -157,7 +157,7 @@ Release checklist

1. Check that all migrations have been generated and committed into Git
2. Merge translations from the Crowdin pull request and compile messages
3. Bump version number in ``docs/conf.py``
3. Bump version number in ``docs/conf.py`` and ``docs/api-schema.yml`` (if applicable)
4. Bump version number and (if applicable) codename in ``tabbycat/settings/core.py``
5. Update the main ``CHANGELOG.rst`` file (including release date)
6. Check the major current deployment options, including:
Expand All @@ -166,7 +166,7 @@ Release checklist
3. Docker (macOS, Windows 10*) and Docker Toolbox (Windows 10 Home) methods
4. Using Bash and Powershell on Windows
5. Using Terminal on macOS (at least test out a fresh install of the npm/pip dependencies)
7. Check that the last Travis CI build passed and run the full local test suite (this will include the Selenium tests that are not on Travis)
7. Check that the last Github Actions build passed and run the full local test suite (this will include the Selenium tests that are not on Travis)
8. Shift remaining issues from the Github Milestone
9. Create and finish the release branch as per git-flow
10. Ensure the tag is correct (``vX.Y.Z``) and published to GitHub
Expand Down
15 changes: 6 additions & 9 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@
[![Release](https://img.shields.io/github/release/tabbycatdebate/tabbycat.svg)](https://github.com/tabbycatdebate/tabbycat/releases)
[![Crowdin](https://badges.crowdin.net/tabbycat/localized.svg)](https://crowdin.com/project/tabbycat)
[![Docs](https://readthedocs.org/projects/tabbycat/badge/)](http://tabbycat.readthedocs.io/en/stable/)
[![Build Status](https://travis-ci.org/TabbycatDebate/tabbycat.svg?branch=develop)](https://travis-ci.org/TabbycatDebate/tabbycat)
[![Build status](https://ci.appveyor.com/api/projects/status/hcht4g5x2m5urr8y/branch/develop?svg=true)](https://ci.appveyor.com/project/philipbelesky/tabbycat-81705/branch/develop)
![Build Status](https://github.com/TabbycatDebate/tabbycat/workflows/Django%20CI/badge.svg)
[![Maintainability](https://api.codeclimate.com/v1/badges/33dc219dfb957ad658c2/maintainability)](https://codeclimate.com/github/TabbycatDebate/tabbycat/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/33dc219dfb957ad658c2/test_coverage)](https://codeclimate.com/github/TabbycatDebate/tabbycat/test_coverage)

</div>

Tabbycat is a draw tabulation system for British Parliamentary and a variety of two-team formats. It was used at Australs in 2010, and 2012-2018 as well as at EUDC 2018 and many other tournaments of all sizes and formats. To see an example of a post-tournament website, have a look at the [Australs 2018 tab website](https://australs2018.herokuapp.com).
Tabbycat is a draw tabulation system for British Parliamentary and a variety of two-team formats. It was used at Australs 2010 and 2012–2019, EUDC 2018, WUDC 2019–2020 and many other tournaments of all sizes and formats. To see an example of a post-tournament website, have a look at the [WUDC 2020 tab website](https://wudc2020.herokuapp.com).

**Want to try it out?** The best way to trial Tabbycat is just to launch a new site, as described [in our user guide](https://tabbycat.readthedocs.io/en/stable/install/heroku.html) (or [below](#installation-and-user-guide)). It takes just a few clicks, costs nothing, requires no technical background, and you can always deploy a fresh copy when you're ready to run your tournament.

Expand All @@ -34,15 +33,13 @@ Our user guide is at [tabbycat.readthedocs.io](http://tabbycat.readthedocs.io/).

## ⬆️ Installation

The fastest way to launch a Tabbycat site is to click this button:
Tabbycat can be deployed in a number of ways. While you can set it up to [run on your own computer](https://tabbycat.readthedocs.io/en/stable/install/local.html) most users will want to run it as a website.

[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/TabbycatDebate/tabbycat/tree/master)

During the installation process Heroku will ask you to verify your account by adding a credit or debit card. A standard Tabbycat site *will not charge* your card without explicit permission — charges only accrue if you deliberately add a paid service in the Heroku dashboard.
Tabbycat is configured for a '1 click' install to the [Heroku](https://www.heroku.com) web platform. Click this button to begin:

That said if you do not have access to a credit or debit card we offer a version of the software — 'Tabbykitten' — that does not require Heroku to verify your account. However, as a result, this version is limited: it cannot send emails and cannot be upgraded with extra database capacity or to better handle large amounts of traffic (although you can perform these upgrades later if you verify your Heroku account). We recommend using it only for small tournaments. [Use this link to set up a Tabbykitten version](https://heroku.com/deploy?template=https://github.com/TabbycatDebate/tabbycat/tree/kitten).
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/TabbycatDebate/tabbycat/tree/master)

Our documentation also provides guides for how to run Tabbycat on your local machine.
While the baseline Heroku hosting is free, some features require additional setup and larger tournaments will likely need to pay for greater hosting capacities. As an alternative, the [Calico](https://calicotab.com/) service will host Tabbycat sites for a flat fee while also managing all scaling/configuration concerns and providing ongoing access to the released tab.

## 💪 Support and Contributing

Expand Down
83 changes: 83 additions & 0 deletions .github/workflows/django.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Django CI

on:
push:
branches: [ '**' ]
pull_request:
branches: [ '**' ]

jobs:
build-ubuntu:

runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.7, 3.8, 3.9]
node-version: [12.x]

services:
postgres:
image: postgres:11
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports: ['5432:5432']
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Cache pip modules
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r ./config/requirements_development.txt
npm ci
- name: Run Linting
run: npm run lint
- name: Run Build and Collect
run: |
npm run build
python ./tabbycat/manage.py collectstatic --noinput -v 0
- name: Run Migrations
run: python ./tabbycat/manage.py migrate
- name: Run Tests
run: python tabbycat/manage.py test -v 2 --exclude-tag=selenium

build-docker:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Build Docker image
run: docker-compose build
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.11.3
12.18.1
26 changes: 26 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,29 @@ repos:
- pep8-naming
- flake8-commas
exclude: migrations/
- repo: https://github.com/awebdeveloper/pre-commit-stylelint
rev: '0.0.2' # Use the sha or tag you want to point at like 0.0.1
hooks:
- id: stylelint
files: '\.scss' # Only lint sass; not static assets
types: [file]
additional_dependencies:
- [email protected]
- [email protected]
- [email protected]
- repo: https://github.com/pre-commit/mirrors-eslint
rev: 'v7.3.1' # Use the sha / tag you want to point at
hooks:
- id: eslint
files: '\.vue'
types: [file]
additional_dependencies:
- '@vue/[email protected]'
- '@vue/[email protected]'
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.6.8
3.8.3
Loading

0 comments on commit a7e9b97

Please sign in to comment.