Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# SPDX-License-Identifier: MIT
# Clang-Format Configuration for The Wiser One
# Based on Qt Coding Style with C++23 enhancements

Language: Cpp
Standard: c++23

# Indentation
IndentWidth: 4
TabWidth: 4
UseTab: Never
IndentCaseLabels: false
IndentCaseBlocks: false
IndentPPDirectives: None
NamespaceIndentation: None

# Braces
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: Never
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterStruct: true
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false

# Line breaks
ColumnLimit: 100
MaxEmptyLinesToKeep: 1
KeepEmptyLinesAtTheStartOfBlocks: false

# Alignment
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true

# Pointer/Reference alignment
DerivePointerAlignment: false
PointerAlignment: Left
ReferenceAlignment: Left

# Includes
SortIncludes: CaseInsensitive
IncludeBlocks: Regroup
IncludeCategories:
# Project headers (quoted)
- Regex: '^".*\.h"$'
Priority: 1
# Qt headers
- Regex: '^<Q[A-Z].*>$'
Priority: 2
# C++ standard library
- Regex: '^<[a-z_]+>$'
Priority: 3
# System headers
- Regex: '^<.*>$'
Priority: 4

# Spaces
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

# Other
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
CompactNamespaces: false
Cpp11BracedListStyle: true
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
FixNamespaceComments: true
IndentAccessModifiers: false
IndentWrappedFunctionNames: false
InsertBraces: false
LambdaBodyIndentation: Signature
PackConstructorInitializers: CurrentLine
ReflowComments: true
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 0
SortUsingDeclarations: true
95 changes: 95 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# SPDX-License-Identifier: MIT
# Clang-Tidy Configuration for The Wiser One

Checks: >
-*,
bugprone-*,
-bugprone-easily-swappable-parameters,
-bugprone-unchecked-optional-access,
cert-*,
-cert-err58-cpp,
clang-analyzer-*,
concurrency-*,
cppcoreguidelines-*,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-pro-type-vararg,
misc-*,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
modernize-*,
-modernize-use-trailing-return-type,
-modernize-use-nodiscard,
performance-*,
portability-*,
readability-*,
-readability-braces-around-statements,
-readability-else-after-return,
-readability-identifier-length,
-readability-magic-numbers,
-readability-named-parameter,
-readability-uppercase-literal-suffix

WarningsAsErrors: ''

HeaderFilterRegex: '.*\.h$'

CheckOptions:
# Naming conventions (Qt style)
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.StructCase
value: CamelCase
- key: readability-identifier-naming.EnumCase
value: CamelCase
- key: readability-identifier-naming.EnumConstantCase
value: CamelCase
- key: readability-identifier-naming.FunctionCase
value: camelBack
- key: readability-identifier-naming.VariableCase
value: camelBack
- key: readability-identifier-naming.ParameterCase
value: camelBack
- key: readability-identifier-naming.MemberCase
value: camelBack
- key: readability-identifier-naming.MemberPrefix
value: 'm_'
- key: readability-identifier-naming.ConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.StaticConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.ConstexprVariableCase
value: UPPER_CASE
- key: readability-identifier-naming.GlobalConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.NamespaceCase
value: lower_case

# Function size limits
- key: readability-function-size.LineThreshold
value: '100'
- key: readability-function-size.StatementThreshold
value: '50'
- key: readability-function-size.ParameterThreshold
value: '6'

# Cognitive complexity
- key: readability-function-cognitive-complexity.Threshold
value: '25'

# Performance
- key: performance-unnecessary-value-param.AllowedTypes
value: 'QString;QStringView'

# Modernize
- key: modernize-use-override.IgnoreDestructors
value: 'false'
- key: modernize-loop-convert.MinConfidence
value: 'reasonable'
- key: modernize-pass-by-value.IncludeStyle
value: 'google'

# Misc
- key: misc-const-correctness.WarnPointersAsValues
value: 'false'
33 changes: 33 additions & 0 deletions .github/RELEASE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# The Wiser One 0.0.2 — Release Notes (2026‑02‑20)

## Highlights
- Refined quote and settings popups with unified styling and theme‑aware behavior
- Strong quality gates: high test coverage and documentation coverage enforced
- Ready‑to‑ship Linux artifacts: AppImage, Flatpak, and DEB

## Artifacts
- The_Wiser_One-x86_64.AppImage
- WiserOne.flatpak
- wiserone_0.0.2-1_amd64.deb
- wiserone-dbgsym_0.0.2-1_amd64.ddeb

## Install
### AppImage
```bash
chmod +x The_Wiser_One-x86_64.AppImage
./The_Wiser_One-x86_64.AppImage
```

### Flatpak
```bash
flatpak install --user WiserOne.flatpak
flatpak run com.wiserone.WiserOne
```

### DEB
```bash
sudo apt install ./wiserone_0.0.2-1_amd64.deb
```

## Checksums
See SHA256SUMS.txt and SHA256SUMS.txt.asc
Loading
Loading