Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Much stronger nondeterminism detection #7

Merged
merged 49 commits into from
Jun 27, 2024
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
39e5039
Upgrade package-lock.json
CaspianA1 Jun 19, 2024
e1cd602
Remake this to a Typescript project.
CaspianA1 Jun 19, 2024
0910f5b
Upgrade the minor version of package.json
CaspianA1 Jun 19, 2024
6c530ea
Add a rule for building the project
CaspianA1 Jun 19, 2024
6195c79
Change the main file to a js file (and include a field for types ther…
CaspianA1 Jun 19, 2024
644c43f
Remove a build rule
CaspianA1 Jun 19, 2024
e372ffc
Change a version string
CaspianA1 Jun 19, 2024
2c46da2
Changes:
CaspianA1 Jun 20, 2024
8e8f9d2
Fix some linting bugs. Tweak some diagnostic messages.
CaspianA1 Jun 20, 2024
437f8eb
Add backticks to a series of typenames
CaspianA1 Jun 20, 2024
fb3cfe5
Now only checking for determinism in 'Workflow's
CaspianA1 Jun 20, 2024
411e575
Wrap all of the global usage in one object (less chance of getting un…
CaspianA1 Jun 20, 2024
f2dd9f5
Format an object over 3 lines, instead of 1
CaspianA1 Jun 20, 2024
87e6eff
Fix a TODO, and add another
CaspianA1 Jun 21, 2024
4e9c66c
Now not giving nondeterminism warnings when you call a helper functio…
CaspianA1 Jun 21, 2024
62db7ff
Add a comment
CaspianA1 Jun 21, 2024
8f5537b
Change a var name
CaspianA1 Jun 21, 2024
520bb5c
Bump some version numbers of eslint stuff
CaspianA1 Jun 21, 2024
b2ca30e
Add a TODO
CaspianA1 Jun 24, 2024
472a6f1
Add another TODO
CaspianA1 Jun 24, 2024
1d02139
So many changes:
CaspianA1 Jun 25, 2024
e2ffb5c
Remove a type annotation
CaspianA1 Jun 25, 2024
256442c
Add more types to everything
CaspianA1 Jun 25, 2024
6e99680
Make everything more strongly typed
CaspianA1 Jun 25, 2024
7a15927
Add some more test cases. Change some test case subset names. Remove …
CaspianA1 Jun 25, 2024
a3f527d
Swap 2 test cases
CaspianA1 Jun 25, 2024
5a74ae2
Reformat a TODO
CaspianA1 Jun 25, 2024
0082c13
Test some more cases
CaspianA1 Jun 25, 2024
7b0bad7
Remove some params
CaspianA1 Jun 25, 2024
9317aac
Make a bunch of functions more strongly typed
CaspianA1 Jun 25, 2024
1742952
Switch from mocha to vitest
CaspianA1 Jun 25, 2024
dcd1180
Shorten a command
CaspianA1 Jun 25, 2024
e6697d1
Move all of the testing dependencies to 'devDependencies'
CaspianA1 Jun 25, 2024
daf422f
Move the rules and the tests out of their little directories. Now imp…
CaspianA1 Jun 25, 2024
5805021
Make some function syntax more succinct
CaspianA1 Jun 25, 2024
a959e31
Rename the determinism rule to its original name
CaspianA1 Jun 25, 2024
8fd184a
Add some to the README
CaspianA1 Jun 25, 2024
44f0c00
Change some spelling
CaspianA1 Jun 25, 2024
1260909
Try to make a workflow for publishing to NPM (mostly copied over from…
CaspianA1 Jun 25, 2024
1beea51
Make the version upgrade to 1.0.0
CaspianA1 Jun 25, 2024
d048825
Shorten the package.json testing rule
CaspianA1 Jun 25, 2024
56ec5ea
Change an error message slightly. Add a TODO. Change a bit of formatt…
CaspianA1 Jun 25, 2024
b4159b7
Add an idea about a possible future point of failure
CaspianA1 Jun 26, 2024
975d599
Make the tests much easier to read
CaspianA1 Jun 26, 2024
da93f87
Decapitalize some names
CaspianA1 Jun 26, 2024
fb564cf
Rename some vars and error messages.
CaspianA1 Jun 26, 2024
2ab0574
Now defining ranges for arg counts, instead of a set of allowed arg c…
CaspianA1 Jun 27, 2024
2c0465c
Change some comment wording slightly
CaspianA1 Jun 27, 2024
71b0f3b
Add some parens to some workflow decorators
CaspianA1 Jun 27, 2024
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
57 changes: 57 additions & 0 deletions .github/workflows/publish_npm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Publish current branch to npm

on:
workflow_dispatch:

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
package: [
.
]
steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0 # fetch-depth 0 needed for NBGV
- name: Use Node.js 20
uses: actions/[email protected]
with:
node-version: 20
- name: Nerdbank.GitVersioning
id: nbgv
uses: dotnet/[email protected]
with:
stamp: ${{ matrix.package }}/package.json
- run: npm ci
- run: cd ${{ matrix.package }}; npm run build
- name: Publish release to npm
uses: JS-DevTools/npm-publish@v3
id: npmrelease
# boolean properties from NBGV step appears to be converted into *capitalized* strings
# so explicitly string compare PublicRelease output value
if: ${{ steps.nbgv.outputs.PublicRelease == 'True'}}
with:
token: ${{ secrets.NPM_PUBLISH }}
registry: https://registry.npmjs.org/
tag: ${{ steps.nbgv.outputs.PrereleaseVersion == '' && 'latest' || 'preview' }} # Assign a 'preview' tag to versions end with '-preview'. Otherwise, assign a 'latest' tag to the latest release.
access: public
package: ${{ matrix.package }}
- name: Publish test package to npm
uses: JS-DevTools/npm-publish@v3
id: npmtest
if: ${{ steps.nbgv.outputs.PublicRelease == 'False'}}
with:
token: ${{ secrets.NPM_PUBLISH }}
registry: https://registry.npmjs.org/
tag: 'test'
access: public
package: ${{ matrix.package }}
- if: ${{ steps.npmrelease.outputs.type }}
run: echo "Published a new release package!"
- if: ${{ steps.npmtest.outputs.type }}
run: echo "Published a new test package!"
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# DBOS eslint plugin
eslint plugin for DBOS sdk
# DBOS typescript-eslint plugin
typescript-eslint plugin for DBOS sdk

The [DBOS SDK](https://github.com/dbos-inc/dbos-ts) (from [DBOS, Inc.](https://dbos.dev)) is a **Typescript framework built on the database** that helps you develop transactional backend applications.

This [eslint](https://eslint.org) plugin assists in the following aspects of coding:
- Correct use of the DBOS SDK
- Conformance to TypeScript best practices
- Identification of code that may contain security vulnerabilities
-
- Identification of code that may contain security vulnerabilities and unexpected nondeterminism

## Getting Started

Expand Down
170 changes: 0 additions & 170 deletions dbos-rules.js

This file was deleted.

71 changes: 0 additions & 71 deletions dbos-rules.test.js

This file was deleted.

Loading
Loading