You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -7,25 +6,35 @@ If you have identified a bug or have an idea for a new feature, it's best to sta
7
6
8
7
If you have questions, please ask on the [Dash Community Forum](https://community.plotly.com/). rather than using GitHub issues.
9
8
10
-
11
-
### Developing in this repo
9
+
### Developing in This Repo
12
10
13
11
Make sure you have Dash installed with dev and testing extras:
12
+
14
13
```
15
14
pip install dash[dev,testing]
16
15
```
16
+
17
17
Build the component (from the root of this repo):
18
+
18
19
```
19
20
npm i
20
21
npm run build
21
22
```
23
+
22
24
Now install the component in development mode:
25
+
23
26
```
24
27
$ pip install -e .
25
28
```
29
+
26
30
In development mode, Python uses the files in this directory when you import the package. So you can write a testing app in another folder, and whenever you change some code and rebuild the component here it will update in your testing app.
27
31
32
+
#### The Build Process
33
+
34
+
Dash AG Grid uses [`dash-generate-components`](https://dash.plotly.com/dash-3-for-component-developers) to read the JavaScript file `src/lib/components/AgGrid.react.js` and generate `dash_ag_grid/AgGrid.py` (along with similar files for R and Julia). `AgGrid.py` only changes when the React component's interface changes, so do not be surprised if internal changes to `AgGrid.react.js` do not result in changes to `AgGrid.py`.
35
+
28
36
### Versioning
37
+
29
38
We follow a strict versioning system aligned with the underlying Ag Grid version, but also reserving the
30
39
patch number for updates to the Dash grid.
31
40
@@ -39,31 +48,36 @@ As a user, you can always check the underlying Ag Grid version with `dash_ag_gri
39
48
40
49
For maintainers, when issuing new releases ensure that the version bump of Dash Ag Grid follows this convention. This can be verified after a build by using `npm run pre-flight-dag-version` or `python test_versioning.py`. This is validated during the `npm run dist`
41
50
42
-
### Create a production build
51
+
### Create a Production Build
43
52
44
53
Update the package version in `package.json` and `CHANGELOG.md` and ensure the changelog lists all the important updates. Then reinstall (so `package-lock.json` gets the new version) and rebuild:
54
+
45
55
```
46
56
npm i
47
57
npm run build
48
58
```
49
59
50
60
Commit this - either via a PR or directly to the main branch. Then you can create source and wheel distributions in the generated `dist/` folder, after emptying out any previous builds:
61
+
51
62
```
52
63
npm run dist
53
64
```
54
65
55
-
### Publish a new release
66
+
### Publish a New Release
67
+
56
68
A Github release with package build files is automatically generated when a new tag starting with `v*` is pushed.
57
69
58
70
Once a Github release is published, the build is re-generated and pushed to PyPi.
59
71
60
72
Create a git tag:
73
+
61
74
```
62
75
git tag -a 'v31.0,1' -m 'v31.0.1'
63
76
git push --tags
64
77
```
65
-
Wait for the "Generate release" CI job to complete, then check the releases tab to move the release from "Draft" to "Published". Make sure to copy in the Changelog!
66
78
67
-
When the release is published to Github, it's automatically pushed to PyPi as well. You're done 🎉
79
+
Wait for the "Generate release" CI job to complete, then check the releases tab to move the release from "Draft" to "Published". Make sure to copy in the Changelog.
80
+
81
+
When the release is published to Github, it's automatically pushed to PyPi as well.
68
82
69
83
Finally, announce the release in Slack, in both the `#dash-product` and `#community-ag-grid` channels. You're done!
0 commit comments