Skip to content

Commit 03b19de

Browse files
authored
Merge branch 'stashapp:develop' into quoted-paths
2 parents 385d768 + db4b33f commit 03b19de

321 files changed

Lines changed: 5971 additions & 5021 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ labels: ["bug report"]
44
body:
55
- type: markdown
66
attributes:
7-
value: |
8-
Thanks for taking the time to fill out this bug report!
7+
value: Thanks for taking the time to fill out this bug report! Make sure to read [Contributing](https://github.com/stashapp/stash/blob/develop/docs/CONTRIBUTING.md) document before submitting.
98
- type: checkboxes
109
id: confirm-troubleshooting
1110
attributes:
1211
label: Have you enabled troubleshooting mode?
1312
description: |
14-
To ensure the bug is not caused by custom modifications or plugins make sure to enable troubleshooting mode before filing the report. In Stash go to Settings and click **Troubleshooting mode** and then retest to see if the bug still occurs.
13+
To ensure the bug is not caused by custom modifications or plugins make sure to enable troubleshooting mode before filing the report. In Stash go to Settings and click **Troubleshooting mode** and then retest to see if the bug still occurs.
14+
It's important to note that troubleshooting mode only affects UI modifications and plugins.
1515
options:
1616
- label: I confirm that the troubleshooting mode is enabled.
1717
required: true
@@ -56,13 +56,13 @@ body:
5656
placeholder: (e.g. v0.28.1)
5757
validations:
5858
required: true
59-
- type: input
59+
- type: textarea
6060
id: devicedetails
6161
attributes:
6262
label: Device details
6363
description: |
64-
If this is an issue that occurs when using the Stash interface, please provide details of the device/browser used which presents the reported issue.
65-
placeholder: (e.g. Firefox 97 (64-bit) on Windows 11)
64+
Please provide details about the device you are using, including the operating system and browser (if applicable).
65+
placeholder: Firefox 97 (64-bit) on Windows 11
6666
validations:
6767
required: false
6868
- type: textarea

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ name: Feature Request
22
description: Request a new feature or idea to be added to Stash
33
labels: ["feature request"]
44
body:
5+
- type: markdown
6+
attributes:
7+
value: Thank you for taking the time to submit a feature request! Make sure to read [Contributing](https://github.com/stashapp/stash/blob/develop/docs/CONTRIBUTING.md) document before submitting.
58
- type: textarea
69
id: description
710
attributes:

.github/PULL_REQUEST_TEMPLATE/BugFix.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

.github/PULL_REQUEST_TEMPLATE/Feature.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

.github/pull_request_template.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<!-- Thank you for submitting a pull request! Make sure to follow the contributing guidelines and this template. -->
2+
3+
## Description
4+
<!-- Please write a clear and concise description of what the pull request does. -->
5+
6+
7+
8+
## Related Issue
9+
<!-- Please link the issue your pull request is referring to. -->
10+
11+
12+
13+
## Testing
14+
<!-- Describe the testing steps you have performed. -->
15+
16+
17+
18+
## Screenshots
19+
<!-- For visual changes, please add before and after screenshots. -->
20+
21+
22+
23+
## Checklist
24+
<!-- Mark [x] to indicate completion. -->
25+
26+
- [ ] I have read and understood the [Contributing](https://github.com/stashapp/stash/blob/develop/docs/CONTRIBUTING.md) document.
27+
- [ ] I have read and understood the [AI Usage Policy](https://github.com/stashapp/stash/blob/develop/docs/AI_POLICY.md) document.
28+
- [ ] I have made corresponding changes to the documentation (if applicable).
29+
30+
## AI Usage Disclosure
31+
<!-- Mark [x] to indicate completion. -->
32+
- [ ] I have used AI tools to assist with this pull request, and I have disclosed the tools and how I used them below.
33+
<!-- If you used AI to assist with this pull request, please disclose what tools you used and how you used them. -->
34+
35+
36+
37+
## Additional Context
38+
<!-- Add any other context about the pull request here. -->
39+

.github/workflows/build.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,16 @@ jobs:
4040
with:
4141
package_json_file: ui/v2.5/package.json
4242

43+
# ensure pnpm store path exists to fix post setup node.js error
44+
# https://github.com/actions/setup-node/issues/1137#issuecomment-2508963254
45+
- name: Ensure pnpm store path exists
46+
run: |
47+
PNPM_STORE_PATH="$( pnpm store path --silent )"
48+
if [ ! -d "$PNPM_STORE_PATH" ]; then
49+
echo "PNPM store directory does not exist, creating it."
50+
mkdir -p "$PNPM_STORE_PATH"
51+
fi
52+
4353
- name: Setup Node.js
4454
uses: actions/setup-node@v6
4555
with:
@@ -171,7 +181,7 @@ jobs:
171181
path: .go-cache
172182
key: ${{ runner.os }}-go-cache-${{ matrix.platform }}-${{ hashFiles('go.mod', '**/go.sum') }}
173183

174-
# kept seperate to test timings
184+
# kept separate to test timings
175185
- name: pull compiler image
176186
run: docker pull $COMPILER_IMAGE
177187

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,4 @@ node_modules
6363
/phasher
6464
dist
6565
.DS_Store
66-
/.local*
66+
/.local*

Makefile

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,14 @@ ifndef COMPILER_IMAGE
5252
COMPILER_IMAGE := ghcr.io/stashapp/compiler:latest
5353
endif
5454

55+
# cannot really parallelise the release target
56+
# generate requires pre-ui, ui requires generate and build-release requires ui, so they must be run sequentially
5557
.PHONY: release
56-
release: pre-ui generate ui build-release
58+
release:
59+
$(MAKE) pre-ui
60+
$(MAKE) generate
61+
$(MAKE) ui
62+
$(MAKE) build-release
5763

5864
# targets to set various build flags
5965
# use combinations on the make command-line to configure a build, e.g.:
@@ -97,7 +103,7 @@ flags-static-windows:
97103
.PHONY: build-info
98104
build-info:
99105
ifndef BUILD_DATE
100-
$(eval BUILD_DATE := $(shell go run scripts/getDate.go))
106+
$(eval BUILD_DATE := $(shell GOOS=$$(go env GOHOSTOS) GOARCH=$$(go env GOHOSTARCH) go run scripts/getDate.go))
101107
endif
102108
ifndef GITHASH
103109
$(eval GITHASH := $(shell git rev-parse --short HEAD))
@@ -281,8 +287,8 @@ endif
281287
generate: generate-backend generate-ui
282288

283289
.PHONY: generate-ui
284-
generate-ui: pre-ui
285-
cd ui/v2.5 && npm run gqlgen
290+
generate-ui:
291+
cd ui/v2.5 && pnpm run gqlgen
286292

287293
.PHONY: generate-backend
288294
generate-backend: touch-ui
@@ -369,11 +375,11 @@ ifdef STASH_SOURCEMAPS
369375
endif
370376

371377
.PHONY: ui
372-
ui: pre-ui generate ui-only generate-login-locale
378+
ui: ui-only generate-login-locale
373379

374380
.PHONY: ui-only
375-
ui-only: ui-env generate ui
376-
cd ui/v2.5 && npm run build
381+
ui-only: ui-env
382+
cd ui/v2.5 && pnpm run build
377383

378384
.PHONY: zip-ui
379385
zip-ui:
@@ -382,23 +388,23 @@ zip-ui:
382388

383389
.PHONY: ui-start
384390
ui-start: ui-env
385-
cd ui/v2.5 && npm run start -- --host
391+
cd ui/v2.5 && pnpm run start --host
386392

387393
.PHONY: fmt-ui
388394
fmt-ui:
389-
cd ui/v2.5 && npm run format
395+
cd ui/v2.5 && pnpm run format
390396

391397
# runs all of the frontend PR-acceptance steps
392398
.PHONY: validate-ui
393-
validate-ui: pre-ui generate
394-
cd ui/v2.5 && npm run validate
399+
validate-ui:
400+
cd ui/v2.5 && pnpm run validate
395401

396402
# these targets run the same steps as fmt-ui and validate-ui, but only on files that have changed
397403
fmt-ui-quick:
398404
cd ui/v2.5 && \
399405
files=$$(git diff --name-only --relative --diff-filter d . ../../graphql); \
400406
if [ -n "$$files" ]; then \
401-
npm run prettier -- --write $$files; \
407+
pnpm exec biome format --write $$files; \
402408
fi
403409

404410
# does not run tsc checks, as they are slow
@@ -407,9 +413,9 @@ validate-ui-quick:
407413
tsfiles=$$(git diff --name-only --relative --diff-filter d src | grep -e "\.tsx\?\$$"); \
408414
scssfiles=$$(git diff --name-only --relative --diff-filter d src | grep "\.scss"); \
409415
prettyfiles=$$(git diff --name-only --relative --diff-filter d . ../../graphql); \
410-
if [ -n "$$tsfiles" ]; then npm run eslint -- $$tsfiles; fi && \
411-
if [ -n "$$scssfiles" ]; then npm run stylelint -- $$scssfiles; fi && \
412-
if [ -n "$$prettyfiles" ]; then npm run prettier -- --check $$prettyfiles; fi
416+
if [ -n "$$tsfiles" ]; then pnpm exec biome check $$tsfiles; fi && \
417+
if [ -n "$$scssfiles" ]; then pnpm exec stylelint $$scssfiles; fi && \
418+
if [ -n "$$prettyfiles" ]; then pnpm exec biome format $$prettyfiles; fi
413419

414420
# runs all of the backend PR-acceptance steps
415421
.PHONY: validate-backend
@@ -443,7 +449,7 @@ remove-compiler-container:
443449
docker rm -f -v build
444450

445451
.PHONY: install
446-
install: build-release
452+
install:
447453
ifdef IS_WIN_SHELL
448454
@if not exist "$(PREFIX)" mkdir $(PREFIX)
449455
@copy "dist\\stash-win.exe" "$(PREFIX)\\stash-win.exe"

README.md

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# Stash
22

33
[![Build](https://github.com/stashapp/stash/actions/workflows/build.yml/badge.svg?branch=develop&event=push)](https://github.com/stashapp/stash/actions/workflows/build.yml)
4-
[![Docker pulls](https://img.shields.io/docker/pulls/stashapp/stash.svg)](https://hub.docker.com/r/stashapp/stash 'DockerHub')
4+
[![Docker pulls](https://img.shields.io/docker/pulls/stashapp/stash?logo=docker)](https://hub.docker.com/r/stashapp/stash 'DockerHub')
55
[![GitHub Sponsors](https://img.shields.io/github/sponsors/stashapp?logo=github)](https://github.com/sponsors/stashapp)
66
[![Open Collective backers](https://img.shields.io/opencollective/backers/stashapp?logo=opencollective)](https://opencollective.com/stashapp)
77
[![Go Report Card](https://goreportcard.com/badge/github.com/stashapp/stash)](https://goreportcard.com/report/github.com/stashapp/stash)
88
[![Discord](https://img.shields.io/discord/559159668438728723.svg?logo=discord)](https://discord.gg/2TsNFKt)
99
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/stashapp/stash?logo=github)](https://github.com/stashapp/stash/releases/latest)
10-
[![GitHub issues by-label](https://img.shields.io/github/issues-raw/stashapp/stash/bounty)](https://github.com/stashapp/stash/labels/bounty)
10+
[![Codeberg Translate](https://img.shields.io/weblate/progress/stash?server=https%3A%2F%2Ftranslate.codeberg.org&logo=weblate)](https://translate.codeberg.org/engage/stash/)
11+
[![GitHub issues by-label](https://img.shields.io/github/issues-raw/stashapp/stash/bounty?logo=github)](https://github.com/stashapp/stash/labels/bounty)
1112

1213
<h3>Stash is a self-hosted webapp written in Go which organizes and serves your diverse content collection, catering to both your SFW and NSFW needs.</h3>
1314

@@ -20,9 +21,9 @@
2021

2122
You can [watch a SFW demo video](https://vimeo.com/545323354) to see it in action.
2223

23-
For further information you can consult the [documentation](https://docs.stashapp.cc) or access the in-app manual from within the application (also available at [docs.stashapp.cc/in-app-manual](https://docs.stashapp.cc/in-app-manual)).
24+
For further information see [Support & Resources](#support--resources) section.
2425

25-
# Installing Stash
26+
## Installing Stash
2627

2728
> [!tip]
2829
Step-by-step instructions are available at [docs.stashapp.cc/installation](https://docs.stashapp.cc/installation/).
@@ -37,15 +38,15 @@ Step-by-step instructions are available at [docs.stashapp.cc/installation](https
3738
>
3839
> As of version 0.29.0, Stash requires _macOS 11 Big Sur_ or later.
3940
> As of version 0.32.0, Stash requires _macOS 12 Monterey_ or later.
40-
> Stash can still be run through Docker on older versions of macOS.
41+
> Older versions can still be run through Docker.
4142
4243
<img src="docs/readme_assets/windows_logo.svg" width="100%" height="75"> Windows | <img src="docs/readme_assets/mac_logo.svg" width="100%" height="75"> macOS | <img src="docs/readme_assets/linux_logo.svg" width="100%" height="75"> Linux | <img src="docs/readme_assets/docker_logo.svg" width="100%" height="75"> Docker
4344
:---:|:---:|:---:|:---:
4445
[Latest Release](https://github.com/stashapp/stash/releases/latest/download/stash-win.exe) <br /> <sup><sub>[Development Preview](https://github.com/stashapp/stash/releases/download/latest_develop/stash-win.exe)</sub></sup> | [Latest Release](https://github.com/stashapp/stash/releases/latest/download/Stash.app.zip) <br /> <sup><sub>[Development Preview](https://github.com/stashapp/stash/releases/download/latest_develop/Stash.app.zip)</sub></sup> | [Latest Release (amd64)](https://github.com/stashapp/stash/releases/latest/download/stash-linux) <br /> <sup><sub>[Development Preview (amd64)](https://github.com/stashapp/stash/releases/download/latest_develop/stash-linux)</sub></sup> <br /> [More Architectures...](https://github.com/stashapp/stash/releases/latest) | [Instructions](docker/production/README.md) <br /> <sup><sub>[Sample docker-compose.yml](docker/production/docker-compose.yml)</sub></sup>
4546

4647
Download links for other platforms and architectures are available on the [Releases](https://github.com/stashapp/stash/releases) page.
4748

48-
## First Run
49+
### First Run
4950

5051
#### Windows/macOS Users: Security Prompt
5152

@@ -58,69 +59,61 @@ On Windows or macOS, running the app might present a security prompt since the a
5859

5960
Stash requires FFmpeg. If you don't have it installed, Stash will prompt you to download a copy during setup. It is recommended that Linux users install `ffmpeg` from their distro's package manager.
6061

61-
# Usage
62+
## Usage
6263

63-
## Quickstart Guide
64+
### Quickstart Guide
6465

6566
Stash is a web-based application. Once the application is running, the interface is available (by default) from `http://localhost:9999`.
6667

6768
On first run, Stash will prompt you for some configuration options and media directories to index, called "Scanning" in Stash. After scanning, your media will be available for browsing, curating, editing, and tagging.
6869

6970
Stash can pull metadata (performers, tags, descriptions, studios, and more) directly from many sites through the use of [scrapers](https://github.com/stashapp/stash/blob/develop/ui/v2.5/src/docs/en/Manual/Scraping.md), which integrate directly into Stash. Identifying an entire collection will typically require a mix of multiple sources:
7071
- The stashapp team maintains [StashDB](https://stashdb.org/), a crowd-sourced repository of scene, studio, and performer information. Connecting it to Stash will allow you to automatically identify much of a typical media collection. It runs on our stash-box software and is primarily focused on mainstream digital scenes and studios. Instructions, invite codes, and more can be found in this guide to [Accessing StashDB](https://guidelines.stashdb.org/docs/faq_getting-started/stashdb/accessing-stashdb/).
71-
- Several community-managed stash-box databases can also be connected to Stash in a similar manner. Each one serves a slightly different niche and follows their own methodology. A rundown of each stash-box, their differences, and the information you need to sign up can be found in this guide to [Accessing Stash-Boxes](https://guidelines.stashdb.org/docs/faq_getting-started/stashdb/accessing-stash-boxes/).
72+
- Several community-managed stash-box databases can also be connected to Stash in a similar manner. Each one serves a slightly different niche and follows their own methodology. A rundown of each stash-box, their differences, and the information you need to sign up can be found in the [Metadata Sources](https://docs.stashapp.cc/metadata-sources/stash-box-instances/) section of the documentation.
7273
- Many community-maintained scrapers can also be downloaded, installed, and updated from within Stash, allowing you to pull data from a wide range of other websites and databases. They can be found by navigating to `Settings → Metadata Providers → Available Scrapers → Community (stable)`. These can be trickier to use than a stash-box because every scraper works a little differently. For more information, please visit the [CommunityScrapers repository](https://github.com/stashapp/CommunityScrapers).
7374
- All of the above methods of scraping data into Stash are also covered in more detail in our [Guide to Scraping](https://docs.stashapp.cc/beginner-guides/guide-to-scraping/).
7475

7576
<sub>[StashDB](http://stashdb.org) is the canonical instance of our open source metadata API, [stash-box](https://github.com/stashapp/stash-box).</sub>
7677

77-
# Translation
78-
79-
[![Translate](https://translate.codeberg.org/widget/stash/stash/svg-badge.svg)](https://translate.codeberg.org/engage/stash/)
80-
81-
Stash is available in 32 languages (so far!) and it could be in your language too. We use Weblate to coordinate community translations. If you want to help us translate Stash, you can make an account at [Codeberg's Weblate](https://translate.codeberg.org/projects/stash/stash/) to contribute to new or existing languages. Thanks!
82-
83-
The badge below shows the current translation status of Stash across all supported languages:
84-
85-
[![Translation status](https://translate.codeberg.org/widget/stash/stash/multi-auto.svg)](https://translate.codeberg.org/engage/stash/)
86-
87-
# Support & Resources
78+
## Support & Resources
8879

8980
Need help or want to get involved? Start with the documentation, then reach out to the community if you need further assistance.
9081

9182
### Documentation
83+
9284
- [Official documentation](https://docs.stashapp.cc) - official guides guides and troubleshooting.
9385
- [In-app manual](https://docs.stashapp.cc/in-app-manual) press <kbd>Shift</kbd> + <kbd>?</kbd> in the app or view the manual online.
9486
- [FAQ](https://discourse.stashapp.cc/c/support/faq/28) - common questions and answers.
9587
- [Community wiki](https://discourse.stashapp.cc/tags/c/community-wiki/22/stash) - guides, how-to’s and tips.
9688

97-
### Community & discussion
89+
### Community & Discussion
90+
9891
- [Community forum](https://discourse.stashapp.cc) - community support, feature requests and discussions.
9992
- [Discord](https://discord.gg/2TsNFKt) - real-time chat and community support.
10093
- [GitHub discussions](https://github.com/stashapp/stash/discussions) - community support and feature discussions.
10194
- [Lemmy community](https://discuss.online/c/stashapp) - board-style community space.
10295

103-
### Community scrapers & plugins
96+
### Community Scrapers & Plugins
97+
10498
- [Metadata sources](https://docs.stashapp.cc/metadata-sources/)
10599
- [Plugins](https://docs.stashapp.cc/plugins/)
106100
- [Themes](https://docs.stashapp.cc/themes/)
107101
- [Other projects](https://docs.stashapp.cc/other-projects/)
108102

109-
# Architecture
103+
## Architecture
104+
105+
You can find an overview of Stash's architecture in the [ARCHITECTURE.md](docs/ARCHITECTURE.md) document.
110106

111-
## Backend
107+
## Contributing
112108

113-
- Go
114-
- GraphQL API
115-
- SQLite
109+
We welcome contributions and help from all humans who want to improve the project.
116110

117-
## Frontend
111+
Before contributing, please read the [Contributing](docs/CONTRIBUTING.md) document to understand our guidelines and processes for contributing to the project.
118112

119-
- React
120-
- TypeScript
113+
You can learn about setting up a local development environment in the [Development](docs/DEVELOPMENT.md) document.
121114

122-
# For Developers
115+
## Translation
123116

124-
Pull requests are welcome!
117+
The widget below shows the current translation status of Stash across all supported languages. If you want to help us translate Stash, you can make an account at [Codeberg Translate](https://translate.codeberg.org/projects/stash/stash/) to contribute to new or existing languages. Thanks!
125118

126-
See [Development](docs/DEVELOPMENT.md) and [Contributing](docs/CONTRIBUTING.md) for information on working with the codebase, getting a local development setup, and contributing changes.
119+
[![Translation status](https://translate.codeberg.org/widget/stash/stash/multi-auto.svg)](https://translate.codeberg.org/engage/stash/)

0 commit comments

Comments
 (0)