Skip to content

Commit 0b37e0d

Browse files
committed
Update todo items
1 parent 7525058 commit 0b37e0d

1 file changed

Lines changed: 16 additions & 188 deletions

File tree

TODO.md

Lines changed: 16 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
# TODO
22

3-
1. switch to `eslint` as main JS linter
4-
5-
- add to CI
6-
- support reformatting ala `go fmt` => `--fix`
3+
1. consider automatic formatting support ala `go fmt` => `eslint --fix`
74

85
1. add NPM style [guide](https://github.com/voorhoede/npm-style-guide) with [versioning info](https://github.com/compute-io/contributing#versioning)
96

@@ -31,13 +28,13 @@
3128
- typed-array
3229
- ...
3330

34-
1. how to handle modules with CLIs?
35-
36-
- will want some sort of CLI test framework to test `stdin`, `stdout`, args, etc.
31+
1. add unit tests for all pkg CLIs
3732

3833
1. how to handle browser tests for non-browser fcns
3934

4035
- e.g., `fs` functions like `fs/exists`, or `cwd`
36+
- one option is to simply skip tests (which is most likely appropriate for most cases)
37+
- another option is to use a virtual fs backend in which, to a user, fs commands "behave" just like in Node (which is appropriate for other contexts; e.g., a browser REPL with a virtual filesystem)
4138

4239
1. migrate JSDoc; use one of
4340

@@ -79,10 +76,6 @@
7976

8077
1. See [tinycolor](https://github.com/bgrins/TinyColor/blob/master/tinycolor.js)
8178

82-
1. lint filenames
83-
84-
- [eslint plugin](https://github.com/selaux/eslint-plugin-filenames)
85-
8679
1. consider changing `isNumber` to `isNumeric`
8780

8881
1. prngs
@@ -150,8 +143,6 @@
150143

151144
1. `type-of` should check for `toStringTag` support
152145

153-
1. update `utils/tools`
154-
155146
1. generic `is-finite` util should include note about how differs from global `isFinite`
156147

157148
1. create better examples for constants
@@ -181,10 +172,6 @@
181172

182173
1. `Makefile` does not list top-level `examples`; is this intentional?
183174

184-
1. move test fixture runners into sub-directories based on language
185-
186-
- e.g., `./fixtures/julia/*`
187-
188175
1. add Saucelabs with zuul (?)
189176

190177
1. [gh-pages](https://github.com/tschaub/gh-pages)
@@ -230,9 +217,8 @@
230217
- given a Markdown file, create a list of two things: the unique citation identifiers used throughout the text and any citations included in the `links` section
231218
- ignore internal links to other Markdown sections
232219
- if an id is found in bib docs, use that reference
233-
- will want canonical way to reference project modules, which may be tricky, as modules may move, etc; this is important for automating "see also" type sections
234220
- otherwise, leave the existing ref as is
235-
- as part of this, should be able to lint (although `remark` does this already)
221+
- as part of this, should be able to lint
236222
- once finished, save to disk
237223
- does require a separate build step, but can be automated `pre-push` or via `watch`
238224
- how would we distinguish (in markup) between just wanting a link and wanting a full-blown reference citation? => maybe if within a `references` section, similar to `links`
@@ -305,25 +291,11 @@
305291

306292
1. consider using things like [shellcheck](https://github.com/koalaman/shellcheck) for linting files other than JavaScript
307293

308-
- markdown linting
309-
310294
- [alex](https://github.com/wooorm/alex)
311-
312295
- [retext-readability](https://github.com/wooorm/retext-readability)
313-
314-
- [standard-markdown](https://github.com/zeke/standard-markdown)
315-
316-
- [retext-lint-code](https://github.com/Qard/remark-lint-code)
317-
318-
- uses eslint
319-
320-
- js code in markdown linting
321-
322296
- [css linting](https://github.com/stylelint/stylelint) and [stylefmt](https://github.com/morishitter/stylefmt)
323-
324297
- [list](https://github.com/SalGnt/cscs) of style guidelines
325-
326-
- Pep8 for Python, [pycodestyle](https://github.com/PyCQA/pycodestyle), and see [autopep8](https://github.com/hhatto/autopep8) for automatic formatting
298+
- see [autopep8](https://github.com/hhatto/autopep8) for automatic formatting
327299

328300
1. on src doc build for `gh-pages`, also do the same for `develop`; e.g., `/docs/src/develop`, which could map to `http://a.b.c/docs/src/develop`
329301

@@ -411,11 +383,6 @@
411383
- have a script which mines the individual `package.json` engine fields and determines, in aggregate, the supported engine range for all pkgs and assign as the engine range for the "aggregate"
412384
- can also lint (search pkg deps, check engine field, and see if compatible)
413385

414-
1. consider adding a license prefix to each file
415-
416-
- [julia](https://github.com/JuliaLang/julia/blob/master/contrib/add_license_to_files.jl)
417-
- [license-check](https://github.com/magemello/license-check)
418-
419386
1. intro how-tos
420387

421388
- [gifs](https://github.com/chjj/ttystudio)
@@ -426,18 +393,19 @@
426393

427394
1. investigate [xonsh](https://github.com/scopatz/xonsh)
428395

396+
1. investigate async but [awaitful](https://github.com/ramitos/apr)
397+
429398
1. `list-modules` Makefile recipe
430399

431400
- can be used in conjunction with dep analysis to see which modules are **not** required by a file, etc; e.g., which modules are not included in a namespace.
432401

433-
1. investigate async but [awaitful](https://github.com/ramitos/apr)
434-
435-
1. `list-required-modules` Makefile recipe
402+
1. `list-required-modules` (name?) Makefile recipe
436403

437404
- should analyze `require` graph (ala `browserify`) to determine dependencies
438405
- should work for a single file or a directory
439406
- for directory, may want to dedupe (flat array), a tree result which states which modules require which modules (similar to a node dependency graph), or, for every found module, the deps for that module (array of arrays)
440407
- see automation/package.json item below
408+
- a tree representation could be useful as would allow metrics such as tree "depth", in which we can identify files/modules/pkgs with "deep" trees
441409

442410
1. investigate [npm-publish-please](https://github.com/inikulin/publish-please) and `np` (Sindre)
443411

@@ -494,6 +462,7 @@
494462
- can use `simple-http-server` (or even `disposable-http-server`)
495463
- [packify](https://github.com/maxogden/packify)
496464
- option to stream to multiple browsers (tabs) in parallel (akin to parallel builds)
465+
- would also be nice to have editor support (e.g., keyboard shortcut to run current file in a browser)
497466

498467
1. build step which runs examples in browsers and catches any errors
499468

@@ -687,7 +656,7 @@
687656
688657
1. Add Markdown style guide, including notes about comment annotations, equations, etc.
689658
690-
1. Add note about ES201. features in JS style guide
659+
1. Add note about ES2015 features in JS style guide
691660
692661
- Backward compatibility is important
693662
- Only use if can polyfill
@@ -702,18 +671,6 @@
702671
- go
703672
- r
704673
705-
1. Add type specs to `@stdlib/` folder
706-
707-
- `abstract-ndarray`
708-
- `abstract-complex`
709-
- etc.
710-
711-
1. Add [git hooks](https://cbednarski.com/articles/makefiles-for-everyone/) to Makefile
712-
713-
- will prob want a way to undo setting of hooks (i.e., a reset)
714-
- [intro to git hooks](https://www.sitepoint.com/introduction-git-hooks/)
715-
- [git pre-push](http://blog.ittybittyapps.com/blog/2013/09/03/git-pre-push/)
716-
717674
1. [mkdirp](https://github.com/sindresorhus/make-dir/blob/master/index.js)
718675
719676
1. C/C++ linting
@@ -777,13 +734,11 @@
777734
778735
1. check that JSDoc annotations include `@throws`
779736
780-
1. include READMEs in namespace dirs
781-
782737
1. need a convention for defining README examples which are for illustration purposes only and not meant to be run
783738
784739
- e.g., an example which is path dependent and cannot be known ahead of time, as it depends on user environment, etc.
785740
786-
1. proposal: add `stdlib` field to `package.json`
741+
1. add `__stdlib__` field to `package.json`
787742
788743
- allowing setting whether a module is browser-only, nodejs-only, etc and whether a module is suitable for a REPL context, etc.
789744
@@ -795,31 +750,6 @@
795750
796751
1. investigate [starscope](https://github.com/eapache/starscope)
797752
798-
1. review
799-
800-
- [ ] crypto
801-
- [x] datasets (~bib)
802-
- [x] fs
803-
- [x] math/base/blas
804-
- [ ] math/base/dist
805-
- [x] random/base
806-
- [ ] math/base/special
807-
- [ ] math/base/tools
808-
- [ ] math/base/utils
809-
- [x] math/constants
810-
- [ ] math/statistics
811-
- [ ] math/utils
812-
- [ ] ml
813-
- [ ] namespace
814-
- [x] net
815-
- [ ] plot
816-
- [x] regexp
817-
- [x] repl
818-
- [ ] streams (~)
819-
- [ ] string (~)
820-
- [ ] tools (~)
821-
- [ ] utils
822-
823753
1. profiling
824754
825755
- [v8-profiler](https://github.com/node-inspector/v8-profiler)
@@ -1016,8 +946,6 @@
1016946
1017947
1. [Sieve of Eratosthenes](http://www.mahabal.io/eras)
1018948
1019-
1. files containing `new Buffer` should `var Buffer = require( 'buffer' ).Buffer`. Note that this will prob require overruling a lint rule against redefining globals.
1020-
1021949
1. See [casual](https://github.com/boo1ean/casual) for dataset inspiration
1022950
1023951
1. GitHub issues [Gantt diagrams](https://github.com/neyric/gh-issues-gantt)
@@ -1173,7 +1101,7 @@
11731101
11741102
1. dependency docs (static site; use simple server)
11751103
1176-
1. mk recipe to read a dep readme and launch in an electron window/browser
1104+
1. make recipe to read a dep readme and launch in an electron window/browser
11771105
11781106
1. nlp levi dist (see also [damlev](https://github.com/WatchBeam/damlev) and [leven](https://github.com/sindresorhus/leven/blob/master/index.js))
11791107
@@ -1525,7 +1453,7 @@
15251453
15261454
1. simple server
15271455
1528-
1. abstract-ndarray
1456+
1. ndarray
15291457
15301458
1. terminal sparklines
15311459
@@ -1669,7 +1597,7 @@
16691597
- should support option to return data of a specified type; e.g., `float32`, etc.
16701598
- returned value should be compliant with `abstract-ndarray`
16711599
1672-
1. remainder (c) and rem
1600+
1. remainder (see c) and rem
16731601
16741602
1. equivalents to various low-level [Julia](http://docs.julialang.org/en/release-0.5/stdlib/math/?highlight=maximum#Base.mod2pi) funcs
16751603
@@ -1995,103 +1923,3 @@ Will need a `tools` directory in individual repositories to
19951923
- [insert-module-globals](https://github.com/substack/insert-module-globals/pull/48)
19961924
- [TC39](https://github.com/tc39/proposal-global)
19971925
- [symstem.global](https://github.com/ljharb/System.global)
1998-
1999-
* * *
2000-
2001-
## Project Structure
2002-
2003-
> Sample project structure.
2004-
2005-
|-stdlib
2006-
|---lib
2007-
|-----assert
2008-
|-------is-array-like
2009-
|-------is-function
2010-
|-----datasets
2011-
|-------anscombes-quartet
2012-
|-----math
2013-
|-------base
2014-
|---------assert
2015-
|-----------is-even
2016-
|-----------is-integer
2017-
|-----------is-number
2018-
|-----------is-odd
2019-
|---------blas
2020-
|-----------scal
2021-
|---------complex
2022-
|-----------acos
2023-
|-----------sin
2024-
|---------dist
2025-
|-----------norm
2026-
|-------------cdf
2027-
|-------------pdf
2028-
|-----------poisson
2029-
|---------random
2030-
|-----------lcg
2031-
|---------special
2032-
|-----------erf
2033-
|-----------erfc
2034-
|-----------sin
2035-
|---------tools
2036-
|-----------evalpoly
2037-
|-----------evalrational
2038-
|---------utils
2039-
|-----------float32-to-word
2040-
|-----------float64-from-words
2041-
|-----------float64-to-words
2042-
|-------constants
2043-
|---------e
2044-
|---------pi
2045-
|---------two-pi
2046-
|-------fast
2047-
|---------special
2048-
|-----------cos
2049-
|-----------sin
2050-
|-------core
2051-
|---------add
2052-
|---------mult
2053-
|---------subtract
2054-
|---------sum
2055-
|-------dist
2056-
|---------normal
2057-
|---------poisson
2058-
|-------linalg
2059-
|-------random
2060-
|---------lcg
2061-
|-------special
2062-
|---------erf
2063-
|---------erfc
2064-
|-------statistics
2065-
|---------mean
2066-
|---------stdev
2067-
|---------variance
2068-
|-----namespace
2069-
|-----regexp
2070-
|-------eol
2071-
|-------regexp
2072-
|-----repl
2073-
|-----streams
2074-
|-------math
2075-
|---------mean
2076-
|---------stdev
2077-
|-------utils
2078-
|---------split
2079-
|---------join
2080-
|-----string
2081-
|-------left-pad
2082-
|-------pad
2083-
|-------repeat
2084-
|-------right-pad
2085-
|-----tools
2086-
|-----types
2087-
|-------array
2088-
|-------complex
2089-
|-------dataframe
2090-
|-------matrix
2091-
|-------ndarray
2092-
|-----utils
2093-
|-------copy
2094-
|-------deep-get
2095-
|-------deep-set
2096-
|-------merge
2097-
|-------pluck

0 commit comments

Comments
 (0)