Release R24.05 Changelog

Description

PR to collaboratively work on the Changelog for R24.05

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[ ] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[ ] Copyright and license header are present on all affected files

@RolaH1t, @arnoweiss : As discussion base for tomorrow
Overall: I now updated the app and chart versions following the tractusx-dev helm repo. I did not yet update KIT versions.
For FOSS I found the following issues:
New KITs and FOSS can't be validated yet
Processing table 'Added'
Checking LINKS for KIT: Behavior Twin KIT
  ERROR: KIT Behavior Twin KIT has invalid link 'https://eclipse-tractusx.github.io/docs-kits/category/behavioral-twin-kit'
  ERROR: Changelog of KIT Behavior Twin KIT has invalid link 'https://eclipse-tractusx.github.io/docs-kits/kits/Behavioral%20Twin%20Kit/Changelog'
Checking LINKS for KIT: PURIS KIT
  ERROR: KIT PURIS KIT has invalid link 'https://eclipse-tractusx.github.io/docs-kits/category/puris-kit'
Checking LINKS for FOSS Component: SSI Credential Issuer
  ERROR: Release of FOSS Chart ssi-credential-issuer has invalid link 'https://github.com/eclipse-tractusx/ssi-credential-issuer/releases/tag/ssi-credential-issuer-1.0.0'
  ERROR: Release of FOSS APP SSI Credential Issuer has invalid link 'https://github.com/eclipse-tractusx/ssi-credential-issuer/releases/tag/v1.0.0'
Checking CHART for FOSS Component: SSI Credential Issuer
  ERROR: Could not retrieve latest Helm chart or app version for ssi-credential-issuer.
  ERROR: Chart version of FOSS Chart ssi-credential-issuer has version 1.0.0 while version None is available in tractusx-dev
  ERROR: App version of FOSS Chart ssi-credential-issuer (app SSI Credential Issuer) has app version 1.0.0 while version None is set in Chart available in tractusx-dev

Some KITs behave weird in their url:
Checking LINKS for KIT: Circularity KIT
  ERROR: KIT Circularity KIT has invalid link 'https://eclipse-tractusx.github.io/docs-kits/category/circularity-kit'
  ERROR: Changelog of KIT Circularity KIT has invalid link 'https://eclipse-tractusx.github.io/docs-kits/kits/Circularity%20Kit/Changelog'

Some applications are weird in terms of versioning as the chart states another app version but then there is no chart repo to link:
Checking LINKS for FOSS Component: Country Risk
  ERROR: Release of FOSS APP Backend has invalid link 'https://github.com/eclipse-tractusx/vas-country-risk-backend/releases/tag/v2.0.0'
Checking CHART for FOSS Component: Country Risk

Also portal is kind of heavy to undertand if you're from outside as the chart's app version does not need to match the other components (which is ok) but hard to automate in release info gathering. Need some help here, to check the final versions. Already went through repo
Checking LINKS for FOSS Component: Portal
  ERROR: Release of FOSS APP Registration has invalid link 'https://github.com/eclipse-tractusx/portal-frontend-registration/releases/tag/v2.0.0'
  ERROR: Release of FOSS APP Frontend has invalid link 'https://github.com/eclipse-tractusx/portal-frontend/releases/tag/v2.0.0'
Checking CHART for FOSS Component: Portal
  ERROR: App version of FOSS Chart portal (app Registration) has app version 2.0.0 while version 1.8.1 is set in Chart available in tractusx-dev
  ERROR: App version of FOSS Chart portal (app Frontend) has app version 2.0.0 while version 1.8.1 is set in Chart available in tractusx-dev
  ERROR: App version of FOSS Chart portal (app Assets) has app version 1.8.0 while version 1.8.1 is set in Chart available in tractusx-dev

Just to confirm: We only list Q-Gated versions? As MIW 0.3.0 has been QGated but MIW 0.4.0 is available (table unchanged)
Checking CHART for FOSS Component: Managed Identity Wallet (MIW)
  ERROR: Chart version of FOSS Chart managed-identity-wallet has version 0.3.0 while version 0.4.0 is available in tractusx-dev
  ERROR: App version of FOSS Chart managed-identity-wallet (app Managed Identity Wallet (MIW)) has app version 0.3.0 while version 0.4.0 is set in Chart available in tractusx-dev

Work was copied to this PR in the tractus-x/eclipse-tractusx.github.io and will be continued there.
https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/pull/900

Hey @arnoweiss, we still need the updated Changelog here, as the releases take place in this repo: https://github.com/eclipse-tractusx/tractus-x-release/releases/tag/24.03

The newly added product BPN DID Resolution Service (BDRS) should still be added

on it

all QG issues for 24.05 in SIG Release are DONE


fix: allow importing .css and assets inside node_modules

Description
Fixes #3862
New --experimental-vm-threads allows us to process .css files and assets inside Node.js modules without manually inlining them. We can give better performance inside this pool by enabling CSS and asset processing without asking people to manually inline the whole library.
Unfortunately, other pools cannot support this until Node.js loader is standardized (the development is very fast, we can't keep up with the changes to be honest).

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[ ] Ideally, include a test that fails without this PR but passes with it.
[ ] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[ ] Run the tests with pnpm test:ci.

Documentation

[ ] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[ ] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

I am running into that exact problem I believe. Is there something I can do to enable that importing?

I am running into that exact problem I believe. Is there something I can do to enable that importing?
The vitest version I have is 1.2.2

I managed to resolve the problem by including the pool: vmThreads option on the test object. I'm assuming this is the reason this PR was closed in the first place.

It was closed because the actual implementation is in #3880


The running speed of Windows is lower than that in Linux

Please go to Stack Overflow for help and support. http://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug or feature request.
The form below must be filled out.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g. fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
System Information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow)?:
OS Platform and Distribution (i.e. Linux Ubuntu 16.0):
TensorFlow installed from (source or binary)?:
TensorFlow version (use command below):
Bazel version (if compiling from source):
CUDA/cuDNN version:
GPU Model and Memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script https://github.com/tensorflow/tensorflow/blob/master/tools/
You can collect the TensorFlow version with
python -c "import tensorflow as tf; print (tf.GIT_VERSION, tf.VERSION)"

Describe the problem clearly
Source Code / Logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full-traceback. Large logs and files should be attached. Try to reproducible test-case code the bare-minimum necessary to generate the problem

I install Tensorflow in Windows, and run the same code which I have already run in Linux. But I find the running time is twice as much as Linux.

We're sorry, but without a reproducible test case, it is impossible to help you with this problem. Please submit a new issue when you can submit the exact code. Also include the exact platform information (see template above) for both your Linux and Windows machine.


Add region option to deploy/remove/invoke commands

It's quite useful to be able to run tests from multiple regions using the same serverless.yml file. Serverless actually supports this via the -r cmd line parameter. I made a very small enhancement to serverless-artillery to support the same option on the command line and pass it through to serverless. Works great and allows me to launch tests from multiple regions easily.

Sorry for the slow turn around.  We were putting on a conference.
This looks great!  Thank you for the contribution!

Side note for historical and reference purposes:
This doesn't satisfy https://github.com/Nordstrom/serverless-artillery/issues/5 which targets multiple simultaneous region deployments and load test executions via a single command.
That use case could be simulated via this change by writing a script that asynchronously deployed to multiple regions and another that asynchronously invoked within each of those regions.

That's exactly what we're doing. The invoke is async, so we just invoke N times in a row with N different regions that we feel are representative of our customer base. The deploy script only needs to be executed when something has changed in serverless.yml which for us is not very often so we do that as needed.
Thanks for the quick merge.

Thanks gcuni!


editor.action.format blocks external formatter plugins

Issue Type: Bug
pugBeautify.execute can't run after error message "can't find registered formatter for jade files".
VS Code version: Code 1.25.1 (1dfc5e557209371715f655691b1235b6b26a06be, 2018-07-11T15:40:20.190Z)
OS version: Linux x64 4.4.138-59-default

System Info

Item
Value

CPUs
AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 x 1800)

GPU Status
2d_canvas: unavailable_softwareflash_3d: unavailable_softwareflash_stage3d: unavailable_softwareflash_stage3d_baseline: unavailable_softwaregpu_compositing: unavailable_softwaremultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: unavailable_softwarevideo_decode: unavailable_softwarevideo_encode: unavailable_softwarevpx_decode: unavailable_softwarewebgl: unavailable_offwebgl2: unavailable_off

Load (avg)
1, 1, 1

Memory (System)
7.27GB (0.39GB free)

Process Argv
/usr/share/code/code --unity-launch

Screen Reader
no

VM
0%

Extensions (16)

Extension
Author (truncated)
Version

overtype
ada
0.2.0

ng-template
Ang
0.1.9

bracket-pair-colorizer
Coe
1.0.59

tslint
eg2
1.0.33

copy-relative-path-and-line-numbers
ezf
0.2.8

beautify
Hoo
1.3.2

vscode-jetbrains-keybindings
isu
0.1.5

Angular2
joh
6.1.1

camelcasenavigation
map
0.3.48

vscode-pugbeautify
mrm
1.0.2

vscode-language-pack-ru
MS-
1.25.2

vscode-css-peek
pra
2.1.0

vscode-icons
rob
7.24.0

sass-indented
rob
1.4.9

code-settings-sync
Sha
3.0.0

language-stylus
sys
1.9.2

(1 theme extensions excluded)

@Tyriar please, read ticket more attentive before labeling it. This issue caused both by VSCode and extension. In the description I'm wrote about VSCode bug, not about extension settings. Extension stop working because VSCode updates and demands extension refactoring. So, this is the VSCode side in both cases.

@bskydive Please try without extensions enabled. I doubt this is an issue with VS Code, I could not find that error message ("can't find registered formatter for") in our sources.

@jrieken thanks for response!
It's my fault about caption. Were was incorrect translation.
This is the exact message with lang:en:

Moreower, formatting with pugBeautify.execute works standalone, but didn't work in bunch with VSCode internal formatter, binded on the same keys.

If I bind pugBeautify on the different keys or disable editor.action.format binding, it works fine. So, were is somefing wrong with formatting chaining, something stops the chain with error. Plugins and VSCode modules shouldn't interrupt each over.
Currently, it can work again after language switch, deleting and installing extension, removing and adding key bindings in json. I will describe this workaround in plugin repo.
Please, check the module and plugins inferrence in simultaneous executing on the same key bindings.
Please, add the recomendation to reinstall plugins after refactoring file-attributes-binding depended code.
P.S.
Pug - is the only solution for stylus-like professional templating for html. It's reduce a lots of time on reading, writing and searching code. Plugins like https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag became useless with this templating approach. Please, help to keep it working in VSCode!

I think, that order in list of keybindings take the main role. Now pug is the first, and later, it was the last, after editor.action.format, and hangs after previous error

Not sure, that this issue must be closed, because bug can be still alive.

@bskydive Just, to double check. It's this extension:https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-pugbeautify? Iff so, the extension is to blame because it doesn't integrate into our formatter infrastructure but uses a separate command. We have blogged about this https://code.visualstudio.com/blogs/2016/11/15/formatters-best-practices and it's on the extension to integrate better.

yes, it's that extension. And no, it need to stay work before somebody refactor it because it's only one plugin for that preprocessor. I have over 40 hours hard work during week, and abandoning simultaneous plugin execution interruption problem will grow this time. On the other side, I can't pay for fixing this problem, and wokraround exists.
Thanks for your time!

An update: workaround makes editor.action.format broken. E.g. order in the key bindings is matter.

@mrmlnc Any chance that you will update your extension?

@mrmlnc It's not mine) Chanses is very low. I'm overloaded in this year. So, I will recomend to use separate key binding until it wirks.

So, I will recomend to use separate key binding until it works.

What different keybinding?

Any different from keys assigned to editor.action.format

I don't understand. Do you want us to make a change or do you want to assign some key binding to that custom command the extension contributed?

Sorry for my english. I prefer to assign a different key to pug format, because chanses of extension refactoring is very low. Thanks for the link to best practices. I hopes, that can find a time for writing my own extension or refactor existing in this year.
Issue closed.
P.S.
Can you attach to the next VSCode release notes list of the extensions, that needs refactoring?


Show weather related News Articles for queried country (issue#14)

I have created a method to show news articles based on the queried location from weather
Implemented a feature to filter the news article to only display weather related articles, and show the top 4 articles in the cards but also enable the viewer to read more by opening the full news in new tab of the browser
This is a push for the issue number https://github.com/MLH-Fellowship/prep-project-23.MAR.PREP.2/issues/14

Seems like NewsApi does not work for Browser requests, please check if you can use another free News Api to get weather news

I have found an alternative to this, pushed the codes here and tested it.
I have used https://rapidapi.com/contextualwebsearch/api/web-search/

I am trying to reopen my pull request, but facing some issues


How to include this package into my blog?

I would like to include this package into my blog.
Is it possible?
I am not able to do it in my blog.
Can you please help me do it?

just include the  tag with id root on somewhere inside your project and it will work


Exclude hitcircle.png from the instafade.

Currently the instafade feature affects the entire thing. I thought only instafading the overlay and number would be nice. If you need a example I have a skin that does exactly this.

to clarify, something like this?

Yes.


Creating feature for the first time

I'm trying to make a feature that highlights // TODO comments and I really can't get it to run :(
The code inside init() is not running (the console.log is not printed) and I have this warning in console

DevTools failed to load source map: Could not load content for chrome-extension://dehmkhkfkicaaafgjnhpmlocdafjedmh/index.js.map: System error: net::ERR_BLOCKED_BY_CLIENT

Here's the code: https://github.com/iGabyTM/refined-github/tree/feature/highlight-todo-comments

Hello, have you tried restarting webpack? I noticed this issue recently, #6597 should fix it.

I've followed the steps from contributing.md, how do I do that?

Yes, that one is appearing in console, but not the one inside init().
I've tried to run both commands again (npm run watch and npx web-ext run --target=chromium) but with no luck

It's possible that you must include the feature in the readme, even temporarily. Can you check that? The readme is used to create a list of features to enable at runtime, so if it's not found there I think it's not run. We should fix that

I've added it to the readme and the total amount of features was increased from 208 to 209, though I can not find it in the list, but it is still not working.

After that, you have to restart the build/watch

Yes I now add the extension manually via "load unpacked" and use npm run build to build it, still no luck.

 Any idea why it modifies the elements only on the first load of the extension? Like, if I refresh the page, the select.all() acts like nothing is there to find

GitHub’s UI is increasingly dynamic. The issue you're seeing has likely the same source as:

https://github.com/refined-github/refined-github/issues/5870

I suggest using observe() instead of select.all() so it becomes a "live selector"


When editor format set was "Plain" it should be also "Plain" on CMS

Steps:

Go to Create an entry > Settings
Change editor format setting to "Plain", save change.
Go to Edit Body screen.
Make sure you see HTML icon on the editor, input something, save it.
Send the entry to MT.
On CMS, open that entry, see body editor format.

Expected: "None".
Observed: "Rich Text".
FYI: If you set "Markdown" or "Rich Text" at step 2, you'll find the same format setting at step 6.

修正しました

@build 78

verified fix.


Distribute arm and chassis mass.

The new distribution limits acceleration more.  The robot tips less.
Also paves the way for managing different matter distribution with arm movement.

I think that the position of ARM_HEAD should be dependent on where the arm actually is, and its weight should be accurate and not just half of the robot's weight. We can add in a method to report its position in armsubsystem. This should be regularly updated in periodic() to make sure the ARM_HEAD position always matches the physical position of the bot.

Merged with the intention of making it more accurate later on


Remove unused private field

This may  be a bug, no?

This may be a bug, no?

I'm not sure what you mean by that.

This may be a bug, no?

I'm not sure what you mean by that.

Obviously, not the empty list should be passed. This case could either be what you say or simply a bug that compilePath is not passed down to the test.

compilePath is unused field in TestCompilerMojo. That field is removed and then change in test that sets non-existent field follows.

What can I do to move it forward?

What can I do to move it forward even more?

Merged with https://github.com/apache/maven-compiler-plugin/commit/419bf040893dac8f300deb5b36daf5f487dea8d2


Issues with dat-desktop 1.0.3

[ ] Upload speed indicator doesn't work (always 0 even when uploading)

[x] When closing dat-desktop and re-opening all dats in the list are lost (intended?) (https://github.com/datproject/dat-desktop/commit/3aab73c3a2d110972dff222914f054babb52f8f5)

[ ] the peer count is sometimes off

[ ] there's no import progress bar

@beingalink thanks for reporting! :sparkles:

Upload speed indicator doesn't work (always 0 even when uploading)

I can't reproduce. Is this on OSX? I verified by also running local dat cli and it showed upload speed in desktop.

the peer count is sometimes off

Do you have a way to reproduce?

there's no import progress bar

we said in https://github.com/datproject/dat-desktop/issues/166#issuecomment-278951440 that we can omit this for now, do you think we should make it a priority again?
I agree btw that it would be nice to reflect that. Maybe the progress bar should have two phases?

How large was the dat you were trying to upload? Perhaps it takes a few seconds for the upload indicator to activate.

As you can see dat-cli is downloading but no upload is indiated in dat-desktop. Waiting doesn't change it.
Regarding peer count, I couldn't find a reliable way to reproduce the problem. Will post here if I will find a way.

Since SLEEP landed, I'm closing this for now. I haven't seen any of the aforementioned issues since :)


NPE when processing embedded content packages

It looks like there is an NPE when processing embedded (subcontent-packages).
[INFO] Processing sub-content package 'we.retail.apps.communities-1.0.zip'...
[WARNING] Package does not specify a version. setting to ''
[WARNING] Package properties not valid. need group and name property.
[INFO] ------------------------------------------------------------------------
...
[ERROR] Failed to execute goal com.adobe.aem:aemanalyser-maven-plugin:0.0.14:convert (default-convert) on project analyser: Content Package Converter Exception: NullPointerException -> [Help 1]

Upon closer inspection - it seems to happen when we have zip file in an install folder that isn't a real content-package. We have to see why that case fails with an NPE.

This is fixed

This is fixed


Importing a previously installed cluster as a Tenant Control Plane

Let's imagine I got a cluster deployed on-prem and I'd like to migrate it over Kamaji.
By defining all the required certificates, such as CA, front-proxy, kube-apiserver, etc. it would be helpful having all the data copied from the old cluster to a new and freshly created Kamaji instance.

Thanks @prometherion for this!
I think it's definitely a good feature to have.


Usersnap Feedback - The submit buttons don't do anything. Just wondering about functionality f[...]

Sender<EMAIL_ADDRESS>Comment: The submit buttons don't do anything. Just wondering about functionality for user testing. When do you think the forms will work?

Jesi
Open #16 in Usersnap Dashboard

Download original image
Browser: Chrome 57 (macOS Sierra)
Referer: https://participedia.xyz/new/case
Screen size: 1280 x 800 Browser size: 1279 x 676
Powered by usersnap.com

This issue was moved to participedia/usersnaps#21


docs: Mistake in the guide documentation

Describe the bug
Table content of the variant prop of CoreAvatarGroup is buggy, related to #97
Expected behavior
All documentations must be thoroughly checked for any silly mistakes like these. Documentations must showcase professionalism.
Screenshots

Additional context

Documentation URLs:

http://<IP_ADDRESS>:xxxx/guide/components

Note: Ensure that the placeholders xxxx are replaced with the hosted port number.

This issue is redundant issue to #101
so closing this issue as invalid issue


Optimized the partitioning strategy implementation details to avoid unnecessarily high RU usage

Description
This PR optimizes some of the partitioning strategy values to reduce chance that RU-consumption for queries or change feed requests is unnecessarily high when no EPK filtering is enabled for an account. Functionally using Spark partitions scoped to subsets of physical partitions is possible to increase parallelization but it comes with an overhead of increase RU usage - and in many cases that is unnecessary. So, this PR avoids this from happening in most cases (unless partition merge happened) for all partitioning strategies except for Aggressive and Custom.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

/azp run java - cosmos - spark


updated auth logic on public plans

Fixes #1965.

For the record, the DCC-User approval was me. I was signed in to the wrong account accidentally 🙈


Learning rate finder broke on master

🐛 Bug

Learning rate finder stopped working on master branch (latest commit tested).
To Reproduce
Note: the BoringModel was not running so I used an other model from the docs
See this colab to reproduce the bug.
It works on latest released version (1.2.3) but not when installing from latest master branch (it diverges).

Expected behavior

Learning rate finder should converge

@SkafteNicki mind taking a look?

Just for info, it now runs on master but the value of the learning rate is much higher than what it should be (208929613.0854041 vs about 3 on last released version as of today).


Fix method resolution order for filtersets

Proposed Changes
nautobot.core.filters.BaseFilterSet.get_filters requires that it be the last base class if any FilterSet mixins use get_filters to add filters dynamically to the filterset. We should refactor these so that we can use the correct MRO for filtersets.

Justification
Code cleanup

Related discussion https://github.com/nautobot/nautobot/pull/5667#discussion_r1594554056


feat: Generate a random avatar when I user sign up

Delete has-avatar from the user entity.
GET/ https://robohash.org/usernamehere?set=set1&bgset=bg1&size=200x200

https://github.com/saferwall/saferwall-api/commit/b1248f590a9ab77a4cf1881e5949c06c79381386


Compiling files when saving typescript files

My files are getting compiled and put in the same directory when I save a file using typescript. I have confirmed that uninstalling syntastic stops the files from spilling everywhere. Currently, say I save a file in  myFolder/test/index.ts it will create myFolder/test/index.js. This seems to be intermittent because reinstalling it is gone. In the past I have also experienced this and reinstalling fixed it that time too for a while.

Syntastic is a Vim script, it can't produce JavaScript code.  What can produce code are the external checkers run by syntastic.  Open your test file and run :SyntasticInfo, to find out what checkers are run by syntastic.  Then set g:syntastic_debug to 1, run the checker, run :mes, and look for getcwd() and makeprg in the output, to find out how does syntastic run said checkers.  Then run the same commands in a terminal, and see whether they produce the offending files.  If they do, find a combination of options so that they no longer try to produce output.  Submit a PR if applicable.


As a user, I want to login into the website so that I can use application login page

all done with implementation.
Google login and register, manual login and register, user profile and email configuration.


firmware version 8: shutdown countdown does not work any more

using firmware v. 8
after starting a firmware shutdown
i2cset -y 1 0x17 24 30
the UPSPlus goes into a buggy state:

5V output power is NOT switched off (red light next to pogo pins stays on, RPi is not switched off).
i2c bus communication is broken: i2cdetect -y 1 takes a minute or so to execute, and does not detect the devices at addresses 0x17, 0x40 and 0x45.
without charger connected, blue battery charge indicators will switch off eventually and stay off, regardless of charge status.
the UPSPlus cannot be switched off using the button.

after checking, the problem exists, in the test we emptied the configuration area, so no problem was found, the actual reason is to find the information in the original configuration and the latest configuration there is a program can not deal with the part, the BKPT interruption occurred, now fixed, thank you for your attention to the latest firmware

upgraded to v.8 here, too, this afternoon. Went fine, as always.
I have two OS drives for the Pi/UPS:
(1) one SSD with motioneye and no Home Assistant
(2) the other SSD without motioneye, but since this morning a nicely working HA istallation (with the help of Hellresistor)
With SSD (2) i2c is totally broken: timeouts all the time, the journalctl -f window is filling up with i2c errors.
With SSD (1) i2c works normally as far as I have seen now.

@nickfox-taterli : we have to wait for a new firmware release ?
something else: charging time continues to accumulate even with no charger connected.
@ArjenR49 : i2c works ok here, as long as I do not start a shutdown countdown.

"something else: charging time continues to accumulate even with no charger connected."
I can confirm that.
Observed that accumulated running time, charging time and current up time aren't updated all at the same time.

After removing charger and batteries frtz13's script runs ok, and also my reporting program that reads all of the registers and prints info to the screen cause no i2c errors.
However a program that sets both sampling interval and protection voltage level makes the UPS f/w(?) go crazy and apparently all i2c operations cause an error filling the journalctl screen with red text...
Disconnecting the charger and taking the batteries out solves this, and things look fine and dandy.
However, it is to be expected that when the ups control script - whichever it may be - decides the Pi needs to be shut down and in preparation for this writes to an i2c register, things go badly wrong again.
For now while waiting for a better f/w version it is probably better to not test any real UPS functionality.

After removing charger and batteries frtz13's script runs ok, and also my reporting program that reads all of the registers and prints info to the screen cause no i2c errors.
However a program that sets both sampling interval and protection voltage level makes the UPS f/w(?) go crazy and apparently all i2c operations cause an error filling the journalctl screen with red text...
Disconnecting the charger and taking the batteries out solves this, and things look fine and dandy.
However, it is to be expected that when the ups control script - whichever it may be - decides the Pi needs to be shut down and in preparation for this writes to an i2c register, things go badly wrong again.
For now while waiting for a better f/w version it is probably better to not test any real UPS functionality.

We have improved the internal CI test according to @frtz13 , I2C read/write will not be a problem in our test, regardless of whether the original configuration exists or not, in addition, part of the configuration will exist in the EEPROM, the firmware functionality is constantly optimized, we are also trying a downgradeable method.

CI as in confidence interval?
There are many things great in @frtz13's approach, but the most essential is using exception handling on all i2c operations, IMO.
Not in all circumstances will there be i2c timing errors from the UPS control scripts, it seems, so you may not see them during testing in a bare Pi installation.
My first installation SSD with MotionEye running, however, had regular I2C timeout errors, which were eventually well handled in @frtz13's script.
The purpose of my second test installation SSD was to get Home Assistant and MQTT working on the Pi/UPS combo. That was a success, in the end, and on that installation I have had no i2c timeouts at all.
Until f/w 8 came along a few hours later ...
All in all I am convinced it would be wise to prepare for i2c timeouts in GeekPi's scripts, too, and add exception handling to all i2c and INA operations. When not handled the script crashes and the results thereof are unexpected as I experienced when I first started testing this UPS.

@nickfox-taterli  with firmware version 8
I left the UPS running since yesterday. i2c traffic is still normal (I did NOT start a shutdown sequence). however, after about 6 hours of operation battery temperature and charging port status are no longer updated by the firmware, like previously reported for firmware version 7 in issue #28 .

@nickfox-taterli with firmware version 8
I left the UPS running since yesterday. i2c traffic is still normal (I did NOT start a shutdown sequence). however, after about 6 hours of operation battery temperature, charging port status and running times are no longer updated by the firmware, like previously reported for firmware version 7 in issue #28 .

We are still investigating this, as you can see from this page, sometimes he freezes, but not always, and more problematically, sometimes it freezes after a week, and some people have been running for 50 days with no problems at all, and we initially intended to track the whole process of the program, but in fact there is no useful information at all when it freezes. If this issue is resolved, it will be released in a firmware update.
The second trouble is, in order to solve this problem, we will continue to test each product for seven days after mass, no problems were found in the test, but there are still a small number of customers, such as you have encountered this problem, we guess can be solved by modifying the firmware, and are working on this matter.

I haven't seen anything like @frtz13 described.
Mine has now been running for over 730 minutes with @frtz13's control script after the last reset. There have been regular i2c errors on this SSD installation, but they are all handled by the script as I can see from the journalctl -f output.
(This installation runs MotionEye with a camera and motion detection)
I just ran my report script twice in a row. The first time the UPS was apparently sampling battery characteristics and therefore discharging the battery. The charger supplied around 5 V according to that report.
On the second run the charger was back at around 9V as can be seen in the next report:
pi@RPI-HUB:~ $ python3 $HOME/UPS+MQTT/UPS_report_for_UPSPlus_mqtt.py
-------             01-06-2021 11:15:18              -------

*** Data from INA219 at 0x40:
Raspberry Pi supply voltage:                         4.900 V
Raspberry Pi current consumption:                    1.120 A
Raspberry Pi power consumption:                      5.500 W

*** Data from INA219 at 0x45:
Battery voltage:                                     4.200 V
Battery current (charging):                          0.273 A
Power supplied to the batteries:                     1.150 W

*** Remainder of report is based on data collected
*** by the UPS f/w and read from memory at 0x17

UPS board MCU voltage:                               3.280 V
Voltage at Pi GPIO header pins:                      4.910 V
USB type C port input voltage:                       9.140 V
Micro USB port input voltage:                        0.000 V

Battery temperature (estimate):                         48°C
Automatic detection of battery type                    yes
Batteries fully charged at (learned value):          4.320 V
Current voltage at battery terminals:                4.240 V
Batteries fully discharged at (partially learned):   3.200 V
Battery discharge limit for UPS is set at:           3.200 V
Remaining battery capacity:                             98 %
Battery sampling ('blue LEDs off') interval:             2 min

Current power state: normal

External power is connected to the USB type C input.

Should the external power be interrupted long enough
to cause the battery voltage to drop below 3.400 V
the Pi will be halted & the UPS will power it down.

Current values of the UPS power control registers:
0x18=0 / 0x19=0 / 0x1A=0
Explanation:
0x18 - Power off timer (no restart)   - not set.
0x19 - Automatic restart upon return of external power: no
0x1A - Power off timer (with restart) - not set.

Accumulated running time:                              736 min
Accumulated charging time:                             736 min
Current up time:                                       736 min
F/W version: 8
Serial Number:  ....

pi@RPI-HUB:~ $

HOWEVER, .... changing a parameter by writing to the correspondent registers does make the UPS f/w go totally berserk. It causes a constantly growing list of i2c errors in the journalctl terminal (control script is running).
After you then shutdown the PI via the GUI, the UPS will not switch off power when the button is pressed like it normally should do.
The only way to get out of this lockup is removing external power and the batteries...
How is work proceeding on a f/w that at least doesn't go berserk when writing to an I2C register?
Something like 'back to version 7' would be nice.

The version upgrade does not change the I2C communication, because the I2C communication is implemented through Bootloader, if the I2C communication fails, then the OTA will also fail.

I have succesfully updated to version 8 when it came out. There was never a failure on OTA update that I could see.
Since then I have been having the problems during normal use of the UPS which I described above, and they have to do with i2c communications on write as I have seen from messages in the the journalctl -f log.

After removing charger and batteries frtz13's script runs ok, and also my reporting program that reads all of the registers and prints info to the screen cause no i2c errors.
However a program that sets both sampling interval and protection voltage level makes the UPS f/w(?) go crazy and apparently all i2c operations cause an error filling the journalctl screen with red text...
Disconnecting the charger and taking the batteries out solves this, and things look fine and dandy.
However, it is to be expected that when the ups control script - whichever it may be - decides the Pi needs to be shut down and in preparation for this writes to an i2c register, things go badly wrong again.
For now while waiting for a better f/w version it is probably better to not test any real UPS functionality.

I also tried to use UPS PLUS to connect to 4B and run it for more than 6 weeks. It has been connected to an external power supply, and 4B provides a mkdocs server website for my colleagues to use every day, and I did not encounter the problems you encountered. Have you tried to refresh the system and try again? In addition, if you read the I2C device information too frequently, it will also cause some problems. Linux is not a real-time system, and the time slice switch polling may cause some problems due to the delay. This has nothing to do with the firmware.

ring normal use of the UPS which I described above, and they have to do with i2c communications on write as I have seen from messages in the the journalctl -f log.

Why write information to the register address frequently? You only need to read it, monitor it instead of frequently modifying its status. If you need to count down the power off, you only need to send a message to the register of your device.

This is a script that executes a power_off command to /dev/ttyUSB0 in the shutdown sequence. It only sends a power-off command to the MCU of the daughter board during shutdown. It has nothing to do with reboot. You can check your /lib/ The corresponding deskpi server script in systemd/system/, where the comflict part is used, is forbidden to take effect during reboot.


Current limitations in GraphQLError

Thanks to all who have contributed to this fantastic library.
It would be great to be able to be able to have more flexibility when reading from a GraphQL response's errors array. Specifically:

The GraphQL spec calls out locations as an key in a GraphQL error in addition to message. It seems straight forward add a locations key to GraphQLError.
Although the spec doesn't specifically mention other error keys, it would be useful to be able to parse additional keys (ex: userMessage -- a message that's guaranteed to be presentable to the user). To do so, it seems like adding an additional type parameter to GraphQLResult resulting in GraphQLResult<Data, ErrorType> (sadly, plain Error already exists in the namespace), thus allowing consumers of apollo-ios to define their own error types. This is clearly a more involved change, but is crucial to my own usage of apollo-ios.

Lastly, an certainly least importantly, the aforelinked spec section also mentions:

If the data entry in the response is null or not present, the errors entry in the response must not be empty. It must contain at least one error. The errors it contains should indicate why no data was able to be returned.

Thus, it seems like an enum might be better suited for this task rather than data and errors both being optionals. Result is a good example of this, and on potential implementation would be for GraphQLError to have a property of type Result.

(Responding here instead of on the PR for context.)
Thanks for bringing this up! I agree adding locations to GraphQLError makes sense.
I also see why custom error keys would be useful, but forcing users to specify a custom error type seems like a very heavyweight solution. Swift doesn't support default type arguments, so your PR would force you to always fully specify the type parameters of GraphQLResult everywhere, e.g. for every fetch.
Instead of custom error types, an alternative might be to modify GraphQLError to allow storing additional keys. By default, it would make them available untyped through a subscript. And then you could add typed accessors in your own app as an extension on GraphQLError:
extension GraphQLError {
  var userMessage: String? {
    return self["userMessage"] as? String
  }
}

How does that sound?

Good call on the light-weight solution you've proposed -- it seems like it'll be better for most consumers of this library. I hadn't noticed the inconvenience since I only use fetch and perform once in a wrapper, but you're right that it's there for those who don't wrap.
I'll go ahead and close #40. Implementing this is not something I've got steam for right now, but perhaps in the future.

I implemented the solution we discussed as part of https://github.com/apollostack/apollo-ios/commit/f77286f21c974856d94ad2eeab726d5a5d2ffddd.

@martijnwalraven I'm implementing the GraphQLError extension you suggested above, xcode complains on the self[ bit with:

Type GraphQLErrorhas no subscript members

Is there something I'm missing?

@benrom: This was only recently added and is not not in the patch 0.4.3 version yet.


Added documentation (GeometryInstance, VisualInstance, World, Theme, StreamTexture, Sky, and ShortCut)

I've filled in the documentation for both GeometryInstance and VisualInstance.
(I'm probably going to add docs for World, Theme, StreamTexture, Sky, and ShortCut as they're relatively easy to do. I'll add another commit on this PR when they're finished)

Thanks @cbscribe  and @akien-mga!
I fixed the problems in VisualInstance and GeometeryInstance. Now they hopefully have no more spelling and grammar issues, along with being more clear. I fixed them in the second commit, is that okay? I can try to fix the first commit if needed.
I added documentation for World, Theme, StreamTexture, Sky, and ShortCut. They probably could use a second pair of eyes, since I'm not sure everything is 100% accurate to what they actually do (mainly Sky and Shortcut). I tried to assure they don't have problems like VisualInstance and GeometeryInstance, so hopefully everything is good there.

You will need to squash down to one commit before this can be merged - the Godot team likes to keep the commit log clean.
Also, as a general rule of thumb, try and do a separate PR for different, unrelated changes. It's easier to track and review if they're not all in one gigantic commit.

Should I squash this commit into one? Or make another PR with the additional documentation? (World, Theme, StreamTexture, Sky, and ShortCut)

Thanks for your effort!


Regression: fun vs function

218fc12dec75af53707913c520a86eeb5c18eabf introduced a regression wrt the #'f/a sugar:
0e30930ac40ae407b43c024fe67a44db2a800ffd (before)
> (macroexpand '#'+/3 $ENV)
(lambda (|\|-2-\|| |\|-1-\|| |\|-0-\||) (+ |\|-2-\|| |\|-1-\|| |\|-0-\||))
> (funcall #'+/3 1 2 3)
6

218fc12dec75af53707913c520a86eeb5c18eabf (after)
> (macroexpand '#'+/3 $ENV)
(function + 3)
> (funcall #'+/3 1 2 3)
exception error: #(unbound_func #(+ 3))

The #' is not a macro in itself but a syntactic construct. Originally it expanded to fun which is a macro but now it expands to a function form which is much closer to the original CL construct. It was the fun macro which expanded to the lambda you saw so it would work with a macro while the function form can only refer to a function. You can see this if you compile code with function which refers to an undefined function or bif. There is also (function mod fun arity) which refers to a (exported) function in another module.
The fun macro still exists and behaves as before. I hope this makes sense.

The fun vs functionbit makes sense, and as I understand the commit message and your comment here, I think I preferfunction, but is it intentional to break e.g. (funcall #'+/1 1 2 3)`?
IIRC it still works as before for #'+/2, which feels even more strange to me.

It wasn't intentional to break it as such. The reason it breaks for #'+/3 is because + is a macro which expands into a set of nested #'+\2, which is the BIF. Trouble is we don't really have variable arity functions but use macros for that.

This is fixed now.


[core] Checkstyle enforcement for the core module.

Most common changes:

tabs to spaces and other whitespace reformating.
shorten lines over 80 chars.
make class members private
remove leading '_' in variable names.
add package-info.java

Lots of churn in this code review but I think doing this first will make the move from int->long update easier to review.

This looks a lot cleaner! It's hard to separate whitespace / name changes from structural changes (e.g., CommandLine#setProp) though. Could you elaborate on what changed besides names/spacing/access modifiers?

The setProps was due to the method length violation. I did a pretty straightforward refactoring to extract segments into methods.  There were two cases:
mvn checkstyle:check | grep "Method length."
/home/rjmoore/workspace/YCSB/core/src/main/java/com/yahoo/ycsb/CommandLine.java:66:7: Method length is 343 lines (max allowed is 150).
/home/rjmoore/workspace/YCSB/core/src/main/java/com/yahoo/ycsb/Client.java:562:3: Method length is 385 lines (max allowed is 150).

You can run the following commands to find specific instances on the pre-commit baseline.
JavadocStyle: First sentence should end with a period.
mvn checkstyle:check | grep "JavadocStyle: First sentence should end with a period."

Doing assignments in conditions: e.g., while( i = next() ) >= 0) {}
mvn checkstyle:check | grep "InnerAssignment: Inner assignments should be avoided."

Simplify expression like if ( expression ) { return true } else { return false } to just return expression;:
mvn checkstyle:check | grep "Expression can be simplified."

The rest is really little tedious stuff like the order of modifiers (ModifierOrder) making utility classes final and hidden constructor (Utility classes), and TODO comments (TODO).
There were 3953 error so I probably missed something but that is the major stuff where I needed to stop and think.

Thanks. This is fine with me, and it would be nice to clean things up. @busbey: what do you think? This will make #98 even harder to merge.

Wow - #98 is a huge collection of changes.
@busbey How close are you realistically to getting that merged. Maybe we can break it into pieces and work off each part as a group effort. I am more than willing to help but to be honest all of the different indenting and brace placement even within a single class have made making targeted changes difficult.

Rebased on top of the Status and raw metrics updates.

Thanks so much for doing this @allanbank!
On a related note, is there a coding style guideline for YCSB? If not, perhaps we can just enforce maven's checkstyle as is, and establish a rule that all Pull Request from this/some point on must have 0 checkstyle error for both new code contributed and existing files touched (which means more contributors will help cleanup existing code as time goes by.)

Sorry I missed this conversation. #98 remains an albatross around my neck. :/
I will have some free time to pick it up again this week, I think. I'm just on the last set of reverts, then I have to handle the merge.
Frankly, so much has changed since that PR started that I don't think we should hold up improvements while waiting for it.

I would really love to see this get merged, scrolling through checkstyle errors in Travis and local tests is getting old. @allanbank - do you have time for one more rebase? If not I can try and take it from where you left off. Thanks.

I share the same sentiment as @kruthar. I tried to modify this PR and rebase it. It had a lot of conflicts. Instead, I'm planning to open a few PRs to address the checkstyle. I'll probably do a PR per file since that would result in way less effort trying to stay up to date.

I created the following issue #895 and some separate PRs to address this in a piecemeal fashion.


Refactor: optimize unique validator

In my local test, the key value inputs component doesn't work with the updated unique validator. Would you please help to verify it? Thank you~

Verified and it works:


aws-c-common: 0.4.63 -> 0.4.64

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/aws-c-common/versions.
meta.description for aws-c-common is: "AWS SDK for C common core"
meta.homepage for aws-c-common is: "https://github.com/awslabs/aws-c-common"
meta.changelog for aws-c-common is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.4.64 with grep in /nix/store/dc0gb7qd1r04kx7x970038296x2vdk93-aws-c-common-0.4.64

directory tree listing: https://gist.github.com/59fdf049d0f34ad80f018fc9fe161f73

du listing: https://gist.github.com/e411b48fe55dad788af5f08cdaf3f9e0

Rebuild report (if merged into master) (click to expand)

252 total rebuild path(s)

69 package rebuild(s)

69 x86_64-linux rebuild(s)
62 i686-linux rebuild(s)
60 x86_64-darwin rebuild(s)
61 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
aws-c-cal
aws-c-common
aws-c-event-stream
aws-c-io
aws-checksums
aws-sdk-cpp
bundix
cabal2nix
cachix
common-updater-scripts
crate2nix
crystal2nix
dep2nix
disnix
disnixos
dydisnix
fusionInventory
go2nix
haskellPackages.cachix
haskellPackages.hercules-ci-agent
haskellPackages.nix-paths
haskellPackages.update-nix-fetchgit
hercules-ci-agent
hydra-unstable
libnixxml
lispPackages.quicklisp-to-nix
lispPackages.quicklisp-to-nix-system-info
nix
nix-bundle
nix-direnv
nix-doc
nix-du
nix-exec
nix-index
nix-pin
nix-plugins
nix-prefetch
nix-prefetch-bzr
nix-prefetch-cvs
nix-prefetch-docker
nix-prefetch-git
nix-prefetch-hg
nix-prefetch-scripts
nix-prefetch-svn
nix-serve
nix-update
nix-update-source
nixFlakes
nixStable
nixUnstable

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dc0gb7qd1r04kx7x970038296x2vdk93-aws-c-common-0.4.64 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A aws-c-common https://github.com/r-ryantm/nixpkgs/archive/a1fc4e52b7ccb73c7a724ae95df374f1fec75f21.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dc0gb7qd1r04kx7x970038296x2vdk93-aws-c-common-0.4.64
ls -la /nix/store/dc0gb7qd1r04kx7x970038296x2vdk93-aws-c-common-0.4.64/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package marked as broken and skipped:

nix-exec

1 package failed to build:

hercules-ci-agent

60 packages built:

aws-c-cal
aws-c-common
aws-c-event-stream
aws-c-io
aws-checksums
aws-sdk-cpp
bundix
cabal2nix
cachix
common-updater-scripts
crate2nix
crystal2nix
dep2nix
disnix
disnixos
dydisnix
fusionInventory
go2nix
hydra-unstable
libnixxml
lispPackages.quicklisp-to-nix
lispPackages.quicklisp-to-nix-system-info
nix (nixStable)
nix-binary-cache
nix-bundle
nix-direnv
nix-doc
nix-du
nix-index
nix-pin
nix-plugins
nix-prefetch
nix-prefetch-bzr
nix-prefetch-cvs
nix-prefetch-docker
nix-prefetch-git
nix-prefetch-hg
nix-prefetch-scripts
nix-prefetch-svn
nix-review (nixpkgs-review)
nix-serve
nix-update
nix-update-source
nixFlakes (nixUnstable)
nixos-generators
nixos-rebuild
nixos-shell
nixui
python37Packages.nix-kernel
python37Packages.nixpkgs
python37Packages.pythonix
python38Packages.nix-kernel
python38Packages.nixpkgs
python38Packages.pythonix
python39Packages.nix-kernel
python39Packages.nixpkgs
python39Packages.pythonix
update-nix-fetchgit
vgo2nix
vulnix

Maintainer pings
cc @orivej @edolstra for testing.

hercules-ci-agent is broken on master.

hercules-ci-agent is broken on master.


[dev-6.1] lv_win_content_size is unimplemented

Describe the bug
Self-explanatory. It seems that this function wasn't implemented fully.
https://github.com/littlevgl/lvgl/blob/c1e0faf440e40605f5e96cbe73d137fc21e322ba/src/lv_objx/lv_win.c#L251-L257
To Reproduce
Any code using this function and expecting it to work won't work properly, as the function won't have any noticeable effect on the window's size.

Correct somehow I've missed adding lv_obj_Set_size at the end. :sweat_smile:
Fixed in abb480f9


Optimizing getter access

The problem I was facing
I've been using aurelia for a project that does a lot of calculations using big.js on a single page. Those tend to be pretty slow. The page revolves around an object that has a lot of getters relying on each other to compute all the intermediary numbers (that are all printed on the page along the final results).
The issue I got into pretty quickly with that approach are:

first, when a value that is depended upon by a chain of getters, all of them are triggered, causing the basic getters to be called sometimes hundreds of time when they will always give the same result
some calculations were so expensive I had to move them into a Web Worker, thus I had some calculations that became intrinsically asynchronous, and getters returning promises don't play well with aurelia (at least now)

How I solved it
I came around one major idea, using @computedFrom is basically saying to aurelia "this getter is deterministic and given the value of the dependencies I'm listing, I will always produce the same result". Sure, this might not always be true, but at least I could assume that it is a good practice that should be encouraged.
And I came up with a bit of code that is pretty unobtrusive that I wanted to share to get your thoughts on it. But before giving the code base, I'd like to show the end result:
A basic example could look like:
@cache
class SomeDataClass {
  // ...

  @computedFrom('attr1')
  get attr2() {
    return this.attr1 + 42;
  }

  @computedFrom('attr2')
  @cache.async
  get attr3() {
    // this should be a real async task, but this will do for the exemple
    return Promise.resolve(this.attr2);
  }
}

export class MyView {
  static inject = [BindingEngine]
  constructor(bindingEngine) {
    this.bindingEngine = bindingEngine;
  }
  attached() {
    this.someData = new SomeDataClass();
    this.disposer = this.someData.observe(this.bindingEngine);
  }
  detached() {
    // we can also omit this if we want to keep the cache going on for
    // the whole app lifecycle or call it somewhere else to fine tune the lifecycle
    this.disposer.dispose();
  }
}

export class IsResolvingValueConverter {
  toView(value) {
    return value instanceof Promise;
  }
}

And the view could look like:
<template>

<input type="text" value.bind="attr1 & toNumber"/>

${someData.attr2}

  <template if.bind="someData.attr3 | isResolving">

Loading attr3...

  </template>
  <template else>

${someData.attr3}

  </template>
</template>

What the decorator does is encapsulating the getters that make use of computedFrom (I detect them using their dependencies property) to have it check if the value was already calculated, if not call the original getter and add its return value to cache, otherwise return the value from cache. I had to populate the cache into a $cache object that I put into a sub property of the object because, like that, I can add $cache.<attrName> to the getter list of dependencies to ensure that changing the value in the cache causes a new view rendering on the aurelia side.
When calling the observe method, I put in place my own property observers that bust the cache of all dependents properties when a value is changed, thus causing aurelia to access each related getters again, causing them to make the calculations once, and returning after their cache values.
When using the cache.async decorator, I put the promise in the cache, as it would have done without, but I add a very simple code to replace the promise in the cache by its resolved value if the cache still contains the original promise (thus preventing race conditions).
I also added a cache.disable decorator to disable the caching mechanism, in case of a non-deterministic getter.
You will find the (pretty suboptimized and still dirty but already so much more efficient than the default behavior in my use case) code base for those decorators in this file so it does not pollute the issue.
Why this is not an optimal solution
There are numerous reasons this is not optimal:

first, since I can't get my hands on an instance of BindingEngine easily, I have to require users to provide it to the object using the observe method. It also makes hierarchy of cached objects hard to initialize. I came up with a bit of code to tell the cache decorator that those exist so it automatically initializes them, but still it's far from perfect
I had to add a "dirty" $cache property on all observed instances of the class, which I find distasteful, if only because this cache already duplicates the value yet another time since it's already in the various currentValue properties of the various getter's observers. This is necessary so that aurelia picks up the change and access the getter to reflect it in the view. At least I did not find a better way to do it yet.
this approach makes it very hard to know when to clean up and what to clean up

What I believe would be awesome
I think that it would make sense for computedFrom to default to encapsulate the getters to make them return the currentValue in the observer except if the observer is marked as dirty.
I think, I might be wrong, it would be easy in the framework code base to mark each dependents observers as dirty when a value change and to notify the view it should refresh. By inverting the chain of responsibility this way, we can minimize code execution and make things quicker at the price of minor systematic checks.
It would also require to have some decorator to deactivate this behavior if needed (for non-deterministic getters for example).
The drawbacks
Since this might be a breaking change (for non-deterministic getters at least), it also needs to be carefully weighted. Maybe an opt-in behavior first and change it to default after a major update? I've no ready answer for that but if you deem the idea worth investigating, I'm sure your experience with aurelia up to now will provide enough insights as to how to handle this.

Afterthought
I want to add that the fact I was able to implement such a complex bit of code in merely 250 lines of code (including closing brackets ^^) is amazing. You really did a wonderful job and I just can't wait for vNext! Keep up with us, I Iove you all guys!


Invalid aria prop aria-description in ToolbarButton

#967 introduced a new warning:
Warning: Invalid aria prop `aria-description` on <button> tag. For details, see https://fb.me/invalid-aria-prop
    in button (created by ToolbarButton)
    in ToolbarButton (created by GraphiQL)

aria-description is not an official prop (but https://github.com/w3c/aria/issues/891 [re]started an attempt to include it).
Since there's already a title, I believe aria-description can be dropped without consequence.

@kasperisager could you chime in on this?

If memory serves me right, this was just my attempt at future proofing the error message. It can for sure be dropped without impact on current AT.

Thanks @kasperisager! :pray:
@gjvoosten a PR dropping this prop until it's official would be welcome :+1:

@benjie PR is there; not sure what's up with the failing Travis CI build though, seems unrelated to the one removed line…

Apologies, flaky end to end suite, I have a PR that makes it less flaky by
using a static site. Originally implemented the test server w weback dev
server which is slow.
I re-ran the build for now, lmk if that doesn't work for you (I’m at work
but I can check in here or there)
On Thu, Nov 14, 2019 at 4:48 AM Gertjan van Oosten<EMAIL_ADDRESS>wrote:

@benjie https://github.com/benjie PR is there; not sure what's up with
the failing Travis CI build though, seems unrelated to the one removed line…
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/graphql/graphiql/issues/995?email_source=notifications&email_token=AAKOFF5JX7BIT4ZQ5UMSV23QTUNG5A5CNFSM4JMYWHE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEBHR4Q#issuecomment-553810162,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKOFF2R3POKYF7NDPACFBDQTUNG5ANCNFSM4JMYWHEQ
.

@acao I'm fully aware of flaky CI builds (esp. timing related issues in end-to-end tests). :slightly_smiling_face:
The Node.js:12 job in the build matrix failed (had I permissions, I would have clicked Restart job; lather, rinse, repeat…); the Node.js :10 job succeeded.

i already did re-run both builds, so that means the node 12 build failed
again
On Thu, Nov 14, 2019 at 8:32 AM Gertjan van Oosten<EMAIL_ADDRESS>wrote:

@acao https://github.com/acao I'm fully aware of flaky CI builds (esp.
timing related issues in end-to-end tests). 🙂
The Node.js:12 job in the build matrix failed (had I permissions, I
would have clicked Restart job; lather, rinse, repeat…); the Node.js
:10 job succeeded.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/graphql/graphiql/issues/995?email_source=notifications&email_token=AAKOFFZRLDTMSKVB5DJILXDQTVHNBA5CNFSM4JMYWHE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEB2ZIQ#issuecomment-553888930,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKOFF7VVXWCFDUSAPLRICLQTVHNBANCNFSM4JMYWHEQ
.

@acao Sorry I wasn't clear enough; I was referring to the results of the restarted build run (initially both jobs failed, so there is progress :wink: ).


Bundle.main.url returning nil

I am having an issue where I supply Bundle.main.url the string of my video's path. The result is nil and I am not sure why. Any help would be greatly appreciated.
urlString = file:///private/var/mobile/Containers/Data/Application/01E65FA9-ED5C-44CD-BE88-DC4B322E75FE/tmp/trim.8A968C72-793A-45E9-8424-E6C516C71C81.MOV
`if x.vidUrl != nil {
print(x.vidUrl!)
var urlString = (String(describing: x.vidUrl!))
print(urlString)
let fileURL = Bundle.main.url(forResource: urlString, withExtension: "mov")
print(fileURL)
Alamofire.upload(fileURL!, to: url + "/profile/123/event/" + "1" + "/media").responseJSON { response in
debugPrint(response)
if response.response == nil {
print("fail")
} else {
print("pass")
}
            }
        }`

Resolved:
I was using Bundle.main.url when i already had the url for the video. Instead I just put the original url into my Alamofire.upload() call. I hope this helps someone


Can't export selected sections with project.yaml

The white list is saved as Ids in project.yaml. Since Id's can change on different installs, this makes it impossible to select what sections to use.
On my prod and stage environment, I have adminChanges turned off, and cannot change the values.
is it possible to change the whitelist into slugs that will be the same in different environments?

I'm having this issue as well. Every time we re-deploy the site the settings for section-field get wiped out and I have to re-enter them.


PuppetJs cancels xhr request to a new page if it takes too long time to load

This lineof PuppetJs: https://github.com/PuppetJs/PuppetJs/blob/gh-pages/src/puppet.js#L433 cancels pending requests which take too long time to proceed.
cc @warpech, @joozek78

I detected the same problem yesterday: https://github.com/StarcounterPrefabs/SignIn/issues/40#issuecomment-243470601
@joozek78 can you explain if this is necessary? It is very developer unfriendly.

Initially it was made to avoid two active reconnection requests. If the first one takes too long Puppet sends another one and when both succeed we have two active WS connections.

Assigning to @joozek78. He is fixing this.

It turns out that even if long requests alone don't trigger the reconnection, setting a breakpoint will freeze all threads and prevent heartbeat from getting a response. Thus, we decided to set the default heartbeat interval to 60s - that way we're developer-friendly and developers can tune it themselves to provide better experience to their users

Fix has now been pushed to starcounter develop.


partial select analysis

No issue to close. Related to #402
Description
select query analysis with columns
Is it a feature that change user experience?
no
Client output
no changes

Pull Request Test Coverage Report for Build 363007256

149 of 165 (90.3%)  changed or added relevant lines in 11 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 90.215%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/description/src/lib.rs
1
2
50.0%

src/metadata/src/lib.rs
18
20
90.0%

src/query_analyzer/src/lib.rs
35
48
72.92%

Files with Coverage Reduction
New Missed Lines
%

src/metadata/src/lib.rs
1
83.44%

Totals

Change from base Build 357361711:
-0.01%

Covered Lines:
8058

Relevant Lines:
8932

💛  - Coveralls


Show overlay message in case of video  in offline mode

https://openedx.atlassian.net/browse/MA-1816

I'm not sure this is right. We need to only show that message if the video isn't already downloaded.

:+1:
(by the way, when you post a new commit, github doesn't tell me about it, so if you've updated something, please add a comment so I know to review again)


Stop releasing as "-beta"

Is there a plan to stop using suffix -beta in release names/tags? I know we still make a ton of breaking changes but that does not make it a -beta really.
Many products and customers are using Go SDK in production for quite a while, as well as some of the new internal services that are ramping up nowadays. We feel confident using it just fine. And it's in top 3 in terms of requests sent to the ARM FrontDoor. I'm thinking maybe it's not a -beta anymore?

:D
Our plan is to release a non beta version in spring

Spring 2017? That means that the SDK will have been in beta for well over a year - why is this the case?

We have a set of internal criteria for lifting the beta tag. Once the criteria are met, we will release without the beta.

@eduardkoller out of interest - are the criteria that you refer to publicly available?

+1 for being open about the exit criteria for moving from beta to stable.

@eduardkoller is there any update on this?

I've just opened up issue #517 which I hope, at least when resolved, answers this question.
For now, I'm going to close this issue, because I hope that the conversation I just mentioned addresses the community's concern about both release status and transparency. Feel free to re-open or start a new thread if you do not feel this has been properly addressed.


Adding properties to a Span after it's attached to a future

Hi,
I've been trying out fastrace, and it's been quite nice to use in many respects. Thanks for working on it!
But one thing I haven't figured out how to do yet:
If I have bound a span to the future, I can't get a handle to that span again, to call with_property or with_properties. If I create a local child span, I can add properties to that child, but I'd like to actually add them to the parent (the span that's bound to the future).
Use case: I'd like to attach some properties to the result of an async call, e.g. some attributes of the value like success or failure.
Is there an approach I'm missing here, or is it possible to add?

hi @fiadliel, thank you for trying fastrace out. Adding properties to non-local local parent you mentioned is a current limitation of https://docs.rs/fastrace/latest/fastrace/local/struct.LocalSpan.html#method.add_property . It's possible and I'd like to make it available, but I need to evaluate the impact to other part of the system first.

I did not expect a PR yet - thanks a lot!
Will be a great help, it's sometimes useful to look for spans with certain properties, and often (most times) monitoring systems don't understand how to look for properties across a subtree of spans.

New version will this feature is released!
https://crates.io/crates/fastrace/0.7.2


Fixes #43. Add ${EXTENDED_SOURCE} flags

Per @gmao-msienkie, m_ellipsoid.f has a perfect cutoff where it compiles without extended source, but then has bad math!

Closing this. I've pulled in the fix into the branch for GEOSadas-5_27_1


⚠ Turnos 24x7 has degraded performance

In 3b87118, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 947 ms

Resolved: Turnos 24x7 performance has improved in 49477b6.


Fixed render bug in RecordVideo wrapper

Description
Fixed a bug where the RecordVideo wrapper was trying to retrieve the non-existing attribute last_frame from VideoRecorder causing recordings to fail. This pull request reintroduces the last_frame attribute resolving the issue.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] I have run the pre-commit checks with pre-commit run --all-files (see CONTRIBUTING.md instructions to set it up)
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

The pre-commit issue looks to be related to changes introduced in https://github.com/Farama-Foundation/Gymnasium/pull/117. pyright complains about env_checker.py:311:32 - error: "make" is not a known member of "None".
Example code throwing this error would be:
import gymnasium as gym

env = gym.make("CartPole-v1", render_mode="rgb_array")
env = gym.wrappers.RecordVideo(env, video_folder="./videos")
obs = env.reset()
env.render()

observation, info = env.reset(seed=42)
for _ in range(1000):
    action = (
        env.action_space.sample()
    )  # this is where you would insert your policy
    observation, reward, terminated, truncated, info = env.step(action)

    if terminated or truncated:
        observation, info = env.reset()
    env.close()

Resulting in AttributeError: 'VideoRecorder' object has no attribute 'last_frame' before the change.

I have just fixed the pre-commit issue in main, if you update to it, this should remove the issues

Done and in my use case it was just to render the initial environment for inspection before proceeding with the recording.
Regarding the fix, it would also be possible to remove the logic in record_video.py that accesses last_frame if you do not want to reintroduce it inside video_recorder.py.

@younik, thanks!
I removed the last_frame access in RecordVideo and undid the other changes as per your suggestion. I'll consider submitting a refactoring in the future but perhaps we can keep it simple for now :)


ValueError: No data_type found for builder root

Trying to convert a directory with data in Neuroscope (Neurosuite) format gives me the error ValueError: No data_type found for builder root in the get_cls method in line 701 of hdmf/build/manager.py.
I had written a minimal custom NWBConverter and an example to reproduce the the error would be:
from buzsaki_lab_to_nwb import MyNWBConverter
import spikeextractors

input_args = {
    'NeuroscopeSorting': {'folder_path': "D:\sample_data\sorted"}
}

my_converter = MyNWBConverter(**input_args)
metadata = my_converter.get_metadata()
nwbfile_path="D:\sample_data\sample_data.nwb"

temp = my_converter.data_interface_objects['NeuroscopeSorting'].sorting_extractor
temp.get_unit_ids()
temp.get_units_spike_train()
spikeextractors.NwbSortingExtractor.write_sorting(temp, save_path=nwbfile_path)

Using the spikeextractors.NwbSortingExtractor.write_sorting() method directly gives me the following error message stemming from h5py's io.write method: TypeError: No conversion path for dtype: dtype('<U11')
import spikeextractors as se

sorting = se.NeuroscopeMultiSortingExtractor(folder_path='D:\sample_data\sorted')
se.NwbSortingExtractor.write_sorting(sorting, 'D:\sample_data\sample_data.nwb')

By digging a bit deeper into the code, I found out that one can get rid of the error message by changing line 1066 in nwbextractors.py of the spikeextractors package from
nwbfile.add_unit(id=unit_id, spike_times=spkt, **unit_kwargs)
to
nwbfile.add_unit(id=1).
The resulting NWB file would then not contain any spike times, so this is certainly not a real fix.
The nwbfile.add_unit() method in turn is part of the pynwb package.

@wuffi The Converter object is for combining data from multiple sources, e.g. electrophysiology and behavior. If all you need is to convert electrophysiology data, it might be more complexity than you really need. Your snippet here:
import spikeextractors as se

sorting = se.NeuroscopeMultiSortingExtractor(folder_path='D:\sample_data\sorted')
se.NwbSortingExtractor.write_sorting(sorting, 'D:\sample_data\sample_data.nwb')

is what I would recommend.
A fix will need to be made to the spikeextractors library, so I'd recommend raising an issue there (though we are active there too and we'd be happy to help resolve it).
h5py recently changed the way they handle strings with their recent switch from 2.x to 3.x, and I suspect that might be what is causing problems here. Could you try downgrading h5py to a 2.x version?

Also, it would help if you could copy/paste the entire traceback

Hi Ben,
Thanks for your hints. Since I would also like to include behavior in my NWB file, going beyond the functionality provided by the spikeextractors package would probably make sense.
I ran the spikeextractors part of the code on Linux and it's working fine there. That's why I assume it's a problem of my installation on Windows. The version of h5py on Windows would be 2.10
Trying to reproduce the traceback now gives me a new error message: KeyError: "'core' not a namespace"
Traceback (most recent call last):

  File "C:\Users\user\Documents\convert_sorting_to_nwb.py", line 8, in <module>
    import spikeextractors as se

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\spikeextractors\__init__.py", line 10, in <module>
    from .extractorlist import *

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\spikeextractors\extractorlist.py", line 11, in <module>
    from .extractors.nwbextractors.nwbextractors import NwbRecordingExtractor, NwbSortingExtractor

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\spikeextractors\extractors\nwbextractors\__init__.py", line 1, in <module>
    from .nwbextractors import NwbRecordingExtractor, NwbSortingExtractor

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\spikeextractors\extractors\nwbextractors\nwbextractors.py", line 14, in <module>
    import pynwb

  File "c:\users\user\downloads\pynwb\src\pynwb\__init__.py", line 260, in <module>
    from . import io as __io  # noqa: F401,E402

  File "c:\users\user\downloads\pynwb\src\pynwb\io\__init__.py", line 1, in <module>
    from . import base as __base

  File "c:\users\user\downloads\pynwb\src\pynwb\io\base.py", line 1, in <module>
    from .core import NWBContainerMapper

  File "c:\users\user\downloads\pynwb\src\pynwb\io\core.py", line 9, in <module>
    from pynwb.file import NWBFile

  File "c:\users\user\downloads\pynwb\src\pynwb\file.py", line 13, in <module>
    from .base import TimeSeries, ProcessingModule

  File "c:\users\user\downloads\pynwb\src\pynwb\base.py", line 9, in <module>
    from .core import NWBDataInterface, MultiContainerInterface, NWBData

  File "c:\users\user\downloads\pynwb\src\pynwb\core.py", line 37, in <module>
    class NWBContainer(NWBMixin, Container):

  File "c:\users\user\downloads\pynwb\src\pynwb\__init__.py", line 131, in _dec
    __TYPE_MAP.register_container_type(namespace, neurodata_type, cls)

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\hdmf\utils.py", line 561, in func_call
    return func(args[0], **pargs)

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\hdmf\build\manager.py", line 793, in register_container_type
    spec = self.__ns_catalog.get_spec(namespace, data_type)    # make sure the spec exists

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\hdmf\utils.py", line 561, in func_call
    return func(args[0], **pargs)

  File "C:\Users\user\AppData\Local\Continuum\anaconda2\envs\nwb_conversion_env\lib\site-packages\hdmf\spec\namespace.py", line 314, in get_spec
    raise KeyError("'%s' not a namespace" % namespace)

KeyError: "'core' not a namespace"

A similar problem is mentioned on https://github.com/NeurodataWithoutBorders/pynwb/issues/1058.

Can you also provide the code you are running?

import pynwb
...
KeyError: "'core' not a namespace"

It looks like you are using a local download of the pynwb source code. This error is most often due to not git cloning the pynwb repo with submodules. I.e. if you run git clone [pynwb url] instead of git clone --recurse-submodules [pynwb url] you will get the above error.

Thanks, I'm afraid the --recurse-submodules flag it git clone was exactly what I was lacking.
It's also mentioned on http://pynwb.readthedocs.io/en/stable/getting_started.html#install-latest-pre-release - I should have better read the manual.
@bendichter The code I had been running had been the same as above:
import spikeextractors as se

sorting = se.NeuroscopeMultiSortingExtractor(folder_path='D:\sample_data\sorted')
se.NwbSortingExtractor.write_sorting(sorting, 'D:\sample_data\sample_data.nwb')


403 error when loading a web page

Before creating an issue, first upgrade cfscrape with pip install -U cfscrape and see if you're still experiencing the problem. Please also confirm your Node version (node --version or nodejs --version) is version 10 or higher.
Make sure the website you're having issues with is actually using anti-bot protection by Cloudflare and not a competitor like Imperva Incapsula or Sucuri. And if you're using an anonymizing proxy, a VPN, or Tor, Cloudflare often flags those IPs and may block you or present you with a captcha as a result.
Please confirm the following statements and check the boxes before creating an issue:

[ ] I've upgraded cfscrape with pip install -U cfscrape
[ ] I'm using Node version 10 or higher
[ ] The site protection I'm having issues with is from Cloudflare
[ ] I'm not using Tor, a VPN, or an anonymizing proxy

Python version number
Run python --version and paste the output below:
3.7.9

cfscrape version number
Run pip show cfscrape and paste the output below:
2.1.1

Code snippet involved with the issue
import cfscrape

s = cfscrape.create_scraper()
headers = {
    'authorization': 'discord token',
    'Content-Type': 'application/json',
    'user-agent': 'user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}

json = {
    'content': 'message'
}

r = s.post('https://discordapp.com/api/v6/channels/597890559423807519/messages',
           headers=headers, json=json)
print(r.status_code)
print(r.content)

URL of the Cloudflare-protected page
https://discordapp.com/api/v6/channels/597890559423807519/messages
URL of Pastebin/Gist with HTML source of protected page
https://pastebin.com/nVN6vQSp

in     'user-agent': 'user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
I had 'user-agent" written down twice. My bad! closing this issue now


Inefficient Equation renaming

Renaming Equations with Kore.Equation.Application.targetEquationVariables is a significant inefficiency because it traverses the entire Equation every time it is attempted, even if there is nothing to rename. We cannot use the same approach as with Kore.Rewriting.RewritingVariable.RewritingVariableName because the variable parameter of the equations may vary during execution.
The Target variable type is used by the matcher so that it prefers to instantiate variables from the equation rather than from the term. It is not strictly necessary to have a distinct type for this, and that would eliminate the overhead of targetEquationVariables, but it leaves the overhead of the first Equation.mapVariables call, which is paid at every attempt of an equation.
My best suggestion is that we consider fixing the variable type parameter so that we can use the RewritingVariableName approach (map all the equation variable names at initialization).

Plan

[ ] Fix all the variable type parameters to RewritingVariableName in Kore.Equation.Application. Do not remove the type parameter from any data types, but only fix the parameter where it appears. Follow the Mikado Method described below. (appetite: M)
[ ] Add an EquationVariableName to RewritingVariableName. It should be the "smallest" constructor according to compare. (appetite: S)
[ ] Initialize all Equation to have EquationVariableName variables. (appetite: S)
[ ] Don't change the variable type to Target in Kore.Equation.Application. Check before matching that the term has no free EquationVariableNames. Check after matching and unification that there are no free EquationVariableNames.

Mikado Method
The Mikado Method is a technique for making large changes to complex interdependent systems incrementally. The result should be a clean Git history showing incremental changes while refactoring the code to be more malleable. We will use git stash as a stack of pending changes.

Goal: Make the change we want to see (the "goal"). At the first iteration, this will be: fixing the type parameters of Kore.Equation.Application.attemptEquation.
Test: Build and run tests.

Pass: If everything passes, we are done with this goal.  Get the next pending goal (git stash pop) and Test again. If there are no more stashed changes, we are done.
Fail: If the build or tests fail, identify the source of the failure. This will be the new goal. Stash your changes so far (git stash) and begin again at Goal.

Description: http://www.methodsandtools.com/archive/mikado.php

For the first checkbox, so far I changed the following files:
	modified:   kore/src/Kore/Builtin/AssocComm/CeilSimplifier.hs
	modified:   kore/src/Kore/Builtin/AssociativeCommutative.hs
	modified:   kore/src/Kore/Builtin/Builtin.hs
	modified:   kore/src/Kore/Builtin/EqTerm.hs
	modified:   kore/src/Kore/Builtin/Int.hs
	modified:   kore/src/Kore/Builtin/KEqual.hs
	modified:   kore/src/Kore/Builtin/List.hs
	modified:   kore/src/Kore/Builtin/Map.hs
	modified:   kore/src/Kore/Builtin/Set.hs
	modified:   kore/src/Kore/Builtin/String.hs
	modified:   kore/src/Kore/Builtin/Verifiers.hs
	modified:   kore/src/Kore/Equation/Application.hs
	modified:   kore/src/Kore/Equation/Registry.hs
	modified:   kore/src/Kore/Equation/Sentence.hs
	modified:   kore/src/Kore/Equation/Simplification.hs
	modified:   kore/src/Kore/ModelChecker/Simplification.hs
	modified:   kore/src/Kore/ModelChecker/Step.hs
	modified:   kore/src/Kore/Rewriting/RewritingVariable.hs
	modified:   kore/src/Kore/Step/Axiom/EvaluationStrategy.hs
	modified:   kore/src/Kore/Step/Function/Evaluator.hs
	modified:   kore/src/Kore/Step/Rule/Combine.hs
	modified:   kore/src/Kore/Step/Search.hs
	modified:   kore/src/Kore/Step/Simplification/And.hs
	modified:   kore/src/Kore/Step/Simplification/AndPredicates.hs
	modified:   kore/src/Kore/Step/Simplification/AndTerms.hs
	modified:   kore/src/Kore/Step/Simplification/Application.hs
	modified:   kore/src/Kore/Step/Simplification/Ceil.hs
	modified:   kore/src/Kore/Step/Simplification/Condition.hs
	modified:   kore/src/Kore/Step/Simplification/Equals.hs
	modified:   kore/src/Kore/Step/Simplification/Exists.hs
	modified:   kore/src/Kore/Step/Simplification/Iff.hs
	modified:   kore/src/Kore/Step/Simplification/Implies.hs
	modified:   kore/src/Kore/Step/Simplification/In.hs
	modified:   kore/src/Kore/Step/Simplification/Not.hs
	modified:   kore/src/Kore/Step/Simplification/NotSimplifier.hs
	modified:   kore/src/Kore/Step/Simplification/OrPattern.hs
	modified:   kore/src/Kore/Step/Simplification/Pattern.hs
	modified:   kore/src/Kore/Step/Simplification/Rule.hs
	modified:   kore/src/Kore/Step/Simplification/Simplify.hs
	modified:   kore/src/Kore/Step/Simplification/SubstitutionSimplifier.hs
	modified:   kore/src/Kore/Step/Simplification/TermLike.hs
	modified:   kore/src/Kore/Step/Step.hs
	modified:   kore/src/Kore/Step/Substitution.hs
	modified:   kore/src/Kore/Unification/Procedure.hs
	modified:   kore/src/Kore/Unification/SubstitutionSimplifier.hs
	modified:   kore/src/Kore/Unification/UnificationProcedure.hs
	modified:   kore/src/Kore/Verified.hs

It seems that we won't be able to specialize the type of variables before we remove the Target wrapper, so we will do that first. It's helpful to understand why we have Target in the first place. When we do matching or unification, sometimes we get variable-renaming substitutions with the form:
X:S{} = Y:S{}

This substitution is completely symmetric: we could replace variable X by Y everywhere, or the other way around. But in practice there we usually prefer one of these over the other. For example, if we are applying a rule to the configuration, and X comes from the configuration and Y comes from the rule, then we would prefer to replace the Ys. That's what Target is for: we wrap the Ys in Target and the Xs in NonTarget, and then the substitution normalization routine automatically sorts any variable-renaming substitutions correctly. The purpose of the Target type is to feed extra information into the substitution normalization routine.
Here's how we will get rid of Target: substitution normalization won't sort the variable-renaming substitutions anymore. We will sort any variable-renaming substitutions after normalization. We will add a function
orientSubstitution
    :: InternalVariable variable
    => (SomeVariableName variable -> Bool)  -- ^ 'True' if the variable should be on the left-hand side of the substitution
    -> Map (SomeVariableName variable) (TermLike variable)
    -> Map (SomeVariableName variable) (TermLike variable)

orientSubstitution should find all the X = Y pairs and, whenever the provided function returns True for Y and False for X, it should swap the order to Y = X. To keep the substitution normalized, the new substitution should be applied to every TermLike in the map.
After that function is implemented, use it in Kore.Equation.Application.applyMatchResult to fix the order of the substitution. The  first argument to orientSubstitution should return True if the variable occurs in the Equation. Remember to apply the oriented substitution to the predicate in the match result, too!
After all that is done, we can remove the Target type from Kore.Equation.

It seems that we won't be able to specialize the type of variables before we remove the Target wrapper, so we will do that first. It's helpful to understand why we have Target in the first place. When we do matching or unification, sometimes we get variable-renaming substitutions with the form:
X:S{} = Y:S{}

This substitution is completely symmetric: we could replace variable X by Y everywhere, or the other way around. But in practice there we usually prefer one of these over the other. For example, if we are applying a rule to the configuration, and X comes from the configuration and Y comes from the rule, then we would prefer to replace the Ys. That's what Target is for: we wrap the Ys in Target and the Xs in NonTarget, and then the substitution normalization routine automatically sorts any variable-renaming substitutions correctly. The purpose of the Target type is to feed extra information into the substitution normalization routine.
Here's how we will get rid of Target: substitution normalization won't sort the variable-renaming substitutions anymore. We will sort any variable-renaming substitutions after normalization. We will add a function
orientSubstitution
    :: InternalVariable variable
    => (SomeVariableName variable -> Bool)  -- ^ 'True' if the variable should be on the left-hand side of the substitution
    -> Map (SomeVariableName variable) (TermLike variable)
    -> Map (SomeVariableName variable) (TermLike variable)

orientSubstitution should find all the X = Y pairs and, whenever the provided function returns True for Y and False for X, it should swap the order to Y = X. To keep the substitution normalized, the new substitution should be applied to every TermLike in the map.
After that function is implemented, use it in Kore.Equation.Application.applyMatchResult to fix the order of the substitution. The  first argument to orientSubstitution should return True if the variable occurs in the Equation. Remember to apply the oriented substitution to the predicate in the match result, too!
After all that is done, we can remove the Target type from Kore.Equation.


Mill needs a logo

Mill needs a logo. Thinking a pixel art windmill.
I loved the windmills in Fez.

Something like that, but simpler, would be pretty awesome.

☴ Mill
"☴" is the trigram for wind. https://en.wikipedia.org/wiki/Bagua
It's clean. It's simple. It's perfect.


Extract formatters into separated package

jQuery Terminal Formatters are interesting markup language.
It would be nice if all the functions for it are in a different repo.

formatters repo.


Update alter-database-scoped-configuration-transact-sql.md

The upper part of the same documentation page states that: Specifying a query plan handle is available in starting with SQL Server 2019 (15.x)
So here it's not 2017, it's 2019.

@markingmyname
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


dataset

Hi, thanks for your great work!
Could you please give some instructions about preparing the datasets in the paper?

Thank you for your interest in our work. The dataset has been open-sourced at https://huggingface.co/datasets/jingbo02/NovoBench.


add examples

I accidentally created this PR while working on a fork of the repository. Could you please delete this PR from the repository history? Thank you.