Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3452 commits
Select commit Hold shift + click to select a range
30146a8
Bumping DJ to version 0.0.6 (#1523)
agorajek Oct 3, 2025
0f96557
Add bulk loading of parents before node compilation (#1521)
shangyian Oct 7, 2025
397cc04
Prevent cycles when building queries with dimension graph cycles (#1526)
shangyian Oct 7, 2025
238aee6
Revert "Revert "Fix hashing on measure decomposition. (#1404)" (#1407…
agorajek Oct 8, 2025
ab62d2c
Single Transaction Deployment (#1527)
shangyian Oct 9, 2025
0254f93
Support querying across multiple hops on the dimensions graph with ro…
shangyian Oct 9, 2025
3b1c73d
Bumping DJ to version 0.0.7 (#1525)
agorajek Oct 9, 2025
ad7b3f7
Bumping DJ to version 0.0.8 (#1529)
agorajek Oct 16, 2025
b5522ee
Add better handling for deploying source nodes (#1532)
shangyian Oct 19, 2025
1fff9ed
Bumping DJ to version 0.0.9 (#1533)
agorajek Oct 20, 2025
6d432ef
Make custom_metadata field viewable and editable in DJ UI for Metric …
agorajek Oct 21, 2025
74e33e0
Fix Concurrent Operations During AST Compilation (#1536)
shangyian Oct 23, 2025
4e94dec
Bumping DJ to version 0.0.10 (#1538)
agorajek Oct 23, 2025
18c28a2
Add support deleting nodes via the DJ CLI (#1542)
shangyian Oct 25, 2025
87f6d04
Bumping DJ to version 0.0.11 (#1543)
agorajek Oct 25, 2025
20b6322
Postgres 18 (#1544)
samredai Oct 27, 2025
5b45fc0
Additional DJ CLI Functionality (#1545)
shangyian Oct 29, 2025
c646004
Fix custom_metadata field bug and make some other small changes to no…
samredai Oct 29, 2025
c63f681
Bumping DJ to version 0.0.12 (#1546)
agorajek Oct 29, 2025
368fa04
Switch to using CodeMirror editor for custom metadata editing (#1550)
shangyian Oct 30, 2025
bc06389
MAX_BY and MIN_BY functions cannot be decomposed (#1549)
shangyian Oct 30, 2025
15abedb
Bumping DJ to version 0.0.13 (#1551)
agorajek Oct 30, 2025
a631ebd
Enable Role Path Dimensions in Group By and Filters (#1548)
shangyian Oct 31, 2025
da0481e
python client: rename output columns to semantic names (#1552)
shangyian Nov 4, 2025
e48f09a
Bulk Cube Deployment (#1558)
shangyian Nov 5, 2025
1266fdb
Bumping DJ to version 0.0.14 (#1557)
agorajek Nov 5, 2025
a349a5d
YAML Deployment Docs (#1560)
shangyian Nov 6, 2025
a7be14d
Bumping DJ to version 0.0.15 (#1565)
agorajek Nov 13, 2025
c50a8a1
Improve namespace creation UX with inline folder-like interface (#1568)
shangyian Nov 21, 2025
5634726
Better Dimension Linking UI (#1569)
shangyian Nov 24, 2025
93b4779
Bug saving invalid metric (#1571)
samredai Nov 25, 2025
3f00434
Bumping DJ to version 0.0.16 (#1566)
agorajek Nov 25, 2025
026b29f
Dimension Hierarchies (#1564)
shangyian Nov 26, 2025
69f3346
Support for Groups as Principal (#1574)
shangyian Nov 26, 2025
b3152ab
Allow configurable embedded query client (Issue #1499) (#1504)
samredai Nov 29, 2025
d68ed19
Bumping DJ to version 0.0.17 (#1578)
agorajek Dec 1, 2025
7e524fc
RBAC Infra: Roles, Scopes & Assignments (#1576)
shangyian Dec 1, 2025
00beece
Prevent linking to non-dimension nodes (#1580)
shangyian Dec 3, 2025
a59c16d
Update browserslist with npx update-browserslist-db@latest (#1583)
shangyian Dec 3, 2025
94c5ff2
Add Node Mode (Draft / Published) Filter to DJ UI (#1581)
shangyian Dec 3, 2025
620bc89
Bumping DJ to version 0.0.18 (#1585)
agorajek Dec 3, 2025
7a7e1ae
Make find nodes with common dimensions more efficient by switching to…
shangyian Dec 4, 2025
12dac71
Settings + Notifications in Navigation Bar (#1587)
shangyian Dec 4, 2025
b8a7bc0
Groups Population (#1590)
shangyian Dec 5, 2025
8fc6c84
Add support for creating and managing service accounts in UI (#1591)
shangyian Dec 5, 2025
5e96e5d
Bumping DJ to version 0.0.19 (#1592)
agorajek Dec 5, 2025
167b6c2
Remove unnecessary user upsert and group sync on every write request.…
shangyian Dec 7, 2025
e1ab44f
Bumping DJ to version 0.0.20 (#1596)
agorajek Dec 7, 2025
f90336c
Settings styling (#1598)
shangyian Dec 7, 2025
0b05eb6
Migrate to use the recursive CTE version of find nodes with dimension…
shangyian Dec 7, 2025
5f2ef39
Pin bcrpyt to be <=4.3.0 due to bcrypt error (#1597)
shangyian Dec 7, 2025
cfad698
Bumping DJ to version 0.0.21 (#1599)
agorajek Dec 7, 2025
dbf6871
Enable the UI to be run in production mode as well as dev mode (#1603)
shangyian Dec 8, 2025
9a62fda
Add support for getting upstreams for multiple nodes (#1602)
shangyian Dec 9, 2025
ec406b3
Reduce the number of history events coming from tag updates that don'…
shangyian Dec 9, 2025
c4f9b19
Bumping DJ to version 0.0.22 (#1601)
agorajek Dec 9, 2025
9e8fc80
Modify GraphQL upstream/downstream endpoints to use dynamic field loa…
shangyian Dec 9, 2025
2343f78
Add history events for changes made during deployments (#1600)
shangyian Dec 10, 2025
4fcfba4
Reduce Expensive Querying via ORM (#1607)
shangyian Dec 13, 2025
cae1c10
Bumping DJ to version 0.0.23 (#1609)
agorajek Dec 14, 2025
de05614
Upgrade node version, unpin package resolutions (#1610)
shangyian Dec 15, 2025
6927253
Add docs on metric decomposition (#1614)
shangyian Dec 17, 2025
d530bfd
Add support for `approx_count_distinct` decomposition (#1612)
shangyian Dec 17, 2025
d374f8b
Support Variance, Std Dev, Covariance, and Correlation Decomposition …
shangyian Dec 18, 2025
20aae46
Fix issue where reactivating nodes also revalidates downstreams, whic…
shangyian Dec 18, 2025
678730f
Bumping DJ to version 0.0.24 (#1611)
agorajek Dec 18, 2025
5d898a3
Add ability to filter by nodes with dimension (#1620)
shangyian Dec 23, 2025
e006675
Do profiling and speed up query generation (#1622)
shangyian Dec 23, 2025
1989758
Bumping DJ to version 0.0.25 (#1621)
agorajek Dec 23, 2025
399568c
Add foundation for derived metrics so that users can add metrics that…
shangyian Dec 24, 2025
a68a308
Fix issue when parsing expressions with decimal numbers at end of inp…
shangyian Dec 27, 2025
03e38a4
SQL Gen v3 (#1623)
shangyian Dec 29, 2025
291c721
Revamp Filters Section (#1628)
shangyian Dec 31, 2025
5dc36ae
Set up authorization service (#1579)
shangyian Jan 1, 2026
481bb3d
Speed up tests (#1629)
shangyian Jan 2, 2026
ce08146
Add query planner page (#1627)
shangyian Jan 2, 2026
4ef9b1b
Bumping DJ to version 0.0.26 (#1625)
agorajek Jan 2, 2026
2b58b05
Ensure that tags always point to commits that are actually on the mai…
shangyian Jan 2, 2026
c35b3eb
Rename Planner URI (#1632)
shangyian Jan 2, 2026
cdaa5c7
Derived Metrics Bugs (#1633)
shangyian Jan 4, 2026
8a40fd4
Add db schema for pre-aggregations (#1635)
shangyian Jan 5, 2026
05ccb45
Add support for pre-agg detection & substitution (#1636)
shangyian Jan 5, 2026
04421f8
Add query service support for pre-aggregation materialization (#1637)
shangyian Jan 5, 2026
f432401
API endpoints for preaggregations (#1638)
shangyian Jan 6, 2026
2d05655
Add support for generating combined pre-aggregated measures SQL (#1639)
shangyian Jan 8, 2026
25544a4
For Window functions, inject requested dimensions into PARTITION BY (…
shangyian Jan 8, 2026
939c9d5
Fix duplicate CTEs in sql build v2 (#1642)
shangyian Jan 8, 2026
a055dc4
Add query planner UI with materialization and cube preset loading (#1…
shangyian Jan 9, 2026
282d5da
Bumping DJ to version 0.0.27 (#1634)
agorajek Jan 9, 2026
25f3bad
Fix regression where searching for common dimensions for metrics sear…
shangyian Jan 9, 2026
68eed76
Bumping DJ to version 0.0.28 (#1644)
agorajek Jan 9, 2026
f7f6912
The metrics editor UI requires the parent nodes' types to be availabl…
shangyian Jan 10, 2026
882d0d6
Use SLL mode for the ANTLR4 parser (#1647)
shangyian Jan 10, 2026
19f64b8
GraphQL Endpoints Perf (#1646)
shangyian Jan 10, 2026
4aa001e
v3 sql gen: add support for using druid materialized dataset (#1648)
shangyian Jan 10, 2026
7b1205a
Enable saving and displaying of deployment source for namespace (#1651)
shangyian Jan 11, 2026
f7bbd03
Impact analysis for a deployment (#1650)
shangyian Jan 12, 2026
7a21a1a
Bumping DJ to version 0.0.29 (#1653)
agorajek Jan 12, 2026
6bf9936
Improve Namespace Deployment Source Detection (#1654)
shangyian Jan 13, 2026
e522d69
Bumping DJ to version 0.0.30 (#1655)
agorajek Jan 13, 2026
6f82dda
Upgrade pytest asyncio (#1652)
shangyian Jan 13, 2026
f65d748
Fix deployment of derived metrics and clean up display of badge (#1656)
shangyian Jan 13, 2026
10c7b60
Bumping DJ to version 0.0.31 (#1657)
agorajek Jan 13, 2026
7338501
Remove event_loop fixture as it is deprecated with pytest-asyncio 0.2…
shangyian Jan 13, 2026
d68c73c
Add backwards compatibility for v3 cube materialization (#1659)
shangyian Jan 14, 2026
968f61d
Bumping DJ to version 0.0.32 (#1660)
agorajek Jan 14, 2026
7ebfcf4
Metric component special case (#1662)
shangyian Jan 15, 2026
a82f43f
The generated SQL for nested transforms can be broken, because when t…
shangyian Jan 15, 2026
10bde86
Bumping DJ to version 0.0.33 (#1664)
agorajek Jan 15, 2026
9a560c5
Updating a node should not autoflush + remove automatic reconfigurati…
shangyian Jan 16, 2026
595a8be
Fix metric expr dimensions + Druid dialect; refactor build_v3 shared …
shangyian Jan 16, 2026
8fb0116
Add preaggregations info to node materializations UI (#1667)
shangyian Jan 17, 2026
81d107b
Make YAML export of queries multiline (#1669)
shangyian Jan 17, 2026
9284760
Reduce UI Test Warnings (#1670)
shangyian Jan 17, 2026
15e6542
Add TPC-DS metrics (#1671)
shangyian Jan 18, 2026
ba5db48
Metrics SQL Refactoring & Filter Test Coverage (#1673)
shangyian Jan 18, 2026
affb1b0
Bumping DJ to version 0.0.34 (#1674)
agorajek Jan 19, 2026
2ad5747
Set up release and publish flow (#1676)
shangyian Jan 19, 2026
9eed8b6
Bump version to v0.0.35 (#1677)
github-actions[bot] Jan 19, 2026
c7f4a6a
Skip `datajunction-query` release until it's setup for pypi oidc trus…
shangyian Jan 19, 2026
b928669
Bump version to v0.0.36 (#1679)
shangyian Jan 19, 2026
159994b
Continue publishing on error and remove registry-url from setup-node …
shangyian Jan 19, 2026
6b87130
Bump version to v0.0.37 (#1681)
shangyian Jan 19, 2026
c2a74c6
Switch order and try OIDC publishing for DJ UI (#1682)
shangyian Jan 19, 2026
5c48352
Bump version to v0.0.38 (#1683)
shangyian Jan 19, 2026
d2fc2d1
Bump version to v0.0.39 (#1684)
shangyian Jan 19, 2026
e08410f
Fix npm release by upgrading node (#1686)
shangyian Jan 19, 2026
9a18f11
Bump version to v0.0.40 (#1687)
shangyian Jan 19, 2026
84c24cc
Fix release workflow (#1688)
shangyian Jan 19, 2026
9dd6859
Bump version to v0.0.41 (#1689)
shangyian Jan 19, 2026
0d8bf90
Remove old release mechanism (#1690)
shangyian Jan 19, 2026
94916fe
Support multi-level derived metrics and fix window metric SQL generat…
shangyian Jan 20, 2026
4d5f806
Bump version to v0.0.42 (#1691)
shangyian Jan 20, 2026
258c8ae
Add cascade delete for fks and fix derived metric upstream (#1692)
shangyian Jan 20, 2026
2909a0c
Fix metric combiners to use the same logic as metrics sql generation …
shangyian Jan 21, 2026
8f21538
Bump version to v0.0.43 (#1694)
shangyian Jan 21, 2026
9f738b0
Add support for ORDER BY and LIMIT to v3 SQL gen (#1696)
shangyian Jan 22, 2026
5addb89
Minor UI Tweaks: Remove unnecessary tabs (#1697)
shangyian Jan 22, 2026
e2d1206
Bump version to v0.0.44 (#1698)
shangyian Jan 22, 2026
5c7a307
Switch /data endpoint to use v3 sql (#1699)
shangyian Jan 22, 2026
0ac1046
Add Query Runner UI (#1700)
shangyian Jan 23, 2026
a8e636e
Bump version to v0.0.45 (#1702)
shangyian Jan 23, 2026
76bd604
Switch python client to use v3 SQL builder (#1701)
shangyian Jan 24, 2026
af2ecbd
Bump version to v0.0.46 (#1703)
shangyian Jan 24, 2026
bf3f28d
Query Service Headers + Column Output Schema (#1704)
shangyian Jan 24, 2026
2c01cc6
Add `dj data` command to the cli (#1705)
shangyian Jan 24, 2026
ca6257c
Bump version to v0.0.47 (#1708)
shangyian Jan 24, 2026
d48d4f8
Switch to uv (#1707)
shangyian Jan 24, 2026
205b37e
DJ Logical SQL (#1709)
shangyian Jan 25, 2026
f0b664a
Bump version to v0.0.48 (#1710)
shangyian Jan 25, 2026
683d9d1
Optimize DJ SQL and fix Trino compatibility (#1711)
shangyian Jan 26, 2026
d9ca6a4
Bump version to v0.0.49 (#1712)
shangyian Jan 26, 2026
d847d2c
Fix limit and order by propagation from djsql (#1713)
shangyian Jan 26, 2026
c5c6c76
Add support for default value on a dimension link when there are null…
shangyian Jan 27, 2026
365ce00
Fix issue where pre-agg hashes were not unique on node revision, grai…
shangyian Jan 27, 2026
a5bf69d
Display pre-agg hash in UI (#1716)
shangyian Jan 27, 2026
89ab824
Bump version to v0.0.50 (#1717)
shangyian Jan 27, 2026
453a30e
Fix cube versioning (#1718)
shangyian Jan 27, 2026
8a244a3
Bump version to v0.0.51 (#1719)
shangyian Jan 27, 2026
270cc9a
Add Docs on Supported Metrics (#1720)
shangyian Jan 27, 2026
c4506b5
Fix slow /downstreams endpoint for high-fanout nodes (#1721)
shangyian Jan 27, 2026
f2d6eda
Bump version to v0.0.52 (#1722)
shangyian Jan 27, 2026
2499a07
Fix issue when a query uses a CTE with a table alias and DJ fails to …
shangyian Jan 28, 2026
b1b8f64
Bump version to v0.0.53 (#1724)
shangyian Jan 28, 2026
3095fe2
Fix CTE inlining to preserve table aliases and handle multiple refere…
shangyian Jan 28, 2026
0784bdf
Bump version to v0.0.54 (#1726)
shangyian Jan 28, 2026
8c8755c
Ensure that we're only displaying the last release's diff and not a l…
shangyian Jan 28, 2026
28a5a16
Bump version to v0.0.55 (#1728)
shangyian Jan 28, 2026
a237826
Derived Metrics Fix (#1729)
shangyian Jan 29, 2026
b6d5e22
Set column order during deployments (#1731)
shangyian Jan 29, 2026
feacfcc
Add docs on types (#1732)
shangyian Jan 29, 2026
893fe08
Fix release tag diff and docs search (#1733)
shangyian Jan 29, 2026
9f8ba36
Git Integration for Namespaces (#1730)
shangyian Jan 29, 2026
dc0f5c9
Bump version to v0.0.56 (#1735)
shangyian Jan 29, 2026
f5d4299
Fix github service settings loader (#1736)
shangyian Jan 31, 2026
43604af
Add namespace git config removal (#1737)
shangyian Jan 31, 2026
587dbf1
Github to Namespace Validation (#1738)
shangyian Feb 1, 2026
fe700f6
Bump version to v0.0.57 (#1739)
shangyian Feb 1, 2026
61ce4bc
Speed up namespace branching (can skip validation) (#1740)
shangyian Feb 2, 2026
e60f84a
Bump version to v0.0.58 (#1741)
shangyian Feb 2, 2026
f5f57d4
Table Metadata Infrastructure (#1742)
shangyian Feb 2, 2026
3dc4588
Add docs about git integration (#1734)
shangyian Feb 2, 2026
ab10fbc
Revert "Table Metadata Infrastructure (#1742)" (#1743)
shangyian Feb 4, 2026
ab99929
Bump version to v0.0.59 (#1747)
shangyian Feb 8, 2026
f375425
Reduce YAML export diffs (#1746)
shangyian Feb 8, 2026
176ba61
Inherit git root namespace (#1748)
shangyian Feb 9, 2026
edd6c7c
Bump version to v0.0.60 (#1749)
shangyian Feb 9, 2026
cc9953e
Add default branch to git root setup (#1750)
shangyian Feb 11, 2026
68584dc
Bump version to v0.0.61 (#1751)
shangyian Feb 11, 2026
f48a044
Upgrade open telemetry (#1752)
shangyian Feb 12, 2026
8c7f35c
Bump version to v0.0.62 (#1753)
shangyian Feb 12, 2026
103ea9c
Use DataLoaders for Common Dims GQL Query (#1756)
shangyian Feb 15, 2026
e38c1ad
Preserve Column Display Name + Script for Column Order (#1755)
shangyian Feb 15, 2026
2d72e67
Add non-blocking node deletion validation to deployments (#1754)
shangyian Feb 15, 2026
b3a6899
Add Repository Info to Node Responses (#1757)
shangyian Feb 16, 2026
d664ad9
Bump version to v0.0.63 (#1758)
shangyian Feb 16, 2026
3f1ee74
UI namespace indent (#1760)
shangyian Feb 16, 2026
c3f2170
MCP Server with Basic Tools (#1759)
shangyian Feb 17, 2026
572e562
Enhance MCP Server with Git-Aware Namespaces and Lineage (#1761)
shangyian Feb 17, 2026
884d1ae
Bump version to v0.0.64 (#1764)
shangyian Feb 17, 2026
6ffcee8
Fix issue where settings styles weren't being imported (#1766)
shangyian Feb 18, 2026
52a9166
Retain cube order when syncing YAML (#1763)
shangyian Feb 18, 2026
be94c19
Bump version to v0.0.65 (#1769)
shangyian Feb 18, 2026
14b8b79
Expose Cube Temporal Partition Filtering in SQL Gen (#1765)
shangyian Feb 18, 2026
0d388b3
Bump version to v0.0.66 (#1770)
shangyian Feb 18, 2026
2a33e69
Add a visualize metrics tool to MCP (#1762)
shangyian Feb 19, 2026
80e078a
Bump version to v0.0.67 (#1771)
shangyian Feb 19, 2026
7ef3673
Apply Cube Column Partitions from Deployment YAML (#1772)
shangyian Feb 19, 2026
b1cdf58
Add better fallback if getting cached SQL fails (#1774)
shangyian Feb 19, 2026
aec8a24
Bump version to v0.0.68 (#1773)
shangyian Feb 19, 2026
8bc3979
Fix Partition Copying in Cube Columns During Branch Creation (#1776)
shangyian Feb 20, 2026
4e03e3f
Bump version to v0.0.69 (#1777)
shangyian Feb 20, 2026
06d610f
Fix nested namespace validation in deployments (#1778)
shangyian Feb 21, 2026
32643eb
Bump version to v0.0.70 (#1779)
shangyian Feb 21, 2026
63a268a
Query execution safety (#1744)
shangyian Feb 21, 2026
0a5ea10
Add list collections query to GraphQL (#1782)
shangyian Feb 23, 2026
92fb7d8
Few changes and fixes to cube's Materialization. (#1785)
agorajek Feb 24, 2026
add91ed
Bump version to v0.0.71 (#1786)
shangyian Feb 24, 2026
4c39b7b
Fix catalog None check in dimension link validation (#1787)
shangyian Feb 24, 2026
529c410
Get DJ client to not exit 0 even when deployment fails (#1788)
anhqle Feb 25, 2026
80e2203
Add support for include temporal filters and lookback window in the p…
shangyian Feb 25, 2026
bcae6fc
Optimize Build V3 Join Path Finding with BFS Approach (#1789)
shangyian Feb 25, 2026
2359a0e
Fix required dimensions component to read/write formik state properly…
shangyian Feb 25, 2026
a0a57a8
Bump version to v0.0.72 (#1792)
shangyian Feb 25, 2026
ef9884f
Fix version check failure (#1798)
shangyian Feb 26, 2026
0db32c0
Type Inference Support for Logical OR and Logical AND (#1797)
shangyian Feb 26, 2026
bef5f88
Enable self-join dimension links (#1799)
shangyian Feb 26, 2026
c602d09
Fix all workflows that use hatch (#1800)
shangyian Feb 26, 2026
3bc7895
Bump version to v0.0.73 (#1801)
shangyian Feb 26, 2026
b0d776c
Do not use breaking version of virtualenv (#1802)
shangyian Feb 26, 2026
32d3af5
Bump version to v0.0.74 (#1803)
shangyian Feb 26, 2026
3116d49
Auto-register missing source nodes during deployment by introspecting…
shangyian Feb 27, 2026
a828f03
Add datajunction skill for use with Claude (#1804)
shangyian Feb 28, 2026
c2c9efa
Bump version to v0.0.75 (#1805)
shangyian Feb 28, 2026
0161afa
Ensure that materialized cubes are filtered on correctly (#1807)
shangyian Mar 1, 2026
5bdfdee
Add support for My Workspace page (#1784)
shangyian Mar 1, 2026
0561a64
Add support for filtering on metrics with HAVING clause (#1809)
shangyian Mar 1, 2026
ec15c81
Bump version to v0.0.76 (#1810)
shangyian Mar 1, 2026
2f07d51
Add additional MCP tools (#1811)
shangyian Mar 1, 2026
f34a3fb
Update docs on using DJ with AI assistants (#1812)
shangyian Mar 1, 2026
1e734c2
Bump version to v0.0.77 (#1813)
shangyian Mar 1, 2026
9934e6d
Fix UI validation errors and form crashes (#1816)
shangyian Mar 3, 2026
cfd4f03
Bump version to v0.0.78 (#1814)
shangyian Mar 3, 2026
fa99afe
Fix issue with editing transforms (#1818)
shangyian Mar 3, 2026
1546069
Fix transform edit (#1819)
shangyian Mar 3, 2026
5921732
Bump version to v0.0.79 (#1820)
shangyian Mar 3, 2026
55a122f
Server validation and deps (#1817)
shangyian Mar 3, 2026
be90c5f
Add GQL SQL query
shangyian Mar 4, 2026
f7c1b9b
Add support for GraphQL batch SQL
shangyian Mar 4, 2026
5c000f4
Fix
shangyian Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 8 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# .coveragerc to control coverage.py
[run]
branch = True
source = datajunction
# omit = bad_file.py
source = dj
omit =
*/dj/sql/parsing/backends/grammar/generated/*
*/dj/sql/parsing/backends/antlr4.py
*/dj/sql/parsing/ast.py

[paths]
source =
src/
dj/
*/site-packages/

[report]
Expand All @@ -26,3 +29,5 @@ exclude_lines =
# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:

if TYPE_CHECKING:
15 changes: 15 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### Summary

<!-- What's this change about? -->

### Test Plan

<!-- How did you test your change? -->

- [ ] PR has an associated issue: #
- [ ] `make check` passes
- [ ] `make test` shows 100% unit test coverage

### Deployment Plan

<!-- Any special instructions around deployment? -->
36 changes: 36 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# .github/release.yml
# Configuration for auto-generated release notes

changelog:
exclude:
labels:
- ignore-for-release
- skip-changelog
- duplicate
categories:
- title: "⚠️ Breaking Changes"
labels:
- Semver-Major
- breaking-change
- title: "🚀 Features"
labels:
- Semver-Minor
- enhancement
- feature
- title: "🐛 Bug Fixes"
labels:
- bug
- bugfix
- fix
- title: "📚 Documentation"
labels:
- documentation
- docs
- title: "🧹 Maintenance"
labels:
- chore
- maintenance
- dependencies
- title: "Other Changes"
labels:
- "*"
114 changes: 114 additions & 0 deletions .github/workflows/client-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: "Manual : Run client integration tests"
on:
schedule:
- cron: '0 12 * * *'
workflow_dispatch:
jobs:
python-client-integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11']
steps:
- uses: actions/checkout@v2
- name: Build and launch DJ demo environment
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "./docker-compose.yml"
services: |
dj
postgres_metadata
db-migration
db-seed
djqs
djqs-db-migration
djrs-redis
djrs-worker
djrs-beat
dj-trino
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- uses: pdm-project/setup-pdm@v3
name: Setup PDM
with:
python-version: ${{ matrix.python-version }}
architecture: x64
prerelease: true
enable-pep582: true
- name: Install dependencies
run: |
pdm sync -d
cd ./datajunction-clients/python; pdm install -d -G pandas
- name: Python client integration tests
run: cd datajunction-clients/python && make test PYTEST_ARGS="--integration -k test_integration"

javascript-client-integration:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
- name: Build and launch DJ demo environment
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "./docker-compose.yml"
services: |
dj
postgres_metadata
db-migration
db-seed
djqs
djqs-db-migration
djrs-redis
djrs-worker
djrs-beat
dj-trino
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install Dev Dependencies
run: npm install --only=dev
working-directory: ./datajunction-clients/javascript
- name: Javascript client integration tests
run: npm test
working-directory: ./datajunction-clients/javascript

java-client-integration:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ 17 ]
distribution: [ 'temurin' ]
steps:
- uses: actions/checkout@v3
- name: Build and launch DJ demo environment
uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "./docker-compose.yml"
services: |
dj
postgres_metadata
db-migration
db-seed
djqs
djqs-db-migration
djrs-redis
djrs-worker
djrs-beat
dj-trino
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.distribution }}
- name: Build with Gradle
uses: gradle/gradle-build-action@v3
with:
arguments: cleanTest test
build-root-directory: ./datajunction-clients/java

121 changes: 121 additions & 0 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: "Create Version Bump PR"

on:
schedule:
- cron: '0 3 * * MON' # Each Monday at 3am UTC
workflow_dispatch:
inputs:
bump:
type: choice
description: "Version bump type"
required: true
default: patch
options:
- patch
- minor
- major

jobs:
create-pr:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install Hatch
run: |
pip install hatch 'virtualenv!=21.0.0'

- uses: actions/setup-node@v4
with:
node-version: '20'

- name: Calculate next version
id: version
working-directory: ./datajunction-server
run: |
CURRENT_VERSION=$(hatch version)
echo "Current version: $CURRENT_VERSION"

BUMP_TYPE="${{ github.event.inputs.bump || 'patch' }}"
echo "Bump type: $BUMP_TYPE"

# Parse current version (handles X.Y.Z and X.Y.ZaN formats)
IFS='.' read -r MAJOR MINOR PATCH <<< "${CURRENT_VERSION%%a*}"

# Calculate new version
case $BUMP_TYPE in
major) NEW_VERSION="$((MAJOR + 1)).0.0" ;;
minor) NEW_VERSION="${MAJOR}.$((MINOR + 1)).0" ;;
patch) NEW_VERSION="${MAJOR}.${MINOR}.$((PATCH + 1))" ;;
esac

echo "New version: $NEW_VERSION"
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT

- name: Configure Git
run: |
git config user.name "GitHub Actions Bot"
git config user.email "actions@github.com"

- name: Create release branch and update versions
run: |
VERSION="${{ steps.version.outputs.NEW_VERSION }}"
BRANCH="release/v$VERSION"

git checkout -b $BRANCH

# Update Python packages
cd datajunction-server && hatch version $VERSION && cd ..
cd datajunction-query && hatch version $VERSION && cd ..
cd datajunction-reflection && hatch version $VERSION && cd ..
cd datajunction-clients/python && hatch version $VERSION && cd ../..

# Update JavaScript packages
cd datajunction-ui && npm version $VERSION --no-git-tag-version && cd ..
cd datajunction-clients/javascript && npm version $VERSION --no-git-tag-version && cd ../..

git add -A
git commit -m "Bump version to v$VERSION"
git push origin $BRANCH

- name: Create Pull Request
run: |
VERSION="${{ steps.version.outputs.NEW_VERSION }}"
gh pr create \
--title "Release v$VERSION" \
--body "## Release v$VERSION

This PR bumps all package versions to v$VERSION.

**When merged**, packages will be automatically published to:
- PyPI: datajunction-server, datajunction-query, datajunction-reflection, datajunction
- npm: datajunction, datajunction-ui

A GitHub Release will also be created with auto-generated release notes.

---
*Auto-generated by Create Version Bump workflow*" \
--base main \
--head "release/v$VERSION"
env:
GITHUB_TOKEN: ${{ secrets.REPO_SCOPED_TOKEN }}

- name: Summary
run: |
VERSION="${{ steps.version.outputs.NEW_VERSION }}"
echo "## Version Bump PR Created" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Version:** v$VERSION" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Review the PR and merge when ready to publish." >> $GITHUB_STEP_SUMMARY
65 changes: 65 additions & 0 deletions .github/workflows/generate-openapi-client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: "Manual : Generate OpenAPI client"
on:
workflow_dispatch:
jobs:
generate-python-client:
env:
PDM_DEPS: 'urllib3<2'
runs-on: ubuntu-latest
name: Generate Python Client
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Install DJ
run: |
python -m pip install --upgrade pip
pip install .

- name: Generate OpenAPI Spec
run: ./scripts/generate-openapi.py -o openapi.json

- name: Configure Git
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"

- name: Commit OpenAPI Spec
run: |
git add openapi.json
git commit -m "Updating OpenAPI Spec"

- name: Generate Python client
uses: openapi-generators/openapitools-generator-action@v1.4.0
with:
generator: python
openapi-file: openapi.json
config-file: ./.github/files/python-client-gen.yml
command-args: --skip-validate-spec

- name: Move client to right directory
run: |
mkdir -p ./openapi/python
cp -r python-client/* ./openapi/python/
rm -rf python-client

- name: Set short sha
id: sha
run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT

- name: Commit generated files
run: |
git add openapi/python/
git commit -m "Update DJ Python client"
git checkout -b ci-pr/python-client-${{ steps.sha.outputs.short_sha }}
git push --set-upstream origin ci-pr/python-client-${{ steps.sha.outputs.short_sha }}

- name: Open a PR
run: gh pr create -B main -H ci-pr/python-client-${{ steps.sha.outputs.short_sha }} --title 'Update Python Client - ${{ steps.sha.outputs.short_sha }}' --body '(This PR was generated by a GitHub action)'
env:
GITHUB_TOKEN: ${{ secrets.REPO_SCOPED_TOKEN }}
Loading
Loading