diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 23ec16a..525385a 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: Build 3.X +name: Build and Test on: push: @@ -15,19 +15,20 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] fail-fast: false steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install wheel + python -m pip install wheel setuptools + python -m pip install -e ".[lint,test]" - name: Lint with flake8 run: | python setup.py -q lint diff --git a/.github/workflows/pythonpackage27.yml b/.github/workflows/pythonpackage27.yml deleted file mode 100644 index 6fea0db..0000000 --- a/.github/workflows/pythonpackage27.yml +++ /dev/null @@ -1,30 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: Build 2.7 - -on: - push: - branches: [ master, feature/* ] - pull_request: - branches: [ master, feature/* ] - -jobs: - build: - - runs-on: ubuntu-latest - container: - image: python:2.7.18-buster - - steps: - - uses: actions/checkout@v2 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install wheel - - name: Lint with flake8 - run: | - python setup.py -q lint - - name: Test with pytest - run: | - python setup.py -q test diff --git a/CHANGELOG.md b/CHANGELOG.md index d570029..b6c014a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,27 @@ # Event Query Language - Changelog The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +# Version 1.0.0 + + _Released 2025-11-17_ + +### Changed + +* Updated `lark-parser` dependency to `lark>=1.3.1` (migrated from deprecated `lark-parser` package to `lark`) +* Updated GitHub Actions workflows to use Python 3.8+ and newer action versions (`actions/checkout@v5`, `actions/setup-python@v5`) +* Fixed compatibility issues with Lark 1.3.1: + * Fixed parsing of macros with empty parameter lists (e.g., `macro TRUE()`) + * Fixed parsing of pipes with no arguments (e.g., `| count`) + * Fixed `Schema.current()` to always return a valid Schema object +* Simplified dependencies by removing Python 2.7 and Python < 3.8 compatibility code +* Removed Python 2.7 compatibility comments and code from source files +* Updated documentation to reflect Python 3.8+ requirement + +### Removed + +* **BREAKING**: Dropped support for Python 2.7 and Python < 3.8. The minimum required Python version is now 3.8. +* Removed Python 2.7 GitHub Actions workflow (`.github/workflows/pythonpackage27.yml`) + # Version 0.9.19 _Released 2023-10-31_ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1319f31..7d88567 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,9 +30,9 @@ Contributing to EQL is a simple five-step process facilitated by Git: * There is plenty of literature and resources out there to help you. A great place to start is [GitHub guides](https://guides.github.com/). ## Ways to contribute - + ### Bug Fixes -Bug fixes are a natural area to contribute. We only ask that you please use the [bug report issue](https://github.com/endgameinc/eql/issues) to track the bug. Please elaborate on how to reproduce the bug and what behavior you would have expected. Compatibility is a priority for EQL, so be sure to capture information about your operating system and version of python. +Bug fixes are a natural area to contribute. We only ask that you please use the [bug report issue](https://github.com/endgameinc/eql/issues) to track the bug. Please elaborate on how to reproduce the bug and what behavior you would have expected. Compatibility is a priority for EQL, so be sure to capture information about your operating system and version of python. ### Language or Engine Changes For any changes within the language or the evaluation engine, propose your changes in a *Feature Request* issue to start a discussion. For new functionality function, be mindful of handling different edge cases, acceptable input, etc. We are happy to collaborate on such topics and encourage you to share ideas. @@ -49,7 +49,7 @@ Anyone is encouraged to make a PR for open issues that have a clear path forward * Include end-to-end tests by updating the test [data](eql/etc/test_data.json) and [queries](eql/etc/test_queries.toml). These are used as the gold standard of expected behavior, and the queries should have a list of the serial_event_id of the events, in the expected order. ### CLI -Finally, the CLI is an area we are always looking to expand. This may include new input file types, new processing features, new tables, etc. Some shell functionality, like tab completions ANSI coloring, and history often varies across different operating systems. If possible, please test new functionality across a few different operating systems if you have access, and Python 2.7 and 3.6+. If you find any unusual behavior in the shell related to compatibility, please let us know in an issue. +Finally, the CLI is an area we are always looking to expand. This may include new input file types, new processing features, new tables, etc. Some shell functionality, like tab completions ANSI coloring, and history often varies across different operating systems. If possible, please test new functionality across a few different operating systems if you have access, and Python 3.8+. If you find any unusual behavior in the shell related to compatibility, please let us know in an issue. ## Resources See the [resources page](https://eql.readthedocs.io/en/latest/resources.html) on ReadTheDocs for a full list of resources diff --git a/README.md b/README.md index 46ad826..dff388a 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Since Endgame [joined forced with Elastic](https://www.elastic.co/blog/endgame-j # Getting Started -The EQL module current supports Python 2.7 and 3.5+. Assuming a supported Python version is installed, run the command: +The EQL module requires Python 3.8 or higher. Assuming a supported Python version is installed, run the command: ```console $ pip install eql @@ -23,7 +23,7 @@ If Python is configured and already in the PATH, then ``eql`` will be readily av ```console $ eql --version -eql 0.9 +eql 0.9.20 ``` From there, try a [sample json file](docs/_static/example.json) and test it with EQL. diff --git a/docs/_static/eql-crash-course.slides.html b/docs/_static/eql-crash-course.slides.html index aa56a60..2cde962 100755 --- a/docs/_static/eql-crash-course.slides.html +++ b/docs/_static/eql-crash-course.slides.html @@ -9181,15 +9181,15 @@ } /* Flexible box model classes */ /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */ -/* This file is a compatability layer. It allows the usage of flexible box +/* This file is a compatability layer. It allows the usage of flexible box model layouts accross multiple browsers, including older browsers. The newest, universal implementation of the flexible box model is used when available (see -`Modern browsers` comments below). Browsers that are known to implement this +`Modern browsers` comments below). Browsers that are known to implement this new spec completely include: Firefox 28.0+ Chrome 29.0+ - Internet Explorer 11+ + Internet Explorer 11+ Opera 17.0+ Browsers not listed, including Safari, are supported via the styling under the @@ -12571,7 +12571,7 @@ background: #f7f7f7; border-top: 1px solid #cfcfcf; border-bottom: 1px solid #cfcfcf; - /* This injects handle bars (a short, wide = symbol) for + /* This injects handle bars (a short, wide = symbol) for the resize handle. */ } div#pager .ui-resizable-handle::after { @@ -13070,7 +13070,7 @@ .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */