Concurrency issue?

Probably after the last update of flutter (2.0.5), my unit tests started to fail, I notice something strange:

As if the the select method is executed before the finish of the second execute method (teste it without transaction, the result is the same).
Unit test is executed in windows 10 environment with Sqlite.dll version 3.35.5.
Dart Sqlite3 version is 1.1.0.
Does anyone else have this issue or I am doing something wrong?

Interesting, when I change your C++ code to use sqlite3_exec to alter the table, the pragma statement does not find any rows. Interestingly, any other following select statement doesn't seem to find any rows either:
    //alter table
    string alterTableSql = "BEGIN TRANSACTION;\
        ALTER TABLE Expense ADD COLUMN category_id INTEGER NOT NULL;\
    ALTER TABLE Expense ADD COLUMN category_createTimestamp INTEGER NOT NULL;\
    ALTER TABLE Expense ADD COLUMN category_updateTimestamp INTEGER NOT NULL;\
    ALTER TABLE Expense ADD COLUMN category_name TEXT NOT NULL;\
    COMMIT; ";
    rc = sqlite3_exec(db, alterTableSql.c_str(), nullptr, nullptr, nullptr);
    fprintf(stdout, "done");
    if (rc != SQLITE_OK && rc != SQLITE_DONE) {
        fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        getchar();
        return(1);
    }

    //check table
    string tableInfoSql = "SELECT 1;";
    rc = sqlite3_prepare_v3(db, alterTableSql.c_str(),
        alterTableSql.length(), 0, &stmt, nullptr);
    if (rc != SQLITE_OK && rc != SQLITE_DONE) {
        fprintf(stderr, "SQL error: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        getchar();
        return(1);
    }

    while((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
        fprintf(stdout, "row\n");
        const char* columnName = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 1));
        printf(columnName);
        printf("\n");
    }

This library recently changed it's implementation of database.execute. In the past, we used sqlite3_exec as well, but we've now switched to using a prepared statement to support variables. Maybe that's a behavioral change you're seeing as well? Still, the behavior of the native code is surprising to me.

It is interesting indeed, why did it worked when the it does not in the c++ variant.
Also I manage to make my unit tests, which are related to the current issue, to pass when reverting back dart sqlite3 package to version 1.0.0.
And now with all this strange behavior I wonder if it is correct behavior the unit tests to pass and if there is a bug in the current version of dart sqlite3 package and if there are bugs in sqlite3 itself which cause inconsistent query results.

And yes it might be related that in version 1.0.0 execute method used sqlite3_exec and now it is using prepared statement.

So I can actually reproduce this with a very minimal C example:
#include <stdlib.h>
#include <stdio.h>
#include <sqlite3.h>

int main() {
	sqlite3* db;
	int rc;
	sqlite3_stmt* stmt;

	rc = sqlite3_open_v2(":memory:", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, 0);
	rc = sqlite3_exec(db, "CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY)", 0, 0, 0);

	//rc = sqlite3_prepare_v3(db, "BEGIN TRANSACTION; ALTER TABLE foo ADD COLUMN bar INTEGER NOT NULL; COMMIT;", 75, 0, &stmt, 0);
	//rc = sqlite3_step(stmt);
	//sqlite3_finalize(stmt);
	sqlite3_exec(db, "BEGIN TRANSACTION; ALTER TABLE foo ADD COLUMN bar INTEGER NOT NULL; COMMIT;", 0, 0, 0); check;

	rc = sqlite3_prepare_v3(db, "PRAGMA table_info(foo);", 23, 0, &stmt, 0); check
	while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
	    printf(sqlite3_column_text(stmt, 1));
	}
}

In this configuration, it prints idbar, if I use the prepared statement and comment out sqlite3_exec, it only prints id. I can't imagine that this is intended, I'll ask for advice on the sqlite3 forum.

Great, I will just use version 1.0.0 for now.

Oh no wait, I think I figured it out. sqlite3_prepare can only prepare a SINGLE statement, it ignores the rest of the string after the first statement is parsed. So in your case it would just start the transaction. We can use the const char **pzTail argument to detect that.
I think what this library should do is:

If no arguments are passed, use sqlite3_exec
Otherwise, check that the provided SQL statement does not have trailing contents, and throw if it does.

This explains a lot and yes this is great idea, there should be a fallback to sqlite3_exec in order to be possible to execute multiple statements in one call.

I've just published version 1.1.1 of the sqlite3 package which has the new behavior.


How do I figure out the communication between an android app and a drone to reproduce it with python and a wifi adapter?

My goal is to figure out the communication protocol between my drone and my android phone so I can control it with another device using unprotected wifi.
Unfortunately, apps for android that work between the drone and the app to capture wifi data prevent me from being able to control the drone. In other words, I cannot capture the movement data with it.
How do I figure out the communication to reproduce it with python and a wifi adapter?

If your android phone supports multi-window mode, you may try opening both the capture and controller application.
To find out which communication protocol is applied to your drone, you may try to find the datasheet from your drone's manufacturer.

It is a 4D-V8 by 4DRC. I neither found a data sheet nor communication protocol and the company is not responsive. This comes down to interecepting and understanding traffic to recreate, fortunately it's unencrypted. If you have more luck finding it, that's appreciated.


Improve error message for <:!<

Codecov Report

Merging #712 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #712   +/-   ##
=======================================
  Coverage   86.79%   86.79%
=======================================
  Files          87       87
  Lines        2492     2492
  Branches       60       60
=======================================
  Hits         2163     2163
  Misses        329      329

Impacted Files
Coverage Δ

core/src/main/scala/shapeless/package.scala
50% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 627f975...c6fc904. Read the comment docs.

LGTM! Many thanks ... merging :-)


Add lazyness to derive calculations

It's not a bug, but not accuracy. Derive callback called on derive.react without updating source value.
        const until = atom(false)
        const derive = until.derive((v) => {
            console.log('called!')
            return v
        })
        derive.react(() => {}, {skipFirst: true}) // shows called!

This is acceptable behaviour. Derivation functions must not have side effects for this reason; i.e. DerivableJS does not make strong guarantees about when derivations are calculated, only about when reactors are executed.
This is one case where total laziness is impossible to achieve, since you need to know the value of something to decide whether or not it has changed.

Ok, thanks.


Socket error: FileSystemException:

Anyone know how to solve this
It's not bothering me with development but sometimes they keep going up on my vs code screen
Socket error: FileSystemException: Directory watcher closed unexpectedly, path = 'c:\Users\Tree Inova\Desktop\ProjetosTreeInova\doggi_app\doggi'

Possibly a duplicate of https://github.com/flutter/flutter/issues/103651

I'm using vs code
`Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.0.2, on Microsoft Windows [versÆo 10.0.19043.1706], locale pt-BR)
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[√] Chrome - develop for the web
X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these
components:
MSVC v142 - VS 2019 C++ x64/x86 build tools
- If there are multiple build tool versions available, install the latest
C++ CMake tools for Windows
Windows 10 SDK
[√] Android Studio (version 2020.3)
[√] VS Code (version 1.68.0)
[√] Connected device (4 available)
[√] HTTP Host Availability
! Doctor found issues in 1 category.`

I don't use anything related to desktop development

Are you using the stable channel? Adding the -v flag to flutter doctor should print out the Flutter SDK version.

johnpryan
[√] Flutter (Channel stable, 3.0.2, on Microsoft Windows [versÆo 10.0.19043.1706], locale pt-BR)
• Flutter version 3.0.2 at C:\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision cd41fdd495 (6 days ago), 2022-06-08 09:52:13 -0700
• Engine revision f15f824b57
• Dart version 2.17.3
• DevTools version 2.12.2
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
• Android SDK at C:\Users\Tree Inova\AppData\Local\Android\sdk
• Platform android-32, build-tools 31.0.0
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[!] Visual Studio - develop for Windows (Visual Studio Professional 2022 17.0.1)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Professional
• Visual Studio Professional 2022 version 17.0.31912.275
X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these
components:
MSVC v142 - VS 2019 C++ x64/x86 build tools
- If there are multiple build tool versions available, install the latest
C++ CMake tools for Windows
Windows 10 SDK
[√] Android Studio (version 2020.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
[√] VS Code (version 1.68.0)
• VS Code at C:\Users\Tree Inova\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.42.0
[√] Connected device (4 available)
• SM A207M (mobile) • R9QN606QHTK • android-arm64  • Android 10 (API 29)
• Windows (desktop) • windows     • windows-x64    • Microsoft Windows [versÆo 10.0.19043.1706]
• Chrome (web)      • chrome      • web-javascript • Google Chrome 102.0.5005.63
• Edge (web)        • edge        • web-javascript • Microsoft Edge 102.0.1245.30
[√] HTTP Host Availability
• All required HTTP hosts are available

Hi @Rodrigossff91
I can not reproduce the issue on my side.
It seems your question is best suited for dart-lang/sdk.
You may find there the old issue https://github.com/dart-lang/sdk/issues/38853 that addressed the case you described.
And this might be a regression issue.
So please ask the same there for solutions if any. Do you think that is appropriate?

Same issue

Can't install the app in real device. Working only on the emulator.. Facing the same issue,

It sounds like this could be an issue with VSCode on Windows, you might also consider filing an issue here: https://github.com/Dart-Code/Dart-Code/issues


misleading error message for application variables

It appears that spin does not like uppercase names for application variables - but it complains with a misleading error message:
2023-07-02T17:47:48.611690Z ERROR spin_trigger_http: Error processing request: host component error: invalid config key: "PG_ADDRESS" must start with an ASCII letter
When changing the variable name to pg_address, it works. Clearly, the uppercase characters of PG_ADDRESS are valid ASCII, including the underscore _. I assume the requirement for lowercase config var names comes from here
It'd be great to fix that error message, and also make the docs a bit more verbose here about the matter.
I use spin 1.3.0

Hi @upachler ! Thanks for the report. This was recently addressed in #1623 and will be fixed in the 1.4 release.

Thanks for the feedback @upachler and sorry for the frustration.  We can have a look at how to make the definition stuff more prominent in the API guide.

@upachler Between the earlier PR, the linked error improvement PR, and the linked documentation PR, would you be okay with us closing this issue?  Thanks!

hi @itowlson, sorry for the delay; I'm only able to look at these things in my spare time - and that that time is scarce.
I've had a look at both commits that you linked. Judging from diffs, this looks fine!


python311Packages.phonenumbers: 8.13.13 -> 8.13.16

Changelog: https://github.com/daviddrysdale/python-phonenumbers/blob/v8.13.16/python/HISTORY.md
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

8 packages marked as broken and skipped:

python310Packages.flask-appbuilder
python310Packages.flask-appbuilder.dist
python310Packages.sqlalchemy-continuum
python310Packages.sqlalchemy-continuum.dist
python311Packages.flask-appbuilder
python311Packages.flask-appbuilder.dist
python311Packages.sqlalchemy-continuum
python311Packages.sqlalchemy-continuum.dist

2 packages failed to build:

python310Packages.python-benedict
python310Packages.python-benedict.dist

72 packages built:

apache-airflow
apache-airflow.dist
matrix-synapse
matrix-synapse-plugins.matrix-synapse-ldap3
matrix-synapse-plugins.matrix-synapse-ldap3.dist
matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
matrix-synapse-plugins.matrix-synapse-mjolnir-antispam.dist
matrix-synapse-plugins.matrix-synapse-shared-secret-auth
matrix-synapse-plugins.matrix-synapse-shared-secret-auth.dist
matrix-synapse.dist
mautrix-signal
mautrix-signal.dist
mautrix-telegram
mautrix-telegram.dist
pgadmin4
pgadmin4-desktopmode
pgadmin4-desktopmode.dist
pgadmin4.dist
python310Packages.django-payments
python310Packages.django-payments.dist
python310Packages.django-phonenumber-field
python310Packages.django-phonenumber-field.dist
python310Packages.django-two-factor-auth
python310Packages.django-two-factor-auth.dist
python310Packages.flask-admin
python310Packages.flask-admin.dist
python310Packages.flask-security-too
python310Packages.flask-security-too.dist
python310Packages.phonenumbers
python310Packages.phonenumbers.dist
python310Packages.sqlalchemy-i18n
python310Packages.sqlalchemy-i18n.dist
python310Packages.sqlalchemy-utils
python310Packages.sqlalchemy-utils.dist
python311Packages.django-payments
python311Packages.django-payments.dist
python311Packages.django-phonenumber-field
python311Packages.django-phonenumber-field.dist
python311Packages.django-two-factor-auth
python311Packages.django-two-factor-auth.dist
python311Packages.flask-admin
python311Packages.flask-admin.dist
python311Packages.phonenumbers
python311Packages.phonenumbers.dist
python311Packages.python-benedict
python311Packages.python-benedict.dist
python311Packages.sqlalchemy-i18n
python311Packages.sqlalchemy-i18n.dist
python311Packages.sqlalchemy-utils
python311Packages.sqlalchemy-utils.dist
sourcehut.buildsrht
sourcehut.buildsrht.dist
sourcehut.coresrht
sourcehut.coresrht.dist
sourcehut.gitsrht
sourcehut.gitsrht.dist
sourcehut.hgsrht
sourcehut.hgsrht.dist
sourcehut.hubsrht
sourcehut.hubsrht.dist
sourcehut.listssrht
sourcehut.listssrht.dist
sourcehut.mansrht
sourcehut.mansrht.dist
sourcehut.metasrht
sourcehut.metasrht.dist
sourcehut.pastesrht
sourcehut.pastesrht.dist
sourcehut.todosrht
sourcehut.todosrht.dist
sqlite3-to-mysql
sqlite3-to-mysql.dist


Update some translation ICT after 0601

Translator updated minor translation after ICT on 0601.
CC @jrafanie , please help review and merge it, thank you.

I opened https://github.com/ManageIQ/manageiq-ui-classic/pull/8821 to implement these changes in the UI json files.


Use Evaluator instead of TestModeEvaluator in the data-parallel example

We can use Evaluator directly to switch the training mode since v2.

I've also changed the permission of the file so that users can directly run the script (it would be better to make a separate PR, but both changes are small so I just made it in this PR).

LGTM


replace RDFS lookup of reverse attributes

Replace use of PyOxiGraph and .RDFS database schema for reverse lookup of attributes in query results, such as
https://github.com/PNNL-CIM-Tools/CIM-Graph/blob/develop/cimgraph/databases/blazegraph/blazegraph.py#L159

This has been implemented in https://github.com/PNNL-CIM-Tools/CIM-Graph/blob/feature/68/cimgraph/databases/init.py#L58

Fixed in #80


Gracefully exit on KeyboardInterrupt

Right now, when we try cntrl + c or KeyboardInterrupt, it creates a mess.

^CTraceback (most recent call last):
  File "./ghost", line 124, in <module>
    main()
  File "./ghost", line 110, in main
    server.connect(rhost, rport)
  File "/Users/psn/.ghost/core/server.py", line 44, in connect
    self.ghost.start_server()
  File "/Users/psn/.ghost/core/ghost.py", line 48, in start_server
    self.send_command("start-server", "", False, False)
  File "/Users/psn/.ghost/core/ghost.py", line 43, in send_command
    command_output = subprocess.getoutput("adb " + command + " " + arguments)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 630, in getoutput
    return getstatusoutput(cmd)[1]
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 611, in getstatusoutput
    data = check_output(cmd, shell=True, text=True, stderr=STDOUT)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 490, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 951, in communicate
    stdout = self.stdout.read()
KeyboardInterrupt

Like this:

I want to work on this issue.


Adding dfmt support for D

This PR adds basic dfmt support.

Awesome! Please add tests as well. See step 4 of How to add a beautifier for a language: https://github.com/Glavin001/atom-beautify/blob/master/docs/add-languages-and-beautifiers.md#how-to-add-a-beautifier-for-a-language

I added a simple test and put dfmt as default beautifier, since it seems better than uncrustify for beautifying D (with the code I tested them with at least), and also because the test would fail otherwise.

Published to v0.28.23


problem about waitfor funtion can not work repeatly

hi, I meet a problem that when I want run a workflow repeatly by conditions.
if there exists waitfor and publishevent function , the waitfor function can only work properply once.
the code seems like below:
//the main proc
while (flag)  {
if (waitflag)
{
host.PublishEvent("MyEvent", "0", "hello");
}
}
....
//the workflow define
......
.StartWith()
.Input(step => step.Input, data => data["InFlu"])
.Output((step, data) => data["OutFlu"] = step.Output)
.WaitFor("MyEvent" ,data => "0")
.Then()
so,is there any solution about this.
Tks.

Typically workflow applications do not wait for completion of tasks, but use callbacks instead.
But I think you can implement the semantics of "WaitFor" by using WFFuture.

Here`s some additional opinion:
Because every logic in workflow is task, so, if you want to do things repeatedly, you should run task repeatedly.
And WaitGroup can help you to do the wait flag.
// the main proc
int main()
{
    WFFacilities::WaitGroup wait_group(1);

    auto *task = create_publish_event_task(public_event_callback);
    __set_input(step.Input, task->get_req());
    task->start();
    wait_group.wait();
    ...
}

// the workflow callback logic define
void public_event_callback(PublicEventTask *task)
{
    if (data >= 0) // your condition
    {
        __get_output(task->get_resp(), step.Output);
        wait_group.done();
    }
    else
    {
        auto *next_task = create_publish_event_task(public_event_callback);
        series_of(this)->push_back(next_task); // repeatedly
    }
}

WaitGroupis implemented by WFFuture, which means you may also implement your wait_for() and get() base on WFFuture.

Tks.


FlexibleAdapter#updateDataSet should not take a list of IFlexible as argument

This forces to wrap every element of the list to an IFlexible before updating the adapter. In case of managing data through Jetpack's Room/LiveData, the dev has no control on the data when refreshed, and is just notified with the whole list when an element is refreshed which forces to rewrap every element of the list. I'm concern this could cause memory leaks and performance problems on the long run or with huge data sets.
Instead, I propose it takes the data list as is along with a factory to wrap only the new items.

@christophehenry, with LiveData and Room everything changed for the adapter. Those callbacks return always the whole list and maybe another solution has to be implemented.
As you suggests, I tried something similar in the LiveData addOn library, but then I didn't have to continue.
Your suggestions is to accept 2 params: the list and the factory, but where the difference has to be done and comparing which objects?

Your suggestions is to accept 2 params: the list and the factory, but where the difference has to be done and comparing which objects?

Since your library emphasize on the importance of overriding equals and hashCode. I suppose every IFexible should have the same equals and hashCode than its embedding item. Am I right?

Ok, I thought about it.
Regarding the factory: I can accept a custom Factory class or predefined Factory where maybe I can even accept a generic Class type with extra params to configure the IFlexible object, however this object might be a wrapper type holder, like "IHolder". Needs some experiments and the time to do it... :-)

I suppose adding a simple functionnal interface of type:
IHolder<? extends T> create(T item)

as a third parameter should be sufficent. Plus, it has the advantage of being fully compatible with Kotlin's lambda.


Compilation Messages and Annoying Repetitive Toasts

I am not sure what is going but when I run npm run dev. The console keeps displaying compilation and emitting messages. Every time this happens my mac toast notification keeps popping up with 'build successful' even when I am not doing anything. This can get quite annoying and obtrusive.
See image below

Am I the only one experiencing this? No response to this issue yet...

I get the same thing as well. I've noticed it does this when I use the copy method within my mix file.

@stevepop Can you give me more information? What does your webpack.mix.js file look like? I'm thinking that you have something there that's causing Mix to recompile recursively.

@JeffreyWay This is my webpack.mix.js
let mix = require('laravel-mix').mix;

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for your application, as well as bundling up your JS files.
 |
 */

mix.js('resources/assets/js/frontend.js', 'dist/js');

mix.js('resources/assets/js/backend.js', 'dist/backend/js')
   	.sass('resources/assets/sass/app.scss', 'dist/css')
	.sass('resources/assets/sass/backend.scss', 'dist/backend/');
	.copy('resources/assets/libs/font-awesome/fonts', 'public/dist/css/fonts');

mix.extract(['jquery', 'vue', 'axios', 'lodash', 'moment', 'bootstrap']);

Based in what @kaidesu mentioned above, I commented out the line,
.copy('resources/assets/libs/font-awesome/fonts', 'public/dist/css/fonts');
but the situation was the same.  Mix just keeps compiling until I cancel the operation.
Thanks for getting back to me on this.

Can you track it down to which mix.* call is causing the repeating compilation? If you reduce it to just mix.js(), does it still repeat?

To debug this, I need someone to give me a simple, reproducible example of how to get these repeated notifications.

@JeffreyWay, I have tracked the issue down as you suggested. This the the webpack.mix.js that works without recursive compilation.
let mix = require('laravel-mix').mix;

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for your application, as well as bundling up your JS files.
 |
 */

mix.js('resources/assets/js/frontend.js', 'dist/js')
	.js('resources/assets/js/backend.js', 'dist/backend/js')
	//.sass('resources/assets/sass/app.scss', 'dist/css')
	.sass('resources/assets/sass/backend.scss', 'dist/backend/')
 	.copy('resources/assets/libs/font-awesome/fonts', 'public/dist/css/fonts');

mix.sourceMaps();
mix.extract(['jquery', 'vue', 'axios', 'lodash', 'moment', 'bootstrap']);

As soon as I comment out the line;
.sass('resources/assets/sass/app.scss', 'dist/css').  It starts again. So I went to my app.scss file and began debugging line by line until I got to this the import for fontawesome.scss;
@import "vendor/font-awesome/scss/font-awesome.scss";
Once I commented this line out, everything worked!  I don't know what the issue is but I am glad I am able to reproduce this issue at your suggestion.
Are you able to reproduce this issue with Font Awesome?  Thanks!

I can't imagine why that's happening. Hmm..
Can you confirm that you're on the latest version of Laravel Mix? 0.5.2?

@JeffreyWay, here is an update. I had the following in my font-awesome scss file.
/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */

@import "variables";
@import "mixins";
//@import "path";
@import "core";
@import "larger";
@import "fixed-width";
@import "list";
@import "bordered-pulled";
@import "animated";
@import "rotated-flipped";
@import "stacked";
@import "icons";
@import "screen-reader";

Everything works when `@import "path" is commented out. Not sure what that means but that is what I have narrowed it down to.
Hmm, I checked my laravel-mix version it seems to be 0.4.0.

Go ahead and bump to 0.5.2 but I don't think that will change this particular issue.
Hmm - so weird!

Hmm, I updated to Laravel Mix 0.5.2. Now having the following errors
✘ steve@steves-devbox  ~/devapps/sites/vue2-naijaprizes   dev-wip ●✚  npm run dev

> @ dev /Users/steve/devapps/sites/vue2-naijaprizes
> cross-env NODE_ENV=development webpack --watch --progress --hide-modules

/Users/steve/devapps/sites/vue2-naijaprizes/webpack.config.js:32
module.exports.context = Mix.paths.root();
                                  ^

TypeError: Cannot read property 'root' of undefined
    at Object.<anonymous> (/Users/steve/devapps/sites/vue2-naijaprizes/webpack.config.js:32:35)

Don't forget to update your webpack.config.js, if you're using your own copy.
https://github.com/JeffreyWay/laravel-mix/blob/master/setup/webpack.config.js

Okay, Lavel Mix 0.5.2 installed and working. Issue with font-awesome.scss persists. The following is all that is in font-awesome's path.scss;
/* FONT PATH
 * -------------------------- */

@font-face {
  font-family: 'FontAwesome';
  src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
  src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
    url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
    url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
    url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
    url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
//  src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
  font-weight: normal;
  font-style: normal;
}

If I comment everything out, Mix working without the recompile issues but once I uncomment, it starts again.

.copy('resources/assets/libs/font-awesome/fonts', 'public/dist/css/fonts');
^You shouldn't have to do this.
With a properly set up webpack config, it should copy any assets used within your css. In the case of font-awesome, just do something like this in you scss...
$fa-font-path: '~font-awesome/fonts'; // this would normally go in a settings/variables file
@import "~font-awesome/scss/font-awesome"; // this would go with the rest of your imports

This works because of the file-loader.
See: https://github.com/JeffreyWay/laravel-mix/blob/master/setup/webpack.config.js#L112-L119

I can confirm that I get the same issue as reported by @stevepop - it does seem to boil down to the src property for fonts causing the watcher to constantly compile.
@font-face {
  font-family: 'fusion';

  // src:  url('#{$icomoon-font-path}/fusion.eot?d8lzr');
  // src:  url('#{$icomoon-font-path}/fusion.eot?d8lzr#iefix') format('embedded-opentype'),
  //   url('#{$icomoon-font-path}/fusion.ttf?d8lzr') format('truetype'),
  //   url('#{$icomoon-font-path}/fusion.woff?d8lzr') format('woff'),
  //   url('#{$icomoon-font-path}/fusion.svg?d8lzr#fusion') format('svg');

  font-weight: normal;
  font-style: normal;
}

@QWp6t, Thanks for your update. I followed your suggestions and did as follows;

I removed .copy('resources/assets/libs/font-awesome/fonts', 'public/dist/css/fonts');
Added $fa-font-path relative to my css ($fa-font-path: '../fonts';)
Imported form-awesome.css
No more recursive compilation occurred and the fonts were copied over to public/fonts. On my pages however the icons no longer display. I think this was why I ended up having to execute the mix.copy function above. See image below.

@JeffreyWay, I think this ticket can now be closed as the original issue reported seems to have been resolved. I guess I will have to think of an alternative way to get the fonts properly referenced.


NPE when accessing to body of WireMockHttpServletRequestAdapter

WireMockHttpServletRequestAdapter body can be null, and it causes NPE.
This line (https://github.com/spring-cloud/spring-cloud-contract/blob/9bafbf66c8f6c94bfae79ec6696ad26431876e54/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractResultHandler.java#L130)

has changed from version (commit: https://github.com/spring-cloud/spring-cloud-contract/commit/096790e04d6fae6cc1871413ddb3b605b0a75c76#diff-c23d3f85461e0c14a0da7a7ae917862e)
Before it was returning empty byte array. Now we get NPE in this line (https://github.com/spring-cloud/spring-cloud-contract/blob/9bafbf66c8f6c94bfae79ec6696ad26431876e54/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/WireMockVerifyHelper.java#L59) because of this change. It should return default empty array.

Makes sense. Thanks for reporting this.


CMake does not install pkg-config files

Should this be an issue in the gRPC issue tracker?
Yes.
What version of gRPC and what language are you using?
v1.11.0 but as far as I can tell this is a problem with many versions of gRPC.
What operating system (Linux, Windows, …) and version?
Linux, though presumably this is also a problem on macOS and Windows (where yes, sometimes pkg-config files are useful).
What runtime / compiler are you using (e.g. python version or version of gcc)
See below, I have attached a full Dockerfile to reproduce the problem.
What did you do?
Use this Dockerfile with sudo docker build -f Dockerfile . in an empty directory.

I expect the CMake files to install the pkg-config configuration files.  Regardless of how the library is compiled it should install the configuration files for however the application developer wants to use them.
What did you see instead?
The files are not installed, of course.
Anything else we should know about your project / environment?

Dupe of https://github.com/grpc/grpc/issues/10727


Fix getAuction function from ABI

Changed the outputs from getAuction function on ABI with the correct types for each output.

This ABI does not return correct values. Values are returned as
seller, tokenId, startingPrice, etc
but this ABI reads
auctionId, seller, startingPrice, etc


Fix Issue 18565 - std.regex Captures opAssign returns void since v2.079.0

something seems broken with git, did the steps dlang-bot told me to do

After changing the branch to stable, you need to rebase to stable to:
git rebase --onto upstream/stable upstream/master

I did that, had my changes on the master branch though so that's probably why it fucked up


[BugFix] Batched envs compatibility with custom keys

Fixes #1269
To be merged after #1204
Tests to be implemented

We can close this


Added Success Stories and Inspiration Board

Closes: #366

Title :
Name: Anshika Pal
Idenitfy yourself:  GSSOC Contributor

Describe the add-ons or changes you've made 📃
Give a clear description of what have you added or modifications made
This added feature enhances user engagement by allowing visitors to share personal stories and view insights from great historical figures. This feature includes distinct sections: initial inspirational stories, personal stories inspired by these teachings, and community-submitted stories, each styled uniquely for clarity
Type of change ☑

What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist: ☑

[x] My code follows the Contributing Guidelines & Code of Conduct of this project.
[x] This PR does not contain plagiarized content.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] My changes generate no new warnings.

Screenshots 📷

Dark mode changes too
Note to reviewers 📄

@Avdhesh-Varshney Kindly view the changes and merge it. Would be really helpful of you!
Thank you.


[Incompatibility] Phantom phasing not working with Lithium installed

Simply, if lithium is installed phantoms will be unable to move inside of any type of blocks while in phantom state
Minecraft ver: 1.16.5
Origins ver: 1.16.2/.3/.4/.5: Origins 0.4.6
Lithium ver: lithium-fabric-mc1.16.5-0.6.1
Fabric API: fabric-api-0.29.4+1.16

Thanks for the report!
While this isn't fixed on the mod side, you can navigate to the config folder and insert the following line add the end of the lithium.properties file:
mixin.shapes.lazy_shape_context=false

Thanks for the report!
While this isn't fixed on the mod side, you can navigate to the config folder and insert the following line add the end of the lithium.properties file:
mixin.shapes.lazy_shape_context=false

Fixed when using the latest Lithium version (tested with 0.6.3)


Does not support visibility settings

Checklist

[x] I updated the card to the latest version available
[x] I cleared the cache of my browser
[x] I verified that I'm really running the lastest version in my browser console
[x] I checked if there is another issue opened with the same problem

Describe the bug
Visibility settings do not work for the card. When one tried to add the visibility property the following error is thrown:
/// apexcharts-card version 2.1.2 /// value.visibility is extraneous
Version of the card
Version: 2.1.2
To Reproduce
This is the configuration I used:
visibility:
  - condition: state
    entity: binary_sensor.night_time
    state: "off"

Expected behavior
Visibility settings should work the same way as for any other card.
Desktop (please complete the following information):

Browser [e.g. chrome, safari]: Firefox
Version [e.g. 22]: 129.0.1

Would be nice to have support for visibility functionality added in HA few month ago

Agree, this would be highly appreciated. As a workaround, you can put it in a horizontal-stack which supports conditional visibility settings.

Agree, this would be highly appreciated. As a workaround, you can put it in a horizontal-stack which supports conditional visibility settings.


[DOC]: Update requirements docs to mark Pascal as deprecated

How would you describe the priority of this documentation request
Critical (currently preventing usage)
Please provide a link or source to the relevant docs
https://github.com/nv-morpheus/morpheus-experimental/blob/branch-24.03/README.md
Describe the problems in the documentation
Currently our docs list Pascal architecture GPU or better, however since this is now deprecated by rapids we should mark it deprecated as well.
(Optional) Propose a correction
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I have searched the open documentation issues and have found no duplicates for this bug report

Closing in favor of #75


[FLOC-3261] Design review: use node eras to identify nodes, so reboots invalidate node state

The idea is that if each reboot you have new era for a node, and clients of the REST API identify the node using its era (easily obtainable from /proc), the clients will never get stale data from previous reboots.
This also means clients don't have to read our TLS certificates to find node identity, a minor benefit.

Thanks.  Looks good, unless I've seriously misunderstood.  Please proceed (unless I've seriously misunderstood :wink: ).


Mqtt in domoticz/in change nvalue don't command zigbee2mqtt

Issue description
i have QBKG25LM with 3 switch ON/OFF
for one but it's the same for all
IDX 2345
I want to change to ON idx 2345
So i publish not me but tasmota with idx 2345
domoticz/in
{"idx":2345,"nvalue":1,"svalue":"","Battery":100,"RSSI":10}
Status on domoticz change to ON but no command in zigbee2mqtt
If i click on switch idx  2345 on domoticz interface command zigbee2mqtt start and light ON
Additional information
Zigbee2MQTT version:
v.1.14.2 (zStack12 20190608)
Python version:
3.7.3
Domoticz version:
2020.2
Plugin version:
0.2.0
Logs
Attach any additional logs here which might be useful: mqtt, domoticz, plugin logs

I guess better to post the issue on Domoticz itself as plugin just utilizes their API


astyle: 3.4.14 -> 3.4.15

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/astyle/versions.
meta.description for astyle is: Source code indenter, formatter, and beautifier for C, C++, C# and Java
meta.homepage for astyle is: https://astyle.sourceforge.net/
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.4.15 with grep in /nix/store/w69bbbnfw02kf08qyvcc6i3aywqa9qjq-astyle-3.4.15
found 3.4.15 in filename of file in /nix/store/w69bbbnfw02kf08qyvcc6i3aywqa9qjq-astyle-3.4.15

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

astyle

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/w69bbbnfw02kf08qyvcc6i3aywqa9qjq-astyle-3.4.15 \
  --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 astyle https://github.com/r-ryantm/nixpkgs/archive/8037ec160dfbc4fcc14d667440ee6020e4810223.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/8037ec160dfbc4fcc14d667440ee6020e4810223#astyle

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/w69bbbnfw02kf08qyvcc6i3aywqa9qjq-astyle-3.4.15
ls -la /nix/store/w69bbbnfw02kf08qyvcc6i3aywqa9qjq-astyle-3.4.15/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 --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

astyle

Maintainer pings
cc @carlossless for testing.

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

1 package built:

astyle


Chore/update release 0.6 part 2

Hey there and thank you for opening this pull request! 👋🏼
We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.
Details:
No release type found in pull request title "Chore/update release 0.6 part 2". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - fix
 - hotfix
 - feat
 - feature
 - chore


Added ability to include hidden files in sync

Fixes: #12

@cnunciato I think it was Luke that suggested that we check in the SDK folder as it means we can track the SDKs at a particular point in time

@pierskarsenbarg Ok sounds good -- I'm happy to adhere to whatever the conventions are. Fo feel free to leave 'em in, then, and regenerate when you're ready for a final review.

@cnunciato I've checked the SDKs in. All ready for final review.


[Bug]: resolve error in build without browsers in targets.js file

In one of our build scenarios, we export esmodules: true, instead of a list of browsers.

👋🏼 I'm helping out with maintenance here now (@pzuraq is kind of slammed)! Mind rebasing so this'll run through CI? It looks perfectly safe and reasonable to me, but… 😬 I have been bitten enough times by perfectly safe and reasonable to not want it to go through CI!

Thank you!


Hard Crash under operation

Describe the bug
Comma 2 froze and rebooted while activated.
How to reproduce or log data
9d8c378664ae56f2|2021-01-30--09-42-22--3
Expected behavior
To not crash while under operation
Device/Version information (please complete the following information):

Device: C2
Dongle ID: 9d8c378664ae56f2
Route: 9d8c378664ae56f2|2021-01-30--09-42-22--3
Timestamp: At very end of segment, between 9:46am and 9:48am
Version: release2-staging
Car make/model: 2019 Corolla Hatchback.
Additional context

N/A

Closing due to duplicate of https://github.com/commaai/openpilot/issues/19874


adopt curl -f to make the data loader fail if curl fails to download

curl is a rare unix utility that does not return an error code > 0 when it fails, unless we use -f (--fail); seems like a best practice we should promote.

Note to self: I'll have to re-deploy loader-census and loader-duckdb, since they show the loader code in the pages.


avoid voicemail when doing helpline volunteer calling

i may have found a workaround to make this work.

awesome, would be more ideal than timeout, but thats how the vineyards grasshopper works, 15sec between each helpline volunteer

this has been fixed in 2.0.0beta1


iTerm2 support

The modern MacOS terminal emulator iTerm2 natively supports high resolution images through a custom protocol. viuer could check if it is being invoked in iTerm and use this way of printing images instead of half-blocks.
To do that, the print method could be extended to check if the terminal is iTerm. The new printer would live in an iterm.rs file that has a iTermPrinter struct, implementing the Printer trait.
There is an unpublished rust crate that might be an inspiration, called iterm2.

Added in release v0.3.0.


Create a CAP Business Service with Node.js Using Visual Studio Code

Tutorials: https://developers.sap.com/tutorials/cp-apm-nodejs-create-service.html
Write here how you think we can improve the tutorial
Hi colleages,
in step 8 of this tutorial, at "Add persistent database", number 3, after creating the sqlite3 database, the text reads "This configuration is saved in your package.json as your default data source." But in fact, it is not. I had to find out about the missing part with the help of ChatGPT and add the respective part. It goes after
{
"name": "my-bookshop",
"version": "1.0.0",
"description": "A simple CAP project.",
"repository": "",
"license": "UNLICENSED",
"private": true,
"dependencies": {
"@sap/cds": "^7",
"express": "^4"
},
 { "cds": {
    "requires": {
        "db": {
          "kind ": "sqlite",
          "model": [
            "db/",
            "srv/"
        ],
        "credentials": {
           "database": "db/my-bookshop.db",
           "url": "sqlite.db"
        }
      }
    }
  }
, ...
}

Only after this addition to the package.json file did 'cds watch' pick up on the database and showed
[cds] - connect to db > sqlite { url: 'sqlite.db', database: 'db/my-bookshop.db' }.
Thank you.

Hi @AndreasMuno ,
I'm sorry for picking your issue so late. I'll look into it and get back to you then.
Thanks for reporting!
All the best,
René

Hi @AndreasMuno ,
I adapted the tutorial here: https://github.com/sap-tutorials/Tutorials/pull/23507/commits/7e8f0650eb262614a4aa273e7a86e162d1a48721
Thanks again for reporting!
All the best,
René


Universal listings - Pagination / search-whole-site toggle in table header

Add pagination details and toggle between searching the current section and the whole site, to the table header.
~Incorporates #11027~

Rebased.

Merged in 96917f72a74674867f89bdab3dda8da4ed03e51f, with blocktranslate fix in f22bc0255e378c421c865cd0fd67eebbf61395e1.


Correct name field to scheme

Hey!
This scheme currently fails to be parsed because the name field is actually supposed to be named scheme. Here's a fix!

Thanks!


Pipeline only saves after changing default

When the default filter is added  in pipeline_tuning the resulting pipeline is empty.

This is a duplicate of #236. No chance of knowing.


Updating the search to full page does not work

Great theme, thanks a bunch. When I try to update the Simple-Jekyll-Search to full page, as per this, it stops working completely. I tried replacing all the relevant code, but no luck. Can you you help?

Let me know if this works for you,
---
---
[
  {% for post in site.posts %}
    {
      "title"    : "{{ post.title | escape }}",
      "category" : "{{ post.category }}",
      "tags"     : "{{ post.tags | join: ', ' }}",
      "url"      : "{{ site.baseurl }}{{ post.url }}",
      "date"     : "{{ post.date }}"
    } {% unless forloop.last %},{% endunless %}
  {% endfor %}
  ,
  {% for page in site.pages %}
   {
     {% if page.title != nil %}
        "title"    : "{{ page.title | escape }}",
        "category" : "{{ page.category }}",
        "tags"     : "{{ page.tags | join: ', ' }}",
        "url"      : "{{ site.baseurl }}{{ page.url }}",
        "date"     : "{{ page.date }}"
     {% endif %}
   } {% unless forloop.last %},{% endunless %}
  {% endfor %}
]

If this works, then I can tell what you did wrong

Thanks for getting back to me. This does not work, though.

... I tried again with a freshly cloned theme, still no luck.

I'm not sure why its behaving like that. When you find out, kindly let me know

I have no idea why it won't work, if I did I would let you know of course.


Add git-guilt post-commit hook

Change-Id: I70d5c21b6507e6562221218aadd02a74a882c0dc
git-guilt reports the change in blame since the last commit.
Blocked by #92

Thanks for the pull request, @jawshooah.
Happy to merge once my comments are addressed!

Closing due to lack of response. Feel free to submit your pull request when it's ready.


render crash on colab

Do anyone face this issue, I create gfootball environment on colab like below and it crashes.
import gfootball.env as football_env
env = football_env.create_environment(
    env_name="academy_empty_goal_close",
    stacked=False, logdir='/tmp/football',
    render=True)

Or if the render para is False then do env.render() later, it crashes too.

Colab doesn't support rendering -- see the README: Quick Start > In colab

Thanks for your reply. Here is my approach:
import gfootball.env as football_env
env = football_env.create_environment(
    env_name="academy_empty_goal_close",
    stacked=False, logdir='/tmp/football',
    write_full_episode_dumps=True,
    render=False)

And then dump the output to a video by:
!python /content/football/gfootball/dump_to_video.py --trace_file=/tmp/football/episode_done_20201101-090912664139.dump

Now I can download video from colab, hope this helps someone.


python310Packages.google-cloud-secret-manager: 2.11.1 -> 2.12.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.google-cloud-secret-manager is: "Secret Manager API API client library"
meta.homepage for python310Packages.google-cloud-secret-manager is: "https://github.com/googleapis/python-secret-manager"
meta.changelog for python310Packages.google-cloud-secret-manager is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.12.0 with grep in /nix/store/0qb180lsk81p0s2w44s33dbaabd6qlz6-python3.10-google-cloud-secret-manager-2.12.0
found 2.12.0 in filename of file in /nix/store/0qb180lsk81p0s2w44s33dbaabd6qlz6-python3.10-google-cloud-secret-manager-2.12.0

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

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
python310Packages.google-cloud-secret-manager
python39Packages.google-cloud-secret-manager

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0qb180lsk81p0s2w44s33dbaabd6qlz6-python3.10-google-cloud-secret-manager-2.12.0 \
  --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 python310Packages.google-cloud-secret-manager https://github.com/r-ryantm/nixpkgs/archive/c230a239b8648a2a58d8b1e187e1c9d775196d28.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/0qb180lsk81p0s2w44s33dbaabd6qlz6-python3.10-google-cloud-secret-manager-2.12.0
ls -la /nix/store/0qb180lsk81p0s2w44s33dbaabd6qlz6-python3.10-google-cloud-secret-manager-2.12.0/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

2 packages built:

python310Packages.google-cloud-secret-manager
python39Packages.google-cloud-secret-manager

Maintainer pings
cc @siriobalmelli @SuperSandro2000 for testing.

LGTM, thank you


Live Caption Translator - Universal Translation for Windows

Description of the new feature / enhancement
The Live Caption Translator is a powerful and innovative feature that integrates multiple existing PowerToys features, such as "Always on Top" and "Text Extractor," to provide users with an exceptional translation experience on Windows. This feature utilizes AI technologies to capture live audio from various sources, such as videos, games, or any running program, and instantly converts it into text. The extracted text is then translated into the desired language, allowing users to understand and follow conversations or content in real-time, regardless of the application or context.
Scenario when this would be used?
 With the Live Caption Translator, you can enable this feature, and the translated text will be displayed as captions in a non-intrusive manner, ensuring that you don't miss any important details while enjoying your video or game. This feature will be immensely helpful for language learners, individuals with hearing impairments, or anyone who needs instant translation while using Windows.
Supporting information

Integration of "Always on Top": The Live Caption Translator feature can be set to stay on top of other windows, ensuring that the translated captions are visible and accessible while using any application or watching videos.

AI-based Speech Recognition: Utilizing advanced AI algorithms, the Live Caption Translator accurately converts live audio into text, providing reliable and real-time transcription for translation (Live captains in windows).

Neural Machine Translation: The translation component of the Live Caption Translator employs state-of-the-art neural machine translation models to ensure accurate and contextually meaningful translations.

Accessibility and Language Learning: The Live Caption Translator benefits individuals with hearing impairments, language learners, and anyone seeking immediate translation while consuming audiovisual content. It promotes accessibility, inclusivity, and enhances language learning experiences.

User Demand and Feedback: There is a growing demand for real-time translation features that work seamlessly across applications and media content. Users have expressed their interest and support for such a feature, highlighting its potential impact and usefulness.

By condensing the description and incorporating an example of live captions on a video, along with brief supporting information, the feature request becomes more concise and focused while still conveying its potential benefits and feasibility.

/feedbackhub


Problem converting MA.obo to MA.owl

From<EMAIL_ADDRESS>on September 12, 2013 07:26:08
Tried to run adult_mouse_anatomy.obo through stand alone Oort tool

Open MA in OORT
choose RDF/XML default
Run converter

<b>What is the expected output? What do you see instead?
Got OWL file but when opened, got a file with hundreds of children under "thing" (even when reasoned)

<b>What version of the product are you using? On what operating system?
Old... 0.4. But me suspects its still a problem on latest release as the MA.owl file on OBOFoundry has the exact same issue.

<b>Please provide any additional information below.

Original issue: http://code.google.com/p/owltools/issues/detail?id=78

From<EMAIL_ADDRESS>on September 12, 2013 07:42:19
Ignore this. I'm a dummy.protege doesn't build part_of tree hierarchies.

From<EMAIL_ADDRESS>on September 12, 2013 15:16:49
Yes, it would be great if protege provided tree navigation for existential axioms
Status: Invalid


[material-ui][Alert] Can't set slots in theme's defaultProps in 5.15.11

Steps to reproduce
Steps:

Create a custom theme using createTheme
Configure MuiAlert component:

const theme = createTheme({
  components: {
    MuiAlert: {
      defaultProps: {
        slots: {
          closeIcon: CloseRounded,
        },
      },
    },
  },
});

Current behavior
TypeScript gives the following error:
Object literal may only specify known properties, but 'slots' does not
exist in type 'Partial<AlertProps>'. Did you mean to write 'slot'?

Expected behavior
It shouldn't throw an error and it should work the same as in the previous 5.15.10 version.
Context
In our application we customised the default theme using the createTheme utility.
Your environment

npx @mui/envinfo
  System:
    OS: macOS 14.3.1
  Binaries:
    Node: 20.11.1 - /opt/homebrew/opt/nvm/versions/node/v20.11.1/bin/node
    npm: 10.2.4 - /opt/homebrew/opt/nvm/versions/node/v20.11.1/bin/npm
    pnpm: Not Found
  npmPackages:
    @emotion/react: 11.11.4 => 11.11.4
    @emotion/styled: 11.11.0 => 11.11.0
    @mui/base:  5.0.0-beta.37
    @mui/core-downloads-tracker:  5.15.11
    @mui/icons-material: 5.15.11 => 5.15.11
    @mui/lab: 5.0.0-alpha.166 => 5.0.0-alpha.166
    @mui/material: 5.15.11 => 5.15.11
    @mui/private-theming:  5.15.11
    @mui/styled-engine:  5.15.11
    @mui/system:  5.15.11
    @mui/types:  7.2.13
    @mui/utils:  5.15.11
    @mui/x-data-grid: 6.19.5 => 6.19.5
    @mui/x-date-pickers: 6.19.5 => 6.19.5
    @types/react: 18.2.61 => 18.2.61
    react: 18.2.0 => 18.2.0
    react-dom: 18.2.0 => 18.2.0
    typescript: 5.3.3 => 5.3.3

Search keywords: Alert, slots, 5.15.11

Hey @andrei-shoreline, thanks for the report. We're working on it 👍🏼

The fix should be released on the next version, v5.15.13, next week. Sorry for the inconvenience.

Thank you for the fix!


aspell, used to work but not now?

❱micro --version
Version: 2.0.15-dev
Commit hash: 04c57704
Compiled on August 28, 2024
⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼ /home/greg ⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼
❱micro -plugin list
The following plugins are currently installed:
initlua (0.0.0-unknown)
aspell (1.3.0)
autoclose (1.0.0)
comment (1.0.0)
diff (1.0.0)
ftoptions (1.0.0)
linter (1.0.0)
literate (1.0.0)
status (1.0.0)
⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼ /home/greg ⎼⎼⎼⎼⎼⎼⎼⎼⎼⎼
❱uname -r
6.10.13-3-MANJARO
I used to use spellchecking with micro, i keep a quick note as i always forget how to set it up.
This was my note.
##############  MY ADDED SHORCUTS  #######################

.config/micro/bindings.json
{
    "Alt-/": "lua:comment.comment",
    "CtrlUnderscore": "lua:comment.comment",
    "Alt-l": "lua:initlua.toggleAspell",
    "Tab": "Autocomplete|lua:aspell.acceptsug|IndentSelection|InsertTab"
    "AltA": "lua:aspell.addpersonal"
}

##############  ASpell  #######################

you'll have to use a lua script to achieve this. In ~/.config/micro/init.lua, you can make a function:

function toggleAspell(bp)
    bp.Buf:SetOptionNative("aspell.check", not bp.Buf.Settings["aspell.check"])
end

and then in ~/.config/micro/bindings.json, (if it not already) you can bind the function above:

{
    "Alt-l": "lua:initlua.toggleAspell"
}

Personal Dictionary list ~/.aspell.en.pws

Alt+Shift+A = Add word to personal dictionary.

However, although this used to work, pressing Alt-l does not do anything now?

I currently wonder why you need a extra lua script, since you could use lua:aspell.togglecheck directly or can't you?

@Andriamanitra:
Any ideas? For me it is working, so I assume there is something special with its setup.

The only thing is this plugin that i showed above that says
initlua (0.0.0-unknown)
maybe its a hint what the problem is but i get this.
❱micro -plugin install initlua
Unknown plugin "initlua"

use Ctrl+e to try: lua:aspell.togglecheck
Unknown command lua:aspell.togglecheck

You can't use the "lua:foo.bar" syntax in the command prompt. This syntax is only for keybindings. You can use set aspell.check on and set aspell.check off in the command prompt to change the configuration value (there's also a plugin called toggler that adds a command to toggle any boolean setting). If you want to have a command to toggle the value you can add something like this in your init.lua:
local config = import("micro/config")

function toggleAspell(bp)
    bp.Buf:SetOptionNative("aspell.check", not bp.Buf.Settings["aspell.check"])
end

function init()
    config.MakeCommand("toggle-aspell", toggleAspell, config.NoComplete)
end

I don't know, I definitely have Lua installed. I have removed and reinstalled micro but it just wont do anything with lua

You don't need to have Lua installed as the interpreter is embedded into micro.

The only thing is this plugin that i showed above that says
initlua (0.0.0-unknown)
maybe its a hint what the problem is but i get this.
❱micro -plugin install initlua
Unknown plugin "initlua"

The "initlua" is not a real plugin, it refers to your init script in ~/.config/micro/init.lua.

What do you get if you run show aspell and show aspell.check in micro's command prompt? Does the value for show aspell.check change if you change the value through the keybinding you have configured? What about if you change it with set aspell.check on?

show aspell
true
show aspell.check
true
ahh, set aspell.check on works
hmm, so show aspell.check was set to true but that was not working but after i used set aspell.check on it sets show aspell.check to on and set aspell.check off sets it to off. Neither set it to true or false  which was what mine was set to (true in this case).
So how do i setup a keybinding to toggle set aspell.check on/off since my old note/script does not work ?

So how do i setup a keybinding to toggle set aspell.check on/off since my old note/script does not work ?

This is, what...

I currently wonder why you need a extra lua script, since you could use lua:aspell.togglecheck directly or can't you?

...is used for: bind Alt-l "lua:aspell.togglecheck"
So the root cause most probably was, that aspell.check was set to a boolean value, while it uses on|off|auto.

i tried the code i used to use again but it just toggles it back and forth between true/false , but it needs to be on/off.
Something has changed as this used to work.
Anyhow, i have added toggler, but still dont know exactly how to use it to toggle aspell.check on/off.

ok i adjusted my original script,
im still not sure how to use toggler, but never mind.
This work, thank god. I wonder why a toggle-able boolean setting does no longer except true/false but meh.
Cheers @Andriamanitra  & @JoeKar
local config = import("micro/config")

function toggleAspell(bp)
    if bp.Buf.Settings["aspell.check"] == "on" then
        bp.Buf:SetOptionNative("aspell.check", "off")
    else
        bp.Buf:SetOptionNative("aspell.check", "on")
    end
end

function init()
    config.MakeCommand("toggleAspell", toggleAspell, config.NoComplete)
end


Add support for multi-band raster ingest

Multi-band geospatial raster ingestion doesn't work. This PR corrects the code so that it does work.

@normanb @nkules can you give this a look and review?

@sgillies please feel free to merge.
@JohnMoutafis let's get a release out with this change soon (cc @antalakas).


Can't resolve add-ins when custom nuget feed is added

I've added a custom feed to NuGet.config on our build server, with the following contents:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="private" value="https://our.private.nuget.feed/nuget" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

Since I did that, add-in resolution fails. My build script starts with (after declaring a few arguments) #addin Cake.Json and the build fails there with

Unable to find package 'Cake.Json'.
Error: Failed to install addin 'Cake.Json'.

I assume this is because Cake is unable to find it in our private feed - but why doesn't it look in both feeds?
Earlier in the build output (from InitializeDNXEnvironment.ps1), I see output like

NuGet Config files used:
C:\Users\tfsbuild\AppData\Roaming\NuGet\nuget.config
Feeds used:
https://our.private.nuget.feed/nuget/
https://api.nuget.org/v3-flatcontainer/

so I'm pretty certain the NuGet.config contents are OK.
What could be wrong here?

@tlycken
Currently, the way to reference addins via the script is to write your NuGet package dependency like this:
#addin nuget:https://our.private.nuget.feed/nuget/?package=Cake.Json

If you want to resolve using the NuGet config, this is probably better to restore packages in your bootstrapper.

Similar for fetching the addin from nuget would be
#addin nuget:https://nuget.org/api/v2/?package=Cake.Json

This requires Cake v0.8.0 though.

Thanks for the prompt replies. I tried
 #addin nuget:https://www.nuget.org/api/v2/?package=Cake.Json

which worked fine locally, but failed with the same error still on the build server.

Which version of Cake & Nuget is running on the build server? Which build server are you using?

Would also help if you could post part of the build log for the failing NuGet retrieval (with diagnostic verbosity).

.\Cake.exe -Version will give you version.
.\Cake.exe build.cake -verbosity=Diagnostic will give you a more detailed log

Hm. This is very odd. To start with, Cake.exe -Version shows I'm running 0.8.0.
I ran the build script manually on the build server (which is running TFS 2015), and then it worked. I then started a build from the web interface in TFS, and it worked too.
I don't know what didn't work before - perhaps it was building a stale version from source control or something - but now it works. Thanks for helping me troubleshoot and for your swiftness, anyway!

@tlycken No problem! Glad that it worked out for you :smile:

**Reg:**Failed to install Cake.HockeyApp addins.
We have tried to upload "zip"   file of WPF sample exe to Hockeyapp. So, We need to use     "Cake.HockeyaPP" addin. While using this addin , we are facing the below issue(refer to the screenshot).     Please share your inputs to resolve the error.


Move block::Version to primitives

This is a straight up move of the whole type because there are only three methods, a getter, a setter, and is_signalling_soft_fork.
If we use an extension trait for is_signalling_soft_fork then we have to make the two private associated consts public which is in my opinion worse.

Because @Kixunil is absent at the moment this PR has the potential to one ack merge after 48 hours. In the name of full transparency I'm mentioning you Kix because you may not like the move of is_signalling_soft_fork function over to primitives.

Merge please mate.


Streaming results and messages from the server

The current driver implementation loads all data from the server prior to returning any data to the AseDataReader, or any messages to the event subscribers. The reference driver is able to handle responses from the server as they are received.
For many ordinary workloads, this kinds of behaviour isn't desirable so the early versions of this project didn't support streaming results due to the additional complexity.
However for very long running tasks, streaming is advantageous in being able to return results before the entire process has completed. Additionally, it avoids storing the entire result set in memory which can be prohibitive for some large result sets.

Also, streaming would allow the caller to receive InfoMessage events as they occur.


Enhance closed PR #2086 to order household based on other interractions other than adding a user to household

IMPORTANT: Where possible all PRs must be linked to a Github issue
Fixes https://github.com/opensrp/fhircore/issues/2035
Engineer Checklist

[x] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[x] I have added any strings visible on UI components to the strings.xml file
[x] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[ ] I have built and run the FHIRCore app to verify my change fixes the issue and/or does not break the app

Code Reviewer Checklist

[x] I have verified Unit tests have been written for any new feature(s) and edge cases
[x] I have verified any strings visible on UI components are in the strings.xml file
[x] I have verifed the CHANGELOG.md file has any notable changes to the codebase
[x] I have verified the solution has been implemented in a configurable and generic way for reuseable components
[ ] I have built and run the FHIRCore app to verify the change fixes the issue and/or does not break the app

mergeable?

@pld we can merge this on Monday.


(Ground Markers) Add toggling for Import/Export and a Clear option

As per a requested feature on the Runelite Discord
The changes in GroundMarkerSharingManager to prevent duplicate adding of the menu options are likely unnecessary. The underlying LinkedHashMultimap in MenuManager seems to handle that correctly. Should this particular piece of the PR be added "just in case" or should it be dropped?

I have added a new commit which adds a "Clear" feature, which gives the player a way to quickly clear all active ground markers for the currently loaded map regions.
Exporting before clearing, clearing, then importing the exported points back in confirms this works.
If this is not wanted, you may simply merge only the first commit.

I have added a new commit which adds a "Clear" feature, which gives the player a way to quickly clear all active ground markers for the currently loaded map regions.
Exporting before clearing, clearing, then importing the exported points back in confirms this works.
If this is not wanted, you may simply merge only the first commit.

@Nightfirecat  can you clean this up?


update install mode with manual option

script enhancement for ticket: https://github.ibm.com/ibmprivatecloud/roadmap/issues/57080

output looks like:
[INFO] Waiting for operator ibm-common-service-operator to be upgraded
Please manually approve installPlan to make upgrade proceeding...
[INFO] RETRYING: Waiting for operator ibm-common-service-operator to be upgraded
Please manually approve installPlan to make upgrade proceeding... (3 left)
[INFO] RETRYING: Waiting for operator ibm-common-service-operator to be upgraded
Please manually approve installPlan to make upgrade proceeding... (2 left)
[INFO] RETRYING: Waiting for operator ibm-common-service-operator to be upgraded
Please manually approve installPlan to make upgrade proceeding... (1 left)
[✘] Timeout after 3 minutes waiting for operator ibm-common-service-operator to be upgraded
InstallPlan is not manually approved yet


Browser becomes unresponsive when viewing some projects in the Ingest UI

Describe the bug
Browser becomes unresponsive when viewing some projects in the Ingest UI
To Reproduce
Steps to reproduce the behaviour:

Go to https://contribute.data.humancellatlas.org/projects/detail?uuid=fc55bd4a-8694-4a28-9a35-59a685bda323
OR to https://contribute.data.humancellatlas.org/projects/detail?uuid=a9c022b4-c771-4468-b769-cabcf9738de3
The project details are not loaded and the browser becomes unresponsive

Expected behaviour

The project details should be loaded and viewable by the user.

Screenshots / Logs
The developer console can't be opened.

This seems to happen both in Chrome and Safari.

Findings so far:
Commenting out this part in the project.component.html will fix the unresponsive browser.
 <mat-tab [label]="tabConfig[4].label">
        <div class="vf-u-margin__top--xxl">
          <app-data-table [dataSource]="filesDataSource" [flatten]="true"></app-data-table>
        </div>
      </mat-tab>

The file's metadata for this project might not be being handled well in the data table component. Needs to further investigate.

An additional example of an Ingest project page that is crashing my browser:

027c51c6-0719-469f-a7f5-640fe57cbece

An additional example:
https://contribute.data.humancellatlas.org/projects/detail?uuid=08b794a0-519c-4516-b184-c583746254c5

and this one 091cf39b-01bc-42e5-9437-f419a66c8a45

Same with this submission: I am able to get to the project page ok and it loads fine, but then when I click the submission to be able to make updates to the metadata, the metadata page won't load properly: https://contribute.data.humancellatlas.org/submissions/detail?uuid=d35d9af6-c532-4944-b520-3ec5ca369dc9&project=2d846095-8a33-4f3c-97d4-585bafac13b4

An additional example: 88ec040b-8705-4f77-8f41-f81e57632f7d


[go_router] Navigating by URL on the address bar is broken on go_router 4.0.0

Steps to Reproduce

Execute flutter run -d chrome on the code sample
Set the browser URL to the detail subroute (e.g. http://localhost:52026/detail)

Expected results:
App reloads and shows the detail page
Actual results:
App reloads and shows the home (root) page
Note: this was working as intended on go_router 3.x. The issue only exists on version 4.0.0.

Code sample

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  GoRouter.setUrlPathStrategy(UrlPathStrategy.path);
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final goRouter = GoRouter(
      debugLogDiagnostics: true,
      initialLocation: '/',
      routes: [
        GoRoute(
          path: '/',
          builder: (context, state) => const HomeScreen(),
          routes: [
            GoRoute(
              path: 'detail',
              builder: (context, state) => const DetailScreen(),
            ),
          ],
        ),
      ],
    );
    return MaterialApp.router(
      routerDelegate: goRouter.routerDelegate,
      routeInformationProvider: goRouter.routeInformationProvider,
      routeInformationParser: goRouter.routeInformationParser,
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.amber,
      ),
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Home Page'),
        backgroundColor: Colors.red,
      ),
      backgroundColor: Colors.red,
      body: Padding(
        padding: const EdgeInsets.all(32.0),
        child: Center(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            mainAxisSize: MainAxisSize.min,
            children: [
              ElevatedButton(
                onPressed: () => context.go('/detail'),
                child: const Text(
                  'go /detail',
                  style: TextStyle(fontSize: 30),
                  textAlign: TextAlign.center,
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class DetailScreen extends StatelessWidget {
  const DetailScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Detail Page'),
        backgroundColor: Colors.green,
      ),
      backgroundColor: Colors.green,
    );
  }
}

Logs

flutter-run-verbose.log

Analyzing go_router_url_parsing...
No issues found! (ran in 2.2s)

Here's a short video showing that browser navigation is broken:
https://user-images.githubusercontent.com/153167/174553815-c80789b2-d80b-4f70-beb5-70088b9ebc12.mp4
Note how navigating with the button in the UI works as intended, but pressing ENTER on the address bar redirects back to root.

Faced the same issue here, I had to set the UrlPathStrategy to UrlPathStrategy.hash for it to work.

Hi @bizz84, Thanks for filing the issue.
There is a similar issue describing this case https://github.com/flutter/flutter/issues/106204, Please follow up there for further updates, Closing this issue as a duplicate. If you disagree feel free to write in the comments and we will reopen it.
Thank you.


New agents cannot add themselves to Azure DevOps Server 2019 (on-premises)

Agent Version and Platform
This problem starts with Agent version 2.174.0 (2.174.1 is also affected), while agents up to v2.173.0 are not affected.
OS of the machine running the agent: I was able to reproduce the issue on Windows 10 Pro x64 and Linux x64 (Ubuntu 18.04).
Azure DevOps Type and Version
On-Premises Azure DevOps Server 2019 Version 17.153.29522.3 (AzureDevOps2019.Update1.1).
This might actually be the issue, maybe the VSS-API is currently only compatible to the future 2020 server (I wasn't able to test that)?
Support of the 2019 server shouldn't be dropped that fast though, so I'm kinda assuming this is a bug, not a feature ;)
What's not working?
When trying to add the agent to an agent pool, after entering the desired agent pool and then agent name, the VSS-API tries to add the agent to the pool but instead cancels with the following error message:
Scanning for tool capabilities.
Connecting to the server.
Error reported in diagnostic logs. Please examine the log for more details.
    - /home/myuser/BuildAgent/_diag/Agent_<date>-<time>-utc.log
%error="907004";%:01-FOUNDATION01.Tfs_Configuration.Task.prc_AddAgent: Database Update Failure - Error %error="515";% executing INSERT statement for Task.tbl_Agent
Failed to add the agent.  Try again or ctrl-c to quit

Agent and Worker's Diagnostic Logs
[2020-09-08 11:29:38Z INFO Terminal] WRITE LINE: Connecting to the server.
[2020-09-08 11:29:38Z ERR  VisualStudioServices] POST request to https://<mytfs>/tfs/_apis/distributedtask/pools/20/agents failed. HTTP Status: InternalServerError
[2020-09-08 11:29:38Z INFO CommandSettings] Flag 'unattended': 'False'
[2020-09-08 11:29:38Z ERR  Terminal] WRITE ERROR (exception):
[2020-09-08 11:29:38Z ERR  Terminal] Microsoft.VisualStudio.Services.Common.VssServiceException: %error="907004";%:<Server>.Tfs_Configuration.Task.prc_AddAgent: Database Update Failure - Error %error="515";% executing INSERT statement for Task.tbl_Agent
   at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.HandleResponseAsync(HttpResponseMessage response, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.SendAsync(HttpRequestMessage message, HttpCompletionOption completionOption, Object userState, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.SendAsync[T](HttpRequestMessage message, Object userState, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.SendAsync[T](HttpMethod method, IEnumerable`1 additionalHeaders, Guid locationId, Object routeValues, ApiResourceVersion version, HttpContent content, IEnumerable`1 queryParameters, Object userState, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.Agent.Listener.Configuration.ConfigurationManager.ConfigureAsync(CommandSettings command)
[2020-09-08 11:29:38Z ERR  Terminal] WRITE ERROR: Failed to add the agent.  Try again or ctrl-c to quit.

Issue location
I was able to locate the issue up to file \src\Agent.Listener\Configuration\ConfigurationProvider.cs line 106 where the external VSS-API library is called via
return _agentServer.AddAgentAsync(agentSettings.PoolId, agent);

So the issue actually seems to be in the VSS-API, for which I can't find any public source though. If you can redirect me to a more appropriate repository/site (for VSS-API) to report the issue I'm fine with that, but I wouldn't know where. Until then I thought I'll post it here.

Hi!
The issue is the same with the .\config file. New agent cannot be added.

Hi,
i run into same issue, i believe that 515 error is NULL value for non-nullable column, and when i run SQL profiler and check the failing procedure here is what i found:
exec Task.prc_AddAgent @partitionId=1,@poolId=21,@name=N'Agent-GITTFSPRDWB02-SPO-1',@version=N'2.174.1',@osDescription=N'Microsoft Windows 6.3.9600',@provisioningState=NULL,@accessPoint=NULL,@maxParallelism=1,@createEnabled=0,@writerId='70D069A3-24F4-4E4B-93DD-CF360DA9D1A8',@publicKey=0x.....,@systemCapabilities=@p12,@userCapabilities=default`
And ProvisioningState column cannot be null in Task.tbl_Agent
The procedure itself doesnt seem to be altering this value in any way.

@echalone @silentmark Thanks for detailed report. The 2.174.2 pre-release should address this.

@echalone @silentmark Thanks for detailed report. The 2.174.2 pre-release should address this.

I can confirm this problem does not occur for me any more with Agent version 2.174.2


Run decorator returns the plan result, not uid

When writing adaptive plans, it's very useful to return a result from one plan, and use that result to decide whether, or how, to run another plan.
Unfortunately, if you are orchestrating a series of "full" plans, rather than stub plans, the run_decorator will gobble up your plan's intended return value and substitute the run uid. Not cool! My plans want to return things for a good reason! All that run_decorator's uid return does, as far as I can tell, is stop decorated plans from returning useful results.

Motivation and Context

An example would be an alignment plan, where you want to align one motor first, and then align a second after repositioning.
def align_z(det, motor):
    @stage_decorator([det])
    @run_decorator()
    def inner_align_z():
        # some fancy alignment scan and logic
        # that provides the correct value of the motor, z
        return z
    return (yield from inner_align_z())

def alignment_plan():
    z = yield from align_z(det, zmotor)
    yield from abs_set(zmotor, z + 2)
    x = yield from align_x(det, xmotor)

In this example, it looks like align_z will return a motor value, z. inner_align_z() returns z, and align_z returns the result of inner_align_z(). But because inner_align_z has been wrapped by the run_decorator, z will be hijacked and turn into a uid, which is confusing, and not what I intended. Now, you could get around this by making align_z a stub plan, but what if you want to be able to run it by itself? How would you test align_z by itself if it were a stub plan?
How Has This Been Tested?

Because the plan result wasn't previously returned, only breaks one test, test_uid_passthrough in test_supplemental_data.py, which for some reason tests this exact case, internally to a plan.
What might this actually break?
If people have been writing plans that rely on other plans returning UID, this will break those plans. I can't imagine why you would need a UID in the middle of a plan, since as far as I know, this would only be useful to interact with the DataBroker, which you probably shouldn't do while running a plan.
However, people do lots of things, usually because they found that they work, so I'd love to know if this is something that a lot of people are doing. If it is, I can find another workaround, I suppose. I would love an explanation of why it is desirable that a plan returns a uid, and what this could be used for.

This feature seems like a good one to me, but changing the behavior of @run_decorator has the potential to affect a lot of code. How about adding a new decorator and leaving @run_decorator unchanged?

I just wonder, was anybody actually using the return value from @run_decorator? As the RunEngine used to discard the return value from all plans, the @run_decorator return could only have been used internally to a plan. Were people building plans that ran sub-plans and then collected their UIDs? What would that possibly have been useful for, unless you built a plan that accessed the databroker (which I believe is very inadvisable)?
I could of course just copy the run_decorator code with a different return behavior, but I think that having two nearly-identical run_decorators is probably a bad idea long-term.

As the RunEngine used to discard the return value from all plans, the @run_decorator return could only have been used internally to a plan.

Yes, some of the plans that take background or calibration data capture this and then write it into the start document of further runs.  We have started to recommend against this, but it is a reasonable thing to do.

unless you built a plan that accessed the databroker

There are a lot of plans on the floor at NSLS-II that access databroker (but to be fair most of them do db[-1]).

I think that it was a mistake to have the run_decorater drop your plan's return value and substitute the UID, and a further mistake to have the RunEngine itself drop any plan's return value, and also substitute the UID.

The causality is the other way around, the choice to have the RE return the uids was made first (so we did not have many plans with meaningful returns).  For internal usage collecting uids makes sense (record of what you did!).

I think the right path here is to add a flag to run_decorator (and wrapper) that is pass_plan_return=False so you can opt-in to getting the return value, but still get something sensible if you are lazy and do now want to manage your own returns.

Makes sense. Actually, in the time since opening this PR, I have realized that I also get UIDs for calibration in this way... how embarrassing! I actually also agree that this is something that I shouldn't have done (especially the way that I do it, which is particularly awful, as it involves updating a persistent global dictionary) but how to create links between plans in a less hack-y way is probably a subject for a longer discussion. I wish I had a better way to do it.
I wonder if there is a compromise that, like the RunEngine return, lets us have our cake and eat it too. For the RunEngine return, we eventually realized that we could just create a class that returns both the plan result AND the UIDs, along with any errors.
Do you think a similar thing would work here? pass_plan_return=True could, at minimum, return a tuple consisting of the UID + the return value. Or a dictionary, or an object. Maybe it could have success messages! I sure know that I have some adaptive plans that fail sometimes, and should be able to report their failure, because there is sometimes a very obvious way to re-try.

Do you think a similar thing would work here? pass_plan_return=True could, at minimum, return a tuple consisting of the UID + the return value.

I concern with that is it makes understanding the return value hard as the code will say
     return 'bob'

and what you get back is (uid, 'bob') which is very non-obvious.  With the RE case we are explitily a running-stuff-for-you service (think analogy to subprocess.run so returning a structured object with both the return of what ever the user wanted run along with some meta-data about how the running of the thing went feel natural.
Another thought that might work here is to also add a pass_uid flag (and at this point a new decorator may be a better choice that just does both of these things by default) so
@run_decorator(return_plan_return=True, pass_uid=True)
def my_plan(blah, blarg, *, start_uid):
    ...

and then the run decorator will not expose start_uid out and will source it itself?  That way if you want both, you can now do what ever structuring you need to.

Do you think a similar thing would work here? pass_plan_return=True could, at minimum, return a tuple consisting of the UID + the return value.

I concern with that is it makes understanding the return value hard as the code will say
     return 'bob'

and what you get back is (uid, 'bob') which is very non-obvious.

Of course currently, the code says
    return 'bob'

and what you get back is uid, which is even less obvious.
I am becoming persuaded that maybe a custom decorator that replaces the run_decorator functionality may be the way to go. I can prototype this in my own code and see what makes sense. It could be
@run_return_decorator and it would return a tuple, and if you use @run_return_decorator you should just know that it will do this.

and what you get back is uid, which is even less obvious.

Fair, but making a poor choice one way does not justify making another poor choice to compensate ;)
If we are starting from scratch, I think a decorator that both returns what ever the wrapped function returns and passes the start uid (or full start document could see a case either way) into the wrapped plan.  It is still a bit odd but not unheard of for decorators to add / remove / modify input to the wrapped function.

I'm not as concerned with passing the start UID into the plan, as getting both the UID and return value out of the plan.
If you have to write your plan to accept a UID, just because you intend to have the plan return it in a tuple with the return value, I think it's just simpler to have a decorator do that tuple-ization for you, no? That's what decorators are for, after all.
Wouldn't it be the case that anybody using the new decorator would know what they are signing up for?

From my armchair, I am concerned that having the run_decorator insert a parameter into a function (plan) call could tie that function (plan) to the decorator. What if one wants to call the function (plan) without that decorator?

I am thinking now about a run_decorator alternative that leaves the plan return value completely alone, paired with a RunEngine command to get the most recent run start UID, or the list of run start UIDs.

@cjtitus what are your latest thoughts on this?
Is this still an ongoing problem?

Unfortunately, if you are orchestrating a series of "full" plans, rather than stub plans, the run_decorator will gobble up your plan's intended return value and substitute the run uid. Not cool! My plans want to return things for a good reason! All that run_decorator's uid return does, as far as I can tell, is stop decorated plans from returning useful results.

@stan-dot I still believe this would have been a better way to structure the run_decorator from the beginning, but it's something I've been able to work around when necessary. Trying to actually change this would break too much for too many people. As I mentioned, if I really need this, I'll probably just re-implement run_decorator.