From bbaa908d26c5d77a8f6f8f55d82000976bc66551 Mon Sep 17 00:00:00 2001 From: Brian Lukoff Date: Tue, 15 Aug 2023 13:08:14 -0500 Subject: [PATCH 01/20] Implement fix for redis-oplog issue #367. --- lib/cache/lib/extractFieldsFromFilters.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/cache/lib/extractFieldsFromFilters.js b/lib/cache/lib/extractFieldsFromFilters.js index 11b089f1..e9fd4f75 100644 --- a/lib/cache/lib/extractFieldsFromFilters.js +++ b/lib/cache/lib/extractFieldsFromFilters.js @@ -19,14 +19,14 @@ function extractFieldsFromFilters(filters) { deepFilterFieldsArray.forEach(field => { if (filters[field]) { filters[field].forEach(element => { - _.union(filterFields, extractFieldsFromFilters(element)); + filterFields = _.union(filterFields, extractFieldsFromFilters(element)); }); } }); deepFilterFieldsObject.forEach(field => { if (filters[field]) { - _.union(filterFields, extractFieldsFromFilters(filters[field])); + filterFields = _.union(filterFields, extractFieldsFromFilters(filters[field])); } }); From 0ee2f7acb25346d1a19760183d8da9b96801a71c Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 23 Aug 2023 18:30:36 +0200 Subject: [PATCH 02/20] Update roles package --- CHANGELOG.md | 5 +++++ package.js | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6aee7206..b1049d59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## CHANGELOG +### 2.2.1 + +- Update `alanning:roles` to v3.5.1 +- Fix reactivity bug in fairly specific situations [#367](https://github.com/cult-of-coders/redis-oplog/issues/367) + ### 2.2.0 - Bumped minimum Meteor version to v1.12.2 - Updated tests to cover from Meteor v1.12.2 to the latest v2.12 diff --git a/package.js b/package.js index 4e03a69e..0205473b 100644 --- a/package.js +++ b/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'cultofcoders:redis-oplog', - version: '2.2.0', + version: '2.2.1', // Brief, one-line summary of the package. summary: "Replacement for Meteor's MongoDB oplog implementation", // URL to the Git repository containing the source code for this package. @@ -51,7 +51,7 @@ Package.onTest(function(api) { api.use('random'); api.use('accounts-password'); api.use('matb33:collection-hooks@1.1.2'); - api.use('alanning:roles@3.4.0'); + api.use('alanning:roles@3.5.1'); api.use(['meteortesting:mocha']); From f4be90232aa3b2d25dae76a59df2530a87dcf0e0 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 23 Aug 2023 19:36:35 +0200 Subject: [PATCH 03/20] Published cultofcoders:redis-oplog@2.2.1 --- .versions | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.versions b/.versions index 4d450411..03eb65d5 100644 --- a/.versions +++ b/.versions @@ -1,6 +1,6 @@ accounts-base@2.2.8 accounts-password@2.3.4 -alanning:roles@3.4.0 +alanning:roles@3.5.1 aldeed:collection2@3.0.6 allow-deny@1.1.1 babel-compiler@7.10.4 @@ -10,12 +10,12 @@ binary-heap@1.0.11 boilerplate-generator@1.7.1 callback-hook@1.5.1 check@1.3.2 -cultofcoders:redis-oplog@2.2.0 +cultofcoders:redis-oplog@2.2.1 ddp@1.4.1 ddp-client@2.6.1 ddp-common@1.4.0 ddp-rate-limiter@1.2.0 -ddp-server@2.6.1 +ddp-server@2.6.2 diff-sequence@1.1.2 dynamic-import@0.7.3 ecmascript@0.16.7 @@ -28,18 +28,18 @@ fetch@0.1.3 geojson-utils@1.0.11 id-map@1.1.1 inter-process-messaging@0.1.1 -local-test:cultofcoders:redis-oplog@2.2.0 +local-test:cultofcoders:redis-oplog@2.2.1 localstorage@1.2.0 logging@1.3.2 matb33:collection-hooks@1.1.4 -meteor@1.11.2 +meteor@1.11.3 meteortesting:browser-tests@0.1.2 meteortesting:mocha@0.4.4 minimongo@1.9.3 modern-browsers@0.1.9 modules@0.19.0 modules-runtime@0.13.1 -mongo@1.16.6 +mongo@1.16.7 mongo-decimal@0.1.3 mongo-dev-server@1.1.0 mongo-id@1.0.8 @@ -65,3 +65,4 @@ underscore@1.0.13 url@1.3.2 webapp@1.13.5 webapp-hashing@1.1.1 +zodern:types@1.0.9 From a0ffa1ea15099ccfca1d6465be34281cb0b28219 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 24 Aug 2023 11:00:51 +0200 Subject: [PATCH 04/20] Sync versionsFrom and tests --- .github/workflows/test.yml | 2 +- package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 186e541c..b390839d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - meteor: [1.12.2, 2.6.1, 2.7.3, 2.8.1, 2.12] + meteor: [1.12.2, 2.8.1, 2.13] redis-version: [4, 5, 6, 7] steps: diff --git a/package.js b/package.js index 0205473b..2341c55b 100644 --- a/package.js +++ b/package.js @@ -17,7 +17,7 @@ Npm.depends({ }); Package.onUse(function(api) { - api.versionsFrom(['1.12.2', '2.8.1', '2.12']); + api.versionsFrom(['1.12.2', '2.8.1', '2.13']); api.use([ 'underscore', 'ecmascript', From a1c41ac540dcc64794ea05331eab39f9853d45ed Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 28 Feb 2024 11:06:45 +0100 Subject: [PATCH 05/20] Update test dependencies --- .github/workflows/test.yml | 6 +++--- package.js | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b390839d..894bc956 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,14 +7,14 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - meteor: [1.12.2, 2.8.1, 2.13] + meteor: [1.12.2, 2.8.1, 2.13, 2.15] redis-version: [4, 5, 6, 7] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Start Redis - uses: supercharge/redis-github-action@1.5.0 + uses: supercharge/redis-github-action@1.8.0 with: redis-version: ${{ matrix.redis-version }} diff --git a/package.js b/package.js index 2341c55b..0aebd6ac 100644 --- a/package.js +++ b/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'cultofcoders:redis-oplog', - version: '2.2.1', + version: '2.2.2', // Brief, one-line summary of the package. summary: "Replacement for Meteor's MongoDB oplog implementation", // URL to the Git repository containing the source code for this package. @@ -17,7 +17,7 @@ Npm.depends({ }); Package.onUse(function(api) { - api.versionsFrom(['1.12.2', '2.8.1', '2.13']); + api.versionsFrom(['1.12.2', '2.8.1', '2.13', '2.15']); api.use([ 'underscore', 'ecmascript', @@ -40,8 +40,8 @@ Package.onTest(function(api) { api.use('cultofcoders:redis-oplog'); // extensions - api.use('aldeed:collection2@3.0.0'); - api.use('reywood:publish-composite@1.7.3'); + api.use('aldeed:collection2@3.5.0'); + api.use('reywood:publish-composite@1.8.7'); api.use('natestrauser:publish-performant-counts@0.1.2'); // api.use('socialize:user-presence@1.0.4'); @@ -50,8 +50,8 @@ Package.onTest(function(api) { api.use('mongo'); api.use('random'); api.use('accounts-password'); - api.use('matb33:collection-hooks@1.1.2'); - api.use('alanning:roles@3.5.1'); + api.use('matb33:collection-hooks@1.3.1'); + api.use('alanning:roles@3.6.2'); api.use(['meteortesting:mocha']); From 220787114d69eb8f94a64ebb953e6e2a75e5531b Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 28 Feb 2024 11:10:18 +0100 Subject: [PATCH 06/20] Reverse test deps upgrade to keep Meteor 1 compat --- package.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.js b/package.js index 0aebd6ac..48bebfa5 100644 --- a/package.js +++ b/package.js @@ -40,8 +40,8 @@ Package.onTest(function(api) { api.use('cultofcoders:redis-oplog'); // extensions - api.use('aldeed:collection2@3.5.0'); - api.use('reywood:publish-composite@1.8.7'); + api.use('aldeed:collection2@3.0.0'); + api.use('reywood:publish-composite@1.7.3'); api.use('natestrauser:publish-performant-counts@0.1.2'); // api.use('socialize:user-presence@1.0.4'); @@ -50,8 +50,8 @@ Package.onTest(function(api) { api.use('mongo'); api.use('random'); api.use('accounts-password'); - api.use('matb33:collection-hooks@1.3.1'); - api.use('alanning:roles@3.6.2'); + api.use('matb33:collection-hooks@1.1.2'); + api.use('alanning:roles@3.5.1'); api.use(['meteortesting:mocha']); From 38340bc7b454e1a09b102bdb4c6590e588c04b27 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sat, 30 Mar 2024 17:49:05 +0100 Subject: [PATCH 07/20] Update test dependencies & revert redis action version --- .github/workflows/test.yml | 4 ++-- package.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 894bc956..5680f80b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,14 +7,14 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - meteor: [1.12.2, 2.8.1, 2.13, 2.15] + meteor: [1.12.2, 2.6.1, 2.7.3, 2.8.1, 2.12, 2.15] redis-version: [4, 5, 6, 7] steps: - uses: actions/checkout@v4 - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 + uses: supercharge/redis-github-action@1.5.0 with: redis-version: ${{ matrix.redis-version }} diff --git a/package.js b/package.js index 48bebfa5..c1459c47 100644 --- a/package.js +++ b/package.js @@ -40,8 +40,8 @@ Package.onTest(function(api) { api.use('cultofcoders:redis-oplog'); // extensions - api.use('aldeed:collection2@3.0.0'); - api.use('reywood:publish-composite@1.7.3'); + api.use('aldeed:collection2@3.5.0'); + api.use('reywood:publish-composite@1.8.8'); api.use('natestrauser:publish-performant-counts@0.1.2'); // api.use('socialize:user-presence@1.0.4'); @@ -50,8 +50,8 @@ Package.onTest(function(api) { api.use('mongo'); api.use('random'); api.use('accounts-password'); - api.use('matb33:collection-hooks@1.1.2'); - api.use('alanning:roles@3.5.1'); + api.use('matb33:collection-hooks@1.3.1'); + api.use('alanning:roles@3.6.2'); api.use(['meteortesting:mocha']); From 08e2cb8b586e1a816e7c4e3fb25e25839f7b0c8b Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sat, 30 Mar 2024 19:56:02 +0100 Subject: [PATCH 08/20] More reverts --- .github/workflows/test.yml | 2 +- package.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5680f80b..7dc7efbd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - meteor: [1.12.2, 2.6.1, 2.7.3, 2.8.1, 2.12, 2.15] + meteor: [1.12.2, 2.8.1, 2.12, 2.15] redis-version: [4, 5, 6, 7] steps: diff --git a/package.js b/package.js index c1459c47..48bebfa5 100644 --- a/package.js +++ b/package.js @@ -40,8 +40,8 @@ Package.onTest(function(api) { api.use('cultofcoders:redis-oplog'); // extensions - api.use('aldeed:collection2@3.5.0'); - api.use('reywood:publish-composite@1.8.8'); + api.use('aldeed:collection2@3.0.0'); + api.use('reywood:publish-composite@1.7.3'); api.use('natestrauser:publish-performant-counts@0.1.2'); // api.use('socialize:user-presence@1.0.4'); @@ -50,8 +50,8 @@ Package.onTest(function(api) { api.use('mongo'); api.use('random'); api.use('accounts-password'); - api.use('matb33:collection-hooks@1.3.1'); - api.use('alanning:roles@3.6.2'); + api.use('matb33:collection-hooks@1.1.2'); + api.use('alanning:roles@3.5.1'); api.use(['meteortesting:mocha']); From 24b43a6339d7ba7100ae5aa696f194f04dcf9d21 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sat, 30 Mar 2024 19:58:38 +0100 Subject: [PATCH 09/20] Use simpl-schema compatible with Meteor in testing --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7dc7efbd..321a5cba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: run: | meteor create --release ${{ matrix.meteor }} --bare test cd test - meteor npm i --save puppeteer@1.18.1 simpl-schema chai + meteor npm i --save puppeteer@1.18.1 simpl-schema@1.13.1 chai - name: Test working-directory: ./test run: METEOR_PACKAGE_DIRS="../" TEST_BROWSER_DRIVER=puppeteer meteor test-packages --raw-logs --once --driver-package meteortesting:mocha ../ From 18e4dad6fcad6e518ef77b3ed91f3a834b5d7479 Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Fri, 20 Sep 2024 12:14:12 +0300 Subject: [PATCH 10/20] perf: Reduce GC pressure by avoiding EJSON.clone --- lib/cache/ObservableCollection.js | 5 +++-- lib/mongo/ObserveMultiplex.js | 19 ++++++++++++++----- package.js | 2 +- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/cache/ObservableCollection.js b/lib/cache/ObservableCollection.js index 127171df..5545b282 100644 --- a/lib/cache/ObservableCollection.js +++ b/lib/cache/ObservableCollection.js @@ -196,11 +196,12 @@ export default class ObservableCollection { * @param safe {Boolean} If this is set to true, it assumes that the object is cleaned */ add(doc, safe = false) { - doc = EJSON.clone(doc); - if (!safe) { if (this.fieldsArray) { + // projection function clones the document already. doc = this.projectFieldsOnDoc(doc); + } else { + doc = EJSON.clone(doc); } } diff --git a/lib/mongo/ObserveMultiplex.js b/lib/mongo/ObserveMultiplex.js index 53e0c103..3a80c64c 100644 --- a/lib/mongo/ObserveMultiplex.js +++ b/lib/mongo/ObserveMultiplex.js @@ -41,6 +41,15 @@ export function ObserveMultiplexer(options) { }); } +function strictFreeze(obj) { + return new Proxy(obj, { + set() { + throw new Error('Cannot mutate a frozen object'); + } + }); +} +const freezeObject = Meteor.isProduction ? Object.freeze : strictFreeze + Object.assign(ObserveMultiplexer.prototype, { addHandleAndSendInitialAdds: function(handle) { var self = this; @@ -213,16 +222,17 @@ Object.assign(ObserveMultiplexer.prototype, { // can continue until these are done. (But we do have to be careful to not // use a handle that got removed, because removeHandle does not use the // queue; thus, we iterate over an array of keys that we control.) + const safeArgs = freezeObject(args); + Object.keys(self._handles).forEach(function(handleId) { var handle = self._handles && self._handles[handleId]; if (!handle) return; var callback = handle['_' + callbackName]; - // clone arguments so that callbacks can mutate their arguments // We silence out removed exceptions if (callback === 'removed') { try { - callback.apply(null, EJSON.clone(args)); + callback.apply(null, safeArgs); } catch (e) { // Supressing `removed non-existent exceptions` if (!isRemovedNonExistent(e)) { @@ -230,7 +240,7 @@ Object.assign(ObserveMultiplexer.prototype, { } } } else { - callback && callback.apply(null, EJSON.clone(args)); + callback && callback.apply(null, safeArgs); } }); }); @@ -250,8 +260,7 @@ Object.assign(ObserveMultiplexer.prototype, { self._cache.docs.forEach(function(doc, id) { if (!_.has(self._handles, handle._id)) throw Error('handle got removed before sending initial adds!'); - var fields = EJSON.clone(doc); - delete fields._id; + const { _id, ...fields } = doc if (self._ordered) add(id, fields, null); // we're going in order, so add at end else add(id, fields); diff --git a/package.js b/package.js index 48bebfa5..3e0d4a19 100644 --- a/package.js +++ b/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'cultofcoders:redis-oplog', - version: '2.2.2', + version: '2.3.0', // Brief, one-line summary of the package. summary: "Replacement for Meteor's MongoDB oplog implementation", // URL to the Git repository containing the source code for this package. From 2c5f01627f720f4b6b7ce5ea0fd5e3cb320df1ac Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Fri, 27 Sep 2024 10:14:47 +0300 Subject: [PATCH 11/20] Remove Meteor 1.x from Meteor matrix --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 321a5cba..63fe4ecf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - meteor: [1.12.2, 2.8.1, 2.12, 2.15] + meteor: [2.8.1, 2.12, 2.15] redis-version: [4, 5, 6, 7] steps: From 790c41ec7c08bf6cdc0a8b7345a384721e635ae4 Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Mon, 14 Oct 2024 17:28:28 +0300 Subject: [PATCH 12/20] Try bump setup-meteor action --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 63fe4ecf..480c5dd8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: redis-version: ${{ matrix.redis-version }} - name: Setup Meteor - uses: meteorengineer/setup-meteor@v1 + uses: meteorengineer/setup-meteor@v2 with: meteor-release: ${{ matrix.meteor }} - name: Setup tests From 26d5ded98095640463dcdb23d3eea9cbf0ecd2bf Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Mon, 14 Oct 2024 17:31:39 +0300 Subject: [PATCH 13/20] Revert "Try bump setup-meteor action" This reverts commit 790c41ec7c08bf6cdc0a8b7345a384721e635ae4. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 480c5dd8..63fe4ecf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: redis-version: ${{ matrix.redis-version }} - name: Setup Meteor - uses: meteorengineer/setup-meteor@v2 + uses: meteorengineer/setup-meteor@v1 with: meteor-release: ${{ matrix.meteor }} - name: Setup tests From ffe6d57d84c547c65b01a421282641dfffff4a53 Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Mon, 14 Oct 2024 17:54:09 +0300 Subject: [PATCH 14/20] Pin chai version --- .github/workflows/test.yml | 2 +- .gitignore | 1 + CONTRIBUTING.md | 13 +++++++------ package.js | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 63fe4ecf..7b583557 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: run: | meteor create --release ${{ matrix.meteor }} --bare test cd test - meteor npm i --save puppeteer@1.18.1 simpl-schema@1.13.1 chai + meteor npm i --save puppeteer@1.18.1 simpl-schema@1.13.1 chai@4 - name: Test working-directory: ./test run: METEOR_PACKAGE_DIRS="../" TEST_BROWSER_DRIVER=puppeteer meteor test-packages --raw-logs --once --driver-package meteortesting:mocha ../ diff --git a/.gitignore b/.gitignore index 04913f99..3668c4f1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ npm-debug.log .idea/ test/ +node_modules/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d5584094..4f320225 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,8 @@ First, thank you for considering contributing to redis-oplog! It's people like you that make the open source community such a great community! 😊 -We welcome any type of contribution, not only code. You can help with +We welcome any type of contribution, not only code. You can help with + - **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open) - **Marketing**: writing blog posts, howto's, printing stickers, ... - **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ... @@ -13,7 +14,7 @@ We welcome any type of contribution, not only code. You can help with ## Your First Contribution -Working on your first Pull Request? You can learn how from this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). +Working on your first Pull Request? You can learn how from this _free_ series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). ## Submitting code @@ -26,14 +27,16 @@ It is also always helpful to have some context for your pull request. What was t ## Running Tests -### Setup +### Setup + ``` meteor create --release 1.12.2 --bare test cd test -meteor npm i --save puppeteer@1.18.1 simpl-schema chai +meteor npm i --save puppeteer@1.18.1 simpl-schema chai@4 ``` ### Start Tests + ``` METEOR_PACKAGE_DIRS="../" TEST_BROWSER_DRIVER=puppeteer meteor test-packages --raw-logs --once --driver-package meteortesting:mocha ../ ``` @@ -55,14 +58,12 @@ You can also reach us at hello@redis-oplog.opencollective.com. Thank you to all the people who have already contributed to redis-oplog! - ### Backers Thank you to all our backers! [[Become a backer](https://opencollective.com/redis-oplog#backer)] - ### Sponsors Thank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/redis-oplog#sponsor)) diff --git a/package.js b/package.js index 3e0d4a19..77e9d8d0 100644 --- a/package.js +++ b/package.js @@ -17,7 +17,7 @@ Npm.depends({ }); Package.onUse(function(api) { - api.versionsFrom(['1.12.2', '2.8.1', '2.13', '2.15']); + api.versionsFrom(['2.8.1', '2.13', '2.15']); api.use([ 'underscore', 'ecmascript', From b2100f4b27ad7694858353cc76cf6c89aa66cc66 Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Mon, 14 Oct 2024 17:58:19 +0300 Subject: [PATCH 15/20] Try another ubuntu --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7b583557..ad72a0bc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: test: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: meteor: [2.8.1, 2.12, 2.15] From f0c6dbed7413bbfa6e9918fa2e4492a50ceb032e Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Mon, 14 Oct 2024 18:00:45 +0300 Subject: [PATCH 16/20] Revert "Remove Meteor 1.x from Meteor matrix" This reverts commit 2c5f01627f720f4b6b7ce5ea0fd5e3cb320df1ac. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ad72a0bc..643238df 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - meteor: [2.8.1, 2.12, 2.15] + meteor: [1.12.2, 2.8.1, 2.12, 2.15] redis-version: [4, 5, 6, 7] steps: From ffc792c96c08caa4dc73974e7fdb3e63410e9af6 Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Mon, 14 Oct 2024 18:01:23 +0300 Subject: [PATCH 17/20] Add back 1.x version --- package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.js b/package.js index 77e9d8d0..3e0d4a19 100644 --- a/package.js +++ b/package.js @@ -17,7 +17,7 @@ Npm.depends({ }); Package.onUse(function(api) { - api.versionsFrom(['2.8.1', '2.13', '2.15']); + api.versionsFrom(['1.12.2', '2.8.1', '2.13', '2.15']); api.use([ 'underscore', 'ecmascript', From 14955af513e11cd11f81f0112978d2c0b8fddee3 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 26 Nov 2024 12:28:44 +0900 Subject: [PATCH 18/20] Try to trigger workflow --- .github/workflows/test.yml | 2 +- package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 643238df..1ab5a8da 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: redis-version: ${{ matrix.redis-version }} - name: Setup Meteor - uses: meteorengineer/setup-meteor@v1 + uses: meteorengineer/setup-meteor@v2 with: meteor-release: ${{ matrix.meteor }} - name: Setup tests diff --git a/package.js b/package.js index 3e0d4a19..a5ac9cc0 100644 --- a/package.js +++ b/package.js @@ -17,7 +17,7 @@ Npm.depends({ }); Package.onUse(function(api) { - api.versionsFrom(['1.12.2', '2.8.1', '2.13', '2.15']); + api.versionsFrom(['1.12.2', '2.8.1', '2.13', '2.15', '2.16']); api.use([ 'underscore', 'ecmascript', From 5a74a91f4d4c1841e3268ef9ffff9ff391e63cee Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 26 Nov 2024 12:35:10 +0900 Subject: [PATCH 19/20] Add changelog for v2.3 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1049d59..2652f16a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## CHANGELOG +### 2.3.0 + +- perf: reduce GC pressure by avoiding EJSON.clone [PR 14](https://github.com/Meteor-Community-Packages/redis-oplog/pull/14) by [@alisnic](https://github.com/alisnic) + ### 2.2.1 - Update `alanning:roles` to v3.5.1 From 6078c22339e1adb3da32dd52fc52efc5992d00db Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 26 Nov 2024 12:41:40 +0900 Subject: [PATCH 20/20] Published cultofcoders:redis-oplog@2.3.0 --- .versions | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/.versions b/.versions index 03eb65d5..0ef2c901 100644 --- a/.versions +++ b/.versions @@ -1,68 +1,69 @@ -accounts-base@2.2.8 -accounts-password@2.3.4 +accounts-base@2.2.11 +accounts-password@2.4.0 alanning:roles@3.5.1 aldeed:collection2@3.0.6 allow-deny@1.1.1 -babel-compiler@7.10.4 +babel-compiler@7.10.5 babel-runtime@1.5.1 base64@1.0.12 binary-heap@1.0.11 -boilerplate-generator@1.7.1 +boilerplate-generator@1.7.2 callback-hook@1.5.1 -check@1.3.2 -cultofcoders:redis-oplog@2.2.1 +check@1.4.1 +cultofcoders:redis-oplog@2.3.0 ddp@1.4.1 -ddp-client@2.6.1 -ddp-common@1.4.0 -ddp-rate-limiter@1.2.0 -ddp-server@2.6.2 +ddp-client@2.6.2 +ddp-common@1.4.1 +ddp-rate-limiter@1.2.1 +ddp-server@2.7.1 diff-sequence@1.1.2 dynamic-import@0.7.3 -ecmascript@0.16.7 +ecmascript@0.16.8 ecmascript-runtime@0.8.1 ecmascript-runtime-client@0.12.1 ecmascript-runtime-server@0.11.0 ejson@1.1.3 -email@2.2.5 -fetch@0.1.3 +email@2.2.6 +fetch@0.1.4 geojson-utils@1.0.11 id-map@1.1.1 inter-process-messaging@0.1.1 -local-test:cultofcoders:redis-oplog@2.2.1 +local-test:cultofcoders:redis-oplog@2.3.0 localstorage@1.2.0 -logging@1.3.2 +logging@1.3.4 matb33:collection-hooks@1.1.4 -meteor@1.11.3 +meteor@1.11.5 meteortesting:browser-tests@0.1.2 meteortesting:mocha@0.4.4 -minimongo@1.9.3 -modern-browsers@0.1.9 -modules@0.19.0 +minimongo@1.9.4 +modern-browsers@0.1.10 +modules@0.20.0 modules-runtime@0.13.1 -mongo@1.16.7 +mongo@1.16.10 mongo-decimal@0.1.3 mongo-dev-server@1.1.0 mongo-id@1.0.8 natestrauser:publish-performant-counts@0.1.2 -npm-mongo@4.16.0 +npm-mongo@4.17.2 ordered-dict@1.1.0 practicalmeteor:mocha-core@1.0.1 promise@0.12.2 raix:eventemitter@0.1.3 random@1.2.1 rate-limit@1.1.1 -react-fast-refresh@0.2.7 +react-fast-refresh@0.2.8 reactive-var@1.0.12 reload@1.3.1 retry@1.1.0 reywood:publish-composite@1.7.3 routepolicy@1.1.1 sha@1.0.9 -socket-stream-client@0.5.1 +socket-stream-client@0.5.2 tmeasday:check-npm-versions@0.3.2 -tracker@1.3.2 -underscore@1.0.13 +tracker@1.3.3 +typescript@4.9.5 +underscore@1.6.1 url@1.3.2 -webapp@1.13.5 +webapp@1.13.8 webapp-hashing@1.1.1 zodern:types@1.0.9