Skip to content

Commit 3723535

Browse files
Merge pull request #50 from StrangeRanger/dev
Improve wording of guidelines and TODOs
2 parents 4ed7751 + 8724826 commit 3723535

File tree

5 files changed

+95
-70
lines changed

5 files changed

+95
-70
lines changed

CHANGELOG.md

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66

77
## [Unreleased]
88

9+
## [2025.3.7] - 2025-03-07
10+
11+
## Changed
12+
13+
- Update the wording of the guidelines and additional text.
14+
- Improve the format and wording of the TODO list.
15+
916
## [2024.12.15] - 2024-12-15
1017

1118
### Changed
1219

1320
- **Guidelines**: Introduced another option for continuation lines for control structures.
14-
- `Aesthetics -> Formatting Control Structures`
21+
- `Aesthetics -> Formatting Control Structures`
1522
- **Guidelines**: Modify how global variables should be documented.
16-
- `Aesthetics -> Comments -> Function Comments`
23+
- `Aesthetics -> Comments -> Function Comments`
1724
- Update the wording of the guidelines and additional text.
1825

1926
## [2024.12.4] - 2024-12-04
@@ -28,14 +35,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
2835
- Complete rewrite of the style guide.
2936
- Convert standard markdown of guide to `MkDocs` + `Material for MkDocs`.
3037

31-
## [2022.7.13] - 2022-07-13
38+
## [2025.3.7] - 2025-03-07
3239

3340
### Changed
3441

3542
- Updated sections:
36-
- `Aesthetics -> Comments -> Functions`
37-
- `Aesthetics -> Comments -> Number of pound signs`
38-
- `Style -> Quoting`
43+
- `Aesthetics -> Comments -> Functions`
44+
- `Aesthetics -> Comments -> Number of pound signs`
45+
- `Style -> Quoting`
3946
- Modified code fencing format/style.
4047
- Update example code.
4148

@@ -44,10 +51,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4451
### Changed
4552

4653
- Updated sections:
47-
- `Aesthetics -> Comments -> Number of pound signs`
48-
- `Style -> Quoting`
49-
- `Style -> shebang`
50-
- `Error Checking -> eval`
54+
- `Aesthetics -> Comments -> Number of pound signs`
55+
- `Style -> Quoting`
56+
- `Style -> shebang`
57+
- `Error Checking -> eval`
5158
- Added missing periods to every comment in fenced code blocks.
5259
- Other small changes.
5360

@@ -119,7 +126,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
119126

120127
N/A
121128

122-
[unreleased]: https://github.com/StrangeRanger/bash-style-guide/compare/2024.12.15...HEAD
129+
[unreleased]: https://github.com/StrangeRanger/bash-style-guide/compare/2025.3.7...HEAD
130+
[2025.3.7]: https://github.com/StrangeRanger/bash-style-guide/releases/tag/2025.3.7
123131
[2024.12.15]: https://github.com/StrangeRanger/bash-style-guide/releases/tag/2024.12.15
124132
[2024.12.4]: https://github.com/StrangeRanger/bash-style-guide/releases/tag/2024.12.4
125133
[2022.7.13]: https://github.com/StrangeRanger/bash-style-guide/releases/tag/2022.7.13

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2020-2024 Hunter T. (StrangeRanger)
3+
Copyright (c) 2020-2025 Hunter T. (StrangeRanger)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

TODO.md

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
1-
# TODO
1+
# Todo List
22

3-
## Small TODOs
3+
## Immediate Tasks
44

5-
- Instead of just saying, "It makes things more clear," explain how it makes things more clear.
6-
- Example:
7-
- **Explanation**: Bash globbing, using patterns like `*`, directly matches filenames in the specified directory without invoking an external command. Unlike `ls`, which produces plain text output that may misinterpret or mishandle filenames containing spaces, newlines, or special characters, Bash globbing handles these scenarios correctly and efficiently. When a glob pattern is used (e.g., `/path/to/dir/*`), the shell itself expands the pattern into a list of matching filenames. This approach ensures that each filename, regardless of its complexity or the characters it contains, is correctly identified and processed. Consequently, Bash globbing is more reliable and secure than parsing the output of ls, which can easily lead to errors or security vulnerabilities when encountering unconventional filenames.
8-
- Ensure terminology is consistent and correct throughout the document. (e.g., "Block statements" vs. "Control statements")
5+
Pages requiring review and improvement (completed pages are highlighted as green):
96

10-
## Big(ger) TODOs
7+
- [x] Home Page
8+
- [x] Aesthetics
9+
- [ ] Bashism
10+
- [ ] Common Mistakes
11+
- [ ] Error Handling
12+
- [ ] Style
1113

12-
- Add a section explaining the perils of using `eval` and why it should be avoided.
13-
- Add a section explaining how to properly use `set -e`.
14-
- Add information regarding how to deal with logical operators (or redirect and i/o operators), similar to that of inside "Formatting Multi-lined Commands", to _____...
15-
- Add information to (some section) specifying that global variables should often be placed at the top of the script. This ensures that the script isn't reliant on variables defined within a function. (or something like that)
16-
- While out of scope of this document, consider adding information to "Using Quotes" in style.md about the background of using quotes and how they are used in other programming languages. This could help readers understand the importance of quotes in Bash and why they should be used consistently.
17-
- Add a section describing the importance of shebangs...
14+
Action items for these pages:
15+
16+
- Replace vague explanations (like "It makes things more clear") with specific, detailed reasoning.
17+
- **Example**:
18+
- **Explanation**: Bash globbing, using patterns like `*`, directly matches filenames in the specified directory without invoking an external command. Unlike `ls`, which produces plain text output that may misinterpret or mishandle filenames containing spaces, newlines, or special characters, Bash globbing handles these scenarios correctly and efficiently. When a glob pattern is used (e.g., `/path/to/dir/*`), the shell itself expands the pattern into a list of matching filenames. This approach ensures that each filename, regardless of its complexity or the characters it contains, is correctly identified and processed. Consequently, Bash globbing is more reliable and secure than parsing the output of ls, which can easily lead to errors or security vulnerabilities when encountering unconventional filenames.
19+
- Standardize terminology throughout the document (e.g., consistently use either "Block statements" or "Control statements", not both).
20+
21+
## Substantial Enhancements
22+
23+
- [ ] Create a dedicated section detailing the dangers of `eval` usage and recommended alternatives.
24+
- [ ] Develop comprehensive guidelines for the proper implementation of `set -e` with examples.
25+
- [ ] Document best practices for working with logical operators and I/O redirection operators, following the format established in the "Formatting Multi-lined Commands" section.
26+
- [ ] Add guidance on variable scope best practices, emphasizing that global variables should be declared at the script's beginning to prevent dependency issues with function-local variables.
27+
- [ ] Consider expanding the "Using Quotes" section in style.md to include comparative context from other programming languages, highlighting why consistent quoting practices are particularly important in Bash.
28+
- [ ] Draft a new section explaining shebang (`#!`) importance, proper syntax, and common implementations.

0 commit comments

Comments
 (0)