Skip to content

Latest commit

 

History

History
362 lines (203 loc) · 25 KB

CHANGELOG.md

File metadata and controls

362 lines (203 loc) · 25 KB

CHANGELOG

v0.1.3 (2025-01-04)

Fix

  • fix(ci): Correct end-to-end test script path in release workflow
  • Updated the command for executing the end-to-end test script in the GitHub Actions workflow to use the correct file path, ensuring proper execution.
  • This change enhances the reliability of the CI/CD pipeline by aligning with the project's updated structure. (7afe396)
  • fix(ci): Update end-to-end test script execution in release workflow
  • Modified the command for running the end-to-end test script in the GitHub Actions workflow to remove the redundant path specification.
  • This change streamlines the execution process and ensures compatibility with the updated project structure.

These updates contribute to a more efficient CI/CD pipeline by simplifying the testing step. (b3a2e27)

  • fix(ci): Enhance end-to-end testing in release workflow
  • Added a timeout of 5 minutes for the end-to-end test job to prevent long-running processes.
  • Included steps to check out the repository and set up Python 3.12 with pip caching for improved efficiency.
  • Installed development dependencies before running the end-to-end test script.

These updates improve the reliability and performance of the CI/CD pipeline by ensuring a more robust testing environment. (756412e)

  • fix(ci): Add end-to-end testing step to release workflow
  • Introduced a new job for end-to-end testing in the GitHub Actions workflow.
  • Updated the build job to depend on both the test and end-to-end test jobs, ensuring comprehensive testing before the build process.

These changes enhance the CI/CD pipeline by incorporating end-to-end tests, improving the overall reliability of the release process. (38350a8)

  • fix(config): Update pre-commit configuration and coverage settings
  • Changed always_run in .pre-commit-config.yaml to true to ensure tests are always executed.
  • Updated branch setting in pyproject.toml under the coverage configuration from true to false, disabling branch coverage.

These adjustments enhance the testing process and coverage reporting for the project. (585b3f1)

  • fix(app): Restructure Numerous app components and update imports
  • Removed deprecated modules and files, including _bootstrap.py, _builtins.py, _communication.py, _execution.py, _server.py, and app.py, to streamline the codebase.
  • Updated import paths in various files to reflect the new structure, ensuring proper functionality.
  • Adjusted pyproject.toml to remove specific version pinning for numerous-widgets and added package data for numerous.apps.
  • Enhanced the bootstrap_app module by correcting import statements and ensuring consistent package structure.

These changes improve the organization of the Numerous app, making it more maintainable and easier to navigate. (b33b0f7)

  • fix(tests): Refactor communication manager tests for improved clarity and synchronization (910751e)

v0.1.2 (2025-01-04)

Fix

  • fix(app): Update footer year and pin package versions in requirements.txt
  • Updated the footer year in index.html.j2 from 2024 to 2025 for accuracy.
  • Specified versions for numpy and numerous-widgets in requirements.txt to ensure consistent behavior across environments.
  • Added numerous-apps to requirements.txt for improved dependency management.

These changes enhance the application's reliability and maintain up-to-date information in the user interface. (75d72a5)

  • fix(dependencies): Pin package versions in pyproject.toml for stability
  • Updated dependencies in pyproject.toml to specific versions to ensure consistent behavior across environments.
  • This includes pinning versions for fastapi, uvicorn, jinja2, anywidget, numpy, pydantic, and several development dependencies.

These changes enhance the reliability of the application by preventing unexpected issues due to version discrepancies. (e7a3b5a)

v0.1.1 (2025-01-04)

Fix

  • fix(apps): Enhance WebSocket message handling and remove unused charts module
  • Introduced encode_model function for improved serialization of Pydantic models in WebSocket communication.
  • Updated message handling in app.py to utilize encode_model for sending messages, enhancing data integrity.
  • Removed the unused charts.py module from the bootstrap app, streamlining the codebase.
  • Adjusted import statements in app.py to handle potential import errors more gracefully.

These changes improve the clarity and reliability of the application's WebSocket communication and reduce unnecessary code. (3e7add2)

v0.1.0 (2025-01-04)

Feature

  • feat(apps): Enhance communication and configuration management
  • Added pydantic as a new dependency in pyproject.toml for improved data validation.
  • Refactored message handling in _communication.py and _execution.py to utilize Pydantic models for structured messaging, enhancing error reporting and data integrity.
  • Updated the send and receive_nowait methods in CommunicationChannel to use typed dictionaries for better type safety.
  • Improved the WebSocket message handling in app.py by introducing dedicated functions for receiving and sending messages, streamlining the communication flow.
  • Added tests for communication channels and execution managers to ensure reliability and correctness.

These changes improve the overall robustness and maintainability of the application's communication framework. (1f4c524)

Fix

  • fix(communication): Set multiprocessing start method to 'spawn' and improve test synchronization
  • Added a module-level setting for the multiprocessing start method to 'spawn' to ensure compatibility across platforms.
  • Introduced a small delay in the test for the communication channel to ensure the queue state is synchronized before assertions.

These changes enhance the reliability of the communication channel in a multiprocessing context and improve test stability. (1830ed4)

  • fix(communication): Improve non-blocking queue handling in QueueCommunicationChannel
  • Added handling for Empty exception in receive_nowait method to prevent runtime errors when the queue is empty.
  • Updated import statement to include Empty from queue module for better error management.
  • Minor adjustments in test_app.py to skip multiprocessing tests during coverage runs.

These changes enhance the robustness of the communication channel by ensuring that it gracefully handles empty queue scenarios. (fc249d9)

  • fix(apps): Multiprocessing mode processes are daemons. (f7949a8)

  • fix(apps): Fixed issue with queues and events for multiprocess communication (f6591d8)

  • fix(apps): Fix logic for raising runtime error in ThreadExecutionManager (57ea0ca)

v0.0.11 (2024-12-28)

Fix

  • fix(apps): Fix small issue in app.py added more tests (063b2d8)

v0.0.10 (2024-12-28)

Fix

  • fix(apps): missing httpx dev dep (c8f1399)

  • fix(apps): Enhance project configuration, testing and logging

  • Added new classifiers to pyproject.toml for better package categorization.
  • Updated .gitignore to exclude htmlcov directory.
  • Improved logging in _bootstrap.py for better visibility during template copying and dependency installation.
  • Enhanced communication management in _communication.py and _execution.py to streamline message handling and improve error reporting.
  • Refactored widget handling in app.py to ensure consistent session management and improved error handling in template rendering.

These changes improve the overall configuration, logging, and communication flow within the application, enhancing maintainability and user experience. (c0dbc53)

Unknown

  • Update README.md

Fixed a typo in the AnyWidget URL (1716070)

v0.0.9 (2024-12-15)

Fix

  • fix(apps): Enhance widget state management and threading behavior
  • Updated ThreadedExecutionManager to run threads as daemon threads, ensuring they terminate when the main program exits.
  • Added functionality in _execution.py to handle 'get_widget_states' messages, allowing the server to send current widget states to clients.
  • Modified websocket_endpoint in app.py to conditionally broadcast messages based on client ID, improving message handling.
  • Enhanced numerous.js to request widget states upon WebSocket connection establishment, ensuring clients receive the latest widget information.

These changes improve the responsiveness and reliability of widget state communication in the application. (ef8bae6)

v0.0.8 (2024-12-15)

Fix

  • fix(apps): Simplify session handling and improve widget configuration retrieval
  • Removed redundant session validation logic in app.py, streamlining the session creation process.
  • Updated the home endpoint to directly use the application configuration for template rendering.
  • Enhanced the get_widgets API to return session ID alongside widget configurations, improving client-side session management.
  • Modified numerous.js to fetch widget configurations using the session ID from session storage, ensuring consistent session handling across requests.

These changes enhance the clarity and efficiency of session management and widget communication in the application. (aab16ac)

v0.0.7 (2024-12-15)

Fix

  • fix(docs): Improve writing in readme (d0c7102)

v0.0.6 (2024-12-15)

Fix

  • fix(apps): First working version.

Update project configuration and documentation

  • Added 'build' to .gitignore to exclude build artifacts.
  • Removed the unused 'apps.md' documentation file.
  • Updated 'mkdocs.yml' to remove the API Reference section.
  • Added 'numpy' to the dependencies in 'pyproject.toml'.
  • Enhanced the 'README.md' with a clearer description of the framework and its features, including a new section on getting started and app structure.
  • Changed the Uvicorn host in 'app.py' to '127.0.0.1' for better local development compatibility.

These changes improve project organization, documentation clarity, and dependency management. (1ea4411)

v0.0.5 (2024-12-14)

Fix

  • fix(apps): threaded apps (1a56352)

v0.0.4 (2024-12-13)

Fix

  • fix(apps): Change to relative paths in template (98dd711)

v0.0.3 (2024-12-12)

Fix

  • fix(apps): Update backend initialization and WebSocket connection handling
  • Modified the Backend class to accept customizable host and port parameters during initialization, enhancing flexibility for server configuration.
  • Updated the run method in Backend to utilize the new host and port attributes for starting the FastAPI server.
  • Adjusted the numerous_server.py main function to pass host and port arguments from command line options to the Backend instance.
  • Enhanced WebSocket connection logic in numerous.js to dynamically determine the protocol (ws or wss) based on the current page's security context.

These changes improve the configurability of the backend server and ensure secure WebSocket connections. (ca028fc)

v0.0.2 (2024-12-12)

Fix

  • fix(apps): Implement logging utility and enhance debug information in numerous.js
  • Introduced a logging utility with adjustable log levels (DEBUG, INFO, WARN, ERROR, NONE) to standardize logging across the application.
  • Replaced console.log statements with the new logging utility for better control over log output.
  • Added functionality to set log levels dynamically based on widget configuration.
  • Improved error handling and debug information throughout the WidgetModel and WebSocketManager classes.

These changes enhance the maintainability of the code and provide clearer insights during development and debugging. (c9a1ffe)

Unknown

  • Refactor project structure and update documentation
  • Changed project name from "numerous-app" to "numerous-apps" in pyproject.toml.
  • Deleted the empty README.md file.
  • Updated docs/apps.md to reflect the new project name and added a new title.
  • Expanded docs/README.md with a comprehensive overview of the Numerous Apps framework, including key features and benefits.

These changes improve project clarity and enhance the documentation for better user understanding. (70663a5)

v0.0.1 (2024-12-11)

Fix

  • fix(apps): updated pyproject (b19dca0)

  • fix(apps): Add mock test (4511e52)

  • fix(apps): First release (f431127)

Unknown

  • Update project configuration and clean up widget handling
  • Updated .gitignore to include additional cache files and environment configurations.
  • Modified pyproject.toml to change the Python version requirement to 3.12 and updated the author information.
  • Refactored app.py to remove the Plotly tab and associated visibility logic, simplifying the UI.
  • Cleaned up charts.py by removing unused code related to data generation and plotting.
  • Deleted unused files and templates related to error handling and backend processes, streamlining the project structure.

These changes enhance project organization, improve maintainability, and ensure compatibility with the latest Python version. (6f16840)

  • Enhance type annotations and refactor widget handling in App and ParentVisibility classes
  • Added type hints for method parameters and return types across multiple files, improving code clarity and maintainability.
  • Introduced WidgetConfig TypedDict in the backend for better widget configuration management.
  • Updated transform_widgets and App class initialization to use more specific type annotations.
  • Refactored the _update_visibility method in ParentVisibility to include type hints for event handling.

These changes contribute to a more robust, maintainable, and type-safe codebase. (f6b7a4f)

  • Enhance type annotations and refactor widget handling in App and Backend classes:
  • Added type hints for better clarity and maintainability, including return types for methods.
  • Improved widget detection logic in the App class to streamline widget management.
  • Updated the Backend class to utilize a QueueType alias for clearer type definitions.
  • Introduced a new create_handler method for better encapsulation of widget message handling.

These changes contribute to a more robust, maintainable, and type-safe codebase. (8ac31ff)

  • Refactor backend and app initialization: Removed debug print statement from App class to clean up output. Enhanced type annotations in backend for better clarity and maintainability, including the addition of TypedDicts for widget configuration and session data. Updated method signatures to include return types, improving code readability and type safety. These changes contribute to a more robust and maintainable codebase. (4d3f154)

  • Refactor app.py and backend structure: Removed unused imports and redundant code in app.py, enhancing clarity and maintainability. Updated the App class to sort widgets for better visibility and improved logging in the Backend class. Streamlined the backend process handling by adjusting argument passing and ensuring proper path management. These changes contribute to a cleaner codebase and improved application performance. (40f7e20)

  • Add error modal functionality and improve template handling in backend

  • Introduced a new error modal in the CSS for better user feedback on errors.
  • Updated the backend to load and render the error modal template within the HTML response.
  • Enhanced error handling in the WebSocketManager to display error messages using the new modal.
  • Removed redundant error modal initialization code from the frontend JavaScript.

These changes improve the user experience by providing clear error notifications and streamline the integration of error handling across the application. (5c1d35b)

  • Enhance error handling and logging in backend and frontend: Introduced robust error handling in the App and Backend classes, logging detailed error messages and stack traces. Updated the frontend WebSocketManager to display error modals for better user feedback. Removed unnecessary parameters from the Backend constructor to simplify initialization. This improves overall application stability and user experience. (3a3827e)

  • Remove numerous_demo_app.py and enhance error handling in backend: Deleted the demo application file to streamline the project structure. Improved error handling in the backend by introducing custom exceptions for app process and initialization errors, and enhanced logging for better debugging. Updated the backend to support development mode, providing more informative error responses during session initialization. (fe65ac1)

  • Cleanup numerous_demo_app.py: Removed unused imports to streamline the code and improve readability. This change enhances maintainability by eliminating unnecessary dependencies. (1ed89c1)

  • Refactor backend template processing: Removed CSS link insertion from HTML head and deleted unused static CSS file. This streamlines the template handling and reduces clutter in the project, enhancing maintainability. (282db0e)

  • Refactor numerous app structure: Updated the App class to accept widgets as keyword arguments, enhancing flexibility in widget management. Modified the demo app to utilize the new App initialization method. Improved backend template handling by ensuring CSS links are correctly inserted into the HTML head. This update streamlines widget integration and enhances the overall maintainability of the application. (27dbe53)

  • Fix formatting in numerous_server.py: added a blank line before the main check for improved readability and adherence to PEP 8 style guidelines. (9db6193)

  • Enhance styling and layout management: Added Google Fonts for improved typography in CSS, introduced new CSS rules for display properties in the backend, and removed outdated styles from the static CSS file. This update improves the visual consistency and maintainability of the application. (b29b188)

  • Refactor frontend and backend integration: removed inline styles from HTML template, added external CSS link for improved styling, and established a new static file mount for package assets. This enhances maintainability and separation of concerns in the project structure. (ae3a9f1)

  • Remove run from app (838e591)

  • Improve error handling in backend template processing: added exception handling for missing templates and enhanced logging for undefined variables. Now returns a user-friendly error response when templates are not found or contain unmatched variables. (dd721ed)

  • Refactor backend template handling: added package directory support and improved error handling for template loading. Now includes a fallback error template for better user feedback. (5855c1f)

  • Enhance template validation in backend: added checks for undefined variables in templates and ensured they match widget keys. This prevents runtime errors due to mismatched template variables. (91b4659)

  • Added a second counter widget to the demo app and improved template context handling in the backend. The backend now checks for missing widget placeholders in the template and logs a warning if any are found. (880e816)

  • removed js from remplate (88dd743)

  • moved maim js out of apps static folder (9669dc0)

  • fixes to disconnect logic (6cf8901)

  • fixes (9312038)

  • fixes with shadow DoM (8835757)

  • added shadow doms to scope css to each widget (a21493a)

  • some fixe (5a28841)

  • fixes (0786ec4)

  • Added Numerous demo app (9ab37d0)

  • fixes to process and debug instead of print (f597bb2)

  • processes working ish (60e971f)