Skip to content

Commit

Permalink
Merge branch 'release/0.18.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
Kruptein committed Nov 24, 2019
2 parents 510eb2a + 5a3bf64 commit 3c6b419
Show file tree
Hide file tree
Showing 128 changed files with 18,465 additions and 12,015 deletions.
28 changes: 28 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.git
.dockerignore
.gitignore
.circleci
.github
.env

docs
extra

Dockerfile
**/*.md
azure-pipelines.yml
tsconfig.json

# Autogenerated files
client/node_modules
server/env
server/static/js
server/static/css

# From .gitignore
server/planarallyserver.log
server/planar.save*
server/planar.sqlite*
server/server_config.cfg

**/.idea/**
27 changes: 27 additions & 0 deletions .github/workflows/pull_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
on: pull_request
name: PR
jobs:
PR_flow:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Use Node.js 10.x
uses: actions/setup-node@v1
with:
version: 10.x
- name: npm i
working-directory: client
run: |
npm install
- name: lint
working-directory: client
run: |
npm run lint
- name: test
working-directory: client
run: |
npm run test
- name: build
working-directory: client
run: |
npm run build
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ server/dist/**
server/build/**

# JS
client/coverage/**
client/node_modules/**
server/client/src/*.js
sever/client/src/*.js.map

# PlanarAlly
server/planarallyserver.log
Expand Down
75 changes: 60 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,51 @@ All notable changes to this project will be documented in this file.

## Unreleased

## [0.18.0] - 2019-09-11

### Added

- Option to set custom units of length (defaults to ft)
- Ping tool
- Option to change the location of tokens/shapes
- Option to edit shapes in groups (move to other layer, move to other location, move to top/bottom, add initiative)
- Option to Ctrl-select tokens/shapes
- Default right click menu to all tools that didnt have it
- Colour in the location bar to show current location
- Polygon tool options
- brush size (defaults to 1 grid cell in width)
- closed/open polygon toggle, when enable automatically connects first and last point.
- Escape cancels draw tool actions

### Changed

- Pasted shapes are now pasted relative to the screen position
- Login page now autofocusses on the username input field.
- All shapes on the FOW layer are now invisible while not on the FOW layer.
- Circle borders (including basic tokens) are now inset, so that they fit within their squares.
- Basic token text scaling has been changed slightly to have more uniformly sized characters.

- [tech] Mousemove events are now throttled, so that they don't fire a gazillion events.
- [tech] tslint swapped out for eslint
- [tech] Refactor Layer.draw to use Shape.drawSelection
- [tech] Refactor most uses of forEach to for..of

### Fixed

- [DM] Session lock state not being shown correctly upon joining.
- Sessions with a slash in their name do not work
- Ruler width not being the same at all zoom levels.
- Brushhelper sticking around on layer change.
- Temporary shapes not being properly cleared on player disconnect.
- Private shape auras, trackers, labels and name being revealed during movement.
- Fix light auras clipping over walls.
- Fix bug with circle draws using negative radii.
- Polygon preview segment always showing up as black.

- [tech] Improved docker image creation script
- Faster compilation and smaller final size
- Now the frontend is also compiled inside a container

## [0.17.1] - 2019-06-17

### Fixed
Expand All @@ -18,12 +63,12 @@ All notable changes to this project will be documented in this file.
### Changed

- The DM options menu is now a proper dialog.
- Options are sorted by catecory.
- A list of players with access to the session is shown with an option to kick them.
- A url is shown for the invite url so you no longer have to figure this out yourself.
- A button to refresh the invite url is now present.
- A button to remove the session is added.
- A button to (un)lock the session is added.
- Options are sorted by catecory.
- A list of players with access to the session is shown with an option to kick them.
- A url is shown for the invite url so you no longer have to figure this out yourself.
- A button to refresh the invite url is now present.
- A button to remove the session is added.
- A button to (un)lock the session is added.

### Fixed

Expand All @@ -36,15 +81,15 @@ All notable changes to this project will be documented in this file.
- Option to listen on a socket instead of HOST:PORT.
- Vision tool to change active tokens.
- Vision lock button to initiative to only show vision of current actor.
- This only applies to tokens the player owns for other tokens the normal vision is restored.
- This is purely client side and can thus be chosen by player/DM separately.
- This only applies to tokens the player owns for other tokens the normal vision is restored.
- This is purely client side and can thus be chosen by player/DM separately.
- Camera lock button to initiative to automatically center on current actor.
- It will center when an actor begins its turn and the client is owner of that actor.
- It does not prevent camera movement after the initial center action.
- It will center when an actor begins its turn and the client is owner of that actor.
- It does not prevent camera movement after the initial center action.
- Automatic build of windows executables on azure pipelines for all tags
- These will also create a github release automatically
- These will also create a github release automatically
- Fake player button to DM Settings to disable all DM functions except DM settings.
- You can control which player(s) you want to emulate with the vision tool.
- You can control which player(s) you want to emulate with the vision tool.

### Changed

Expand All @@ -71,8 +116,8 @@ All notable changes to this project will be documented in this file.
- Keybinding to copy selection to clipboard (ctrl+c).
- Keybinding to paste clipboard to board (ctrl+v).
- Labeling system.
- You can add labels to shapes.
- You can filter the gameboard on these labels.
- You can add labels to shapes.
- You can filter the gameboard on these labels.

### Changed

Expand All @@ -86,7 +131,7 @@ All notable changes to this project will be documented in this file.
- Groupselect will only select your own tokens.
- Some minor style changes to the edit asset dialog
- Shape names can now be hidden from other users.
- Default vision mode changed to triangle mode. Legacy vision mode (bvh) can still be selected in the DM options.
- Default vision mode changed to triangle mode. Legacy vision mode (bvh) can still be selected in the DM options.

### Fixed

Expand Down
33 changes: 26 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,40 @@
################################
# Build stage for the frontend #
################################
FROM node:12-alpine as BUILDER

WORKDIR /usr/src/client
# Copy first package.json so changes in code dont require to reinstall all npm modules
COPY client/package.json client/package-lock.json ./
RUN npm i

COPY . /usr/src
RUN npm run build

# Added here to avoid an extra layer in the final stage
COPY Dockerfiles/server_config_docker.cfg /usr/src/server/server_config.cfg

###############
# Final stage #
###############
FROM python:3.6-slim

MAINTAINER Kruptein <[email protected]>

EXPOSE 8000

WORKDIR /usr/src/app
WORKDIR /planarally

VOLUME /usr/src/app/data
VOLUME /usr/src/app/static/assets
VOLUME /planarally/data
VOLUME /planarally/static/assets

ENTRYPOINT ["/usr/bin/dumb-init", "--"]

COPY server/ .
# Copy first requirements.txt so changes in code dont require to reinstall python requirements
COPY --from=BUILDER /usr/src/server/requirements.txt .
RUN apt-get update && apt-get install dumb-init curl -y && \
rm -rf /var/lib/apt/lists/* && \
pip install --no-cache-dir -r requirements.txt

COPY Dockerfiles/server_config_docker.cfg server_config.cfg
# Copy the final server files
COPY --from=BUILDER /usr/src/server/ .

CMD [ "python", "-u", "planarserver.py"]
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![Total Github Download Count](https://img.shields.io/github/downloads/kruptein/planarally/total.svg)](https://github.com/Kruptein/PlanarAlly/releases)

# PlanarAlly

_This project is still in early development; multiple bugs or structure changes can and will happen_
Expand All @@ -19,12 +21,20 @@ Some key features are:

This tool is provided free to use and is open source.

# Downloads

_Typically only one person in your group should download and install PA, or even nobody if you use a publicly hosted version._

Releases of PlanarAlly can be found on [the release page](https://github.com/Kruptein/PlanarAlly/releases).

For more information on how to use/install PA, see the documentation.

# Documentation

User documentation can be found [here](https://planarally.readthedocs.io/en/dev/).
This is still a work in progress, so some elements may still be undocumented.
User documentation can be found [here](https://planarally.io/docs/).

This is still a work in progress, so some elements may still be undocumented or outdated.

Installation instructions for DM's can also be found in the link above. As a player you won't have to install anything.

# Contributing

Expand All @@ -34,5 +44,5 @@ If you simply have feedback, or found a bug, go to the issues tab above. First s

If you want to contribute to the actual codebase, you can read more about how to setup a development environment in the CONTRIBUTING document.

![Example view of a player with a light source](https://planarally.readthedocs.io/en/dev/_images/player-base.png)
![Example view of a player with a light source](https://github.com/Kruptein/PlanarAlly/blob/dev/extra/player_light_example.png?raw=true)
_Credits to Gogots for the background map used [source](https://gogots.deviantart.com/art/City-of-Moarkaliff-702295905)_
4 changes: 4 additions & 0 deletions client/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules/*
jest.config.js
vue.config.js
src/shims/*
28 changes: 28 additions & 0 deletions client/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
module.exports = {
root: true,
env: {
node: true,
},
extends: ["plugin:@typescript-eslint/recommended", "plugin:vue/essential", "@vue/typescript", "@vue/prettier"],
rules: {
// "no-console": process.env.NODE_ENV === "production" ? "error" : "off",
"no-console": "off",
"no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-angle-bracket-type-assertion": "off",
"@typescript-eslint/explicit-member-accessibility": [2, { accessibility: "no-public" }],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/explicit-function-return-type": [2, { allowExpressions: true }],
"@typescript-eslint/no-use-before-define": 0,
"no-constant-condition": "off",
"@typescript-eslint/no-unused-vars": [2, { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }],
"no-unused-vars": "off",
"no-dupe-class-members": "off",
},
parserOptions: {
parser: "@typescript-eslint/parser",
ecmaFeatures: {
jsx: false,
},
},
};
10 changes: 5 additions & 5 deletions client/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"parser": "typescript",
"singleQuote": false,
"trailingComma": "all",
"htmlWhitespaceSensitivity": "ignore",
"printWidth": 120,
"tabWidth": 4
}
"singleQuote": false,
"tabWidth": 4,
"trailingComma": "all"
}
3 changes: 3 additions & 0 deletions client/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
};
21 changes: 21 additions & 0 deletions client/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module.exports = {
moduleFileExtensions: ["js", "json", "vue", "ts"],
transform: {
"^.+\\.vue$": "vue-jest",
".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
"^.+\\.ts$": "ts-jest",
},
transformIgnorePatterns: ["/node_modules/(?!@babel)"],
moduleNameMapper: {
"^@/(.*)$": "<rootDir>/src/$1",
},
snapshotSerializers: ["jest-serializer-vue"],
testMatch: ["**/tests/unit/**/*.test.(js|ts)|**/__tests__/*.(js|ts)"],
testURL: "http://localhost/",
watchPlugins: ["jest-watch-typeahead/filename", "jest-watch-typeahead/testname"],
globals: {
"ts-jest": {
babelConfig: true,
},
},
};
Loading

0 comments on commit 3c6b419

Please sign in to comment.