PostHog's recent development activities show a strong focus on both backend optimizations and frontend enhancements, but the lack of test coverage for new functionalities and prolonged disagreements on architectural changes pose significant risks.
posthog/models/query_metrics/sql.py
.posthog/tasks/scheduled.py
and posthog/tasks/tasks.py
.posthog/demo/matrix/manager.py
and posthog/tasks/scheduled.py
.frontend/src/scenes/insights/EmptyStates/EmptyStates.tsx
.posthog/caching/test/test_should_refresh_insight.py
.posthog/clickhouse/client/execute_async.py
.posthog-js
to version 1.135.1.The pull request #22498 introduces web vitals collection but lacks associated test cases, posing a high risk of undetected bugs affecting platform reliability.
Significant disagreement among team members regarding architectural changes proposed in PR #22497 could delay important updates and affect team cohesion.
Frequent rewrites of files like posthog/models/query_metrics/sql.py
indicate potential instability and issues with initial design or requirements clarity.
Several non-critical pull requests remain open without updates, suggesting potential bottlenecks in the review process that could slow down development progress.
PostHog's development team has been actively working on both backend optimizations and frontend enhancements, reflecting a balanced approach to improving platform capabilities. However, the lack of test coverage for new functionalities and prolonged disagreements on architectural changes pose significant risks that need immediate attention to ensure project stability and progress.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Tom Owers | ![]() |
1 | 9/9/0 | 12 | 64 | 7490 |
vs. last report | = | +5/+6/= | +9 | +35 | +6192 | |
Ben White | ![]() |
5 | 13/8/0 | 33 | 140 | 3311 |
vs. last report | +3 | +3/+1/= | +21 | +65 | +1649 | |
Paul D'Ambra | ![]() |
5 | 11/6/0 | 17 | 30 | 2216 |
vs. last report | +4 | -6/-9/= | +2 | -21 | -1535 | |
David Newell | ![]() |
2 | 8/9/0 | 13 | 93 | 1904 |
vs. last report | +1 | =/+3/-2 | +7 | +71 | +1303 | |
Sandy Spicer | ![]() |
4 | 9/6/1 | 27 | 51 | 1634 |
vs. last report | +3 | +6/=/+1 | +20 | -40 | +192 | |
Robbie | ![]() |
4 | 6/4/0 | 15 | 25 | 1450 |
vs. last report | +3 | +5/+2/= | +13 | +23 | +1445 | |
Bianca Yang | ![]() |
4 | 5/2/0 | 35 | 88 | 1393 |
vs. last report | +1 | +1/=/= | +28 | +59 | +924 | |
Tomás Farías Santana | ![]() |
2 | 1/0/0 | 8 | 13 | 1296 |
Marius Andra | ![]() |
3 | 2/0/0 | 17 | 63 | 1254 |
vs. last report | +2 | +1/-1/= | +16 | +59 | +1240 | |
Thomas Obermüller | ![]() |
7 | 17/12/2 | 24 | 66 | 1131 |
vs. last report | +6 | +6/+3/+2 | +16 | +21 | -1048 | |
Frank Hamand | ![]() |
2 | 14/13/1 | 14 | 36 | 1108 |
vs. last report | +1 | +5/+5/= | +6 | +27 | +1047 | |
Michael Matloka | ![]() |
4 | 9/6/0 | 15 | 55 | 976 |
vs. last report | +1 | +7/+5/= | -5 | +31 | -494 | |
github-actions | ![]() |
19 | 0/0/0 | 67 | 159 | 689 |
vs. last report | +17 | =/=/= | +62 | +136 | +442 | |
Phani Raj | ![]() |
2 | 1/0/0 | 6 | 14 | 674 |
vs. last report | +1 | -2/-3/= | +3 | +3 | +203 | |
Zach Waterfield | ![]() |
4 | 5/2/0 | 12 | 23 | 661 |
vs. last report | +4 | +2/+2/-1 | +12 | +23 | +661 | |
Raquel Smith | ![]() |
4 | 5/3/0 | 9 | 35 | 646 |
vs. last report | +4 | +4/+3/= | +9 | +35 | +646 | |
Tiina Turban | ![]() |
1 | 4/4/0 | 5 | 29 | 637 |
vs. last report | = | -1/=/= | +1 | -15 | +450 | |
timgl | ![]() |
4 | 9/6/0 | 12 | 18 | 533 |
vs. last report | +3 | +8/+5/= | +11 | +16 | +503 | |
Eric Duong | ![]() |
3 | 7/5/1 | 10 | 13 | 464 |
vs. last report | +2 | +7/+4/+1 | +9 | +11 | +447 | |
Joe Martin | ![]() |
1 | 1/1/0 | 1 | 35 | 440 |
James Greenhill | ![]() |
3 | 4/2/0 | 4 | 9 | 428 |
ted kaemming | ![]() |
3 | 2/0/1 | 9 | 7 | 369 |
dependabot[bot] | ![]() |
2 | 2/1/0 | 4 | 11 | 198 |
vs. last report | +2 | +1/+1/= | +4 | +11 | +198 | |
PostHog Bot | ![]() |
6 | 8/2/0 | 7 | 2 | 102 |
vs. last report | +6 | +7/+2/= | +7 | +2 | +102 | |
Mish Ushakov | ![]() |
1 | 1/1/0 | 1 | 10 | 68 |
Matthias Vogel | ![]() |
1 | 1/1/0 | 1 | 2 | 61 |
vs. last report | +1 | =/+1/= | +1 | +2 | +61 | |
Dylan Martin (dmarticus) | 2 | 3/2/0 | 5 | 7 | 52 | |
vs. last report | +2 | +1/=/= | +5 | +7 | +52 | |
Marcus Hof | ![]() |
2 | 3/2/0 | 4 | 3 | 46 |
vs. last report | +2 | +2/+2/= | +4 | +3 | +46 | |
feedanal | ![]() |
1 | 0/0/0 | 2 | 2 | 33 |
vs. last report | = | -6/-1/= | +1 | +1 | +28 | |
Abenezer Belachew | ![]() |
1 | 0/1/0 | 1 | 1 | 2 |
vs. last report | +1 | -1/+1/= | +1 | +1 | +2 | |
Marc J. Schmidt (marcj) | 0 | 1/0/0 | 0 | 0 | 0 | |
Manoel Aranda Neto (marandaneto) | 0 | 0/0/1 | 0 | 0 | 0 | |
vs. last report | -1 | -1/=/+1 | -2 | -7 | -72 | |
Aryan Rawlani (aryanrawlani28) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The PostHog development team is working on an open-source analytics platform that provides product analytics, session recording, feature flagging, and A/B testing capabilities. It is designed for self-hosting, allowing users to maintain control over their data while leveraging the platform's extensive analytics and optimization tools. The project is hosted on GitHub and continues to see active development with a balanced focus on both front-end improvements and back-end stability.
posthog/models/query_metrics/sql.py
).posthog/tasks/scheduled.py
, posthog/tasks/tasks.py
).posthog/demo/matrix/manager.py
, posthog/tasks/scheduled.py
).frontend/src/lib/components/DatabaseTableTree/DatabaseTableTree.tsx
, frontend/src/lib/components/DatabaseTableTree/TreeRow.scss
, frontend/src/lib/components/DatabaseTableTree/TreeRow.tsx
, frontend/src/queries/nodes/HogQLQuery/HogQLQueryEditor.tsx
, frontend/src/scenes/data-warehouse/external/DataWarehouseExternalScene.tsx
, frontend/src/scenes/data-warehouse/external/DataWarehouseTables.tsx
, frontend/src/scenes/data-warehouse/external/TableData.tsx
, tailwind.config.js
).frontend/__snapshots__/scenes-other-settings--settings-session-timeout-password-only--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-password-only--light.png
, frontend/src/lib/components/TimeSensitiveAuthentication/TimeSensitiveAuthentication.tsx
, frontend/src/scenes/settings/SettingsScene.stories.tsx
).frontend/__snapshots__/scenes-other-settings--settings-session-timeout-all-options--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-all-options--light.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-password-only--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-password-only--light.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-enforced-github--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-enforced-github--light.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-enforced-google--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-enforced-google--light.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-enforced-saml--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-enforced-saml--light.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-only--dark.png
, frontend/__snapshots__/scenes-other-settings--settings-session-timeout-sso-only--light.png
, frontend/src/lib/components/SocialLoginButton/SocialLoginButton.tsx
, frontend/src/lib/components/TimeSensitiveAuthentication/TimeSensitiveAuthentication.tsx
, frontend/src/lib/components/TimeSensitiveAuthentication/timeSensitiveAuthenticationLogic.ts
, frontend/src/scenes/settings/SettingsScene.stories.tsx
)..github/actions/run-backend-tests/action.yml
, posthog/api/insight.py
, posthog/api/team.py
, posthog/api/test/__snapshots__/test_annotation.ambr
, posthog/api/test/__snapshots__/test_insight.ambr
, posthog/api/test/__snapshots__/test_organization_feature_flag.ambr
, posthog/api/test/dashboards/__snapshots__/test_dashboard.ambr
, posthog/api/test/dashboards/test_dashboard.py
, posthog/api/test/test_insight.py
, posthog/api/test/test_team.py
, posthog/caching/calculate_results.py
, posthog/caching/insight_cache.py
, posthog/caching/test/test_fetch_from_cache.py
, posthog/caching/test/test_insight_cache.py
, posthog/models/dashboard_tile.py
, posthog/models/insight.py
, posthog/models/test/test_insight_model.py
).frontend/src/scenes/insights/EmptyStates/EmptyStates.tsx
).posthog/caching/test/test_should_refresh_insight.py
).frontend/src/lib/constants.tsx
,frontend/src/lib/utils/eventUsageLogic.ts
,frontend/src/queries/schema.json
,frontend/src/queries/schema.ts
,frontend/src/scenes/settings/SettingsMap.tsx
,frontend/src/scenes/settings/project/PersonsJoinMode.tsx
,frontend/src/scenes/settings/types.ts
,posthog/hogql/database/schema/persons.py
,posthog/hogql/database/schema/persons_pdi.py
,posthog/hogql/modifiers.py
,posthog/hogql_queries/test/test_query_runner.py
,posthog/schema.py
).frontend/__snapshots__/scenes-app-surveys--new-survey-targeting-section--light.png
,frontend/src/queries/schema.json
,frontend/src/queries/schema.ts
,posthog/hogql_queries/web_analytics/web_overview.py
,posthog/hogql_queries/web_analytics/web_overview_legacy.py
,posthog/schema.py
).posthog/clickhouse/client/execute_async.py
,posthog/clickhouse/client/test/test_execute_async.py
).frontend/src/scenes/insights/EmptyStates/EmptyStates.tsx
,posthog/clickhouse/client/execute_async.py
,posthog/tasks/scheduled.py
,posthog/tasks/tasks.py
,posthog/utils.py
).posthog/templates/redis/values.html
,posthog/views.py
).posthog/hogql_queries/query_runner/query_runner_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers/trends_actors_query_builder_test_helpers_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trend_actor_utils_trenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstrenactor_utilstre
.posthog/models/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/delete_cohorts/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion/deletion_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_deletions_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_person_delete_persontest_async_deletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asyncdeletertest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest_asynctest
.The PostHog development team has been actively working on various features and fixes across the platform. Recent activities show a strong focus on enhancing the user interface, improving backend functionalities, and adding new features such as dynamic CNAME targets, improved query performance, and better handling of async queries. The team has also been addressing bugs and optimizing existing functionalities to ensure a robust and user-friendly experience. The ongoing efforts reflect a proactive approach to maintaining and improving the platform's capabilities.
Since the last report 6 days ago, there has been a significant amount of activity in the repository. Numerous new issues have been created, and several issues have been closed. This indicates ongoing development and maintenance efforts.
Issue #22509: Improve HTML markup experience in the survey editor.
Issue #22508: Fix waterfall empty state.
Issue #22507: Ignore future persons in HogQL.
created_at
dates from queries.Issue #22506: Enable heatmap onward journey.
Issue #22505: Debug ClickHouse query improvements.
Issue #22503: Fix persons page to bypass cache.
alwaysRefresh
option to force a refresh on the persons page to avoid stale data.Issue #22501: Toolbar clickmap reset fix.
Issue #22500: Add confirm to proxy deletion.
Issue #22496: UI polishing for the survey form editor.
Issue #22494: Remove unnecessary events query from query_metrics.
The recent activity in the repository reflects a robust development cycle focused on both expanding features and maintaining system integrity. The team's responsiveness to issues, both in terms of introducing enhancements and resolving bugs, indicates a strong commitment to user satisfaction and continuous improvement. The introduction of new features alongside critical bug fixes suggests a balanced approach to development, ensuring both innovation and stability.
Overall, the project appears to be progressing well with significant improvements made over the past week.
PR Title: chore(deps): Update posthog-js to 1.135.1
Repo: PostHog/posthog
State: Open
Created: 0 days ago
This pull request updates the posthog-js
dependency from version 1.134.0
to 1.135.1
. The changes are reflected in two files:
package.json
: Updated the version of posthog-js
.pnpm-lock.yaml
: Updated the lock file to reflect the new version of posthog-js
.diff --git a/package.json b/package.json
index cde64574a54a1..b2b30dbb7caf8 100644
--- a/package.json
+++ b/package.json
@@ -146,7 +146,7 @@
"pmtiles": "^2.11.0",
"postcss": "^8.4.31",
"postcss-preset-env": "^9.3.0",
- "posthog-js": "1.134.0",
+ "posthog-js": "1.135.1",
"posthog-js-lite": "3.0.0",
"prettier": "^2.8.8",
"prop-types": "^15.7.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e266fba7ad9c1..e34bc4bbc3f13 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -260,8 +260,8 @@ dependencies:
specifier: ^9.3.0
version: 9.3.0(postcss@8.4.31)
posthog-js:
- specifier: 1.134.0
- version: 1.134.0
+ specifier: 1.135.1
+ version: 1.135.1
posthog-js-lite:
specifier: 3.0.0
version: 3.0.0
@@ -17564,8 +17564,8 @@ packages:
resolution: {integrity: sha512-dyajjnfzZD1tht4N7p7iwf7nBnR1MjVaVu+MKr+7gBgA39bn28wizCIJZztZPtHy4PY0YwtSGgwfBCuG/hnHgA==}
dev: false
- /posthog-js@1.134.0:
- resolution: {integrity: sha512-AUUsnw0uZrMOI+MMO6vXcdOPZI3yRJw9xhB6FWImi9mXRIEOSVvBta6WHwE+AXuX6+3yTxYgEEaVdunKvNojDQ==}
+ /posthog-js@1.135.1:
+ resolution: {integrity: sha512-ZHEJYByEyvxO20Nu86iH9ZzMa+iufpXfbBwc1e93obDOxtQkV9trEM+iEz+QkZYV4HR1RvNVQOXwGLxu7M+wSQ==}
dependencies:
fflate: 0.4.8
preact: 10.22.0
The changes are minimal and straightforward, involving only an update to the version of a dependency (posthog-js
). This is a typical maintenance task to ensure that the project uses the latest stable version of its dependencies.
Updating dependencies regularly is crucial for maintaining security and taking advantage of new features and bug fixes provided by the library maintainers.
The commit was made by PostHog Bot
, indicating that this update might be part of an automated dependency management process, which is a good practice for keeping dependencies up-to-date without manual intervention.
This PR is a simple dependency update with no significant code changes or additions beyond updating the package versions in package.json
and pnpm-lock.yaml
. The code quality is maintained as there are no functional changes or additions that could introduce bugs or require additional testing.
Given that this is a minor version update, it should be safe to merge after ensuring that the new version of posthog-js
has been tested and does not introduce any breaking changes or regressions in functionality.
posthog-js
.Since the last analysis 6 days ago, there has been significant activity in the PostHog/posthog repository. Numerous pull requests (PRs) have been opened and closed, with various enhancements, bug fixes, and new features being introduced. Below is a detailed report of the changes:
posthog-js
to version 1.135.1.No PRs have been closed since the last report.
Overall, the recent activity indicates an active development cycle aimed at both expanding capabilities and ensuring the reliability of the platform.
This level of activity suggests that the PostHog team is actively working on both new features and improvements to existing functionalities, ensuring that the platform remains robust and user-friendly.
posthog/models/query_metrics/sql.py
Modularization:
MergeTreeEngine
, LowCardinality
, and materialized views.Performance Considerations:
PARTITION BY
and ORDER BY
clauses in table creation helps optimize query performance.kafka_skip_broken_messages
ensure resilience in message processing.Readability:
Maintainability:
frontend/src/lib/components/DatabaseTableTree/DatabaseTableTree.tsx
Component Design:
TreeProps
, TreeItem
, etc.).Readability:
Functionality:
TreeItemFolder
, TreeTableItemLeaf
, TreeItemLeaf
) effectively.Maintainability:
posthog/tasks/scheduled.py
Task Management:
Readability:
add_periodic_task_with_expiry
improves readability by abstracting common patterns.Performance Considerations:
Maintainability:
posthog/api/test/test_insight.py
Test Coverage:
Readability:
Maintainability:
Performance Considerations:
frontend/src/scenes/data-warehouse/external/TableData.tsx
Component Design:
useState
and useEffect
.Readability:
Functionality:
Maintainability:
viewLinkLogic
, dataWarehouseSceneLogic
) makes it easier to manage state and actions.posthog/clickhouse/client/execute_async.py
Async Query Execution:
Error Handling:
Performance Considerations:
Maintainability:
QueryStatusManager
) encapsulate related functionalities, making the codebase easier to maintain.posthog/hogql/database/test/__snapshots__/test_database.ambr
Snapshot Testing:
Readability & Maintainability:
posthog/models/kafka_partition_stats/sql.py
Modularization:
PartitionStatsKafkaTable
, PartitionStatsV2Table
) for managing Kafka partition statistics tables, promoting modularity.SQL Queries:
AggregatingMergeTree
, ReplacingMergeTree
) for efficient data storage and retrieval.Maintainability:
frontend/src/scenes/settings/project/PersonsJoinMode.tsx
Component Design:
Readability & Maintainability:
useActions
, useValues
) managing state updates and actions.User Guidance:
posthog/api/plugin.py
Plugin Management:
Error Handling & Logging:
Maintainability & Readability:
This assessment covers the structure, quality, readability, performance considerations, and maintainability aspects of each provided file based on their context within the PostHog project repository on GitHub.
Severity: High (3/3)
Rationale
The pull request #22498, which aims to add web vitals collection, lacks any associated test cases. This absence of test coverage is critical because it introduces new functionality that could potentially affect the performance and reliability of the analytics platform.
Next Steps
Severity: Medium (2/3)
Rationale
There has been considerable disagreement among team members regarding the architectural changes proposed in PR #22497, which moves query performance polling to its own Celery task. This prolonged disagreement could indicate deeper underlying issues that may affect project timelines and team cohesion.
Next Steps
Severity: Medium (2/3)
Rationale
Several source code files have undergone multiple rewrites within a short period. This pattern can introduce instability and indicates potential issues with initial design or requirements clarity.
posthog/models/query_metrics/sql.py
and frontend/src/lib/components/DatabaseTableTree/DatabaseTableTree.tsx
have seen multiple recent changes.Next Steps
Severity: Low (1/3)
Rationale
Several non-critical pull requests have been left open for several days without any updates or reviews. While not immediately critical, this can slow down development progress and indicate potential bottlenecks in the review process.
Next Steps