@beauraines/sprint-tracker 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,7 @@ jobs:
21
21
  - name: setup node
22
22
  uses: actions/setup-node@v3
23
23
  with:
24
- node-version: 16.x
24
+ node-version: 18.x
25
25
  registry-url: 'https://registry.npmjs.org'
26
26
  - name: npm install
27
27
  run: npm ci
@@ -13,7 +13,7 @@ jobs:
13
13
 
14
14
  strategy:
15
15
  matrix:
16
- node-version: [16.x]
16
+ node-version: [16.x, '18.x', '20.x']
17
17
 
18
18
  steps:
19
19
  - uses: actions/checkout@v3
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.6.5](https://bitbucket.org/beauraines/sprint-tracker/compare/v0.6.4...v0.6.5) (2023-12-13)
6
+
7
+
8
+ ### Features
9
+
10
+ * depends on local R ([#46](https://bitbucket.org/beauraines/sprint-tracker/issues/46)) ([1e8bf5e](https://bitbucket.org/beauraines/sprint-tracker/commit/1e8bf5ed534f52e569bab60cf501826b0f9b06f6))
11
+
12
+ ### [0.6.4](https://bitbucket.org/beauraines/sprint-tracker/compare/v0.6.3...v0.6.4) (2023-12-07)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **config:** creates file when one doesn't exist ([#44](https://bitbucket.org/beauraines/sprint-tracker/issues/44)) ([1b3b525](https://bitbucket.org/beauraines/sprint-tracker/commit/1b3b525ecc7da1c884417cabf5c1b5aa06c01025)), closes [#42](https://bitbucket.org/beauraines/sprint-tracker/issues/42)
18
+
5
19
  ### [0.6.3](https://bitbucket.org/beauraines/sprint-tracker/compare/v0.6.1...v0.6.3) (2023-12-07)
6
20
 
7
21
 
@@ -3,7 +3,7 @@ library(ggplot2)
3
3
 
4
4
  # sqlite3 --header --csv tracker.db < sql/sprintOutcomes.sql > /tmp/outcomes.csv
5
5
 
6
- outcomes = read_csv('/tmp/outcomes.csv')
6
+ outcomes = read_csv('~/outcomes.csv')
7
7
 
8
8
  outcomes <- outcomes %>%
9
9
  tibble() %>%
@@ -98,6 +98,6 @@ plot<-ggplot(outcomes,
98
98
 
99
99
  # plot # commented out for docker
100
100
 
101
- ggsave(str_c("~/projects/sprint-tracker/",str_replace(unique(outcomes$project_name)," ",""),"SprintOutcomesCli.png"),plot=plot,bg="white", width = 2882, height = 1700, units = "px")
101
+ ggsave(str_c("~/",str_replace(unique(outcomes$project_name)," ",""),"SprintOutcomesCli.png"),plot=plot,bg="white", width = 2882, height = 1700, units = "px")
102
102
 
103
- print(str_c("Saving to ",str_c("~/projects/sprint-tracker/",str_replace(unique(outcomes$project_name)," ",""),"SprintOutcomesCli.png"),sep = " "))
103
+ print(str_c("Saving to ",str_c("~/",str_replace(unique(outcomes$project_name)," ",""),"SprintOutcomesCli.png"),sep = " "))
package/README.md CHANGED
@@ -40,15 +40,22 @@ Options:
40
40
  ```
41
41
  ## Dependencies
42
42
 
43
- This CLI application relies on a local [sqlite](https://www.sqlite.org/download.html) database, [docker](https://docs.docker.com/desktop/?_gl=1*ogftl2*_ga*OTE5MjI3MDc1LjE3MDE5MDA5NTE.*_ga_XJWPQMJYHQ*MTcwMTkwMDk1MS4xLjEuMTcwMTkwMDk5My4xOC4wLjA.), and the [rocker](https://hub.docker.com/r/rocker/tidyverse)/tidyverse](https://hub.docker.com/r/rocker/tidyverse) image to function. Installation of these dependencies is outside of the scope of this project as the steps vary by OS.
43
+ This CLI application relies on a local [sqlite](https://www.sqlite.org/download.html) database, [R](https://cran.r-project.org/) including [tidyverse](https://tidyverse.tidyverse.org/) to function. Installation of these dependencies is outside of the scope of this project as the steps vary by OS.
44
44
 
45
45
  On Mac, these can be installed with homebrew.
46
46
 
47
47
  ```bash
48
- brew install docker sqlite
49
- docker pull rocker/tidyverse
48
+ brew install sqlite r
50
49
  ```
51
50
 
51
+ Install the tidyverse packages
52
+
53
+ 1. Start R with the `R` command
54
+ 2. Install tidyverse `install.packages("tidyverse")`
55
+ 3. Pick a close mirror from the list provided
56
+ 4. A very long compile process will run, approximately 20 minutes depending upon your hardware.
57
+ 5. Once it is installed quit R with `q()` and respond to the prompts to **not** save your workspace.
58
+
52
59
  ## Installation Instructions
53
60
 
54
61
  The sprint-tracker can be installed with `npm -g i @beauraines/sprint-tracker` to be used locally. Once you've installed it, follow the [General Usage](#general-usage) instructions. If you're going to contribute to the package, see [Installation and Setup for Development](#installation-and-setup-for-development).
@@ -61,7 +68,7 @@ The sprint-tracker can be installed with `npm -g i @beauraines/sprint-tracker` t
61
68
  8. Run `sprint-tracker addProject` to add a project to the database. This step can be repeated as new projects are started.
62
69
  9. Add the first sprint with `sprint-tracker addSprint` optionally, adding the sprint commitment. This step can be repeated for subsequent sprints.
63
70
  10. At the end of the sprint, record sprint outcomes `sprint-tracker addOutcome`. This will allow you to log information about stories and points completed, committed, pulled forward, carried over, and bugs.
64
- 11. Generate the cumulative sprint outcomes visualization with `sprint-tracker visualizations`. If you do not have the [rocker/tidyverse](https://hub.docker.com/r/rocker/tidyverse) image, it will automatically pull it, which will take a little bit of time
71
+ 11. Generate the cumulative sprint outcomes visualization with `sprint-tracker visualizations`.
65
72
 
66
73
 
67
74
  ## Configuration
@@ -97,13 +104,13 @@ Non-working days and PTO will be recorded to be able to normalize Sprints with d
97
104
 
98
105
  ### Sprint Outcomes
99
106
 
100
- 1. Commitment : Initial sprint commitment
101
- 1. Delivered : Work completed this sprint
102
- 1. Unplanned - Story : All unplanned work brought into the sprint, whether completed or not
103
- 1. Unplanned - Bug : Unplanned work without a pre-existing story that was deemed critical enough to add to the sprint
104
- 1. Descoped : Committed work, removed from the sprint
105
- 1. Carryover : Incomplete, started or unstarted, work from this sprint, assumed that it will carryover to the next sprint
106
- 1. Carryover - External : Work that was carried over due to blockers external to the scrum team. Use of this is optional, as an agile team should be fully self-sufficient.
107
+ 1. Commitment: Initial sprint commitment
108
+ 1. Delivered: Work completed this sprint
109
+ 1. Unplanned - Story: All unplanned work brought into the sprint, whether completed or not
110
+ 1. Unplanned - Bug: Unplanned work without a pre-existing story that was deemed critical enough to add to the sprint
111
+ 1. Descoped: Committed work, removed from the sprint
112
+ 1. Carryover: Incomplete, started or un-started, work from this sprint, assumed that it will carry over to the next sprint
113
+ 1. Carryover - External: Work that was carried over due to blockers external to the scrum team. Use of this is optional, as an agile team should be fully self-sufficient.
107
114
 
108
115
 
109
116
  ### ERD
@@ -170,14 +177,14 @@ docker run -it --rm -v ${PROJECT_DIR}:/home/rstudio/projects/ ${IMAGE} su -c 'Rs
170
177
  ## Roadmap
171
178
 
172
179
  1. ~~Build local database using sqlite3~~
173
- 2. ~~Script visualizations, possibly with R, graph-cli, chartsjs, PowerBI or AWS QuickSight~~
180
+ 2. ~~Script visualizations, possibly with R, graph-cli, chartsjs, PowerBI, or AWS QuickSight~~
174
181
  3. [Backlog health tracking](https://github.com/beauraines/sprint-tracker/issues/36)
175
182
  4. Write API for adding data
176
183
  5. Write API for getting visualizations
177
184
  6. ~~Create database migrations~~
178
185
  7. Deploy to cloud
179
186
  8. Add sprint metrics
180
- 1. Average velocity over life of project
187
+ 1. Average velocity over the life of the project
181
188
  2. Recent average velocity
182
189
  3. 90% confidence range. See <https://resources.scrumalliance.org/Article/its-target-forecast>
183
190
  4. Daily points per developer
package/cmds/config.js CHANGED
@@ -13,7 +13,7 @@ const handler = async function () {
13
13
  const filename = 'sprintTracker.json'
14
14
  const configFile = path.join(homedir(), filename)
15
15
 
16
- if (helpers.fileExists(configFile)) {
16
+ if (await helpers.fileExists(configFile)) {
17
17
  console.error(`Aborting. Existing configuration file ${configFile} found to not overwrite your values.`)
18
18
  process.exit(1)
19
19
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const { AsyncParser } = require('@json2csv/node')
4
- const {homedir, tmpdir} = require('os');
4
+ const { homedir } = require('os');
5
5
  const { database: db } = require('helpers')
6
6
  const { prompt } = require('../utils/input.js')
7
7
  const {readConfig} = require('helpers').config
@@ -82,7 +82,7 @@ const handler = async function () {
82
82
  // Write to file
83
83
 
84
84
 
85
- const outputFile = path.join(tmpdir(),'outcomes.csv');
85
+ const outputFile = path.join(homedir(),'outcomes.csv');
86
86
  try {
87
87
  fs.writeFileSync(outputFile, csv);
88
88
  // file written successfully
@@ -94,10 +94,11 @@ const handler = async function () {
94
94
 
95
95
 
96
96
  console.log('Making visualizations')
97
- // Run docker command
98
- let PROJECT_DIR=path.join(homedir(),'projects')
99
- let IMAGE='rocker/tidyverse'
100
- const cmd = `docker run -t --rm -v ${PROJECT_DIR}:/home/rstudio/projects/ -v ${tmpdir()}:/tmp ${IMAGE} su -c 'Rscript /home/rstudio/projects/sprint-tracker/R/sprintOutcomesCli.R' rstudio`
97
+ // // Run docker command
98
+ // let PROJECT_DIR=path.join(homedir(),'projects')
99
+ // let IMAGE='rocker/tidyverse'
100
+ // const cmd = `docker run -t --rm -v ${PROJECT_DIR}:/home/rstudio/projects/ -v ${tmpdir()}:/tmp ${IMAGE} su -c 'Rscript /home/rstudio/projects/sprint-tracker/R/sprintOutcomesCli.R' rstudio`
101
+ const cmd = `Rscript ${__dirname}/../R/sprintOutcomesCli.R`
101
102
  exec(cmd, function(err, stdout, stderr) {
102
103
  if (err) {
103
104
  console.log(stderr);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beauraines/sprint-tracker",
3
- "version": "0.6.3",
3
+ "version": "0.6.5",
4
4
  "description": "Database and R visualizations to track sprint performance",
5
5
  "main": "cli.js",
6
6
  "bin": {