Skip to content

Commit

Permalink
Merge pull request #1045 from shlinkio/develop
Browse files Browse the repository at this point in the history
Release 4.0.0
  • Loading branch information
acelaya committed Jan 29, 2024
2 parents f5e92c6 + b12bb6c commit 8a7a51b
Show file tree
Hide file tree
Showing 460 changed files with 7,868 additions and 27,959 deletions.
8 changes: 1 addition & 7 deletions .eslintrc
Expand Up @@ -6,11 +6,5 @@
"parserOptions": {
"project": "./tsconfig.json"
},
"ignorePatterns": ["src/service*.ts"],
"rules": {
"jsx-a11y/control-has-associated-label": "off",
"jsx-a11y/label-has-associated-control": "off",
"jsx-a11y/click-events-have-key-events": "off",
"jsx-a11y/no-static-element-interactions": "off"
}
"ignorePatterns": ["src/service*.ts"]
}
24 changes: 24 additions & 0 deletions .github/DISCUSSION_TEMPLATE/q-a.yml
@@ -0,0 +1,24 @@
title: 'Q&A'
body:
- type: input
validations:
required: true
attributes:
label: shlink-web-client version
placeholder: x.y.z
- type: dropdown
validations:
required: true
attributes:
label: How do you use shlink-web-client
options:
- https://app.shlink.io
- Docker image
- Self-hosted
- Other (explain in summary)
- type: textarea
validations:
required: true
attributes:
label: Summary
value: '<!-- Describe your issue, question or request here. -->'
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
@@ -1,2 +1,2 @@
github: ['acelaya']
custom: ['https://acel.me/donate']
custom: ['https://slnk.to/donate']
36 changes: 0 additions & 36 deletions .github/ISSUE_TEMPLATE/Bug.md

This file was deleted.

38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/Bug.yml
@@ -0,0 +1,38 @@
name: 'Bug'
description: Something on shlink is broken or not working as documented?
labels: ['bug']
body:
- type: input
validations:
required: true
attributes:
label: shlink-web-client version
placeholder: x.y.z
- type: dropdown
validations:
required: true
attributes:
label: How do you use shlink-web-client
options:
- https://app.shlink.io
- Docker image
- Self-hosted
- Other (explain in summary)
- type: textarea
validations:
required: true
attributes:
label: Current behavior
value: '<!-- How is it actually behaving (and it should not)? -->'
- type: textarea
validations:
required: true
attributes:
label: Expected behavior
value: '<!-- How did you expect it to behave? -->'
- type: textarea
validations:
required: true
attributes:
label: How to reproduce
value: '<!-- Provide steps to reproduce the bug. -->'
19 changes: 0 additions & 19 deletions .github/ISSUE_TEMPLATE/Feature_Request.md

This file was deleted.

16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/Feature_Request.yml
@@ -0,0 +1,16 @@
name: Feature request
description: Do you find shlink-web-client is missing some important feature that would make it more useful?
labels: ['feature']
body:
- type: textarea
validations:
required: true
attributes:
label: Summary
value: '<!-- Describe the new feature you would like to request. -->'
- type: textarea
validations:
required: true
attributes:
label: Use case
value: '<!-- Explain why do you think this feature would be useful, and what problems would it help to solve. -->'
24 changes: 0 additions & 24 deletions .github/ISSUE_TEMPLATE/Question_Support.md

This file was deleted.

5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Question - Support
about: Do you need help setting up or using shlink-web-client?
url: https://github.com/shlinkio/shlink-web-client/discussions/new?category=q-a
42 changes: 42 additions & 0 deletions .github/dependabot.yml
@@ -0,0 +1,42 @@
version: 2
updates:
- package-ecosystem: npm
directory: '/'
schedule:
interval: weekly
day: saturday
time: '09:00'
timezone: 'Europe/Madrid'
open-pull-requests-limit: 10
groups:
fontawesome:
patterns:
- '@fortawesome/*'
shlink:
patterns:
- '@shlinkio/*'
types:
patterns:
- '@types/*'
testing:
patterns:
- '@testing-library/*'
vite:
patterns:
- 'vite'
- '@vitejs/*'
vitest:
patterns:
- 'vitest'
- '@vitest/*'
ignore:
# Bootstrap can introduce visual breaking changes on styles
# Ignore it, since the plan is to remove it anyway
- dependency-name: 'bootstrap'
- package-ecosystem: docker
directory: '/'
schedule:
interval: weekly
day: saturday
time: '09:00'
timezone: 'Europe/Madrid'
3 changes: 1 addition & 2 deletions .github/workflows/ci.yml
Expand Up @@ -11,6 +11,5 @@ jobs:
ci:
uses: shlinkio/github-actions/.github/workflows/web-app-ci.yml@main
with:
node-version: 20.2
node-version: 20.7
publish-coverage: true
force-install: true
8 changes: 4 additions & 4 deletions .github/workflows/deploy-preview.yml
Expand Up @@ -5,7 +5,7 @@ on:

jobs:
deploy:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Checkout code
Expand All @@ -16,11 +16,11 @@ jobs:
- name: Use node.js
uses: actions/setup-node@v3
with:
node-version: 20.2
node-version: 20.7
- name: Build
run: |
npm ci --force && \
node ./scripts/set-homepage.js /shlink-web-client/${GITHUB_HEAD_REF#refs/heads/} && \
npm ci && \
node ./scripts/set-homepage.cjs /shlink-web-client/${GITHUB_HEAD_REF#refs/heads/} && \
npm run build
- name: Deploy preview
uses: shlinkio/deploy-preview-action@v1.0.1
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-release.yml
Expand Up @@ -7,16 +7,16 @@ on:

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Use node.js
uses: actions/setup-node@v3
with:
node-version: 20.2
node-version: 20.7
- name: Generate release assets
run: npm ci --force && VERSION=${GITHUB_REF#refs/tags/v} npm run build:dist
run: npm ci && VERSION=${GITHUB_REF#refs/tags/v} npm run build:dist
- name: Publish release with assets
uses: docker://antonyurchenko/git-release:latest
env:
Expand Down
30 changes: 30 additions & 0 deletions CHANGELOG.md
Expand Up @@ -4,6 +4,36 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org).

## [4.0.0] - 2024-01-29
### Added
* [shlink-web-component #7](https://github.com/shlinkio/shlink-web-component/issues/7) Allow comparing visits for multiple short URLs, tags or domains.

When in the tags, domains or short URLs tables, you can now pick up to 5 items to compare their visits. Once selected, you are taken to a section displaying a comparative line chart, which supports all regular visits filtering capabilities.

* [shlink-web-component #9](https://github.com/shlinkio/shlink-web-component/issues/9) Allow comparing visits with the previous period.
* [shlink-web-component #12](https://github.com/shlinkio/shlink-web-component/issues/12) and [#13](https://github.com/shlinkio/shlink-web-component/issues/13) Add new "Visits options" section for arbitrary visit stats options. Add section to delete short URL and orphan visits there.

This section is only visible if short URL visits deletion or orphan visits deletion are supported by connected Shlink server.

* [shlink-web-component #10](https://github.com/shlinkio/shlink-web-component/issues/10) Improve general accessibility: Add accessibility tests, fix accessibility issues and enable accessibility linting rules.

### Changed
* [#338](https://github.com/shlinkio/shlink-web-client/issues/338) Extract `@shlinkio/shlink-web-component` and `@shlinkio/shlink-frontend-kit` as external libs.
* [#978](https://github.com/shlinkio/shlink-web-client/issues/978) Use system preferred theme as default theme.
* Use API client from `@shlinkio/shlink-js-sdk` to consume Shlink servers.
* [#902](https://github.com/shlinkio/shlink-web-client/pull/902) Docker image is no longer running as root. As a side effect, exposed port is `8080`, not `80` anymore.
* [shlink-web-component #117](https://github.com/shlinkio/shlink-web-component/issues/117) Migrate charts from Chart.JS to Recharts.

### Deprecated
* *Nothing*

### Removed
* Drop support for Shlink older than v3.0.0

### Fixed
* [#910](https://github.com/shlinkio/shlink-web-client/issues/910) Fix warnings related with missing `act` in tests and refs in `AppUpdateBanner`.


## [3.10.2] - 2023-07-09
### Added
* *Nothing*
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Expand Up @@ -6,7 +6,7 @@ You will also see how to ensure the code fulfills the expected code checks, and

## System dependencies

The project can be run inside a docker container through provided docker-compose configuration.
The project can be run inside a docker container through provided `docker compose` configuration.

Because of this, the only actual dependencies are [docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/).

Expand All @@ -17,7 +17,7 @@ The first thing you need to do is fork the repository, and clone it in your loca
Then you will have to follow these steps:

* Copy the file `docker-compose.override.yml.dist` by also removing the `dist` extension.
* Start-up the project by running `docker-compose up`.
* Start-up the project by running `docker compose up`.

Once this is finished, you will have the project exposed in port `3000` (http://localhost:3000).

Expand Down
9 changes: 6 additions & 3 deletions Dockerfile
@@ -1,12 +1,15 @@
FROM node:20.2-alpine as node
FROM node:21.6-alpine as node
COPY . /shlink-web-client
ARG VERSION="latest"
ENV VERSION ${VERSION}
RUN cd /shlink-web-client && npm ci --force && npm run build
RUN cd /shlink-web-client && npm ci && npm run build

FROM nginx:1.23-alpine
FROM nginxinc/nginx-unprivileged:1.25-alpine
ARG UID=101
LABEL maintainer="Alejandro Celaya <alejandro@alejandrocelaya.com>"
USER root
RUN rm -r /usr/share/nginx/html && rm /etc/nginx/conf.d/default.conf
USER $UID
COPY config/docker/nginx.conf /etc/nginx/conf.d/default.conf
COPY scripts/docker/servers_from_env.sh /docker-entrypoint.d/30-shlink-servers-json.sh
COPY --from=node /shlink-web-client/build /usr/share/nginx/html
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -5,7 +5,7 @@
[![GitHub release](https://img.shields.io/github/release/shlinkio/shlink-web-client.svg?style=flat-square)](https://github.com/shlinkio/shlink-web-client/releases/latest)
[![Docker pulls](https://img.shields.io/docker/pulls/shlinkio/shlink-web-client.svg?logo=docker&style=flat-square)](https://hub.docker.com/r/shlinkio/shlink-web-client/)
[![GitHub license](https://img.shields.io/github/license/shlinkio/shlink-web-client.svg?style=flat-square)](https://github.com/shlinkio/shlink-web-client/blob/main/LICENSE)
[![Twitter](https://img.shields.io/badge/follow-shlinkio-blue.svg?style=flat-square&logo=twitter&color=blue)](https://twitter.com/shlinkio)
[![Twitter](https://img.shields.io/badge/follow-shlinkio-blue.svg?style=flat-square&logo=x&color=black)](https://twitter.com/shlinkio)
[![Mastodon](https://img.shields.io/mastodon/follow/109329425426175098?color=%236364ff&domain=https%3A%2F%2Ffosstodon.org&label=follow&logo=mastodon&logoColor=white&style=flat-square)](https://fosstodon.org/@shlinkio)
[![Paypal Donate](https://img.shields.io/badge/Donate-paypal-blue.svg?style=flat-square&logo=paypal&colorA=cccccc)](https://slnk.to/donate)

Expand Down Expand Up @@ -69,7 +69,7 @@ Those servers can be exported and imported in other browsers, but if for some re
If you are using the shlink-web-client docker image, you can mount the `servers.json` file in a volume inside `/usr/share/nginx/html`, which is the app's document root inside the container.

docker run --name shlink-web-client -p 8000:80 -v ${PWD}/servers.json:/usr/share/nginx/html/servers.json shlinkio/shlink-web-client
docker run --name shlink-web-client -p 8000:8080 -v ${PWD}/servers.json:/usr/share/nginx/html/servers.json shlinkio/shlink-web-client

Alternatively, you can mount a `conf.d` directory, which in turn contains the `servers.json` file, in a volume inside `/usr/share/nginx/html`. *(since shlink-web-client 3.2.0)*.

Expand Down
2 changes: 1 addition & 1 deletion config/docker/nginx.conf
@@ -1,5 +1,5 @@
server {
listen 80 default_server;
listen 8080 default_server;
charset utf-8;
root /usr/share/nginx/html;
index index.html;
Expand Down

0 comments on commit 8a7a51b

Please sign in to comment.