Skip to content

Commit 647b77e

Browse files
committed
Merge branch 'main' into unifyDockerDevcontainer
2 parents 379c4e7 + 39d5b5c commit 647b77e

File tree

197 files changed

+2550
-1826
lines changed

Some content is hidden

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

197 files changed

+2550
-1826
lines changed

.github/ISSUE_TEMPLATE/bug-report.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ body:
4141
attributes:
4242
label: Version
4343
description: |
44-
What [version of the firmware](https://github.com/JF002/InfiniTime/blob/develop/doc/gettingStarted/gettingStarted-1.0.md#how-to-check-the-version-of-infinitime-and-the-bootloader) are you running?
45-
If you are running an older version, please consider [updating to the latest firmware](https://github.com/JF002/InfiniTime/blob/develop/doc/gettingStarted/gettingStarted-1.0.md#how-to-update-your-pinetime).
44+
What [version of the firmware](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/doc/gettingStarted/updating-software.md#checking-the-version-of-infinitime) are you running?
45+
If you are running an older version, please consider [updating to the latest firmware](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/doc/gettingStarted/updating-software.md#updating-with-companion-apps).
4646
If you are running directly from git, specify the branch or the commit hash directly.
47-
placeholder: "Ex. v1.6.0 or develop or fc922b60"
47+
placeholder: "Ex. v1.11.0 or main or fc922b60"
4848
validations:
4949
required: true
5050
- type: input

.github/ISSUE_TEMPLATE/issue-report.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ body:
2323
attributes:
2424
label: Version
2525
description: |
26-
What [version of the firmware](https://github.com/JF002/InfiniTime/blob/develop/doc/gettingStarted/gettingStarted-1.0.md#how-to-check-the-version-of-infinitime-and-the-bootloader) are you running?
27-
If you are running an older version, please consider [updating to the latest firmware](https://github.com/JF002/InfiniTime/blob/develop/doc/gettingStarted/gettingStarted-1.0.md#how-to-update-your-pinetime).
26+
What [version of the firmware](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/doc/gettingStarted/updating-software.md#checking-the-version-of-infinitime) are you running?
27+
If you are running an older version, please consider [updating to the latest firmware](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/doc/gettingStarted/updating-software.md#updating-with-companion-apps).
2828
If you are running directly from git, specify the branch or the commit hash directly.
29-
placeholder: Ex. v1.6.0 or develop or fc922b60
29+
placeholder: Ex. v1.11.0 or main or fc922b60
3030
validations:
3131
required: false

.github/workflows/docker.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ name: Build and push Docker image
22

33
on:
44
push:
5-
branches: [ develop ]
5+
branches: [ main ]
66
paths:
77
- 'docker/**'
88
pull_request:
9-
branches: [ develop ]
9+
branches: [ main ]
1010
paths:
1111
- 'docker/**'
1212
# Allows you to run this workflow manually from the Actions tab

.github/workflows/format.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Code formatting
22

33
on:
44
pull_request:
5-
branches: [ develop ]
5+
branches: [ main ]
66
paths:
77
- '**.cpp'
88
- '**.h'

.github/workflows/main.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ name: CI
33
# Run this workflow whenever the build may be affected
44
on:
55
push:
6-
branches: [ master, develop ]
6+
branches: [ main ]
77
paths-ignore:
88
- 'doc/**'
99
- '**.md'
1010
pull_request:
11-
branches: [ develop ]
11+
branches: [ main ]
1212
paths-ignore:
1313
- 'doc/**'
1414
- '**.md'

.github/workflows/pr-comment.yml

+10-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name: PR comment
55

66
on:
77
pull_request_target:
8-
branches: [ develop ]
8+
branches: [ main ]
99
paths-ignore:
1010
- 'doc/**'
1111
- '**.md'
@@ -23,9 +23,16 @@ jobs:
2323
ref: ${{ github.event.pull_request.head.sha }}
2424

2525
- if: steps.wait-for-build.outputs.conclusion != 'success'
26-
run: exit 1
26+
run: |
27+
tee comment << EOF
28+
Build checks have not completed. Possible reasons for this are:
29+
1. The checks need to be approved by a maintainer
30+
2. The branch has conflicts
31+
3. The firmware build has failed
32+
EOF
2733
28-
- name: Download artifact
34+
- if: steps.wait-for-build.outputs.conclusion == 'success'
35+
name: Download artifact
2936
uses: dawidd6/action-download-artifact@bd10f381a96414ce2b13a11bfa89902ba7cea07f
3037
with:
3138
workflow: main.yml
@@ -39,7 +46,6 @@ jobs:
3946
with:
4047
issue-number: ${{ github.event.pull_request.number }}
4148
comment-author: 'github-actions[bot]'
42-
body-includes: Build size and comparison to
4349

4450
- name: Create or update comment
4551
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,6 @@ Testing/Temporary/
4747
#build files
4848
src/nRF5_SDK_15.3.0_59ac345
4949
src/arm-none-eabi
50+
51+
# clangd
52+
.cache/

.gitmodules

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[submodule "src/libs/lvgl"]
22
path = src/libs/lvgl
3-
url = https://github.com/joaquimorg/lvgl.git
3+
url = https://github.com/InfiniTimeOrg/lvgl.git
44
[submodule "src/libs/littlefs"]
55
path = src/libs/littlefs
66
url = https://github.com/littlefs-project/littlefs.git
77
[submodule "src/libs/QCBOR"]
88
path = src/libs/QCBOR
99
url = https://github.com/laurencelundblade/QCBOR.git
10-
[submodule "src/libs/date"]
11-
path = src/libs/date
12-
url = https://github.com/HowardHinnant/date.git
10+
[submodule "src/libs/arduinoFFT"]
11+
path = src/libs/arduinoFFT
12+
url = https://github.com/kosme/arduinoFFT.git

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
22

33
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose Debug or Release")
44

5-
project(pinetime VERSION 1.11.0 LANGUAGES C CXX ASM)
5+
project(pinetime VERSION 1.13.0 LANGUAGES C CXX ASM)
66

77
set(CMAKE_C_STANDARD 99)
88
set(CMAKE_CXX_STANDARD 14)

CONTRIBUTING.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Here are things you can do to help.
66
- [Write and improve documentation](#documentation)
77
- [Fix bugs, add functionalities and improve the code](#how-to-create-a-pull-request)
88
- Participate in the discussions within issues and PRs. Your feedback is appreciated!
9-
- Review pull requests. Follow the instructions [here](maintainer-guide.md#reviewing-prs)
9+
- Review pull requests. Follow the instructions [here](doc/maintainer-guide.md#reviewing-prs)
1010

1111
## Documentation
1212

@@ -22,7 +22,7 @@ The workflow is based on [GitHub flow](https://docs.github.com/en/get-started/qu
2222

2323
To create a pull request,
2424
you need a [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks) of the repo.
25-
Create a new [branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches) from develop,
25+
Create a new [branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches) from main,
2626
make changes in this branch,
2727
[commit](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits) them,
2828
and create a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).
@@ -31,11 +31,11 @@ and create a [pull request](https://docs.github.com/en/pull-requests/collaborati
3131

3232
When making changes to the firmware:
3333

34-
- Consider if your feature aligns with the [InfiniTime vision](InfiniTimeVision.md)
34+
- Consider if your feature aligns with the [InfiniTime vision](doc/InfiniTimeVision.md)
3535
- Test your changes on a PineTime or InfiniSim
36-
- Make sure the code conforms to the [coding conventions](coding-convention.md)
36+
- Make sure the code conforms to the [coding conventions](doc/coding-convention.md)
3737

38-
You can also check the [maintainer's guide](maintainer-guide.md)
38+
You can also check the [maintainer's guide](doc/maintainer-guide.md)
3939
for what maintainers will look at in PRs.
4040

4141
### Commit conventions

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)
22

3-
[![Build PineTime Firmware](https://github.com/InfiniTimeOrg/InfiniTime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master)](https://github.com/InfiniTimeOrg/InfiniTime/actions)
4-
53
![InfiniTime logo](doc/logo/infinitime-logo-small.jpg "InfiniTime Logo")
64

75
Fast open-source firmware for the [PineTime smartwatch](https://www.pine64.org/pinetime/) with many features, written in modern C++.
@@ -11,14 +9,16 @@ Fast open-source firmware for the [PineTime smartwatch](https://www.pine64.org/p
119
- [Getting started with InfiniTime](doc/gettingStarted/gettingStarted-1.0.md)
1210
- [Updating the software](doc/gettingStarted/updating-software.md)
1311
- [About the firmware and bootloader](doc/gettingStarted/about-software.md)
12+
- [PineTimeStyle Watch face](https://wiki.pine64.org/wiki/PineTimeStyle)
13+
- [Weather integration](https://wiki.pine64.org/wiki/Infinitime-Weather)
1414

1515
### Companion apps
1616

1717
- [Gadgetbridge](https://gadgetbridge.org/) (Android)
1818
- [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS)
1919
- [Siglo](https://github.com/alexr4535/siglo) (Linux)
2020
- [InfiniLink](https://github.com/InfiniTimeOrg/InfiniLink) (iOS) **[Looking for a new maintainer]**
21-
- [ITD](https://gitea.arsenm.dev/Arsen6331/itd) (Linux)
21+
- [ITD](https://gitea.elara.ws/Elara6331/itd) (Linux)
2222
- [WatchMate](https://github.com/azymohliad/watchmate) (Linux)
2323

2424
***Note** : We removed mentions to NRFConnect as this app is closed source and recent versions do not work anymore with InfiniTime (the last version known to work is 4.24.3). If you used NRFConnect in the past, we recommend you switch to [Gadgetbridge](https://gadgetbridge.org/).*

doc/ExternalResources.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This page describes how the resources are integrated in InfiniTime from a develo
66

77
## Resources generation
88

9-
Resources are generated at build time via the [CMake target `Generate Resources`](https://github.com/InfiniTimeOrg/InfiniTime/blob/develop/src/resources/CMakeLists.txt#L19).
9+
Resources are generated at build time via the [CMake target `Generate Resources`](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/src/resources/CMakeLists.txt#L19).
1010
It runs 3 Python scripts that respectively convert the fonts to binary format, convert the images to binary format and package everything in a .zip file.
1111

1212
The resulting file `infinitime-resources-x.y.z.zip` contains the images and fonts converted in binary `.bin` files and a JSON file `resources.json`.

doc/MemoryAnalysis.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ In Infinitime 1.1, the biggest buffers are the buffers allocated for LVGL (14KB)
104104

105105
### Stack
106106

107-
The stack will be used for everything except tasks, which have their own stack allocated by FreeRTOS. The stack is 8192B and is allocated in the [linker script](https://github.com/InfiniTimeOrg/InfiniTime/blob/develop/nrf_common.ld#L148).
107+
The stack will be used for everything except tasks, which have their own stack allocated by FreeRTOS. The stack is 8192B and is allocated in the [linker script](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/nrf_common.ld#L148).
108108
An easy way to monitor its usage is by filling the section with a known pattern at boot time, then use the firmware and dump the memory. You can then check the maximum stack usage by checking the address from the beginning of the stack that were overwritten.
109109

110110
#### Fill the stack section by a known pattern:
@@ -216,7 +216,7 @@ According to my experimentations, we don't use the stack that much, and 8192 byt
216216

217217
### Heap
218218

219-
The heap is declared in the [linker script](https://github.com/InfiniTimeOrg/InfiniTime/blob/develop/nrf_common.ld#L136) and its current size is 8192 bytes. The heap is used for dynamic memory allocation(`malloc()`, `new`...).
219+
The heap is declared in the [linker script](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/nrf_common.ld#L136) and its current size is 8192 bytes. The heap is used for dynamic memory allocation(`malloc()`, `new`...).
220220

221221
Heap monitoring is not easy, but it seems that we can use the following code to know the current usage of the heap:
222222

doc/branches.md

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
# Branches
22

3-
The branching model of this project is based on the workflow named [Git flow](https://nvie.com/posts/a-successful-git-branching-model/).
3+
The project has 1 main branch, aptly called **main**.
4+
This branch contains the latest development that will be tagged for the next release once it's considered stable.
45

5-
The project is based on 2 main branches:
6+
New features should be implemented in **feature branches** created from **main**.
7+
When the feature is ready, a pull request is created and it'll be merged into **main** when it is successfully reviewed and accepted.
68

7-
- **master** : this branch is always ready to be deployed. It means that at any time, we should be able to build the branch and release a new version of the application.
8-
- **develop** : this branch contains the latest development that will be integrated in the next release once it's considered as stable.
9+
To release a new version of the application, when main is considered stable, a tag is created on the version bump commit in **main** and the release is generated (a tag is applied to git, the release note is finalized, binaries are built,...).
910

10-
New features should be implemented in **feature branches** created from **develop**. When the feature is ready, a pull-request is created and it'll be merge into **develop** when it is successfully reviewed and accepted.
11-
12-
To release a new version of the application, when develop is considered stable, a **release** branch is created from **develop**. This can be considered as a *release candidate* branch. When everything is OK, this release branch is merged into **master** and the release is generated (a tag is applied to git, the release note is finalized, binaries are built,...) from **master**.
13-
14-
Git flow also supports the creation of **hotfix** branches when a bug is discovered in a released version. The **hotfix** branch is created from **master** and will be used only to implement a fix to this bug. Multiple hotfix branches can be created for the same release if multiple bugs are discovered.
11+
We also supports the creation of **hotfix** branches when a bug is discovered in a released version. The **hotfix** branch is created from the latest tag and will be used only to implement a fix to this bug.
12+
Multiple hotfix branches can be created for the same release if multiple bugs are discovered.

doc/buildAndProgram.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ CMake configures the project according to variables you specify the command line
4848
#### (\*) Note about **CMAKE_BUILD_TYPE**
4949
By default, this variable is set to *Release*. It compiles the code with size and speed optimizations. We use this value for all the binaries we publish when we [release](https://github.com/InfiniTimeOrg/InfiniTime/releases) new versions of InfiniTime.
5050
51-
The *Debug* mode disables all optimizations, which makes the code easier to debug. However, the binary size will likely be too big to fit in the internal flash memory. If you want to build and debug a *Debug* binary, you'll need to disable some parts of the code. For example, the icons for the **Navigation** app use a lot of memory space. You can comment the content of `m_iconMap` in the [Navigation](https://github.com/InfiniTimeOrg/InfiniTime/blob/develop/src/displayapp/screens/Navigation.h#L148) application to free some memory.
51+
The *Debug* mode disables all optimizations, which makes the code easier to debug. However, the binary size will likely be too big to fit in the internal flash memory. If you want to build and debug a *Debug* binary, you'll need to disable some parts of the code. For example, the icons for the **Navigation** app use a lot of memory space. You can comment the content of `m_iconMap` in the [Navigation](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/src/displayapp/screens/Navigation.h#L148) application to free some memory.
5252

5353
#### (\*\*) Note about **BUILD_DFU**
5454
DFU files are the files you'll need to install your build of InfiniTime using OTA (over-the-air) mechanism. To generate the DFU file, the Python tool [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil) is needed on your system. Check that this tool is properly installed before enabling this option.

doc/usingDevcontainers.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ In order to build InfiniTime we need to run the initial submodule init and CMake
2424

2525
#### Manually
2626

27-
You can use the VS Code terminal to run the CMake commands as outlined in the [build instructions](blob/develop/doc/buildAndProgram.md)
27+
You can use the VS Code terminal to run the CMake commands as outlined in the [build instructions](https://github.com/InfiniTimeOrg/InfiniTime/blob/main/doc/buildAndProgram.md)
2828

2929
#### Script
3030

doc/versioning.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
The versioning of this project is based on [Semantic versioning](https://semver.org/):
44

55
- The **patch** is incremented when a bug is fixed on a **released** version (most of the time using a **hotfix** branch).
6-
- The **minor** is incremented when a new version with new features is released. It corresponds to a merge of **develop** into **master**.
6+
- The **minor** is incremented when a new version with new features is released. It corresponds to a tag of a commit in **main**.
77
- The **major** should be incremented when a breaking change is made to the application. We still have to define what is a breaking change in the context of this project.

0 commit comments

Comments
 (0)