Skip to content

Commit

Permalink
DS-85 Update documentation (#86)
Browse files Browse the repository at this point in the history
* DS-85 Update documentation related to contributing, release process, and some content on readme

* DS-85 Update release version

* DS-85 Update README
  • Loading branch information
CompSciLauren authored Dec 8, 2023
1 parent 3ff399d commit 6bbec88
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 33 deletions.
9 changes: 6 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@ your best judgment and feel free to propose changes to anything in this project

## Got improvements?

* Fork this project and implement the changes you want to make.
* Please test your changes before submitting a pull request. See [Testing](./DailyScreenshot/Tests/Testing.md) documentation for available/recommended testing strategies.
* Open a new [pull request](../../pull/new) with the change.
* Please be sure to add your name to the [Contributors](./CONTRIBUTORS.md) file. :)

Note: This project uses [Issues](../../issues) to track all feature requests and bug reports. If you're looking for ways to contribute, please feel free to work on any of the open Issues! Just leave a comment on the Issue to let everyone know that you're working on it, so that people don't accidentally work on the same thing without realizing.
Notes:

* This project uses [Issues](../../issues) to track all feature requests and bug reports. If you're looking for ways to contribute, please feel free to work on any of the open Issues! Just leave a comment on the Issue to let everyone know that you're working on it, so that people don't accidentally work on the same thing without realizing.
* We use the [Contribute List](https://github.com/marketplace/actions/contribute-list) GitHub Action to help make sure we give credit to everyone who helps make this mod better! After your contribution is merged to the `main` branch, a bot will create a PR to add your name (if not already present) and we will get it merged. :)

## Want to report a bug or propose a new feature?

Expand All @@ -24,7 +27,7 @@ Note: This project uses [Issues](../../issues) to track all feature requests and

To help test out new releases, check on [Nexus](https://www.nexusmods.com/stardewvalley/mods/4779?tab=files) to see if there is a new pre-release version available for download, and just try it out! If you discover any problems, please let us know. You can send a Discord message, create a GitHub Issue, or comment/report on the Nexus site.

If you end up doing this for any pre-release version, please let me know! I'd love to include you in [Contributors](./CONTRIBUTORS.md). :)
If you end up doing this for any pre-release version, please let me know! I'd love to include you in the Contributors list on the README page. :)

For questions or comments, you can also send a message to @compscilauren on Discord.

Expand Down
5 changes: 0 additions & 5 deletions CONTRIBUTORS.md

This file was deleted.

2 changes: 1 addition & 1 deletion DailyScreenshot/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"Name": "Daily Screenshot",
"Author": "CompSciLauren",
"Version": "3.0.0",
"Version": "3.1.0",
"Description": "Automatically takes a daily screenshot of your entire farm.",
"UniqueID": "CompSciLauren.DailyScreenshot",
"EntryDll": "DailyScreenshot.dll",
Expand Down
File renamed without changes
Binary file added Images/example1.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
40 changes: 24 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- markdownlint-disable MD041 -->
![logo](FeatureImage.png)
![logo](./Images/FeatureImage.png)
<!-- markdownlint-enable MD041 -->
# Daily Screenshot v3.0.0
# Daily Screenshot v3.1.0

> A Stardew Valley mod that automatically takes a screenshot of your entire farm at the start of each day.
Expand All @@ -19,21 +19,22 @@ For Android users, releases can be found at the following websites:
## Features

- One screenshot is automatically taken of your entire farm every day as soon as you leave your house.
- Choose what time the screenshot gets taken.
- Choose how often a screenshot gets taken (daily, weekly, monthly, etc).
- Super easy to gather screenshots to create a GIF that shows how your farm changes over time! GIF makers can be found online, such as [ezgif GIF maker](https://ezgif.com/maker). Here is an [example](./Images/example1.gif).
- Customizable! Change any number of default settings based on your preferences. Examples:
- What time of day to take screenshot.
- How often to take screenshot (daily, weekly, monthly, etc).
- Keyboard shortcut that takes screenshot when pressed (set to "None" by default).
- What weather conditions are allowed. It is common to allow all except rainy/stormy days, but default option allows all weather.
- Add multiple sets of rules (example, 1 set for daily automatic screenshots, 1 for manual key-press screenshots).
- Compatible with the ["Generic Mod Config Menu" mod](https://www.nexusmods.com/stardewvalley/mods/5098), which adds an in-game UI for easily updating the config.
- Screenshots are sent to your StardewValley/Screenshots folder, with each save file getting its own "FarmName-Screenshots" folder. Screenshots between multiple save files will not get mixed up.
- Easily access the screenshots in-game by scrolling to the bottom of the "Options" tab in the menu and clicking the "Open Destination Folder" button.
- Super easy to gather screenshots to create a GIF that shows how your farm changes over time! GIF makers can be found online, such as [ezgif GIF maker](https://ezgif.com/maker). Here is an [example](example.gif).
- Keeps the screenshots in the correct order to make creating the GIF easier. This is achieved by naming each screenshot with a "year-season-day.png" numerical format. For example, on Year 1, Winter, Day 3, the screenshot would be named "01-04-03.png".
- Keyboard shortcut that takes a screenshot when pressed (set to "None" by default).
- Can choose to disable automatic screenshots for certain weather conditions, like rainy days (takes a screenshot every day regardless of weather by default).
- Custom configuration options, including ability to add multiple custom rules! See below.
- Compatible with the ["Generic Mod Config Menu" mod](https://www.nexusmods.com/stardewvalley/mods/5098), which adds an in-game UI for easily updating the config.

## Installation

1. [Install the latest version of SMAPI](https://smapi.io/).
2. Optionally, download [Generic Mod Config Menu](https://www.nexusmods.com/stardewvalley/mods/5098) and unzip it into Stardew Valley/Mods.
2. Download [Generic Mod Config Menu](https://www.nexusmods.com/stardewvalley/mods/5098) and unzip it into Stardew Valley/Mods. (recommended, but optional)
3. Download this mod and unzip it into Stardew Valley/Mods.
4. Run the game using SMAPI.

Expand All @@ -42,12 +43,13 @@ For Android users, releases can be found at the following websites:
- Works with Stardew Valley 1.4 or later on Linux/Mac/Windows.
- Works in both single player and multiplayer.
- No known mod conflicts.
- Works with the [Generic Mod Config Menu](https://www.nexusmods.com/stardewvalley/mods/5098).

## Configuration File

> Note: Older configuration files (from prior to v2.0) will automatically be upgraded to the newer format.
### The file structure

You can add as many rules as you would like. The config file looks like:
You can add as many rules as you would like. The config file looks like:

``` json
{
Expand All @@ -72,13 +74,13 @@ You can add as many rules as you would like. The config file looks like:
{
"Name": "Keypress Picture",
"ZoomLevel": 1.0,
"Directory": "/home/bob/SDV",
"Directory": "/home/hailey/SDV",
"FileName": "None",
"Trigger": {
"Days": "Daily",
"Weather": "Any",
"Location": "Any",
"Key": "Multiply",
"Key": "P",
"StartTime": 600,
"EndTime": 2600
}
Expand All @@ -87,7 +89,13 @@ You can add as many rules as you would like. The config file looks like:
}
```

Triggers are things that must happen for a screenshot to take place. All of the items must be true. Automatic screenshots (without a key press) happen at most once a day.
Note: Older configuration files (from prior to v2.0) will automatically be upgraded to the newer format when you upgrade to v2.0 or later.

For more examples of ways to customize the config.json file, see the [Examples](https://github.com/CompSciLauren/stardew-valley-daily-screenshot-mod/wiki/Examples-for-config.json-file) from the GitHub Wiki!

### Triggers

Triggers are things that must happen for a screenshot to take place. All of the conditions must be true. Automatic screenshots (without a key press) happen at most once a day. Manual screenshots (with a key press) can be taken multiple times.

<!-- markdownlint-disable MD033 -->
| Setting | Description | Type | Default Setting |
Expand All @@ -101,7 +109,7 @@ Triggers are things that must happen for a screenshot to take place. All of the
| FileName | A combination of values for the filename, separated by commas.<BR/><BR/>Possible values are: None, Date, FarmName, GameID, Location, Weather, PlayerName, Time, UniqueID.<BR/><BR/>Will follow the pattern: {FarmName}-{GameID}/{Location}/{Weather}/{Player Name}-{Date}-{Time}-{Unique ID} | enum | Date, FarmName, GameID, Location |
| Days | A combination of values for the days and seasons to take a screenshot.<br/><br/>Possible values are: Day_1 .. Day_28, Mondays, Tuesdays, Wednesdays, Thursdays, Fridays, Saturdays, Sundays, FirstDayOfTheMonth, LastDayOfTheMonth, Spring, Summer, Fall, Winter, AnySeason, AnyDay, Daily.<BR/><BR/>**Note: It is important if not using the daily value to specify season(s) and day(s) or a picture will not be taken.**<BR/><BR/>Example: To take a picture on the 15th of fall use Day_15, Fall. | enum | Daily |
| Weather| A combination of values for the weather.<BR/><BR/>Possible values are: Sunny, Rainy, Windy, Stormy, Snowy, Any. | enum | Any |
| Location | A combination of locations to take a picture. Picture will be taken when going to one of these locations.<BR/><BR/>Possible values are: Farm, Farmhouse, Greenhouse, Beach, FarmCave, Cellar, Desert, Museum, CommunityCenter, Town, Mountain, Mine, MineShaft, IslandWest, IslandFarmhouse, IslandFieldOffice, Unknown, Any. <BR/><BR/>**Note: Unknown is not any of the listed locations.** | enum | Any |
| Location | A combination of locations to take a picture. Picture will be taken when going to one of these locations.<BR/><BR/>Possible values are: Farm, Farmhouse, Greenhouse, Beach, FarmCave, Cellar, Desert, Museum, CommunityCenter, Town, Mountain, Mine, MineShaft, IslandWest, IslandFarmhouse, IslandFieldOffice, Unknown, Any. <BR/><BR/>**Note: Unknown includes any locations not listed above.** | enum | Any |
| Key | Key press to look for to take a picture. If set the picture will be taken on demand and not automatically.<BR/><BR/>Possible values: [List of possible keybindings](https://stardewvalleywiki.com/Modding:Player_Guide/Key_Bindings) | enum | None |
| StartTime | Earliest point at which to take the picture. The time cannot be more than EndTime and must be less than 600. Must be an increment of 10. | int | 600 |
| EndTime | Last point at which to take the picture. The time cannot be less than StartTime and cannot be more than 2600. Must be an increment of 10. | int | 2600 |
Expand Down
20 changes: 12 additions & 8 deletions Release_Process.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,29 @@ This mainly just tracks whatever I happen to be doing, and not really used for t

### Branches

* master - production-ready branch
* main - production-ready branch
* development - testing branch
* DS-123 - individual story branch naming convention (where `123` is the GitHub Issue being worked on)

### General Process

1. Checkout new branch, `master` --> `DS-123` // create a new branch
This is the process I usually follow.

1. Checkout new branch, `main` --> `DS-123` // create a new branch
2. Add the code changes. Commit messages are structured like "DS-123 Add the thing" (message should be accurate high level description of the changes in the commit)
3. Merge branch, `DS-123` --> `development` // merge into dev branch for testing
4. Create PR, `DS-123` --> `master` // after completed test, can merge into production-ready branch
5. Merge `master` back into `development` branch // after doing the release is finished
4. Create PR, `DS-123` --> `main` // after completed test, can merge into production-ready branch
5. Merge `main` back into `development` branch // after doing the release is finished

Note: Once a story is merged to `master` branch, GitHub Issue is closed, since it will be included in the next release.
Note: Once a story is merged to `main` branch, GitHub Issue is closed, since it will be included in the next release.

## Doing the Release

Here are the steps for the release. Note the file used for the release is found in the project bin folder, looks like `DailyScreenshot 3.0.0.zip`.

- [x] All code changes intended to be released are merged to `master` branch
- [x] All code changes intended to be released are merged to `main` branch
- [x] Includes correct version in [manifest.json](./DailyScreenshot/manifest.json) file. (Follows [semver](https://semver.org/) versioning standard)
- [x] GitHub Issues that are addressed by PRs merged to `master` are closed.
- [x] GitHub Issues that are addressed by PRs merged to `main` are closed.
- [x] Draft a new Nexus Article with release notes
- [x] [Publish a New GitHub Release](https://github.com/CompSciLauren/stardew-valley-daily-screenshot-mod/releases/new)
- [x] Publish new version on Nexus
Expand All @@ -46,4 +48,6 @@ Here are the steps for the release. Note the file used for the release is found
- [x] Add a comment about the release to SDV Discord in #modded-farmers channel
- [x] Remember to include a picture (can use main cover photo from Nexus site)
- [x] Right click the comment --> Apps --> Publish, to have it be posted in #mod-showcase channel
- [x] Merge `master` back into `development` branch
- [x] Merge `main` back into `development` branch
- [x] Delete branches associated with released changes

0 comments on commit 6bbec88

Please sign in to comment.