Version 0.8.0

Adding log_exception wrapper
Adding ProtectedDict
Adding hooks for Tasker main loop
Adding roman number functions
Adding directory_duplicates function
Adding integer to words functions
Adding option to enable scandir package walk instead of os.walk
Adding url_to_ip and ip_to_url functions
Adding hex_digest kwarg to file_hash
Adding args and kwargs to time_it and log_exception wrappers
Fixing file_hash checks by just passing to hashlib
Changing functions to remove 'all' from them, extract_all, archive_all, find_all_files and find_all_files_generator
Changing time_it function to use time.perf_counter on 3.3+ and time.clock on 2.6-3.2
Depreciation Warning: extract_all is changing to extract
Depreciation Warning: archive_all is changing to archive
Depreciation Warning: find_all_files is changing to find_files
Depreciation Warning: find_all_files_generator is changing to find_files_generator
Depreciation Warning: count_all_files is changing to count_files
Breaking change: Removing reuse wrapper
Breaking change: archive_all now detects type based off name, should supply extension to name
Breaking change: time_it message now takes args seconds, args, kwargs and does not allow positionals
Breaking change: os_tree will no longer return an empty dictionary on failure, but include the base directory supplied
Breaking change: renaming splice to cut

Hello @cdgriffith! Thanks for submitting the PR.

There are no PEP8 issues in the file reusables/__init__.py !

In the file reusables/browser.py, following                are the PEP8 issues :

Line 392:80: E501 line too long (80 > 79 characters)
Line 398:35: E127 continuation line over-indented for visual indent
Line 403:80: E501 line too long (80 > 79 characters)
Line 425:80: E501 line too long (80 > 79 characters)
Line 426:80: E501 line too long (80 > 79 characters)
Line 428:80: E501 line too long (80 > 79 characters)
Line 473:80: E501 line too long (80 > 79 characters)
Line 490:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file reusables/cli.py !

In the file reusables/dt.py, following                are the PEP8 issues :

Line 44:28: E128 continuation line under-indented for visual indent
Line 46:80: E501 line too long (81 > 79 characters)
Line 47:32: E128 continuation line under-indented for visual indent
Line 69:80: E501 line too long (80 > 79 characters)
Line 124:33: W292 no newline at end of file

In the file reusables/log.py, following                are the PEP8 issues :

Line 244:80: E501 line too long (80 > 79 characters)
Line 266:1: W391 blank line at end of file

In the file reusables/multiprocess_helpers.py, following                are the PEP8 issues :

Line 211:80: E501 line too long (80 > 79 characters)
Line 238:80: E501 line too long (80 > 79 characters)

In the file reusables/namespace.py, following                are the PEP8 issues :

Line 259:80: E501 line too long (80 > 79 characters)
Line 262:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file reusables/numbers.py !

In the file reusables/reusables.py, following                are the PEP8 issues :

Line 140:80: E501 line too long (80 > 79 characters)
Line 289:80: E501 line too long (80 > 79 characters)
Line 304:80: E501 line too long (80 > 79 characters)
Line 517:80: E501 line too long (80 > 79 characters)
Line 535:80: E501 line too long (80 > 79 characters)
Line 844:80: E501 line too long (80 > 79 characters)
Line 946:80: E501 line too long (80 > 79 characters)
Line 1075:1: W391 blank line at end of file

In the file reusables/shared_variables.py, following                are the PEP8 issues :

Line 30:17: E128 continuation line under-indented for visual indent
Line 31:17: E128 continuation line under-indented for visual indent
Line 32:17: E128 continuation line under-indented for visual indent
Line 50:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file reusables/web.py !

In the file reusables/wrappers.py, following                are the PEP8 issues :

Line 28:80: E501 line too long (80 > 79 characters)
Line 171:80: E501 line too long (80 > 79 characters)
Line 200:80: E501 line too long (80 > 79 characters)
Line 201:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file setup.py !

There are no PEP8 issues in the file test/__init__.py !

In the file test/test_numbers.py, following                are the PEP8 issues :

Line 8:80: E501 line too long (80 > 79 characters)
Line 18:80: E501 line too long (80 > 79 characters)
Line 34:80: E501 line too long (81 > 79 characters)

In the file test/test_reuse.py, following                are the PEP8 issues :

Line 30:80: E501 line too long (80 > 79 characters)
Line 36:80: E501 line too long (99 > 79 characters)
Line 43:80: E501 line too long (82 > 79 characters)
Line 44:80: E501 line too long (98 > 79 characters)
Line 48:52: E128 continuation line under-indented for visual indent
Line 60:80: E501 line too long (84 > 79 characters)
Line 61:80: E501 line too long (83 > 79 characters)
Line 92:80: E501 line too long (81 > 79 characters)
Line 116:80: E501 line too long (90 > 79 characters)
Line 120:80: E501 line too long (90 > 79 characters)
Line 124:80: E501 line too long (90 > 79 characters)
Line 128:52: E127 continuation line over-indented for visual indent
Line 142:80: E501 line too long (90 > 79 characters)
Line 175:80: E501 line too long (86 > 79 characters)
Line 182:80: E501 line too long (86 > 79 characters)
Line 190:80: E501 line too long (86 > 79 characters)
Line 192:80: E501 line too long (103 > 79 characters)
Line 230:80: E501 line too long (109 > 79 characters)
Line 231:80: E501 line too long (82 > 79 characters)
Line 246:80: E501 line too long (115 > 79 characters)
Line 254:80: E501 line too long (99 > 79 characters)
Line 276:80: E501 line too long (84 > 79 characters)
Line 277:80: E501 line too long (86 > 79 characters)
Line 280:80: E501 line too long (81 > 79 characters)
Line 320:80: E501 line too long (85 > 79 characters)
Line 325:80: E501 line too long (83 > 79 characters)
Line 327:80: E501 line too long (131 > 79 characters)
Line 328:80: E501 line too long (139 > 79 characters)
Line 329:80: E501 line too long (184 > 79 characters)
Line 430:80: E501 line too long (95 > 79 characters)
Line 431:80: E501 line too long (90 > 79 characters)
Line 435:80: E501 line too long (88 > 79 characters)
Line 495:80: E501 line too long (83 > 79 characters)
Line 499:80: E501 line too long (81 > 79 characters)

In the file test/test_reuse_logging.py, following                are the PEP8 issues :

Line 94:80: E501 line too long (85 > 79 characters)
Line 98:80: E501 line too long (87 > 79 characters)
Line 108:80: E501 line too long (85 > 79 characters)
Line 126:80: E501 line too long (83 > 79 characters)
Line 139:1: W391 blank line at end of file

In the file test/test_reuse_namespace.py, following                are the PEP8 issues :

Line 37:80: E501 line too long (97 > 79 characters)

In the file test/test_tasker.py, following                are the PEP8 issues :

Line 56:34: E231 missing whitespace after ','
Line 71:80: E501 line too long (113 > 79 characters)
Line 94:1: W391 blank line at end of file

There are no PEP8 issues in the file test/test_web.py !

In the file test/test_wrappers.py, following                are the PEP8 issues :

Line 30:5: E303 too many blank lines (2)
Line 143:1: E305 expected 2 blank lines after class or function definition, found 1

Hello @cdgriffith! Thanks for updating the PR.

There are no PEP8 issues in the file reusables/__init__.py !

In the file reusables/browser.py, following                are the PEP8 issues :

Line 392:80: E501 line too long (80 > 79 characters)
Line 398:35: E127 continuation line over-indented for visual indent
Line 403:80: E501 line too long (80 > 79 characters)
Line 425:80: E501 line too long (80 > 79 characters)
Line 426:80: E501 line too long (80 > 79 characters)
Line 428:80: E501 line too long (80 > 79 characters)
Line 473:80: E501 line too long (80 > 79 characters)
Line 490:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file reusables/cli.py !

In the file reusables/dt.py, following                are the PEP8 issues :

Line 44:28: E128 continuation line under-indented for visual indent
Line 46:80: E501 line too long (81 > 79 characters)
Line 47:32: E128 continuation line under-indented for visual indent
Line 69:80: E501 line too long (80 > 79 characters)
Line 124:33: W292 no newline at end of file

In the file reusables/log.py, following                are the PEP8 issues :

Line 244:80: E501 line too long (80 > 79 characters)
Line 266:1: W391 blank line at end of file

In the file reusables/multiprocess_helpers.py, following                are the PEP8 issues :

Line 211:80: E501 line too long (80 > 79 characters)
Line 238:80: E501 line too long (80 > 79 characters)

In the file reusables/namespace.py, following                are the PEP8 issues :

Line 259:80: E501 line too long (80 > 79 characters)
Line 262:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file reusables/numbers.py !

In the file reusables/reusables.py, following                are the PEP8 issues :

Line 140:80: E501 line too long (80 > 79 characters)
Line 289:80: E501 line too long (80 > 79 characters)
Line 304:80: E501 line too long (80 > 79 characters)
Line 517:80: E501 line too long (80 > 79 characters)
Line 535:80: E501 line too long (80 > 79 characters)
Line 844:80: E501 line too long (80 > 79 characters)
Line 946:80: E501 line too long (80 > 79 characters)
Line 1075:1: W391 blank line at end of file

In the file reusables/shared_variables.py, following                are the PEP8 issues :

Line 30:17: E128 continuation line under-indented for visual indent
Line 31:17: E128 continuation line under-indented for visual indent
Line 32:17: E128 continuation line under-indented for visual indent
Line 50:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file reusables/web.py !

In the file reusables/wrappers.py, following                are the PEP8 issues :

Line 28:80: E501 line too long (80 > 79 characters)
Line 171:80: E501 line too long (80 > 79 characters)
Line 200:80: E501 line too long (80 > 79 characters)
Line 201:80: E501 line too long (80 > 79 characters)

There are no PEP8 issues in the file setup.py !

There are no PEP8 issues in the file test/__init__.py !

In the file test/test_numbers.py, following                are the PEP8 issues :

Line 8:80: E501 line too long (80 > 79 characters)
Line 18:80: E501 line too long (80 > 79 characters)
Line 34:80: E501 line too long (81 > 79 characters)

In the file test/test_reuse.py, following                are the PEP8 issues :

Line 30:80: E501 line too long (80 > 79 characters)
Line 36:80: E501 line too long (99 > 79 characters)
Line 43:80: E501 line too long (82 > 79 characters)
Line 44:80: E501 line too long (98 > 79 characters)
Line 48:52: E128 continuation line under-indented for visual indent
Line 60:80: E501 line too long (84 > 79 characters)
Line 61:80: E501 line too long (83 > 79 characters)
Line 92:80: E501 line too long (81 > 79 characters)
Line 116:80: E501 line too long (90 > 79 characters)
Line 120:80: E501 line too long (90 > 79 characters)
Line 124:80: E501 line too long (90 > 79 characters)
Line 128:52: E127 continuation line over-indented for visual indent
Line 142:80: E501 line too long (90 > 79 characters)
Line 175:80: E501 line too long (86 > 79 characters)
Line 182:80: E501 line too long (86 > 79 characters)
Line 190:80: E501 line too long (86 > 79 characters)
Line 192:80: E501 line too long (103 > 79 characters)
Line 230:80: E501 line too long (109 > 79 characters)
Line 231:80: E501 line too long (82 > 79 characters)
Line 246:80: E501 line too long (115 > 79 characters)
Line 254:80: E501 line too long (99 > 79 characters)
Line 276:80: E501 line too long (84 > 79 characters)
Line 277:80: E501 line too long (86 > 79 characters)
Line 280:80: E501 line too long (81 > 79 characters)
Line 320:80: E501 line too long (85 > 79 characters)
Line 325:80: E501 line too long (83 > 79 characters)
Line 327:80: E501 line too long (131 > 79 characters)
Line 328:80: E501 line too long (139 > 79 characters)
Line 329:80: E501 line too long (184 > 79 characters)
Line 430:80: E501 line too long (95 > 79 characters)
Line 431:80: E501 line too long (90 > 79 characters)
Line 435:80: E501 line too long (88 > 79 characters)
Line 495:80: E501 line too long (83 > 79 characters)
Line 499:80: E501 line too long (81 > 79 characters)

In the file test/test_reuse_logging.py, following                are the PEP8 issues :

Line 94:80: E501 line too long (85 > 79 characters)
Line 98:80: E501 line too long (87 > 79 characters)
Line 108:80: E501 line too long (85 > 79 characters)
Line 126:80: E501 line too long (83 > 79 characters)
Line 139:1: W391 blank line at end of file

In the file test/test_reuse_namespace.py, following                are the PEP8 issues :

Line 37:80: E501 line too long (97 > 79 characters)

In the file test/test_tasker.py, following                are the PEP8 issues :

Line 56:34: E231 missing whitespace after ','
Line 71:80: E501 line too long (113 > 79 characters)
Line 94:1: W391 blank line at end of file

There are no PEP8 issues in the file test/test_web.py !

In the file test/test_wrappers.py, following                are the PEP8 issues :

Line 30:5: E303 too many blank lines (2)
Line 143:1: E305 expected 2 blank lines after class or function definition, found 1

Hello @cdgriffith! Thanks for updating the PR.

There are no PEP8 issues in the file reusables/__init__.py !

In the file reusables/browser.py, following                are the PEP8 issues :

Line 398:35: E127 continuation line over-indented for visual indent

There are no PEP8 issues in the file reusables/cli.py !

In the file reusables/dt.py, following                are the PEP8 issues :

Line 44:28: E128 continuation line under-indented for visual indent
Line 47:32: E128 continuation line under-indented for visual indent
Line 124:33: W292 no newline at end of file

In the file reusables/log.py, following                are the PEP8 issues :

Line 266:1: W391 blank line at end of file

There are no PEP8 issues in the file reusables/multiprocess_helpers.py !

There are no PEP8 issues in the file reusables/namespace.py !

There are no PEP8 issues in the file reusables/numbers.py !

In the file reusables/reusables.py, following                are the PEP8 issues :

Line 1075:1: W391 blank line at end of file

In the file reusables/shared_variables.py, following                are the PEP8 issues :

Line 30:17: E128 continuation line under-indented for visual indent
Line 31:17: E128 continuation line under-indented for visual indent
Line 32:17: E128 continuation line under-indented for visual indent

There are no PEP8 issues in the file reusables/web.py !

There are no PEP8 issues in the file reusables/wrappers.py !

There are no PEP8 issues in the file setup.py !

There are no PEP8 issues in the file test/__init__.py !

There are no PEP8 issues in the file test/test_numbers.py !

In the file test/test_reuse.py, following                are the PEP8 issues :

Line 48:52: E128 continuation line under-indented for visual indent
Line 128:52: E127 continuation line over-indented for visual indent
Line 192:101: E501 line too long (103 > 100 characters)
Line 230:101: E501 line too long (109 > 100 characters)
Line 246:101: E501 line too long (115 > 100 characters)
Line 327:101: E501 line too long (131 > 100 characters)
Line 328:101: E501 line too long (139 > 100 characters)
Line 329:101: E501 line too long (184 > 100 characters)

In the file test/test_reuse_logging.py, following                are the PEP8 issues :

Line 139:1: W391 blank line at end of file

There are no PEP8 issues in the file test/test_reuse_namespace.py !

In the file test/test_tasker.py, following                are the PEP8 issues :

Line 56:34: E231 missing whitespace after ','
Line 71:101: E501 line too long (113 > 100 characters)
Line 94:1: W391 blank line at end of file

There are no PEP8 issues in the file test/test_web.py !

In the file test/test_wrappers.py, following                are the PEP8 issues :

Line 30:5: E303 too many blank lines (2)
Line 143:1: E305 expected 2 blank lines after class or function definition, found 1

Changes Unknown when pulling 693d52a31f0e35f1c684bf72760919c083eb3137 on develop into ** on master**.


purge drone & harness CI docs

We have decided to remove Harness & Drone CI docs, because of:

Lack of support from the Harness team around how to make it work.
Lack of customer engagement around configuring LocalStack in either of the CI providers.
A focus on major CI providers alone — GitHub Actions, GitLab CI, CircleCI, Travis, and CodeBuild additionally

In future, we will link this Harness doc (https://developer.harness.io/docs/continuous-integration/use-ci/manage-dependencies/ci-localstack-background-step/) to document the integration, requiring the Harness team to maintain it.

Hi @aimurphy — Thanks for reaching out! The link will be on a consolidated page that we are putting up. The officially maintained integrations would be documented by us, while the rest would be linked to other pages (similar to the Harness documentation).


boundPath clientTls strict mode

Before this change, if a path did not match the provided prefixes
it would serve plaintext silently. Now if strict: true it errors
instead
Fixes #182

:star: :+1: lgtm
$ ./test-config.sh
...
Success!

:star: :stars: Looks good to me.


Add User Profile Section

Description
Add User Profile Section

Replace AuthTypeSelector with OptionSelector for general use.
Fix Scroll issue in GitSyncModal

Fixes # (issue)
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Manually in local

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:red_circle: Total coverage has decreased
// Code coverage diff between base branch:release and head branch: feature/git-userSettings-mock-ui

Status
File
% Stmts
% Branch
% Funcs
% Lines

:red_circle:
total
54.92 (0)
36.94 (0)
33.24 (-0.02)
55.51 (0.01)

:green_circle:
app/client/src/constants/messages.ts
70.38 (-0.08)
100 (0)
10.57 (-0.24)
77.07 (0.38)

Ignoring the cypress test which fails for import application.


Remove changelog, use release notes instead

https://github.com/mongodb/laravel-mongodb/pull/2668 again, consistently with other MongoDB PHP projects.

LGTM then, LGTM now. I'll let @jmikola chime in as well before approving.


Add Contextual Fair Data for Artists and Exhibitors to Fairs Header

Fails

:no_entry_sign:

No CHANGELOG added.

:no_entry_sign:

Missing Test Files:

src/lib/Scenes/Fair/Components/FairHeader/__tests__/index-tests.tsx

If these files are supposed to not exist, please update your PR body to include "#skip_new_tests".

:no_entry_sign:

🃏 FAIL in Fair-tests.tsx

renders properly

Snapshot has changed

Full message

Error: expect(value).toMatchSnapshot()
Received value does not match stored snapshot "renders properly 1".

Snapshot

Received

"SOFA CHICAGO 2018Nov 1st - Nov 4thSaveView more information  Hello WorldHoursHello World

"SOFA CHICAGO 2018Nov 1st - Nov 4thWorks by Tamás Ábel, Charlie Aldrich, and NaN others.From 303 Gallery, Acquavella Galleries, and 58 othersSaveView more information  Hello WorldHoursHello World
Find Exhibitors and ArtistsArtistsExhibitorsWorksHello WorldHello WorldFollowView all works  Hello WorldHello WorldFollowView all works  "
at _callee$ (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/tests/Fair-tests.tsx:30:23)
at tryCatch (/home/travis/build/artsy/emission/node_modules/regenerator-runtime/runtime.js:62:40)
at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/regenerator-runtime/runtime.js:296:22)
at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/regenerator-runtime/runtime.js:114:21)
at fulfilled (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/tests/Fair-tests.tsx:6:1)
at tryCallOne (/home/travis/build/artsy/emission/node_modules/promise/lib/core.js:37:12)
at /home/travis/build/artsy/emission/node_modules/promise/lib/core.js:123:15
at flush (/home/travis/build/artsy/emission/node_modules/asap/raw.js:50:29)
at process._tickCallback (internal/process/next_tick.js:61:11)

:no_entry_sign:

🃏 FAIL in FairDetail-tests.tsx

renders properly

Snapshot has changed

Full message

Error: expect(value).toMatchSnapshot()
Received value does not match stored snapshot "FairDetail renders properly 1".

Snapshot

Received

"SOFA CHICAGO 2018Nov 1st - Nov 4thSaveView more information  Hello WorldHoursHello World

"SOFA CHICAGO 2018Nov 1st - Nov 4thWorks by Tamás Ábel, Charlie Aldrich, and NaN others.From 303 Gallery, Acquavella Galleries, and 58 othersSaveView more information  Hello WorldHoursHello World
Find Exhibitors and ArtistsArtistsExhibitorsWorksHello WorldHello WorldFollowView all works  Hello WorldHello WorldFollowView all works  "
at _callee$ (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/Screens/tests/FairDetail-tests.tsx:31:25)
at tryCatch (/home/travis/build/artsy/emission/node_modules/regenerator-runtime/runtime.js:62:40)
at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/regenerator-runtime/runtime.js:296:22)
at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/regenerator-runtime/runtime.js:114:21)
at fulfilled (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/Screens/tests/FairDetail-tests.tsx:6:1)
at tryCallOne (/home/travis/build/artsy/emission/node_modules/promise/lib/core.js:37:12)
at /home/travis/build/artsy/emission/node_modules/promise/lib/core.js:123:15
at flush (/home/travis/build/artsy/emission/node_modules/asap/raw.js:50:29)
at process._tickCallback (internal/process/next_tick.js:61:11)

Warnings

:warning:

This PR comes from a fork, and won't get JS generated for QA testing this PR inside the Emission Example app.

  Generated by :no_entry_sign: dangerJS

@ashleyjelks - Looks great 👍


INT I-12882 potential fix for B-19883

Agility ticket
Issue ticket
Summary
An issue was opened when using the search and nothing was showing but a blue box

I think this might be because the button styling is hitting before the icon and so trying to see if setting the button to unstyled will fix this issue.

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

  Generated by :no_entry_sign: dangerJS against 513a41cb9b04420a78468a5efd3ac66738f87275


bower.json version property is incorrect in version 2.2.0

When you bower install angular-ui-tree and get the latest v2.2.0 the installed bower.json has the wrong version.
https://github.com/angular-ui-tree/angular-ui-tree/blob/v2.2.0/bower.json#L3

Seems like it was fixed in #357


Optionally Serialize Defaults?

We currently don't serialize the values of plugs that are left at default, which improves file size and loading performance.  For certain nodes however, we might want to serialize all plugs, because they are important settings that we don't want to risk changing, but we also may want to update the defaults for future shows - the example I'm thinking of is a custom render pass settings node that stores all our facility's default render settings.

I'd like to suggest that we close this. I would much prefer one clear rule for which plugs are serialised (the one we already have) over additional custom options which apply in only obscure cases. I also don't see that this mechanism would be all that useful, because to be able to use it, you need to be able to predict in advance that you'll want to change the default value, and to enable this behaviour in advance (before anyone ever saves a node). If you know that, then you might as well just set the right default in the first place.
We also now have the "user defaults" mechanism which allows hierarchical configs to override the apparent default values based on any criteria necessary. It seems that the example use case above (changing the default for future shows, while maintaining behaviour for current shows) is perfectly suited to being addressed with the user defaults mechanism.
Any objections to closing?

Since there haven't been any objections, I'm closing this.


DisnixWebService: rename to disnix-web-service

Description of changes
renamed to fit package naming conventions
split of https://github.com/NixOS/nixpkgs/pull/319219

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 320264 run on x86_64-linux 1

2 packages blacklisted:

nixos-install-tools
tests.nixos-functions.nixos-test

1 package built:

disnix-web-service

Result of nixpkgs-review pr 320264 run on x86_64-linux 1

2 packages blacklisted:

nixos-install-tools
tests.nixos-functions.nixos-test

1 package failed to build:

disnix-web-service

If you're still willing to submit this PR, please also incorporate this fix. The axis2 derivation moved the lib directory to webapps/axis2/WEB-INF/lib.
I was actually in the middle of PR-ing that very fix (was looking on Hydra for things to do) before stumbling upon this PR.
If you can do that alongside all your changes that'd be awesome + approve from me for merging.

Do not merge this package, there are some weird things about the result that make me believe it doesn't even work (lack of a DISNIX_SOAP_HOME for example, which is critical for the app).
I'll review these things shortly

Please rebase the PR

There are no merge conflicts, why rebase?

There are no merge conflicts, why rebase?

You had performed a fast-forward merge commit, which is not how Nixpkgs prefers to have PRs keep up with master. Instead, a git pull --rebase is the preferred way.

You probably mean the commit that was me committing the suggestion of Scrumplex directly on GitHub.

You probably mean the commit that was me committing the suggestion of Scrumplex directly on GitHub.

Oh is that so, my apologies for the confusion, I've been reviewing a few different PRs they tend to get jumbled up in my head

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/2071


Migrate away from prettytable rs

@cole-h suggested we try this crate out. It seems to work well!

Ah, I see a CSV issue!


Add Docker image support multi OS archs with document update

What type of PR is this?
Update Dockerfile to support different OS archs support, and add buildx command sample for build amd64 and arm64 images in README.
/kind documentation
/kind feature
What this PR does / why we need it:
More requirements for ARM support.

/ok-to-test
What version of docker did you use to test this?

Tested in 20.10.11

I'm a little confused how this compares/contrasts with https://github.com/kubernetes-sigs/gateway-api/pull/1402. Have you see this one? It would seem that with #1402 we would simply have a multi-arch image rather than having the ability to build a single image for separate architectures. What are your thoughts?

I'm a little confused how this compares/contrasts with #1402. Have you see this one? It would seem that with #1402 we would simply have a multi-arch image rather than having the ability to build a single image for separate architectures. What are your thoughts?

#1402 is same as this PR, I think the #1402 is OK for support multi OS Archs, let close this after the #1402 done.
And use buildx to build images by manifest is better way.

Hey @wilsonwu, since #1402 has gone stale, I think we can use yours. Do you mind updating this PR to include hack/build-and-push.sh updates as well?

Hey @wilsonwu, since #1402 has gone stale, I think we can use yours. Do you mind updating this PR to include hack/build-and-push.sh updates as well?

No problem, I can update the script for docker image build ASAP.

/ok-to-test


Lakectl commands don't not take environment variables into account

Any Lakectl command except for the "config" command not taking environment variables into account.
Steps to reproduce:

run lakefs locally
run docker with the lakectl image and feed the config paraeters as environment variables

docker run -e LAKECTL_CREDENTIALS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE -e LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -e LAKECTL_SERVER_ENDPOINT_URL=http://<IP_ADDRESS>:8000 -it treeverse/lakectl repo list

get error:

Error executing command: Get "/api/v1/repositories?after=&amount=100": unsupported protocol scheme ""

Testing with command running in the shell works nicely.  This looks very much like a Docker issue (quite possibly related to our packaging or to how we run lakectl).
Some investigation: Inside a container, <IP_ADDRESS>:8000 is not wired to the host <IP_ADDRESS>:8000 by default (AFAIU).  Wire it up by running docker --network host, at which point you can see using nc that the port 8000 server is indeed accessible.  But the command still does not work.
Note that the config is irrelevant here: I can reproduce with
docker run --network host -e LAKECTL_CREDENTIALS_ACCESS_KEY_ID=AKIAsomething -e LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY=some/SECRET/example/KEY treeverse/lakectl --base-uri http://<IP_ADDRESS>:8000 repo list

which fails with the exact same error.
I recommend trying to narrow down why we cannot connect from inside the container to a locally-running daemon.  Or write it down to the difficulties of connecting from within a Docker container to loopback.
A more typical experience might be to run lakefs inside one container and lakectl in another.  Then they should be cleanly wired together -- and if they do not, this is a very real issue.


Build php longtime not response in checking command to parse /usr/bin/nm -B output from cc object...

Your Windows build number:  17128.1

What you're doing and what's happening:  (Copy&paste specific commands and their output, or include screen shots)

I build php in WSL
Configuring libtool
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking how to recognize dependent libraries... pass_all
checking how to run the C++ preprocessor... g++ -E
checking the maximum length of command line arguments... 1572864
checking command to parse /usr/bin/nm -B output from cc object...

longtime no response

PHP 7.2.3 7.2.4 all not work

17128.1

No way to tell for sure but good chance that's #3034 #3039 et al. You can confirm by trying to kill it from another terminal or from taskman, and if it won't die that's the problem.

17133.1 fix


Error in python3 setup.py gen_protos

Hello,
When I try run  python3 setup.py gen_protos
error info:
running gen_protos
generating proto file: mediapipe/framework/test_calculators_pb2.py
google/protobuf/any.proto: File not found.
mediapipe/framework/calculator.proto: Import "google/protobuf/any.proto" was not found or had errors.
mediapipe/framework/calculator.proto:273:14: "google.protobuf.Any" is not defined.
mediapipe/framework/calculator.proto:429:12: "google.protobuf.Any" is not defined.
mediapipe/framework/test_calculators.proto: Import "mediapipe/framework/calculator.proto" was not found or had errors.
mediapipe/framework/test_calculators.proto:26:10: "mediapipe.CalculatorOptions" seems to be defined in "mediapipe/framework/calculator_options.proto", which is not imported by "mediapipe/framework/test_calculators.proto".  To use it here, please add the necessary import.

I don't understand where is the problem

Hi @ZhiyuXu0124, Could you please provide the steps to reproduce the above issue. Thanks!

I missed libprotobuf-dev package installation, the problem is solved after installation

漏libprotobuf-dev包安装，安装后问题解决

请问下在哪里安装libprotobuf-dev包？


Accessibility:MAC: Keyboard: MAS4.2.1: "+" (Add Nuget Package button) which is at the bottom of the left pane is not showing the tooltip once user traverse the same using keyboard.

Steps to Reproduce
1.Launch Xamarin Workbook application and select platform and create a new workbook.
2. Navigate to "+" button which is at the bottom of the left pane of the workbooks window using keyboard. and observe the tooltip.
Expected Behavior
Tooltip should be displayed once keyboard focus is traversing the "+" button.
Actual Behavior
Tooltip is not getting appeared once user traverse using keyboard.
Note: This "+" (Add Nuget Package button) is sometimes accessible and sometimes not.
So this is inconsistent behaviour of the keyboard for this "+" button.
User Impact:
Keyboard user won't be able to know the purpose of the button, until its tooltip is not defined correctly.
Environment
MAC: macOS High Sierra [10.13.4]
Workbook - 1.4 (master/b3f92f9)We saved this conversation. You'll see it soon in the Conversations tab in Skype for Business and in the Conversation History folder in Outlook.
Log File

Please add the following labels to this bug:
A11yMAS
Accessibility
MAS4.2.1
Xamarin-Workbook-MAC
Wipro

Exemption Approved - 1816


Update set-up-atp-safe-links-policies.md

Added details on what ATP SAfe links do and when it rewrites the URL and what happens when this is forwarded or replied to

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/2913

@MSFTTracyP Please merge this PR. Thanks


Tools 2752 conf support

Codecov Report
Attention: 4 lines in your changes are missing coverage. Please review.

Comparison is base (cfa5d8c) 78.12% compared to head (e28c015) 77.91%.

Files
Patch %
Lines

cmd/root.go
75.00%
2 Missing and 2 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #34      +/-   ##
==========================================
- Coverage   78.12%   77.91%   -0.21%
==========================================
  Files          14       14
  Lines         937      942       +5
==========================================
+ Hits          732      734       +2
- Misses        139      141       +2
- Partials       66       67       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


PyOCD incorrectly truncates device Serial Numbers starting with '0'

Serial Numbers can begin with zeros, in our investigation into this it's common for JLINK devices to have serial numbers of this form:

000820102635
000682561275

Listing devices with PyOCD seems to truncate these serial numbers and removes the leading zeros (mbed-ls lists them correctly).
This has a knock-on effect that when specifying a device uid for an operation, the device isn't found even though a valid serial number is passed. e.g.:
> pyocd flash --uid<PHONE_NUMBER>35 ...

Afaik, there's nothing that can be done about this. It's looks like it is baked into the J-Link SDK API, which uses an int for the serial number.

Notice that the Segger tools all present the serial number without leading zeroes. This is from JLinkConfig.app:

Hi guys,
I'd like to bump up this issue. The same situation: my jlink probes have leading zeroes in their id's, e.g.
$ dmesg
...
[38141.592962] usb 1-1.2: Product: J-Link
[38141.592963] usb 1-1.2: Manufacturer: SEGGER
[38141.592964] usb 1-1.2: SerialNumber:<PHONE_NUMBER>16

When I try to create a session with the probe by providing unique_id it fails
Traceback (most recent call last):
  File "xxx/venv/lib/python3.8/site-packages/pyocd/probe/jlink_probe.py", line 168, in open
    self._link.open(self._serial_number_int)
  File "xxx/venv/lib/python3.8/site-packages/pylink/jlink.py", line 723, in open
    raise errors.JLinkException('No emulator with serial number %s found.' % serial_no)
pylink.errors.JLinkException: No emulator with serial number 261002616 found.

@dnsglk How are you specifying the serial number on the pyocd command line? There may be two separate issues here. The JLinkException error is interesting since it doesn't include leading zeroes.
I just tested on macOS that using (for my nRF5340-DK) -u 960177309 or any unique subset of the serial number works fine. Leading zeroes aren't currently supported because the J-Link driver itself does not use leading zeroes, as evinced by the JLinkConfig screenshot above. It's apparently only the USB device serial number that has leading zeroes.

@flit I'm doing it programmatically. Take a probe from the list obtained via API and use in another API call. Roughly:
probes = ConnectHelper.get_all_connected_probes()
with ConnectHelper.session_with_chosen_probe(unique_id = probes[0].unique_id) as session:
   ...

Ok, thanks. I'll replicate that and test on both Mac and Linux.


[BUG] GSE 3 cannot add, create, edit or view macros

Describe the bug
As of GSE 3.0.04 you cannot create or edit macros. The GSE 3 version before this worked. Whatever happened with 3.0.04 seems to have cause this. Screenshot below:
image
Tried both updating and fresh install
-Update to current GSE 3.0.04
-Complete fresh install of addon and WTF folder cleared. Same issue. No other addons loaded
Desktop (please complete the following information):

OS: Win10
TBC Classic, and Retail 9.1

GSE Version

Version: GSE 3.0.04
Downloaded From: WoWUP

@TimothyLuke Looks like this is related to my last comments on #886. /gse was working for me in 3.0.03. May be ralets to the commits e470b91ebe75278189412b8c0e900776e2d2baf7 and/or e11cb96a83a10c8d57a774b03f47e55555ffcada

3x GSE_GUI\Editor.lua:770: attempt to call method 'SetBackdrop' (a nil value)
[string "@GSE_GUI\Editor.lua"]:770: in function GUIDrawMacroEditor' [string "@GSE_GUI\Editor.lua"]:2126: in function GUISelectEditorTab'
[string "@GSE_GUI\Editor.lua"]:202: in function <GSE_GUI\Editor.lua:201>
[string "=[C]"]: ?
[string "@GSE\Lib\AceGUI-3.0\AceGUI-3.0-41.lua"]:72: in function <GSE\Lib\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@GSE\Lib\AceGUI-3.0\AceGUI-3.0-41.lua"]:306: in function Fire' [string "@GSE\Lib\AceGUI-3.0-41\widgets\AceGUIContainer-TabGroup.lua"]:156: in function SelectTab'
[string "@GSE\Lib\AceGUI-3.0-41\widgets\AceGUIContainer-TabGroup.lua"]:67: in function <...\Lib\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua:64>

Completely reinstalling it with 0 other addons after removing WTF and Interface folders (clean install) now results in /gs and clicking on the minimap button to open the editor to do nothing. no editor even opens now.

Are any of you guys running ElvUI?

I fixed the elv thing with #831 and broke this for others

@TimothyLuke No ElvUI here, but I see Bartender4 ACE libs and Bagnon in the stack trace when typing '/gse'

Are any of you guys running ElvUI?

No to ElvUI for me.

Fixed in 3.0.07


Adding CyberpionActionItems_CL custom table

Adding CyberpionActionItems_CL custom table to .script/tests/KqlvalidationsTests/CustomTables as mentioned in Azure-Sentinel ReadMe to resolve the KQLValidation error - Template Id:8e0403b1-07f8-4865-b2e9-74d1e83200a4 is not valid Errors:The name 'CyberpionActionItems_CL' does not refer to any known table, tabular variable or function., Code: 'KS204', Severity: 'Error', Location: '116..139',The name 'CyberpionActionItems_CL' does not refer to any known table, tabular variable or function., Code: 'KS204', Severity: 'Error', Location: '250..273'
Fixes #
Proposed Changes

Azure.Azure-Sentinel (KqlValidations) still failed, does this PR fix the issue?

Azure.Azure-Sentinel (KqlValidations) still failed, does this PR fix the issue?

Adding custom table schema was included as part of the PR, hence closing this PR.

Adding custom table schema was included as part of the PR, hence closing this PR.


Record shard and segment allocation

Shard allocation can be critical to identifying potential performance issues e.g. hot spots.
We need a means to record which shards have been allocated to which nodes and their segment count. Ideally we also record the index and data stream to which these shards belong.
A runner might be sufficient initially, but given shard allocation changes during the lifetime of a test e.g. as indices rollover, a telemetry device similar to node stats would be preferable.

Let's implement this as a telemetry device.


HBASE-27317 : Storefiletracking : Rectifying the option for columnfamily as mandatory

This is to rectify the columnfamily argument from optional to mandatory. In the sysout message it is wrongly put as optional parameter but it is actually a mandatory parameter.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m  5s
Docker mode activated.


Use farm name instead of the shared farm in the node selection

Verified,
Devnet, 5b50681.
TC2461 - Node details in Load Nodes List
The farm name is now displayed on the node.

Verified:

Mainnet (Ninja)
2.3.0-alpha6


k8s 1.29 support for vsphere-csi

Add k8s 1.29 support for vsphere-csi

blocked on https://github.com/rancher/rancher/issues/45884

Chart is working as expected on k8s v1.29.6-rancher1-1. Hence closing the issue.


Look and feel on my mac

I have a rather odd issue the look and feel of the editor on my extended monitor is rather hazy. on my mac screen it looks good.

This is on my extended screen; though not pretty clear on the image it looks blurry on my extended screen

Hi and thanks for reporting this issue!
Do your monitors use different UI scaling values?

I confirm the issue, all clear on the main laptop screen, completely blurry on external monitors
Laptop screen is high DPI (3024x1964, 14")
External monitors are not (1920x1080, 27")

This should be fixed now by the latest v0.1.0 release.


Only use docker assigned port mappings if necessary

I need to have a specific mapping for port 22 because of various working constraints, but because there is a -p 22 at the beginning of a docker run command, the randomly assigned port gets preference. This checks if there is a port 22 mapping, and only adds -p 22 if necessary.

+1 this is a much needed feature!

This is not possible to any useful extent. It would only allow a single instance to run at once, and almost every server will have the host sshd already listening on port 22. While there is some niche case where this could still be useful, but it's not enough for me to add the feature. Check out kitchen-dokken instead since that uses docker under the hood but uses direct access via docker exec instead of launching an SSH daemon.


How to get selected coordinates and address?

Hello,
Could you please add to the example how to get the coordinates that the user selected and the address returned by Google (or Huawei? )

Hi @giorgio79
Thanks for asking
you have two options to get the coordinates :
1- onCameraMove callback : it gives you the direct access on the coordinates of the middle of the camera , which is in our situation the selected location
2- if you are using selectedPlaceWidgetBuilder callback : you can use PickResultModel? selectedPlace, it has an instance of Geometry class  which contains the location
Hope this is what are you looking for

Thank you so much. Perfect :)


AutoTrain issues on Mac

@AceHack commented on Tue Oct 08 2019
When running auto-train I get errors like the following:
I'm wondering how I can fix these errors.  Thanks.
mlnet auto-train --task binary-classification --dataset ./training_data_v2.csv --label-column-name Class --max-exploration-time 3600 --verbosity=diag --has-header true --name Model
System.DllNotFoundException: Unable to load shared library 'lib_lightgbm' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblib_lightgbm, 1): image not found
at Microsoft.ML.Trainers.LightGbm.WrappedLightGbmInterface.DatasetCreateFromSampledColumn(IntPtr sampleValuePerColumn, IntPtr sampleIndicesPerColumn, Int32 numCol, Int32[] sampleNonZeroCntPerColumn, Int32 numSampleRow, Int32 numTotalRow, String parameters, IntPtr& ret)
at Microsoft.ML.Trainers.LightGbm.Dataset..ctor(Double[][] sampleValuePerColumn, Int32[][] sampleIndicesPerColumn, Int32 numCol, Int32[] sampleNonZeroCntPerColumn, Int32 numSampleRow, Int32 numTotalRow, String param, Single[] labels, Single[] weights, Int32[] groups)
at Microsoft.ML.Trainers.LightGbm.LightGbmTrainerBase4.CreateDatasetFromSamplingData(IChannel ch, Factory factory, Int32 numRow, String param, Single[] labels, Single[] weights, Int32[] groups, CategoricalMetaData catMetaData, Dataset& dataset)    at Microsoft.ML.Trainers.LightGbm.LightGbmTrainerBase4.LoadTrainingData(IChannel ch, RoleMappedData trainData, CategoricalMetaData& catMetaData)
at Microsoft.ML.Trainers.LightGbm.LightGbmTrainerBase4.TrainModelCore(TrainContext context)    at Microsoft.ML.Trainers.TrainerEstimatorBase2.TrainTransformer(IDataView trainSet, IDataView validationSet, IPredictor initPredictor)
at Microsoft.ML.Data.EstimatorChain1.Fit(IDataView input)    at Microsoft.ML.AutoML.RunnerUtil.TrainAndScorePipeline[TMetrics](MLContext context, SuggestedPipeline pipeline, IDataView trainData, IDataView validData, String labelColumn, IMetricsAgent1 metricsAgent, ITransformer preprocessorTransform, FileInfo modelFileInfo, DataViewSchema modelInputSchema, AutoMLLogger logger)
[Source=AutoML, Kind=Trace] Evaluating pipeline xf=TextFeaturizing{ col=Title_tf:Title} xf=ColumnCopying{ col=Features:Title_tf} xf=Normalizing{ col=Features:Features} tr=SymbolicSgdLogisticRegressionBinary{}  cache=+
[Source=AutoML, Kind=Error] Pipeline crashed: xf=TextFeaturizing{ col=Title_tf:Title} xf=ColumnCopying{ col=Features:Title_tf} xf=Normalizing{ col=Features:Features} tr=SymbolicSgdLogisticRegressionBinary{}  cache=+ . Exception: System.TypeInitializationException: The type initializer for 'Native' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'MklImports' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(libMklImports, 1): image not found
at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.Native.ErrorMessage(Int32 status)
at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.Native..cctor()
--- End of inner exception stack trace ---
at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.Native.LearnAll(InputDataManager inputDataManager, Boolean tuneLR, Single& lr, Single l2Const, Single piw, Span1 weightVector, Single& bias, Int32 numFeatres, Int32 numPasses, Int32 numThreads, Boolean tuneNumLocIter, Int32& numLocIter, Single tolerance, Boolean needShuffle, Boolean shouldInitialize, GCHandle stateGCHandle, ChannelCallBack info)    at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.TrainCore(IChannel ch, RoleMappedData data, LinearModelParameters predictor, Int32 weightSetCount)    at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.TrainModelCore(TrainContext context)    at Microsoft.ML.Trainers.TrainerEstimatorBase2.TrainTransformer(IDataView trainSet, IDataView validationSet, IPredictor initPredictor)
at Microsoft.ML.Data.EstimatorChain1.Fit(IDataView input)    at Microsoft.ML.AutoML.RunnerUtil.TrainAndScorePipeline[TMetrics](MLContext context, SuggestedPipeline pipeline, IDataView trainData, IDataView validData, String labelColumn, IMetricsAgent1 metricsAgent, ITransformer preprocessorTransform, FileInfo modelFileInfo, DataViewSchema modelInputSchema, AutoMLLogger logger)
[Source=AutoML, Kind=Trace] 4	NaN	00:00:06.7512942	xf=TextFeaturizing{ col=Title_tf:Title} xf=ColumnCopying{ col=Features:Title_tf} xf=Normalizing{ col=Features:Features} tr=SymbolicSgdLogisticRegressionBinary{}  cache=+
|4    SymbolicSgdLogisticRegressionBinary       NaN      NaN      NaN       NaN       6.8          0             |
System.TypeInitializationException: The type initializer for 'Native' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'MklImports' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(libMklImports, 1): image not found
at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.Native.ErrorMessage(Int32 status)
at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.Native..cctor()
--- End of inner exception stack trace ---
at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.Native.LearnAll(InputDataManager inputDataManager, Boolean tuneLR, Single& lr, Single l2Const, Single piw, Span1 weightVector, Single& bias, Int32 numFeatres, Int32 numPasses, Int32 numThreads, Boolean tuneNumLocIter, Int32& numLocIter, Single tolerance, Boolean needShuffle, Boolean shouldInitialize, GCHandle stateGCHandle, ChannelCallBack info)    at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.TrainCore(IChannel ch, RoleMappedData data, LinearModelParameters predictor, Int32 weightSetCount)    at Microsoft.ML.Trainers.SymbolicSgdLogisticRegressionBinaryTrainer.TrainModelCore(TrainContext context)    at Microsoft.ML.Trainers.TrainerEstimatorBase2.TrainTransformer(IDataView trainSet, IDataView validationSet, IPredictor initPredictor)
at Microsoft.ML.Data.EstimatorChain1.Fit(IDataView input)    at Microsoft.ML.AutoML.RunnerUtil.TrainAndScorePipeline[TMetrics](MLContext context, SuggestedPipeline pipeline, IDataView trainData, IDataView validData, String labelColumn, IMetricsAgent1 metricsAgent, ITransformer preprocessorTransform, FileInfo modelFileInfo, DataViewSchema modelInputSchema, AutoMLLogger logger)
[Source=AutoML, Kind=Trace] Evaluating pipeline xf=TextFeaturizing{ col=Title_tf:Title} xf=ColumnCopying{ col=Features:Title_tf} xf=Normalizing{ col=Features:Features} tr=LinearSvmBinary{}  cache=+
[Source=AutoML, Kind=Trace] 5	0.999542783117267	00:00:10.1887405	xf=TextFeaturizing{ col=Title_tf:Title} xf=ColumnCopying{ col=Features:Title_tf} xf=Normalizing{ col=Features:Features} tr=LinearSvmBinary{}  cache=+
|5    LinearSvmBinary                        0.9995   1.0000   1.0000    0.9997      10.2          0             |
[Source=AutoML, Kind=Trace] Evaluating pipeline xf=TextFeaturizing{ col=Title_tf:Title} xf=ColumnCopying{ col=Features:Title_tf} tr=FastTreeBinary{}  cache=-

@AceHack commented on Wed Oct 09 2019
Part of this has been fixed, I found this issue
https://github.com/dotnet/machinelearning/issues/1282
and the workaround from that story fixes one of these exceptions.

$ brew install libomp

@AceHack commented on Wed Oct 09 2019
I tried installing MKL from https://software.seek.intel.com/performance-libraries
but it did not appear to fix the issue

@AceHack commented on Wed Oct 09 2019
I've tried following the instructions here too, no luck
https://github.com/firemodels/fds/wiki/Linking-to-Intel-Math-Kernel-Libraries-in-Linux-and-OSX
https://github.com/firemodels/fds/wiki/Compiling-FDS-with-GNU-Fortran-in-Mac-OSX

@AceHack commented on Wed Oct 09 2019
Nothing here seems to help as well
https://github.com/dotnet/machinelearning/issues/3903

Looking into this issue.

Thanks

@AceHack, sorry for the extremely long delay on this item. We think this has been fixed in the latest release of the CLI. If you're still experiencing issues please make sure you're targeting x64.
If you're still seeing problems please let me know.

can we get this fixed for M1s now?

Still facing this issue on macOS arm64. Worked around it by installing lightgbm from homebrew and copying over the dylib:
cp /opt/homebrew/Cellar/lightgbm/4.4.0/lib/lib_lightgbm.dylib ~/.dotnet/tools/.store/mlnet-osx-arm64/16.18.2/mlnet-osx-arm64/16.18.2/tools/net8.0/any/
Running


Add $length to the repeat.for utilities

I'm submitting a feature request

Library Version:
1.3.1

Language:
all

Current behavior:
In the utilities for repeat.for we have $first,$index, $last, $middle, $odd and $even.
Expected/desired behavior:
Could we add a $length which contains the usable length (after applying valueConverters that filter the iterable items)

My understanding is that we only need to add the overrideContext.$length = length; in the
https://github.com/aurelia/templating-resources/blob/master/src/repeat-utilities.js#L54-L65 since the length in there is already the filtered one.

@EisenbergEffect i can provide the PM if you wish to add this enhancement.

Go for it! :)

Look like it requires to remove some optimizations from the array-repeat-strategy file.
When mutating the array (push/pop/splice) the current code identifies the lowest index that was mutated and updates the overrideContext only for the elements from that point on.
To allow for $length we need to update the overrideContext for all elements in the array since it affects all of them (other wise the new tests i added fail).
In my commits (https://github.com/gpetrioli/templating-resources/blob/add-length-to-repeat-utilities/src/array-repeat-strategy.js#L227-L235) i have updateOverrideContexts(repeat.views(), 0); instead of updateOverrideContexts(repeat.views(), spliceIndexLow); but i want to ask if i should remove the whole splice index calculation since they are not used anywhere else (and these functions are not exported)

this might be a better fit for the "let" element we've been planning:
<let filtered="myArray | filter | sort | etc"></let>

${$index} of ${filtered.length}

https://github.com/aurelia/templating-resources/issues/171

@jdanyow  wasn't aware of this. That is pretty cool.
Can/will it support multiple attribute/variables ?  <let a="something | filter | sort" b="somethingelse | filter" c="..."></let> ?
Also any estimation on when this feature might be available ?

I think @gpetrioli comment points to why .sort() mangles stuff.
https://github.com/aurelia/framework/issues/721
Other than that - stale issue

Will close this since we have a let implementation in progress that seems like it should be able to handle this scenario.

any status on this?


ArrowInvalid occurs while running Dataset.map() function for DPRContext

It seems to fail the final batch ):
steps to reproduce:
from datasets import load_dataset
from elasticsearch import Elasticsearch
import torch
from transformers import file_utils, set_seed
from transformers import DPRContextEncoder, DPRContextEncoderTokenizerFast
MAX_SEQ_LENGTH = 256
ctx_encoder = DPRContextEncoder.from_pretrained("facebook/dpr-ctx_encoder-single-nq-base", cache_dir="../datasets/")
ctx_tokenizer = DPRContextEncoderTokenizerFast.from_pretrained(
    "facebook/dpr-ctx_encoder-single-nq-base",
    cache_dir="..datasets/"
)

dataset = load_dataset('text',
                data_files='data/raw/ARC_Corpus.txt',
                cache_dir='../datasets')

torch.set_grad_enabled(False)
ds_with_embeddings = dataset.map(
    lambda example: {
        'embeddings': ctx_encoder(
            **ctx_tokenizer(
                example["text"],
                padding='max_length',
                truncation=True,
                max_length=MAX_SEQ_LENGTH,
                return_tensors="pt"
            )
        )[0][0].numpy(),
    },
    batched=True,
    load_from_cache_file=False,
    batch_size=1000
)

ARC Corpus can be obtained from here
And then the error:
---------------------------------------------------------------------------
ArrowInvalid                              Traceback (most recent call last)
<ipython-input-13-67d139bb2ed3> in <module>
     14     batched=True,
     15     load_from_cache_file=False,
---> 16     batch_size=1000
     17 )

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/dataset_dict.py in map(self, function, with_indices, input_columns, batched, batch_size, remove_columns, keep_in_memory, load_from_cache_file, cache_file_names, writer_batch_size, features, disable_nullable, fn_kwargs, num_proc)
    301                     num_proc=num_proc,
    302                 )
--> 303                 for k, dataset in self.items()
    304             }
    305         )

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/dataset_dict.py in <dictcomp>(.0)
    301                     num_proc=num_proc,
    302                 )
--> 303                 for k, dataset in self.items()
    304             }
    305         )

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/arrow_dataset.py in map(self, function, with_indices, input_columns, batched, batch_size, drop_last_batch, remove_columns, keep_in_memory, load_from_cache_file, cache_file_name, writer_batch_size, features, disable_nullable, fn_kwargs, num_proc, suffix_template, new_fingerprint)
   1257                 fn_kwargs=fn_kwargs,
   1258                 new_fingerprint=new_fingerprint,
-> 1259                 update_data=update_data,
   1260             )
   1261         else:

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/arrow_dataset.py in wrapper(*args, **kwargs)
    155         }
    156         # apply actual function
--> 157         out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
    158         datasets: List["Dataset"] = list(out.values()) if isinstance(out, dict) else [out]
    159         # re-apply format to the output

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/fingerprint.py in wrapper(*args, **kwargs)
    161             # Call actual function
    162
--> 163             out = func(self, *args, **kwargs)
    164
    165             # Update fingerprint of in-place transforms + update in-place history of transforms

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/arrow_dataset.py in _map_single(self, function, with_indices, input_columns, batched, batch_size, drop_last_batch, remove_columns, keep_in_memory, load_from_cache_file, cache_file_name, writer_batch_size, features, disable_nullable, fn_kwargs, new_fingerprint, rank, offset, update_data)
   1526                     if update_data:
   1527                         batch = cast_to_python_objects(batch)
-> 1528                         writer.write_batch(batch)
   1529             if update_data:
   1530                 writer.finalize()  # close_stream=bool(buf_writer is None))  # We only close if we are writing in a file

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/datasets/arrow_writer.py in write_batch(self, batch_examples, writer_batch_size)
    276             typed_sequence = TypedSequence(batch_examples[col], type=col_type, try_type=col_try_type)
    277             typed_sequence_examples[col] = typed_sequence
--> 278         pa_table = pa.Table.from_pydict(typed_sequence_examples)
    279         self.write_table(pa_table)
    280

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/pyarrow/table.pxi in pyarrow.lib.Table.from_pydict()

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/pyarrow/table.pxi in pyarrow.lib.Table.from_arrays()

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/pyarrow/table.pxi in pyarrow.lib.Table.validate()

~/.cache/pypoetry/virtualenvs/masters-utTTC0p8-py3.7/lib/python3.7/site-packages/pyarrow/error.pxi in pyarrow.lib.check_status()

ArrowInvalid: Column 1 named text expected length 768 but got length 1000

Looks like the mapping function returns a dictionary with a 768-dim array in the embeddings field. Since the map is batched, we actually expect the embeddings field to be an array of shape (batch_size, 768).
Can you try to remove one of the [0] ? In my opinion you only need one of them, not two.

Looks like the mapping function returns a dictionary with a 768-dim array in the embeddings field. Since the map is batched, we actually expect the embeddings field to be an array of shape (batch_size, 768).
Can you try to remove one of the [0] ? In my opinion you only need one of them, not two.

It makes sense :D
It seems to work! Thanks a lot :))
Closing the issue

It makes sense :D
It seems to work! Thanks a lot :))
Closing the issue


Specify output name

Thanks for the plugin, so far its working great for me.
I was curious is there was some way to specify the output. For my use case, I'm using the glob ./src/**/*.entry.tsx. Right next to the foo.entry.tsx there are multiple regular bar.ts files that it consumes, but I want to signify the entrypoints by adding the .entry.tsx to the path. When it compiles, it places it in the build folder with build/path/to/foo.entry.
This'll work, worst case, but I'm looking to see if I can drop the .entry, such that the compile file turns into build/path/to/foo;
Thanks

Hi there!
I think you might want to look into the output.filename Webpack config option, over here: https://webpack.js.org/configuration/output/#outputfilename
This can be a string but also a function, within that function, you can probably strip off the .entry.
I'd be happy to help you further, but I don't think this plugin needs to provide you with the options to do so, I believe Webpack can already do it for you :)
Go ahead and make a bare-minimum reproduction repo and link it to me, I'd be happy to look at your config and see if I can get your result.

I looked, but I must have skimmed right over that one. I'll try this tomorrow and update/close this issue.
Thanks for your prompt reply!

Worked perfectly.
Cheers.

Yelling at your screen is often a great way to make your code do what you want it to haha. Good luck!


Missing list formatting

Hi! Looks like tutorials that use lists currently don't show any indentation or bullets, e.g.: https://p5js-wip.online/tutorials/color-gradients/

Was addressed by #218


Indicate when code overflows the code block element

Otherwise it's impossible to tell if there's more code on the line unless you try to side-swipe on OS X.
@johndjameson I'm sure you know a way to do this neatly. :-)

Example here: http://link.olivierlacan.com/1W3M0t3E1N2j
/cc @mattetti


how to break 1000 insts limit

i ve encountered a really large Project where one single function cost me 300+instruction usages.

Multiprocessing support - some kind of library or framework (probably) that could be used to provide high-level support for inter-processor communication using either memory cells/banks, or even unit flags.

will it be that answer ?
to separate functions in different processors and find a framework to invoke that.
i hope Compiler can detect it and solve it smarty and automatically.

will it be that answer ?
I'm afraid not.

Mindustry Logic has very very limited support for communication between processors. They can only communicate through memory banks/unit flags, and only numeric values can the passed through these channels. On top of that, there are no synchronization mechanisms whatsoever. Automatically calling functions across processors using just these tools just  might be possible, if you wanted to pass only numeric values along. I can imagine making such call automatically and waiting for an answer, but the inability to pass through strings, items or bound units would make the thing not very useful. (If this would be useful to you after all, let me know - it does sound like a fun feature to implement.)
We might also raise the idea of better IPC communication with Anuken, although I'm afraid that he intentionally keeps the processor abilities very limited and might find this feature too powerful.
What I was envisioning was providing tools to the programmer to split the program among several processors and for some very basic communication, such as generating/consuming events (still based solely on numbers, though). The use-case I imagined was, for example, scanning the entire map for resources or buildings. This task could be easily split among processors that would search different parts of the map in parallel. As another example, in one of my schematics I have a processor that measures power balance (which fluctuates quite wildly) and provides an average to another processor which then controls impact reactors using these data.
I'm currently concentrating on further optimizations of the generated code, so this idea is quite remote at the moment. For people that would want to manually split their programs among several processors, the Schematic builder could be already quite useful, and if someone was truly interested, I'd gladly add support for more languages through external compilers (in the command line version, provided the compiler has a command line interface as well).

ah,i'll prepare for my exam soon,hoping to see an approachone year later,also what anuke will do next

im working on splitting code into different processors,and writing a framework https://github.com/k88936/Splitter ,But i did not find a class similar to function (maybe mindcode dosen`t work on that) i d like to get some guide from you to find a proper one or make one,,,,,,,,,and im wondering which is better? to genegrate schemacode source code or to directly genegrate .msch using your code inschemacode

That sounds great! I'm looking forward to it.
Regarding the function class - what do you need it for? Do you want to manipulate Mindcode source code or compiled code? I might be able to point you to some specific class or method if I understand better what you intend to do (and if such class actually does exist here).
Regarding the final representation, it again depends on your design. If the splitter is meant to split Mindcode source, generating Schemacode would allow to embed the Mindcode source in it, which would seem preferable to me. If the splitter would work on compiled code, I wouldn't see a difference - it is already possible  to compile Schemacode to .msch and back.

Regarding the function class - what do you need it for?

i need to know

what other function is called(just the name in the source code is enough )
basic info of the function :name ,num of args ,if it has pointer(of a shared memory) as args ,nums of instructions it will produce(no need precise)
of course some mechanic such as Global Variable, non-Number variable which can't be passed through memory can be discussed later

Regarding the final representation
i ll work on compiled code because i intend to make this splitter work on other language too,and to build a frame ,i need to add some logic code directly(also may be compiled by mindcode  :p )

You might want to look at the OptimizationContext class. It contains these fields:

program: list of logic instructions (may contain virtual instructions - these are resolved as one of the final steps in compilation)
callGraph: instance keeping track of all functions and calls between functions.
rootContext: the top AstContext node. AstContext nodes mirror the AST structure obtained from parser. Each instruction keeps a reference to an AstContext instance it belongs to. The therefore maps instructions to AST nodes they were created from. This could be used to locate the functions in compiled code and/or obtain the size of the function.

You'll probably want to inspect this structure after both compilation and optimization is finished. There are caveats with functions though:

Functions can get inlined. Functions that are called just once are inlined by the compiler itself, other ones may be inlined by the optimizer. A single function can therefore appear in the source code multiple times.
Functions can be completely removed by Unreachable Code Elimination. Such functions don't get removed from the CallGraph structure, however.
At this moment, Mindcode variables aren't typed and type inference isn't performed (yet). Therefore, there's no information on types and values passed as function arguments.
I hope to implement function pointers in the future. This will probably complicate matters substantially.

public CompilerOutput<String> compile(String sourceCode) {
        String instructions = "";

        try {
            long parseStart = System.nanoTime();
            final Seq program = parse(sourceCode);
            if (messages.stream().anyMatch(CompilerMessage::isError)) {
                return new CompilerOutput<>("", messages);
            }
            printParseTree(program);
            long parseTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - parseStart);

            long compileStart = System.nanoTime();
            DirectiveProcessor.processDirectives(program, profile, messages::add);
            instructionProcessor = InstructionProcessorFactory.getInstructionProcessor(messages::add, profile);
            GeneratorOutput generated = generateCode(program);
            long compileTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - compileStart);

            long optimizeStart = System.nanoTime();
            List<LogicInstruction> result;
            if (profile.optimizationsActive() && generated.instructions().size() > 1) {
                result = optimize(generated);
            } else {
                result = generated.instructions();
            }
            long optimizeTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - optimizeStart);

            if (profile.getFinalCodeOutput() != null) {
                debug("\nFinal code before resolving virtual instructions:\n");
                String output = switch (profile.getFinalCodeOutput()) {
                    case PLAIN      -> LogicInstructionPrinter.toString(instructionProcessor, result);
                    case FLAT_AST   -> LogicInstructionPrinter.toStringWithContextsShort(instructionProcessor, result);
                    case DEEP_AST   -> LogicInstructionPrinter.toStringWithContextsFull(instructionProcessor, result);
                    case SOURCE     -> LogicInstructionPrinter.toStringWithSourceCode(instructionProcessor, result, sourceCode);
                };
                debug(output);
            }

            info("Performance: parsed in %,d ms, compiled in %,d ms, optimized in %,d ms.".formatted(parseTime, compileTime, optimizeTime));

           /*
              I  plan to do split at this phase, and  remove LogicInstructionLabelResolver.resolve
              because Splitter is based on LabeledJump
              and take over the rest work to generate .msch or Schema
              will that be OK?

           */
           // result = LogicInstructionLabelResolver.resolve(instructionProcessor, result);

            instructions = LogicInstructionPrinter.toString(instructionProcessor, result);
        } catch (Exception e) {
            if (profile.isPrintStackTrace()) {
                e.printStackTrace();
            }
            switch (e) {
                case MindcodeException ex -> messages.add(MindcodeMessage.error("Error while compiling source code: " + e.getMessage()));
                case MindcodeInternalError ex -> messages.add(MindcodeMessage.error("Internal error: " + e.getMessage()));
                default -> messages.add(MindcodeMessage.error("Error while compiling source code."));
            }
        }

        return new CompilerOutput<>(instructions, messages);
    }

and shamefully i still can't understand mechnics of mindcode in detail,maybe i need your help to realize the function call,return ,recursion,memory model in Splitter.
interface with  docs on writing : https://github.com/k88936/Splitter/blob/master/src/main/java/org/kvto/Generator.java https://github.com/k88936/Splitter/blob/master/src/main/java/org/kvto/Module.java https://github.com/k88936/Splitter/blob/master/src/main/java/org/kvto/SplittableUnit.java

Honestly, this part of the code needs redesign quite badly. No wonder you don't understand it well. I planned to improve it someday, but I'm quite busy right now. The top-level compilation mechanism should definitely be better structured and might support some kind of module or plugin mechanism to add or replace compiler functionality. For now, yes, adding the code at the place you indicated might work. We'll need some mechanism - such as a compiler directive and command-line switch - to activate the Splitter functionality.
I might be able to help somewhat if you described what you intend to do in greater detail. It looks like you're aiming for a deeper integration with Mindcode (nothing wrong with that), but you also want to keep your tool language independent, and I don't know how do you plan to design that.

I might be able to help somewhat if you described what you intend to do in greater detail.

https://github.com/k88936/Splitter/blob/master/README.md
Splitter
Introduction
Splitter is a logic program splitter to crack 1000 insts limits for the Mindustry game. It splits programs based on functions and generates Schemacode or .msch files.
Structure

Analysis.java

Used to analyze the dependencies between functions and package multiple functions into a segment as a processor program.

Generator.java

Generates some logic code for efficient implementation of function calls and return mechanisms.

Module.java

Abstract class that needs to be implemented
Represents the entire program and defines the framework (code other than functions) and parameters for main logic blocks and sub logic blocks. Also includes methods for parsing parameters. Please refer to the source code comments for more details.

Segment.java

Collection of functions stored in a single processor.

Splittable.java

Parent class of Splittable and SplittableGroup.

SplittableGroup.java

Abstracts  recursive functions into one function for easier program analysis.

SplittableUnit.java

Abstract class that needs to be implemented
Represents a function in a program. It needs to indicate whether it is a pure algorithm and define the method body generation.

Splitter.java

Main program.
Instructions

It is recommended to integrate Splitter into the compiler (to collect necessary information).
Splitter is a framework, and to make it compatible with your compiler, you often need to implement how your compiler handles functions. For example, if you want to call a recursive function in shared memory, you will often need to pass the stack pointer in the implementation of the recursive function call in Module using the methods from Generator. When parsing parameters for subroutine in Module, remember to parse the stack pointer.

Represents the entire program and defines the framework (code other than functions) and parameters for main logic blocks and sub logic blocks. Also includes methods for parsing parameters. Please refer to the source code comments for more details.

Splitter supports label jumps for flexibility.

Principle
The essence of Splitter is to analyze the relationships between functions, split them into segments, and add a layer of communication wrappers for logical blocks based on the implementation mechanism of the original language. Specifically, the logic code generation part includes:

Generating framework code for main logic blocks and sub logic blocks, followed by appending function call labels and method bodies.
If a function is split into sub logic blocks within a logical block, the method body part will be replaced with a function call defined in Module, achieving seamless connection.
The code generated by Generator is statements that have been calculated based on the splitting and allocation of space on MemoryBank used for communication.

Features

Supports shared stacks, recursion, and lazy evaluation (perhaps the only advantage other than accommodating more code with multiple processors, but an effective method is needed to achieve this).
Supports recursive splitting.
Splitter reserves empty logic blocks (still generates basic framework) for easily converting existing logic code (e.g., transportation) into a simple function. Simply insert the function into the function part of an empty logic block. This step can be done by editing Schemacode.

Limitations

Do not expect high speed.
Originally designed to support function calls, so it is difficult to support languages based on macro substitution.
Does not support passing non-numeric variables.
Global variables can only be stored in the heap and shared. It is not recommended to pass out global variable values during function calls and modify variable values upon return.
Not yet completed.

im afraid that it will be delayed for a long time,because of something more important....


Busy wait in Task.init I/O causes cpu spike

Avoid a busy wait when running I/O outside fibers.

Does libasync recognize Duration.max there`? That would be the correct semantics in this case. 100 ms is functionally fine, too, but it would waste energy/battery if the process is idle.

Yes, I'm only worried if the task does a yield(). That could potentially cause it to freeze. Do you think this should be specifically forbidden just in case?

I don't understand, in which case would it freeze? Everytime at least one task calls yield() it must be guaranteed that onIdle will be called before going to sleep again (i.e. whenever the event queue gets empty). This should avoid any freezes.

I think it froze if yield was called twice in a row, because it won't loop back into notifyIdle, which is why I removed those in favor of manual events in the http/2 driver.

But it does loop: https://github.com/rejectedsoftware/vibe.d/blob/1b8c67ce6364d4a3cccba5b2ad3ee828d19bd364/source/vibe/core/core.d#L1192

So I think this must have been a false conclusion I made back when notifyIdle wasn't called in the right places in libasync. I think Duration.max is safe to use in that case

OK

Now LibasyncDriver.exitEventLoop just needs something to nudge the event loop.

Seems to be more than that - dub test :core -c libasync hangs after "Acquire event ID#32".

Maybe just AsyncNotifier with no handler. Strange that the event would make it hang...


[Feature]: prefer-web-first-assertions should warn on isVisible/textContent/innerText,isDisabled, etc.

As a user I saw the following often in the wild:
const myValue = await page.locator('').isVisible();
expect(myValue).toBe('foobar');

would be great if we could catch that and maybe allow it in toPass in the ideal world.

@mxschmitt From your example, I don't see why this wouldn't work using toBeVisible?

Yes in this scenario toBeVisible() should just work! Don't re-call what I meant with the toPass back then.

It would be awesome to have a lint rule that warns about usages like locator.textContent() and instead recommends: expect(locator).toHaveText()

@freddadalen That use case is what https://github.com/playwright-community/eslint-plugin-playwright/blob/main/docs/rules/prefer-web-first-assertions.md already supports. We currently don't support variable references which is what this issue is tracking.

@mskelton okey great! 😀


Add feature to scan line

Add function to scan line
secrets = SecretsCollection()
with default_settings():
secrets.scan_line('test.txt','XMY_KEY="AKIAY5XAIXXR7ALTOOHH"MY_SECRET="3L091LfFvV/dcoDCy5YO7sWz56bitLQjlVVY2WxmY"')

Hi @karankohli13, thank you for your contribution! Could you please expand on what issue you're trying to solve with this PR?

Hi @karankohli13, thank you for your contribution! Could you please expand on what issue you're trying to solve with this PR?

Hi, this function is useful when using the python library in third party apps, sometimes the use case of scanning a particular line/string for secrets comes up and this function creates a wrapper for that purpose.

I faced the same needs, please add something to scan from general string without reading file. Example is some data which comes from HTTP response from server

@0x123456789 unfortunately it appears that @karankohli13 has abandoned this PR. If you need this, feel free to pick it up so we can run CI and merge it!


Default XML path not working on Windows

As seen in https://github.com/SciTools/cf_units/issues/107, udunits does not correctly work with the default XML path baked into the binary.
We don't test this in the build, because the test defined in meta.yaml is udunits2 -H meter -W miles  # [not win]
I notice that there is also paths such as �������UDUNITS2_XML_PATH�������C:\bld\udunits2_1520456853802\_b_env\Library\share\udunits\udunits2.xml� in the conda-forge udunits udunits2.dll, which should really be replaced by conda install. This suggests we need to update the recipe to do correct binary replacement.

Does conda-build not have the facilities to replace arbitrary prefixes in binaries (for windows?). I seem to recall that this wasn't implemented a few years ago, and looks like that may still be the case today...

https://stackoverflow.com/a/15076555/741316 suggests it is at least sensible to do this with .dlls. Now just need to figure out if the machinery already exists in conda-build..

Really helpful hint from @mingwandroid regarding the Windows patch that anaconda apply: https://github.com/conda/conda-build/issues/2207#issuecomment-390931702
Personally, I'm against this approach, but am completely comfortable to be overruled...

Can you detail why you are against this approach?
Modifying binaries is a complete no-no to me personally. It changes the checksums and prevents the binary from being signed and is thus a security disaster.

Thanks @mingwandroid. Useful insight.

It changes the checksums and prevents the binary from being signed and is thus a security disaster.

conda is well in the world of replacing prefixes in files (binary or otherwise). Does binary replacement at build/install time differ in any way to prefix replacement from a signing perspective (I'm very naive in the way singing has been implemented in conda)? Is there a reason that dll can't be signed after it has been modified (e.g. https://stackoverflow.com/a/33758901/741316)?

Can you detail why you are against this approach?

Essentially, udunits2 is being forked in https://github.com/AnacondaRecipes/udunits2-feedstock/blob/master/recipe/0002-Use-the-shared-library-to-locate-the-default-xml.patch. The code that users are getting when they use "udunits2" in anaconda is not the code that is available at https://github.com/Unidata/UDUNITS-2. Conversely, patching the binary is not forking the package and is instead about working around the details of the packaging system being used to deploy/install it.
This sense of "forking udunits2" is strengthened by the fact that there appears to be no outstanding request to integrate the changes back up to the udunits2 repository.

conda is well in the world of replacing prefixes in files (binary or otherwise).

That doesn't make it a good idea.

Is there a reason that dll can't be signed after it has been modified

You cannot sign a binary post modification on an end user's computer without them having your private signing key.
Essentially, udunits2 is being forked in https://github.com/AnacondaRecipes/udunits2-feedstock/blob/master/recipe/0002-Use-the-shared-library-to-locate-the-default-xml.patch. The code that users are getting when they use "udunits2" in anaconda is not the code that is available at https://github.com/Unidata/UDUNITS-2. Conversely, patching the binary is not forking the package and is instead about working around the details of the packaging system being used to deploy/install it.
I disagree with your assertion that patching software makes it less of a fork than patching a binary. At least one is scrutable by looking at the patch to the source code. Have you studied the construction of any linux distribution? They all carry numerous patches for issues not addressed upstream. I don't really care for the linguistic arguments about what does and does not constitute a fork though.
I do agree that the patches should be suggested to upstream though clearly.

Finally, while I've got your attention, have you ever tried to upstream a patchset as large (and necessary) but of no interest to upstream as for example https://github.com/AnacondaRecipes/qt-feedstock/tree/master/recipe
Take it from me, life is too short.

Finally finally, how exactly, would you binary patch the following code:
int main(int argc, char * argv[]) {
  std::string prefix = "C:\Users\rdonnelly\m64\conda-bld\udunits2";
}

.. it is not possible without changing the software as follows:
static volatile prefix_c[MAX_PATH]="C:\Users\rdonnelly\m64\conda-bld\udunits2";
int main(int argc, char * argv[]) {
  std::string prefix(prefix_c);
}

Is that patch now acceptable?

Is that patch now acceptable?

Still no, IMO.

Have you studied the construction of any linux distribution? They all carry numerous patches for issues not addressed upstream.

That doesn't make it a good idea. 😜

Take it from me, life is too short.

I completely agree with this statement. I was hinting at this in my comment relating to the fact that we are "we're working to different objectives". I appreciate that as a regular conda-forge contributor and a developer on Anaconda you wear two hats. The Anaconda makes its money from making this stuff "just work", whereas conda-forge is here to package whatever the package owner produces (whether it is 💩 or not). The only rub for conda-forge is that it needs to take into account the medium over which it is deploying its packages (conda) - there is no other motivator for conda-forge to make stuff "just work", all that motivation is deferred down to the package authors, who probably (we hope) want to improve their software in order to get it working in the conda-forge distribution.
Let's draw this conversation to a close. I really appreciate you're perspective on this, and am quite comfortable that we can disagree robustly and healthily 👍.
In this instance, I'm OK with pushing this issue back to the upstream authors and offer to give support and pointers should they need it. I also appreciate that, as you say, for some packages that just isn't worth the effort - the only real difference between our perspectives is what we do with the "isn't worth the effort". In Anaconda's case, you are motivated to make it "just work", in conda-forge I'm motivated to not bother with the software (or more likely, push the issue upstream, perhaps even helping them to fix the issue if I really want the software).

Thanks @pelson, I'd rather be direct than skirt around issues here .. before we close this out let me give my complete perspective.

Is that patch now acceptable?

Still no, IMO.

My point with this std:string example is to show that there are many (and increasingly more as modern C++ takes further hold) cases where binary prefix replacement cannot be used as it does not work. This is an example. So if you have (and we have several) an upstream that contains such code there is no option but to modify the software. Is this clear? Do you see any alternative? What would you do here to make this software available to conda-forge users?

isn't worth the effort

I need to clarify this too, I don't mean that I am lazy here or that I like rebasing patches at new releases, far from it. If I could divest myself of all patches I honestly would but there are specific points of difference between how we (AD and conda-forge) do software vs the rest of the world and upstreams. Apart from binary prefix replacement (which I'd seek to eliminate entirely) we support old Linux and macOS distros as well as old compilers on Windows when upstreams explicitly do not. Providing this support requires removing calls to APIs not available in the old versions, but since upstream are "macOS 10.11, glibc 2.17 or above only" we are left with no choice but to carry local patches. That is what I mean by not worth the effort, they will literally say "no" and with good reason too, they do not want this legacy cruft in their codebases.
If you are happy to work through a CEP on a policy around patching in general (when it is acceptable and when it is not) and another around binary prefix replacement I am happy to try to help out.
I will try to upstream this one to UDUNITS-2.

So if you have (and we have several) an upstream that contains such code there is no option but to modify the software. Is this clear? Do you see any alternative? What would you do here to make this software available to conda-forge users?

I see the dilemma, and recognise that it is particularly acute for AD. Honestly, from c-f perspective, I'd be pushing quite hard to avoid packing the tool altogether. A good example of this is the python-eccodes package, which has no released python 3 support: the patch is pretty trivial, and is even part of Debian, but not something that I support in conda-forge. I do also appreciate that the horse has bolted in a lot of cases even on conda-forge - and that certainly not everybody (perhaps nobody) else in conda-forge shares my outlook. Even from my ivory tower I've been known to be in conflict with the (probably over-)strong opinions I've expressed in this thread.

we support old Linux and macOS distros as well as old compilers on Windows when upstreams explicitly do not

Agreed. The idea of never patching is frankly idealistic and highly unrealistic. In these situations, I do agree with patching. Unfortunately there is a very grey line between "supporting old compilers" and "making the tool work with conda".
Your idea of a CEP that lays out some guidelines around patching is a good one, and even though I've clearly got an opinion 😉, I suspect I'm not the kind of detail focussed person that is best suited to lead on such a thing (one of the reasons that c-f on the whole doesn't have a particularly strong history of policy statements IMO).

I will try to upstream this one to UDUNITS-2.

Much obliged.

I see the dilemma, and recognise that it is particularly acute for AD. Honestly, from c-f perspective, I'd be pushing quite hard to avoid packing the tool altogether

I think it's the same for CF and AD here. To make it more acute for all, replace "tool" with "very important core library". You are effectively saying "no projects that are written in C++11 and beyond here that require relocation if upstream won't accept a dynamic relocation patch".  That would be very restrictive. Worse, if a project converted from C++98 to C++11 you'd end up in a position where you cannot update to the new version, leaving users vulnerable to any security issues in the older version.
Cheers!

I think this is resolved by now. Since @pelson has moved on to greener pastures, @ocefpaf, do you have an opinion on this?

I think this is resolved by now. Since @pelson has moved on to greener pastures, @ocefpaf, do you have an opinion on this?

Let me test this tomorrow on a Windows machine. In the past the tests passed but some odd things happened in the installed package, specially when change drives on Windows (installation in one drive but running the code in another, very odd).

@xylar's PR (#41) drove me back to this repo.
@ocefpaf, did anything ever come of your windows experiment? Or could it be that we also need an activation script for windows?

@zklaus, there is an activation script for windows: https://github.com/conda-forge/udunits2-feedstock/blob/master/recipe/scripts/activate.bat
It was added in https://github.com/conda-forge/udunits2-feedstock/pull/19 on May 22, 2018, so the same day that the major traffic on this issue occurred.  Presumably it was intended to address the issue.  My guess would be that the issue simply didn't get closed.  Probably it could be closed for now and re-opened if #19 turns out not to have addressed it, unless @ocefpaf has a quick way to test.

unless @ocefpaf has a quick way to test.

Nope. I no longer have a Windows laptop, stolen with my cellphone. Which lead to some really terrible consequences as https://github.com/pypa/pypi-support/issues/1201 :unamused:
Let's close and open a new one if folks are still experiencing this.

Oh, no!  Sounds miserable!


Don't allow as to be used in casting, it does more harm than good.

I asked similar question on this comment, but the team didn't really respond quite well. I am thus creating a new issue.
You can either use as or type annotation to upcast or downcast things, let's take this example, where I have a SizedBox and I want to upcast to a Widget, so that I don't want to allow users to use width property on it, in this example I am using as to upcast, but this gives me a warning:
(Whenever I am writing bad in comment, that means it is undesired behavior, and good for desired one)
const widget = SizedBox() as Widget; // warning
final width = widget.width; // error (good)

Now if I take warning into consideration and modify my code to silence pedantic, I can do:
const widget = SizedBox(); // no warning (good)
final width = widget.width; // no error (bad)

But this allows me to access width which I don't want.
Second solution is to use type annotation like:
const Widget widget = SizedBox(); // no warning (good)
final width = widget.width; // error (good)

So you can clearly see if I use as, I get myself in trouble and can only do limited things but if I use type annotation, I can do things the way I want. Let's take one more example into consideration (thanks to @eernstg )
final foo = 1 as String; // no error (bad)
final String bar = 1; // error (good)

As you can see if I am again comparing as with type annotation, the latter has advantages almost everywhere.

Thanks! All makes sense to me at least ;)
pedantic isn't the right place to discuss, though; this package is just about publishing the analyzer configuration we use internally at google3.
I think the right place would be either the SDK or the linter
https://github.com/dart-lang/sdk/issues/new
https://github.com/dart-lang/linter
--would you mind refiling at one of those, please? :)

@davidmorgan Sure sir, I am opening it in linter.


add iacuc protocol ids to sessions

resolved by #81

still need to add this to ephys/ophys sessions


Allow an initial deposit address to be given via query string.

This allows the start the redemption flow with a deposit address already prefilled, for example:
http://localhost:3001/redeem/?deposit=0xecfdabdd933799e524e5e21c6672213a1f22e9dd

This would enable third party websites & explorer to link to the redemption flow for deposits they know are redeemable.
Pinging @mhluongo as this was his idea.

The url is now as you suggested, and I also added an initial validation run to the address.


Problems with tsx template after updating to v9

Environment

Operating System: Darwin
Node Version:     v20.9.0
Nuxt Version:     3.13.1
CLI Version:      3.13.1
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      default
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://stackblitz.com/edit/github-ffpcjt?file=nuxt.config.ts,components%2FTestComponent.vue,app.vue
Describe the bug
After upgrading from 8.5.3 to v9, I encountered several pre-transform errors. In my main project, it was the following error message: Pre-transform error: '>' expected. I tracked this down to an issue with parsing TSX templates.
While stripping down the project to identify the root cause, I also encountered the following errors:
ERROR  Internal server error: ',' expected.
   10:26:17 AM
  Plugin: unplugin-vue-i18n:directive

and
Pre-transform error: Type expected.

The last one is present in the minimal reproduction linked above.
This issue wasn’t present in 8.5.3. I suspect it might be an upstream bug. However, I'm not sure where to report it.
Additional context
This seems to work fine:
<script lang="ts">
export default defineComponent((props, ctx) => {
  return () => h('div', ['Test'])
})
</script>

Logs
No response

This is likely an upstream bug as you suspect, probably unplugin-vue-i18n, could you open an issue on its repository? https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n 🙏
Let's leave this issue open while the upstream issue exists, there's probably more users running into this while updating.

For anyone interested in tracking this issue, here is the link: https://github.com/intlify/bundle-tools/issues/402

For anyone encountering this same issue, the recommended solution is to update @nuxtjs/i18n to 9.1.1 and disable the directive optimizations like this:
// nuxt.config.ts
i18n: {
  bundle: {
    optimizeTranslationDirective: false
  }
}

Related issues / PRs:
https://github.com/intlify/bundle-tools/issues/423
https://github.com/intlify/bundle-tools/issues/402
https://github.com/intlify/bundle-tools/pull/414
https://github.com/nuxt-modules/i18n/pull/3256


Facilitate checking models for existence in tests

Introduces two assertions assertModelInstantiable() and assertModelNotInstantiable() to simplify checks like
try {
        new CM_Model_User($user->getId());
        $this->fail('User should be deleted.');
} catch (CM_Exception_Nonexistent $e) {
        $this->assertTrue(true);
}

to
$this->assertModelNotInstantiable($user, 'User should be deleted.');

please review @njam

lgtm!

tagged https://github.com/cargomedia/CM/releases/tag/1.96.2