[jBallerina] Add initial classes required to load Java packages imported in Ballerina code

Purpose
The purpose is to load Java packages imported in Ballerina source files.
Approach
This design piggybacks onto the current Ballerina package loader
design. We can improve this further with the compiler redesign.
In the current design, PackageLoader loads Ballerina PackageSymbols
which can be categorized into two kinds: Ballerina source
package(from source code in the module directory), Ballerina binary
package(from Balos). I modeled PackageSymbols loaded from Java packages
as the third kind. Therefore I've introduced a class called
JPackageSymbolEnter to load/define PackageSymbols for Java packages.
Each PackageSymbol has a Scope which contains all the child symbols
defined in the package. The Scope interface has two methods.
The first one 'define()' allows you to add child symbols to the scope.
The second one 'lookup()' allows you to lookup for symbols defined
in the scope. Now in the case of Java packages, I introduced a new class
called JScope which extends from the current Scope class. Whenever
the JScope.lookup() method receives a request to lookup a Java class,
this method check whether it is already loaded, if not use class loaders
to load the requested class.
For each loaded/request Java class we need to create a corresponding
type and a symbol in the Ballerina compiler. I will include such details
in the next PR.
##Sample
import ballerina/io;
import jballerina/java.util;

// The `main` function, which acts as the entry point.
public function main() {
    io:println("Hello, World!");
}

@sameerajayasoma , we may have to rebase with master.

Closing this and the PR needs to be rebased with master.


Why isn't it possible to install multiple instances of a given distro without using hacks/workarounds?

Windows Version
Microsoft Windows [Version 10.0.22621.1555]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Ubuntu-22.04
Other Software
None.
Repro Steps
wsl --install -d Ubuntu-22.04
Expected Behavior
I would like to understand why it is not possible to easily install multiple instances of a given Ubuntu version. There are hacks and workarounds. Why isn't it just normal?
Actual Behavior
C:\Users\ariel>wsl --install -d Ubuntu-22.04
Ubuntu 22.04 LTS is already installed.
Launching Ubuntu 22.04 LTS...
Diagnostic Logs
C:\Users\ariel>wsl -v
WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.1555
C:\Users\ariel>wsl --install -d Ubuntu-22.04
Ubuntu 22.04 LTS is already installed.
Launching Ubuntu 22.04 LTS...

I would like to understand why it is not possible to easily install multiple instances of a given Ubuntu version.

It is possible to install same distribution with different name. The only catch is the different registered name. Otherwise, how would any user know which one is being used? The required command is wsl --import and it is well documented.

This is the help documentation:
    --install [Distro] [Options...]
        Install a Windows Subsystem for Linux distribution.
        For a list of valid distributions, use 'wsl.exe --list --online'.

        Options:
            --no-launch, -n
                Do not launch the distribution after install.

            --web-download
                Download the distribution from the internet instead of the Microsoft Store.

It does not say anything about being able to register the distribution under a given name. The only documented way is to export the distro and re-import it under a different name.

It does not say anything about being able to register the distribution under a given name

I agree that it is not straight-forward as wsl --install command. That command selects the installer from this list https://github.com/microsoft/WSL/blob/master/distributions/DistributionInfo.json. The distribution name is hard coded in the installer.

The only documented way is to export the distro and re-import it under a different name.

That is also a valid way. There are different ways that can be achieved. For example, the Ubuntu rootfs tarball can be downloaded from here https://cloud-images.ubuntu.com/wsl/ and install it using wsl --import command with different name.

There are different ways that can be achieved
Yes. That is exactly my point though.

I guess I need to re-file this as a feature request for an option in wsl --install to assign a name.

I guess I need to re-file this as a feature request for an option in wsl --install to assign a name.

Yeah, that would be another way also. But adding two names in one wsl --install command may confuse users.

How do you mean? I'm thinking of:
wsl --install <distro> [<user supplied name>]
So
wsl --install Ubuntu-22.04 ubuntu1
wsl --install Ubuntu-22.04 ubuntu2
would give
C:\>wsl --list --all
Windows Subsystem for Linux Distributions:
ubuntu1 (Default)
ubuntu2

If I want to know what distro they came from, I could always do
C:\>wsl -d ubuntu2 lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

wsl --install  []

Good idea. There is a chance <distro> and <user supplied name> get confused. How about the command below?
wsl --install <distro> --name <user supplied name>

Inspired by docker run <image> --name <container> command.

Sure. I don't love the wsl interface anyway, and that would be an improvement.

wsl --install <distro> [<user supplied name>]

Good idea. There is a chance <distro> and <user supplied name> get confused. How about the command below?
wsl --install <distro> --name <user supplied name>

Inspired by docker run <image> --name <container> command.

This is a good suggestion but it's unfortunately not possible with the current model because wsl --install calls the underlying package (ubuntu.exe, debian.exe) and such.
This third party executable is what actually installs the distro, via WslRegisterDistribution, passing the name parameter (which is hardcoded in each application).
So to summarize, wsl doesn't actually control the names of the distributions being installed via wsl --instal, the distribution applications do.
To have finer control over the distribution's names, the best way would be to use wsl --import

Closing since this feature is accessible via wsl --import

Is there a repository somewhere of pre-made importable base images equivalent to, for instance, Ubuntu-22.04?

The WSL packages list is here https://github.com/microsoft/WSL/blob/master/distributions/DistributionInfo.json. Alternatively, each Linux distributions may have their own website to provide rootfs tarball. For example, Ubuntu has https://cloud-images.ubuntu.com/wsl/

@abalter Short aside, before I answer your most recent question -- I agree that it would be "nice to have" a wsl --install <distro> -name <name> version, but also understand OneBlue's point about distro-launcher precluding that.
I see two options here.  See the bottom of this post for how I handle this, but first ...

Is there a repository somewhere of pre-made importable base images equivalent to, for instance, Ubuntu-22.04?

Once you've installed one distribution of a given type from the Store, the pristine rootfs for it is still kept around until you uninstall the app, so you can wsl --import it.

Open an Admin PowerShell to find the path to the rootfs:
Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\' | Where-Object {$_.Name -eq 'install.tar.gz' }

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2022-04-18  6:32 PM      512935559 install.tar.gz

    Directory: C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuPreview_2<IP_ADDRESS>_x64__79rhkp1fndgsc

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2022-11-25  6:10 PM      446905872 install.tar.gz

    Directory: C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu_2<IP_ADDRESS>_x64__79rhkp1fndgsc

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2023-01-19  9:53 AM      562944255 install.tar.gz

    Directory: C:\Program Files\WindowsApps\TheDebianProject.DebianGNULinux_<IP_ADDRESS>_x64__76v4gfsz19hv4

From a non-admin PowerShell, wsl --import the install.tar.gz from the given path above.  So, for example, if you wanted to create a new Ubuntu-22.04, you could:
mkdir -p d:\WSL\instances\ubuntu_testing
wsl --import ubuntu_testing d:\WSL\instances\ubuntu_testing "C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu_2<IP_ADDRESS>_x64__79rhkp1fndgsc\install.tar.gz"

Remember to quote the Program Files path that has spaces.

Of course, whether you --import it from a rootfs that you downloaded or the one already on your system, there are differences between this and a distribution installed with ubuntu2204.exe (the Distro Launcher version).  Primarily, the end-user account/password isn't created and isn't set to "default".
So if you use this method, you'll need to manually create your non-root user, assign it to the appropriate groups (especially the sudo group), and assign a password.  For Ubuntu 22.04, the "normal" groups that are assigned for your user are ntd adm dialout cdrom floppy sudo audio dip video plugdev netdev.  For full details (using 20.04, at least), see my Ask Ubuntu answer on the topic.
You'll also need to set it as default using the /etc/wsl.conf as I mention in that answer.

Alternative Method - "Rename" the first distribution, then use ubuntu2204.exe again
I keep multiple distributions of the same type around myself.  My daily-driver, for instance, is ntd_ubuntu_22.04_WSL2.  Then, if I need to spin up a temporary one to test something in without polluting the main, I can simply ubuntu2204.exe again.  About 15 seconds later, I have a new distro.
As you are obviously aware, you can create as many --imported distributions as you want.  So if I want a new Ubuntu 22.04 in which to try out StableLM, I can easily do that by first creating the distro above (ubuntu2204.exe), then:
# Get the location of the installed Ubuntu-22.04:
$Ubuntu2204_Path = (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\ |
     ForEach-Object {
         (Get-ItemProperty $_.PSPATH) | Select-Object DistributionName,BasePath
     } | Where-Object { $_.DistributionName -eq "Ubuntu-22.04" }).BasePath

# wsl --terminate or --shutdown if needed to release the lock on the existing vhdx

# Copy/import it to a new distribution
mkdir -p d:\wsl\instances\StableLM
wsl --import --vhd StableLM D:\wsl\instances\StableLM-Ubuntu22.04 "$Ubuntu2204_Path\ext4.vhdx"

Of course, set the default username via /etc/wsl.conf as mentioned above.
Then you can wsl --unregister Ubuntu-22.04 (assuming it was just created and now copied, so that you are ready to use it again (via ubuntu2204.exe) the next time you need a new or temp distro based on it.

@NotTheDr01ds By far the simplest and most explicit explanation of this I've yet seen. Thank you. Are you aware of any little hacks to make launching into other distros easier? I know it sounds silly, but I like the convenience of the built in "Ubuntu" app in Windows launching me into a terminal as is the case for my main WSL2 distro.

@jordantgh I think the first half of what you want is wsl -d DistroName --cd ~. The second half is to create a new shortcut with something to the effect of powershell.exe -Command "wsl.exe -d DistroName --cd ~ in the target section.
Windows Terminal might also provide you with options you like depending on your preferences.

@OneBlue I am sorry, but are you serious? Instead of providing the most obvious and straighforward way to specify distro name (--name) you suggest exporting/importing a distribution to... specify a name?

@jordantgh So sorry for missing your reply earlier.
I use Windows Terminal + PowerToys Run (from Microsoft PowerToys, installable from the Microsoft Store).
Pressing Alt+SPACE launches PowerToys Run, then typing _ into the search box will filter on Windows Terminal Profiles.  So _Ub will bring up list of all of my Ubuntu profiles, with the most recently used being first.


Progress bar on image upload

As a user with a slow internet connection, I want to know that my images are uploading and roughly how long it will take.
Changes needed - in increasing order of difficulty

Disable upload button once clicked
Change text to say "Uploading"
Add a spinner
Progress bar
Background uploads for PWA

https://codepen.io/PerfectIsShit/pen/zogMXP/


Fails to build on 32bit arch

[   16s] cc -c -o build/dbd_mysql_statement.o dbd/mysql/statement.c -I/usr/include/lua5.1 -fomit-frame-pointer -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -fPIC -I/usr/include/lua5.4 -shared -fPIC -DPIC -std=c99  -I. -shared  -I/usr/include/mysql -lmysqlclient
[   16s] dbd/mysql/statement.c: In function ‘statement_execute’:
[   16s] dbd/mysql/statement.c:271:40: error: assignment to ‘long unsigned int *’ from incompatible pointer type ‘size_t *’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
[   16s]   271 |                         bind[i].length = str_len;
[   16s]       |                                        ^
[   16s] make: *** [Makefile:82: build/dbd_mysql_statement.o] Error 1

Complete build log with all packages used and steps taken to reproduce.

This looks like a build against 0.7.3 which has a known failure for MySQL on 32-bit platforms. I suspect this was fixed by #76.

@mcepl Published 0.7.4; please see if that resolves your problem.


Fixes contact page responsive

See previous discussion here #122

Questions
Answers

Description?
Changed col classes that were causing a responsive issue on 767px to 567px screen sizes. col-sm-4 was changed tocol-md-4and col-md-3 was changed to col-lg-3.

Type?
bug fix

BC breaks?
no

Deprecations?
no

Fixed ticket?
Fixes  #33415

Sponsor company
Not applicable

How to test?
See ticket. Navigate to Contact us page  -> Use responsive mode, click F12 -> Shrink the window to width 650px -> See fix > columns now display correctly in tablet.

Ping @hibatallahAouadni, we have a fix for the issue you found ;-)

@Slaveworx Bravo 😉


basic functionality fixed by creating ~/.basket if does not exist

basket list, basket download parameters had problems because of missing directory.  basic functionality fixed by creating ~/.basket if does not exist

The doc says that you should type basket init to create this directory. That said, we could certainly remove the command and create the directory on-the-fly in other commands, as your patch seems to do. I'll look into it.

Thank you for your proposal. However, I am not too sure I like it. The documentation says that you should run basket init to create the directory.  I think that it is a good idea. No Basket command shows the directory where files are downloaded, I think that the user should explicitely initialize it, and be told where it is.


problem with browser-sync

Hi, it seems like a minor trouble of choosing free port for BS server.
Here is log from console, after gulp command was runned:
[12:40:01] Starting 'styles:watch'...
[12:40:01] Finished 'styles:watch' after 2.33 ms
events.js:154
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3004
    at Object.exports._errnoException (util.js:856:11)
    at exports._exceptionWithHostPort (util.js:879:20)
    at Server._listen2 (net.js:1236:14)
    at listen (net.js:1272:10)
    at Server.listen (net.js:1368:5)

You may use another process that uses the port needed (EADDRINUSE ).

yes, but maybe there's a way to check if port is free and use it?
and what you think about dynamically select a needed port(after BS is running) and insert it instead of hardcoded port :3000 on this line

might be able to use something like:
// We attempt to use the default port but if it is busy, we offer the user to
// run on a different port. `detect()` Promise resolves to the next free port.
detect(DEFAULT_PORT).then(port => {
  if (port === DEFAULT_PORT) {
    run(port);
    return;
  }

  clearConsole();
  var question =
    chalk.yellow('Something is already running at port ' + DEFAULT_PORT + '.') +
    '\n\nWould you like to run the app at another port instead?';

  prompt(question, true).then(shouldChangePort => {
    if (shouldChangePort) {
      run(port);
    }
  });
});

stolen from: https://github.com/facebookincubator/create-react-app/pull/362/files#diff-1ab6f53c8795042e5d1f961d6e6b75e5R258
Don't have much time to work on this but will try. If you manage to make progress please pr :)

That, or allow the user to specify a port in the config files and read it from there

specifically ./gulp/core/templates/browser-sync-snippet.js could read the port the user would want to use from ./gulp/core/config/browser-sync.js.
And the user could define the port they would like to run browser-sync from in ./gulp/config/browser-sync.js with something like the following:
/**
 * Override the Default
 * Core Fonts
 * Config
 *
 */
module.exports = {
    port: 8080
};

@trikon plz check https://github.com/MozaikAgency/wp-theme-starter/pull/260
and see if it works for you

yes, it is good idea to choose needed port in ./gulp/config/browser-sync.js file. And i's works fine for me, thanks.
But i think it would be a great to choose free port automatically. and if it choosen by BS insert it here
What you think?

The EADDRINUSE error has been good for us letting us know that we've already got an instance of gulp running for the current project, so I am still not sure about the pros and cons yet.
I understand your thinking, still not sure if it is worth it to add this feature to the build process when you can manage it now since #260 . And I imagine that the detecting stuff may turn out to be relatively complex to implement so will need extra investigation. I'm going to merge the fix into master and close this issue but will think about how the other feature could work.
Thanks for the the contribution :)


RateLimiter mut self?

Why does RateLimiter::check_at take &mut self? Nothing in that function looks like it needs a mutable reference to self.
It only accesses the dashmap, and none of dashmap's functions need a mutable reference (that's the entire point of dashmap).
With the requirement for a mutable reference to self, the promise from the README "Implements Send + Sync so can be used asynchronously." is kinda moot, since the only way to share a value which can be mutated is through Mutex or similar methods.

you are right. The RateLimiter functions don't need to take &mut self references and can rely on the dashmap's concurrent access properties

@anlumo Thanks for the report. 0.5.0 release should have this fix.


Minor wording change 'web app' --> 'container app'

@BigMorty : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


"Export" button on the "Export Experiment" modal is not disabled when the "Export Type" drop-down is empty

Version where bug was found:
5.1.5
Describe the bug
The "Export" button at the bottom of the "Export Experiment" modal is not disabled when the "Export Type" drop-down is empty. Also, the "Export Type" drop-down is not focused when the modal is opened.
To Reproduce
Steps to reproduce the behavior:

Go to the Experiment details page.
Click on the "Export" button.
On the "Export Experiment" modal, click the "Export" button when the "Export Type" drop-down is unset.

Expected behavior
The "Export" button on the "Export Experiment" modal should be disabled when the "Export Type" drop-down is unset. Also, the "Export Type" drop-down should be focused when the modal is opened.
Screenshots

QA: this works as expected


[request] A full page made from the sidebar

I'm sure that sounds vague; basically, I really like the sidebar, and since my site has no real content on it, I want to make an "under construction" page from it. It takes two changes, and possibly one more:

Sidebar color becomes background color
Sidebar content is centered on page
(Ideally) the ability to generate this page standalone so that it's just one HTML file.

That last one is presuming it doesn't depend on any static files that can't be in the page. Depending on Hugo's architecture, this may not be doable without needing a seperate theme directory that only makes this page. (I would probably use it anyway, honestly.)

Off the top of my head you could probably get the general result you want by overriding a few things from the theme:

Add your own custom CSS file that overrides some of the sidebar's styles to stretch it across the page and align the content.
Override layouts/partials/head.html to also reference your new CSS file.
Override layouts/index.html to essentially do nothing.

I don't think it's possible to pack it all into a single file, there are too many secondary resources like CSS, JS, 404 page, license page etc
As far as doing all of this out of the box, I'm not sure there's an elegant way to seamlessly handle sites both with and without content. I'll give it some thought.


Add tty support for setnsProcess

I failed to write proper test. Maybe you can help me.

LGTM

Looking...

@mrunalp done

Seems like tests hanged :(

LGTM

LGTM


Consistently handle API errors in ScheduleController

This resolves an inconsistency we had where API errors are handled in ScheduleController rather than the corresponding interactor. This also adds in tests for the interactors.

Thanks for the review @leenagupte amends have been made.


Memory readers are not thread-safe?

From some experimentation with parallelizing various heap traversal algorithms, I'm hitting odd exceptions that are only happening in multi-threaded usage of the same ClrHeap. To be clear, I am using only the ClrMD interface, not the DbgEng one.
Before I try to narrow down the repro, is the ClrHeap designed for multithreaded access? For example, enumerating segments in two different threads, or calling NextObject in two different threads? I'm seeing exceptions in low-level parts, such as the DataReader.
@leculver

We've moved CLR MD into its own GitHub repository. If this issue still applies, please file it there.
Sorry for the inconvenience but we never intended for this repo to contain the component itself.


Image captured from camera rotates

Can you please can me any solution how to manage image orientation as it gets rotates after captured.

Please follow the project documentation for where and how to ask questions.


Test for println mrenclave problem

Goal
Write a test, that fails when the file mrenclave.b58 contains more text than the hash.
Background
When a println! statement is added in service/src/main.rs before printing the mrenclave hash, then the text from the println! statement will also be in the resulting file mrenclave.b58.
This needed to be fixed, e. g. here: #886

Actually, is the file mrenclave.b58 still necessary? I believe the modus without needing a file is preferable: https://github.com/integritee-network/worker/blob/affe2c98bda7c898bc0784c8b351762237f07bf0/cli/benchmark.sh#L48-L50

Yes, but then we should scan through our scripts and remove all script code with:
read -r MRENCLAVE <<< "$(cat ~/mrenclave.b58)"
so that nobody uses it anymore.

Yes, that works for me 👍


i have this error

Do you agree to the Nexus Beta Terms of Use (https://nexus.xyz/terms-of-use)? (Y/n) y
/root/.nexus/network-api exists. Updating.
Already up to date.
Finished release profile [optimized] target(s) in 2.09s
Running target/release/prover beta.orchestrator.nexus.xyz
thread 'main' panicked at /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-subscriber-0.3.18/src/fmt/mod.rs:517:14:
Unable to install global subscriber: SetGlobalDefaultError("a global default trace dispatcher has already been set")
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

This is fixed


Feature/remove sdx home in makefile

Fixes #58

Codecov Report

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

@@           Coverage Diff           @@
##           master      #61   +/-   ##
=======================================
  Coverage   80.13%   80.13%
=======================================
  Files           9        9
  Lines         287      287
=======================================
  Hits          230      230
  Misses         57       57

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 6fbd173...537fe1b. Read the comment docs.

It's also worth adding Fixes #58 in the PR description as that automatically closes the github issue when this merged.

 (2) Remove erroneous use of SDX_HOME in makefiles

Superseded by cherry picked commits into #64 to clean git history


strange behavior if reveal + reset happens when only some clues filled in

not sure what you're seeing here


SingalR CORS documentation does not mention http DELETE but it is used.

SingalR CORS documentation does not mention HTTP DELETE but it is used by the TypeScript client.
(for example) https://github.com/dotnet/aspnetcore/blob/4161f16141a984ff7e4faaebe0ebe8623a3a178f/src/SignalR/clients/ts/signalr/src/HttpClient.ts#L145
And we do see it in the wild.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 8af11946-ea05-3be2-6fa1-c4c01aa76d8c
Version Independent ID: 58e87eb0-240b-ab00-c5f4-32a0ab2e0028
Content: Security considerations in ASP.NET Core SignalR
Content Source: aspnetcore/signalr/security.md
Product: aspnet-core
Technology: aspnetcore-signalr
GitHub Login: @bradygaster
Microsoft Alias: bradyg

Right at the start of the article it states:
For more information on configuring CORS, see Enable Cross-Origin Requests (CORS).
If you're using DELETE and don't
`.WithMethods("GET", "POST","DELETE")
The DELETE fails, so you figure out you have to add it.

I understand how CORS works that is not the problem. My point is that the article that this is about gives a full list of required items for a CORS policy on a SignalR hub and it omits the DELETE method that some of the transports require. So we had to find out in staging that it wasn't complete. That was my point, that is not good documentation.
This is the problem:
"For more information on configuring CORS, see Enable Cross-Origin Requests (CORS). SignalR requires the following CORS policies:
- Allow the specific expected origins. Allowing any origin is possible but is not secure or recommended.
- **HTTP methods GET and POST must be allowed.**
- Credentials must be allowed in order for cookie-based sticky sessions to work correctly. They must be enabled even when authentication isn't used." (emphasis mine)

that second point could read: "HTTP methods GET and POST must be allowed, and DELETE is must be allowed for non-websocket transports as well." (At least I believe it's both non-websocket transports)
It mentions "requires" but it fails to mention that some transports require DELETE as well. It can't be that the "user friendly way" is "just read the code man, it's super clear..." That is why I opened an issue. It's not my code that uses the DELETE so I can't just smell that it's required if it's not documented. And the linked article doesn't even have the word delete in it. And the one you linked doesn't have the word signalr in it.


Does it support running on Ubuntu 20.04?

When I was building it in Ubuntu 20.04 and using the (Catkin_make) command to build my project, there was a problem displaying my (gazebo_physics_plugin) folder. Is it because I am using an Ubuntu system that is too high? Are there some dependencies that are not supported?

Hey, I think I have the same issue, was the error like:
Gazebo error: Thesis_ws/src/gazebo_domain_randomization/gazebo_physics_plugin/src/ gazebo_physics_plugin.cpp:250:25: error: variable 'gazebo::common:Color ambient' has initializer but incomplete type??
were you able to solve it??


String cgt

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
because of ascii, "A"==65, "a"==97
Write-Host ([char]"A" -cgt [char]"a")  # False
Write-Host ([int][char]"A" -gt [int][char]"a")  # False
but
Write-Host ("A" -cgt "a")  # True
can tell me why
Expected behavior
Write-Host ("A" -cgt "a")
False

Actual behavior
Write-Host ("A" -cgt "a")
True

Error details
No response
Environment data
Name                           Value
----                           -----
PSVersion                      7.3.0
PSEdition                      Core
GitCommitId                    7.3.0
OS                             Darwin 21.6.0 Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:23 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T6…
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

It is more complicated than the ASCII values.
Consider A  À Å ;  a  à  and å
In English A  À Å all sort together even though US 7-bit ASCII doesn't include accented characters and Unicode must maintain compatibility so the A+Accent isn't near A
In Norwegian  Å  is treated as a distinct letter. so in English
l> "a", "b" , "y", "å", "z", "Z,", "Å", "Y", "B", "A" | sort-object
a
A
å
Å
b
B
y
Y
z
Z,

The accented characters sort on their own, with the unaccented character.  But change the culture...
PS> "a", "b" , "y", "å", "z", "Z,", "Å", "Y", "B", "A" | sort-object -Culture no-no
a
A
b
B
y
Y
z
Z,
å
Å

The culture basically dictates if we sort upper before lowercase or lower before upper case, and I think most are upper
Greater than and less than then work on where the character would be sorted , not on its unicode value (because if you we used 8 bit encodings, some characters like € might not have a value or might have different values depending on the active code page. ASCII, being for American in the 1950s doesn't have €)
a sorts before A so is "less than" even though [int]"a" is greater than [int]"A" .
b sorts after "À" (but before "B") so
 ps > [int][char]"b" -lt [int][char]"À"
True

ps> "b" -lt "À"
False

.

A TL;DR answer that supplement @jhoneill's answer above is:

for string operands, -cgt eventually comes down to the .NET method Cultureinfo.CompareInfo.Compare("A", "a", CompareOptions.None), and the cultureInfo used in PoweShell is InvariantCulture. The return value is 1 in this case, and that's why "A" -cgt "a" returns true.

Let me try a comprehensive summary:

Terminology:

The .NET equivalent of ASCII values - which are limited to the legacy 7-bit ASCII "alphabet" (limited to 128 characters) - are Unicode code points, because .NET [string]s are Unicode strings, composed of [char] instances, which are UTF-16 code units, i.e. in effect [uint16] values, which therefore have a range of 0x0 - 65535 (0xFFFF); Unicode's code points are a superset of ASCII values, however.

Note that, despite their name, [char] instances are only typically, but not always whole characters, namely only for those code points in the so-called BMP (Basic Multilingual Plane); for characters outside that plane,  i.e. those with a code point above 65535 (0xFFFF), which notably includes emojj, they form either half of a surrogate pair; that is, two [char] instances are needed to represent a character outside the BMP.

In practice, when strings are compared in a manner that requires ordering (less-than, equal, or greater-than), a linguistic (human-language-based), culture-specific collation order is often used (though the .NET APIs don't use that term) - and such an order is unrelated to (Unicode) code points.

Usually, corresponding lowercase and uppercase letters are grouped together, with lowercase letters coming before their uppercase counterparts, and with accented variants often, but not necessarily, being grouped with their base characters, as @jhoneill's examples show (add -CaseSensitive for predictable results).

In .NET, these culture-specific rules are implemented via per-culture implementations of the  System.Globalization.CompareInfo class.

By contrast, comparing strings purely numerically by their characters' code points is called an ordinal comparison.

PowerShell compares [string] instances using a culture-specific collation order, i.e. it does not perform ordinal comparison.

As @daxian-dbw points out, PowerShell's operators use the invariant culture, [cultureinfo]::InvariantCulture

By contrast, Sort-Object uses the current culture ([cultureinfo]::CurrentCulture, as also returned by Get-Culture).

This discrepancy is unfortunate, and can make a difference, as @jhoneill's examples show (add -CaseSensitive for predictable results). Unfortunately, as of v7.3.0, requesting the invariant culture via -Culture ([cultureinfo]::InvariantCulture) does not work: see #18655

If you want ordinal comparison:

For two given strings, use [string]::Compare() with an ordinal System.StringComparison value, e.g.:

[string]::Compare('a', 'A', [StringComparison]::Ordinal) ... 32, i.e., the difference in code-point values; that the number is positive implies that a is greater than A, in an ordinal sense.
[string]::Compare('a', 'A', [StringComparison]::OrdinalIgnoreCase) ... 0, because - after culture-invariant transformation of both input strings to uppercase - their code points are identical.

For sorting, Sort-Object does not offer a solution, because the only way to fundamentally modify the sort order is with a -Culture argument, and there isn't a culture that that performs ordinal comparisons.

However, the System.Array type  has  a static Sort() method with an overload that accepts a System.Collections.IComparer instance, to which you can pass a System.StringComparer instance - note that this method sorts in place:

$a = 'a', 'A'; [Array]::Sort($a, [StringComparer]::Ordinal); $a  # -> 'A', 'a', i.e. ordinal sorting took place.

By contrast, [char] instances always use (ultimately) ordinal comparison; note that PowerShell always requires a [char] cast, even with single-character string literals such as 'a', given that PowerShell has no built-in literal syntax for [char] (unlike C#, where '.<some-char>' is exclusively a char literal):

For (non-)equality comparison (-eq, -ne), case is respected, if requested:

[char] 'a' -ceq [char] 'A' -> $false, because the characters' code points aren't identical.
[char] 'a' -eq [char] 'A' -> $true, because - after culture-invariant transformation to uppercase, the two characters' code points are identical.
[char] 'a' -ieq [char] 'A' -> ditto, -ieq is effectively an alias of -eq

For less-than(-or-equal) / greater-than (-or-equal) comparisons, case is ignored, because ordinal comparison is invariably performed:

[char] 'a' -cgt [char] 'A' -> $true, because the code point of char. a (LATIN SMALL LETTER A, U+0061) is greater than the code point of A (LATIN CAPITAL LETTER A, U+0041)
[char] 'a' -gt [char] 'A'-> !! ditto (also with -igt); that is, requests to ignore case are not honored.

[char] 'a' -gt [char] 'A'-> !! ditto (also with -igt); that is, requests to ignore case are not honored.

@mklement0 (a hat tip to your thoroughness, although you must be neglecting other things in life :-)   this looks like a bug to me
PS>  [char] 'a' -igt [char] 'A'
True

PS>  [char] 'a' -ieq [char] 'A'
True

The above is plain wrong, either it is greater than or it is equal to. Both can't be true. (quantum joke are left as an exercise for the reader)
I don't know if char comparisons should always be case insensitive but different behaviour between eq and ge/gt/le/lt must be wrong.  If culture is addressed (with a "legacy behaviour" option) this should be addressed at the same time. Some subtle bugs could be created where code unwittingly relies on those on current behaviour, so any change probably should be opt in.
Do we know if this has been flagged before ?

Thanks, @jhoneill; I agree that it is a bug, and I've created #18659
(I've also updated the previous comment, which indeed took me a while to write, but I wanted to have a systematic overview, including for my own notes; I may reuse parts in future Stack Overflow answers)
Note that PowerShell predominantly uses the invariant culture (operators, casts, string interpolation), and, from that vantage point, it is cmdlets that use the current culture (by default) that amount to an inconsistency.
I think Select-String is  another example.
Unless there is a good reason for this bifurcation that I am missing.


Recognize more useragents

One of the tests is still failing, I am not quite sure what is causing it.

Nothing against your efforts, but adding more and more user agents seems like fighting a losing battle.  If there's a particular agent you need to recognize, then it's (somewhat) straingtforward to add that with your own Request subclass.  If you just want to log user agent strings, you can access that with request.environ.get('HTTP_USER_AGENT').
class MyUserAgentParser(UserAgentParser):
    browsers = list(UserAgentParser.browsers)
    browsers += ('links', 'links')

class MyUserAgent(UserAgent):
    _parser = MyUserAgentParser()

# this part could be made simpler if the base UserAgentMixin didn't import UserAgent inside the function
class MyUserAgentMixin(UserAgentMixin):
    @cached_property
    def user_agent(self):
        return MyUserAgent(self.environ)

class MyRequest(MyUserAgentMixin, Request):
    pass

Would you squash these commits, they're a bit messy right now.

@davidism I understand. But I believe that a number of important platforms and browsers were being recognized incorrectly.  For example freebsd, openbsd, netbsd were being recognized as linux. The version of seamonkey was being parsed as the version of mozilla. I fixed all these in the previous PR and thought a few more might be welcome.
I agree that probably baidu and bing are not the most important user agents out there, I wouldn't mind if you don't want to include them. But recognizing solaris as linux is a bug and should be fixed.
I was also planning to add curl in the list of user agents, it is pretty common to automate stuff using curl and it would be nice. :-)

Next time it would be good to include that explanation in the initial pull request.  I don't really have a problem merging this, was just commenting on the general unboundedness of it.

I understand your concern :)
What about the failing test? I am not able to understand its relation with the changes that I made.

Those are a bit flaky unfortunately.
On 19 April 2016 20:07:48 CEST, Abhinav Upadhyay<EMAIL_ADDRESS>wrote:

I understand your concern :)
What about the failing test? I am not able to understand its relation
with the changes that I made.

Reply to this email directly or view it on GitHub:
https://github.com/pallets/werkzeug/pull/906#issuecomment-212048945

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

I am using these changes on production in my application, haven't seen any issues.
What can I do to get the build fixed and the changes merged?

Just restarted the build, thanks for reminding.

Thanks, the build is passing now and all tests successful.
I wanted to add one more platform (DragonflyBSD), if there is no objection :)
I'm a *BSD developer, and get a lot of traffic from people using NetBSD, FreeBSD, OpenBSD and DragonFly. It would be nice to have them recognized without any extra work  :)

Sure, but please with tests too

It failed again after my last commit :(

Excellent, thank you!

Thank you :)


Vulkan: Working on swapchain creation

The backend will now load the required extensions for each platform for the surface creation. Additionally improved the swapchain creation to address serveral validation layer errors (checking for support of formats, capabilities, etc.).
Additionally switched to the (more common?) BGRA8 color format for the swapchain images.
I assume we need to shift some responsibilities for the the swapchain creation to the application to select its prefered formats and settings depending on the capabilities offered by the GPU.
(e.g. my system doesn't support RGBA8 for swapchains nor D24_S8 as depth-stencil format)

e.g. my system doesn't support RGBA8 for swapchains nor D24_S8 as depth-stencil format

Uh, oh, that sucks. I recall @fkaa also complaining that our default D24_S8 does not exist on Metal.
Looks like we need to have the defaults being different for different backends? Or maybe some feature levels. Either way, it doesn't affect gfx_core or gfx itself, just the example launcher.

I have a few ideas to (temporarily) fix glfw breakage (cc @eugene2k):

Use an older glfw-rs package explicitly, one that still required our cmake version
Feature-gate glfw entirely and disable in Travis. Still going to be tested by AppVeyor.

No need at the moment. I found a whitlisted repo (actually I found I forgot to add an extra package when I tested it before and haven't realized that was the problem) and glfw compiles now. I'm trying to find out what's wrong with xcb now. strace is of absolutely no help, btw :)

Awesome, glad to hear that @eugene2k ! If xcb is not obvious, please proceed with glfw fix PR so that other work (like this PR) shows green.

#1019 submitted. Don't think the travis build will show green, though

Thanks for reviewing! I'm trying to address the other code lines and fix the error reported by appveyor. I also need to handle the new color format for Metal.

Don't worry to much about Metal. It is slightly broken anyway now, so you are not making it much worse :) Let me know when your PR is ready.

The PR would be ready, unfortunatley the appveyor-gnu buildbot remains broken for some reason.

Indeed, the AppVeyor wasn't able to get mingw (again) for some reason. Waiting for another Travis pass...

Hmm, we need to make GitHub re-merge this with #1019. @msiglreith - could you force-push the last commit or rebase?

@homu r+

:pushpin: Commit c96bbc2 has been approved by kvark

:zap: Test exempted - status


Capitalize trn and ni

When rendering the teacher reference number or the national insurance
number in the matching details list we want to make sure they're
titlized

This PR is no longer needed
"just checked with Ashleigh and she's confirmed that the convention for NiNo and TRN is correct as it is currently coded and should not be capitalised."


docs: Add Contributing guide

Without this, people don't know how to get started with our
project.
We might want to expand this further by providing extra details
like communication channels, when they will be decided.
In the meantime, this is a good start for new contributors.
Closes: #23

I think we should also add this to the wiki so that ppl find it in a more easier way. WDYT @evrardjp ?
In the meantime this /lgtm so unless anyone else has any further comment I'll merge this today.

I don't have a strong opinion about the wiki. If we do it there, it must be a link to the code, to only have one source of truth.

If we do it there, it must be a link to the code, to only have one source of truth.
Absolutely! Wiki is to me a reference (where applicable) to various points in the repo, the only source of truth are the .md files :)


Update to Stockfish to current development version.

There are still issues with the variation display in the lichess app. Not sure if that's on Stockfish' side or an issue in the app. Hopefully this can help debug it: initialization no longer crashes.
See https://github.com/veloce/lichobile/issues/691

Great! I'll test that and hopefully be able to debug variation display (not sure what bug is that?).
I'm curious, since I've made the same changes on my side (not pushed yet) in stockfishjni.cpp and uci.cpp, so what it is that was causing the initialization crash?

Those changes are the only relevant ones - I assumed that because they're the ones that needed changing due to the SF update, they're the place a small bug might have crept in. If it's really exactly the same as yours, then this should crash for you in the same manner.

The issue with the display is almost certainly an issue with the app. Or perhaps Stockfish is displaying things different than it expects, but the SF output is right as per UCI.
This shows the bug:
https://photos.app.goo.gl/kGraXCiheK6P8Y6a7
This was the Stockfish output in logcat:
V/lichess (10380): out=info depth 14 seldepth 19 multipv 1 score cp 54 nodes 814426 nps 167992 hashfull 352 tbhits 0 time 4848 pv e2e4 e7e5 g1f3 g8f6 d2d4 f6e4 d4e5 d7d5 f1d3 b8c6 e1g1 f8e7 c1e3 e8g8 b1d2 e4c5 d3b5

Note that this is likely missing this patch: https://github.com/veloce/cordova-plugin-stockfish/commit/5e6454e3b32c9a6dc4a957605d748727157507bc#diff-79d9b1b1d55ae5bf86806c9b2dbee311
If it's still needed it will need to be applied on top of this pull.

Oh there's a bug that's resetting the FEN once too much, that's why this going wrong:
V/lichess (22345): cmd=position fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 moves h2h3 g7g5 e2e3 h7h5
V/lichess (22345): cmd=go depth 99
V/lichess (22345): out=info depth 1 seldepth 1 multipv 1 score cp 47 nodes 495 nps 45000 tbhits 0 time 11 pv e2e4 d7d6

Ok, I believe that is working now.
I still see issues for example when switching to playing the local engine after analyzing, which seem thread related.

The problematic scenario right now is this: you play some games locally vs the engine, then you launch the analysis board.
Internally, this causes the plugin to exit, and I presume, attempt to be reinitialized. But this hangs.
My best guess is that not all of Stockfish's threads are being shut down properly, particularly now that uiThread exists as a static shared_ptr (which would eternally hold that thread alive). But fixing that didn't seem to make the problem go away.
Java_org_lichess_stockfish_CordovaPluginStockfish_jniExit reaches the end of that function.
The tombstone suggest it's actually the 2nd init that hangs:
 native: #00 pc 0003d440  /data/app/org.lichess.mobileapp-2/lib/arm/libstockfishjni.so (Position::init()+639)
  native: #01 pc 0001c66b  /data/app/org.lichess.mobileapp-2/lib/arm/libstockfishjni.so (Java_org_lichess_stockfish_CordovaPluginStockfish_jniInit+222)
  native: #02 pc 0027cfef  /data/dalvik-cache/arm/data@app@org.lichess.mobileapp-2<EMAIL_ADDRESS>(Java_org_lichess_stockfish_CordovaPluginStockfish_jniInit__+82)
  at org.lichess.stockfish.CordovaPluginStockfish.jniInit(Native method)
  at org.lichess.stockfish.CordovaPluginStockfish.init(CordovaPluginStockfish.java:79)
  at org.lichess.stockfish.CordovaPluginStockfish.execute(CordovaPluginStockfish.java:64)

I think the cukoo tables are the cause: they're not 0-initialized, so repeated calls of Position::init() are problematic. I'm not sure this should be considered a bug in Stockfish, because commits like a66c73deef420104e74b6645ee60e20b37fd8549 hint that that should actually work.

@veloce I think this is all working correctly now. Please test :-)

I don't see the variation bug in the application.

It was fixed in one of the follow-up commits.

Also I think we still need the aforementioned patch, it solved crashes occurring on iOS only after a longer search.

The relevant code appears to already have been included in the stockfish-variant tree, e.g.: https://github.com/veloce/cordova-plugin-stockfish/pull/9/files#diff-b074e04ad7e10a48b5d4b715ec9633b4L58


Add route info for clusterroles and clusterrolebindings

I would swear I had fixed this before!
Maybe I forgot to include it in a PR...
I had fixed it by overriding:
get listRoute() {
    return 'roleBindings';
}

But I think your solution is also good and may imply less changes in the future. So let's use it.


Commit Checks Run Checkstyle and SpotBugs Twice

The Analyze job runs a step to install reporting tools which uses the maven lifecycle phase install, this phase will trigger all earlier lifecycle phases including verify; the verify phase runs the Checkstyle and SpotBugs checks.
After installing the reporting tools the maven project site, Javadocs, Checkstyle, and SpotBugs are ran, this means Checkstyle and SpotBugs are ran twice.
We should look into removing one of these runs to reduce the time it takes for the Analyze job to run, right now it is around 40 minutes or so.

This has been resolved through refactorings done to the CI and validation since this issue was written.


Completed Jobs Not Being Cleaned Up

We noticed that completed jobs are not being cleaned up. We currently have the job-ttl argument set to 5m in our configuration. I believe the configuration sets the .spec.ttlSecondsAfterFinished value on the job. It looks like this was introduced in Kubernetes 1.23. Unfortunately, we are not able to update K8S as rapidly. As a result, pods continue to pile up in our cluster requiring us to either create a cron to clean them up or to manually delete them.
An approach I've seen from Github Actions Kubernetes Runners is to have the controller watch for completed Jobs and clean them up manually.
I've attached an image from one of namespaces running the agents showing the pods continuing to exist past 5 minutes.

Thanks for raising this @CH-BrianJurgess!
I think we will need to build a job cleanup function - aside from older k8s versions, there are other ways jobs can accumulate (e.g. they create successfully but can fail to start a pod for some reason, and sit around retrying forever).


removing DC offset correction from templates

Removing DC offset correction in alignment with main spec #237

Good with me. Will merge when we get the green light from the specs side. :-)


Support CDK override for API (REST)

Version 7 of the CLI introduced support for CDK override of some categories like Auth & Storage. With this issue I'd like to propose to support API (REST) next. This would unlock things like data transformations in VTL (already supported for GraphQL), request validation settings, OpenAPI support, and all kinds of integration types.

Hi @dreamorosi, we just launched override support for the api category in version 7.5.0. Feedback is appreciated!
REST override docs


[BUG] docker compose file does not save and persist the tickers in the db

Describe the bug
When I restart my docker image the db does not persist the data and I need to reload all tickers manually.
To Reproduce
Steps to reproduce the behavior:
create a docker-compose.yml file with the following configuration.   Load tickers with the API and then restart the docker image.
version: "3"

networks:
  ticker-net:
    driver: bridge

volumes:
  ticker_data: {}

services:

  discordstockticker:
    image: ghcr.io/rssnyder/discord-stock-ticker:3.10.2
    environment:
      - DB=./dst.db
      - CACHE=true
    volumes:
      - ticker_data:/dst.db
    networks:
      - ticker-net
    ports:
      - "8112:8080"

Expected behaviour
I would expect the docker image to restart and load and run all the saved tickers.  However when running
curl localhost:8080/ticker
I get
{}
Python (please complete the following information):
Docker image per compose file above.
Additional context
NA

You are using two different paths. You are saying store the db in ./dst.db where the CWD is /go/src/discord-stock-ticker per the dockerfile, whereas your volume is trying to use /dst.db.
What I would recommend is something like this:
  discordstockticker:
    image: ghcr.io/rssnyder/discord-stock-ticker:3.10.2
    environment:
      - DB=/ticker_data/dst.db
      - CACHE=true
    volumes:
      - ticker_data:/ticker_data
    networks:
      - ticker-net
    ports:
      - "8112:8080"

Which, when started, loaded, deleted, then restarted, reloads the bots for me:
 zira ➜  ~  docker compose up -d
[+] Running 2/2
 ⠿ Container riley-discordstockticker-1  Started                                                                                0.7s
 ⠿ Container jellyfin                    Running                                                                                0.0s
 zira ➜  ~  docker logs riley-discordstockticker-1
time="2023-01-08T21:00:57Z" level=info msg="Running discord-stock-ticker version development..."
time="2023-01-08T21:00:57Z" level=info msg="Will be storing state in /ticker_data/dst.db\n"
time="2023-01-08T21:00:57Z" level=info msg="Starting api server on <IP_ADDRESS>:8080..."
 zira ➜  ~  curl -X POST localhost:8080/floor --data '{
  "marketplace": "opensea",
  "name": "sappy-seals",
  "nickname": true,
  "frequency": 10,
  "discord_bot_token": "xxxxx"
}'
{"marketplace":"opensea","name":"sappy-seals","nickname":true,"frequency":10,"client_id":"xxxx","discord_bot_token":"xxxxx"}
 zira ➜  ~  docker logs riley-discordstockticker-1
time="2023-01-08T21:00:57Z" level=info msg="Running discord-stock-ticker version development..."
time="2023-01-08T21:00:57Z" level=info msg="Will be storing state in /ticker_data/dst.db\n"
time="2023-01-08T21:00:57Z" level=info msg="Starting api server on <IP_ADDRESS>:8080..."
time="2023-01-08T21:01:03Z" level=info msg="Added floor: opensea\n"
time="2023-01-08T21:01:03Z" level=info msg="Watching floor price for opensea/sappy-seals"
 zira ➜  ~  docker stop riley-discordstockticker-1
riley-discordstockticker-1
 zira ➜  ~  docker rm riley-discordstockticker-1
riley-discordstockticker-1
 zira ➜  ~  docker compose up -d
[+] Running 2/2
 ⠿ Container riley-discordstockticker-1  Started                                                                                0.4s
 ⠿ Container jellyfin                    Running                                                                                0.0s
 zira ➜  ~  docker logs riley-discordstockticker-1
time="2023-01-08T21:01:13Z" level=info msg="Running discord-stock-ticker version development..."
time="2023-01-08T21:01:13Z" level=info msg="Will be storing state in /ticker_data/dst.db\n"
time="2023-01-08T21:01:13Z" level=info msg="Loaded floor from db: opensea-sappy-seals"
time="2023-01-08T21:01:13Z" level=info msg="Starting api server on <IP_ADDRESS>:8080..."
time="2023-01-08T21:01:13Z" level=info msg="Watching floor price for opensea/sappy-seals"

Thank you for this feedback.  This adjustment worked.  I'll make sure to buy you a coffee.  This app works great!!


Move onto latest Tox and remove install hack

We should get rid of this because it obscures dependency installation errors during the development workflow. The solution is available in the current version of Tox.

Strange error that I can't reproduce locally ... I've re-ran the builds ...
If it happens again I'll hold off on merging until I can investigate further ...

Hmmm, strange error. Not going to chase this up now but I think the Tox configuration needs further tweaking to get this sorted out. Anyway, this attempt might be useful to see what is failing for whoever else picks it up.


update readmes

This updates some READMEs on bitcoin-s and also fixes the version of the sbt-api-mappings plugin. Using latest.release as the version requires a network connection to resolve what the latest version is. This means we cannot develop offline

WYM by the latest.release part?
Also, I'm changing the READMEs pretty heavily in #465 . So perhaps it'd be better to make this PR against #465?

Coverage increased (+0.02%) to 90.475% when pulling 5e940d60bf5c491c72cc2f161323d51c8fc24387 on Christewart:2019-05-12-update-readme-descriptions into 88122fc30ae040a2a5ac7a85bec92c321448ed74 on bitcoin-s:master.

WYM by the latest.release part?

To resolve this plugin requires a network call https://github.com/bitcoin-s/bitcoin-s-core/blob/master/project/plugins.sbt#L24 . If you are on a airplane you can't start sbt because you need to make a network call to try and resolve this plugin. It won't be able to detect that the plugin you have cached locally is the latest release

Ah, good point

Ah, good point


Trying to add CI cloud unit testing, so I can see the status of examples that run

but Project needs a name and uuid.
ie
julia<EMAIL_ADDRESS>-e 'using Pkg; Pkg.generate("ProjectName")'
name = "SNNExamples"
uuid = "276b8b60-e50f-4651-bb99-b251f196bd69"

https://github.com/russelljjarvis/SNNExamples/actions/runs/12190825083/job/34008647935


⚠ Bofrost.es has degraded performance

In 4c44219, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1634 ms

Resolved: Bofrost.es performance has improved in 4c7f9cf after 10 minutes.


Create an online editor for people to try out Fe

What is wrong?
This doesn't strictly belong here but for the lack of a better place and to make sure to remember it, I'll file it here as a documentation issue.
We want an online playground for people to try out Fe similar to e.g. https://play.rust-lang.org for Rust.
@pipermerriam recently pointed out that it makes sense to prioritize this and get something up early even at a stage where the language isn't yet fully functional.
How can it be fixed
There are generally two possible ways:

Frontend + Backend where the frontend sends code over to a backend that runs the code and returns the compiler output back to the frontend

Compile the compiler to WASM and have it sit in the frontend directly, eliminating the need for a backend.

I'd prefer option 2.
Have you thought about the contract interaction UX? It seems like this can become quite complex.
It might be easiest to just start with displaying the compiled Yul code and nicely printing any errors.

Looks like you might just look at integration with remix via their plugin system.

I can help with this. Can somebody point me to the resources regarding this:
Compile the compiler to WASM and have it sit in the frontend directly, eliminating the need for a backend.

I can help with this.

@vasa-develop That would be really awesome!
So, the general idea is that Rust code can be compiled to WASM code which can then be run natively in the browser. Some general resources:

https://webassembly.org/
https://developer.mozilla.org/en-US/docs/WebAssembly/Rust_to_wasm
https://rustwasm.github.io/docs/book/

I have never compiled rust to WASM myself and so there are a lot of unknowns to me like:

Do we have any dependencies that would prevent us from compiling to WASM?
Would the generated WASM code be too large to be used in browser?
unknown unknowns

One thing I know, is that we actually run some kind of WASM test in CI but frankly I have no idea what it does:
https://github.com/ethereum/fe/blob/703e31b5c0cf781f9cb10121b2a49d64896cbb19/Makefile#L15-L21
Maybe @davesque can shed some light on this issue because he created this and might be able to give us some directions?
@vasa-develop
May I ask how you handle this for vyper.fun? Do you compile the code on a backend and send it back to the browser? I've done this in the past to build other playgrounds and so its a viable alternative if we can't get the compiler to run natively in the browser via WASM (But I agree that running it natively via WASM would be great!)

I looked into this today. The good: I followed this tutorial and it was really straight forward to compile rust code to wasm and use it in the browser :tada:
The bad: As soon as we try to compile the actual compiler down to wasm, things crumble.
error: failed to run custom build command for `solc v0.1.0 (https://github.com/spalladino/solc-rust?branch=feature/solc-0.6.2#26b00204)`

Caused by:
  process didn't exit successfully: `/home/cburgdorf/Documents/hacking/ef/fe/target/release/build/solc-e9900bd9c3e2dc8e/build-script-build` (exit code: 101)
  --- stdout
  running: "cmake" "/home/cburgdorf/.cargo/git/checkouts/solc-rust-b006a74fc705b68c/26b0020/solidity" "-DTESTS=OFF" "-DTOOLS=OFF" "-DUSE_Z3=OFF" "-DUSE_CVC4=OFF" "-DCMAKE_INSTALL_PREFIX=/home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown" "-DCMAKE_C_COMPILER=/usr/bin/clang" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown" "-DCMAKE_CXX_COMPILER=/usr/bin/clang" "-DCMAKE_BUILD_TYPE=Release"
  -- The C compiler identification is Clang 11.0.0
  -- The CXX compiler identification is Clang 11.0.0
  -- Check for working C compiler: /usr/bin/clang
  -- Check for working C compiler: /usr/bin/clang -- broken
  -- Configuring incomplete, errors occurred!
  See also "/home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out/build/CMakeFiles/CMakeOutput.log".
  See also "/home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out/build/CMakeFiles/CMakeError.log".

  --- stderr
  CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (message):
    The C compiler

      "/usr/bin/clang"

    is not able to compile a simple test program.

    It fails with the following output:

      Change Dir: /home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out/build/CMakeFiles/CMakeTmp

      Run Build Command(s):/usr/bin/gmake cmTC_11768/fast && /usr/bin/gmake -f CMakeFiles/cmTC_11768.dir/build.make CMakeFiles/cmTC_11768.dir/build
      gmake[1]: Entering directory '/home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out/build/CMakeFiles/CMakeTmp'
      Building C object CMakeFiles/cmTC_11768.dir/testCCompiler.c.o
      /usr/bin/clang   -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown    -o CMakeFiles/cmTC_11768.dir/testCCompiler.c.o   -c /home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out/build/CMakeFiles/CMakeTmp/testCCompiler.c
      Linking C executable cmTC_11768
      /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_11768.dir/link.txt --verbose=1
      /usr/bin/clang  -ffunction-sections -fdata-sections -fPIC --target=wasm32-unknown-unknown     CMakeFiles/cmTC_11768.dir/testCCompiler.c.o  -o cmTC_11768
      clang: error: unable to execute command: Executable "wasm-ld" doesn't exist!
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      gmake[1]: *** [CMakeFiles/cmTC_11768.dir/build.make:87: cmTC_11768] Error 1
      gmake[1]: Leaving directory '/home/cburgdorf/Documents/hacking/ef/fe/target/wasm32-unknown-unknown/release/build/solc-3fdaf8c117ea64cd/out/build/CMakeFiles/CMakeTmp'
      gmake: *** [Makefile:121: cmTC_11768/fast] Error 2

It looks like this is the culprit but I wasn't able to figure out how to fix it:

 clang: error: unable to execute command: Executable "wasm-ld" doesn't exist!

One relatively simple thing we could do is to refactor the code slightly so that we can compile down to YUL code without depending on the solc-backend  feature which should be possible.
That would mean that the online playground would be able to catch all errors and show the generated YUL code but it wouldn't be able to show the bytecode or actually run it on an embedded EVM.
Maybe that is good enough as a start though?
@vasa-develop Regarding the tutorials that you are doing: Is it correct that these do not actually depend on running the code on the EVM? I skimmed through it and it seems the users just enter code and they can diff it with the solution but it doesn't actually offer a way to test and run the code, right?

as for 1) I managed to build the compiler as a node.js package.
https://www.npmjs.com/package/@berlinvege/fejs
These are a few javascript functions that compile from strings buffers and return JS objects,no file IO.
So maybe it could be used for 2) as well

@mjobuda this is really cool. I've tweeted it out over the official account.
https://twitter.com/official_fe/status/1414873913407025157
Feel free to play with website integration if you like. There's a code example on the website would be cool if we can turn that into an actual editor where people can modify and compile the code.

I've compiled fe to wasm with cargo build --target wasm32-unknown-unknown --release but when importing in JS like this:
const file = await Deno.readFile('./fe.wasm')

const module = await WebAssembly.instantiate(file, {
  imports: {
    env: {}
  }
})

console.log(module)

and I get an error like this:
error: Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #0 module="__wbindgen_placeholder__" error: module is not an object or function


Frontend server settings

Adds more comprehensive settings method for setting frontend settings

@matmair any comment on the currently failing Deepsource:Python issue (mark_safe)?

Mark_safe is generally a security risk, I will review these specific instances


Loader for two resources?

Hi!
Is it possible to create loader which will return 2 resources?
I want to return JS and CSS from single file.
Thanks!

You need a loader that splitts the resource into two resources and return one of these depending on query param. i. e. get-part-loader?css and get-part-loader?js. Than you can use the multi-loader to get both.
{
                test: /\.jscss$/,
                loader: multi(
                    "style-loader!css-loader!get-part-loader?css",
                    "get-part-loader?js"
                )
}

Some think like this.
But i need two separate files. Here's and example:
From require ('component.js'):
/* styles
.component {
    background: ...;
}
*/

export function () {
   // Some JS code.
}

I want to get two files:
.component {
    background: ...;
}

And bundle.js:
module.exports = function () {
   // Some JS code.
};

Is it possible?

yep, but you need to write a loader...

That's what i want to do!! But how to write this kind of loader? Call this.callback two times?

You need a loader that splitts the resource into two resources and return one of these depending on query param. i. e. get-part-loader?css and get-part-loader?js. Than you can use the multi-loader to get both.
{
test: /.jscss$/,
loader: multi(
"style-loader!css-loader!get-part-loader?css",
"get-part-loader?js"
)
}

Thanks!


Fixup .mailmap and add maintenance script to tools/

Summary
Our .mailmap was getting a bit crusty, with both some superfluous entries, and not properly deduplicating all authors (especially those in Co-Authored-By: lines).

The problem is sufficiently annoying that I now understand why there is no existing tool to do this properly...
The script calls out to git log and git shortlog to get authors.
It parses the .mailmap file looking for errors and unnecessary lines.
It does loose matching on names and emails by normalizing unicode and dropping punctuation.
It makes some assumptions about uniqueness of names and emails that are too restrictive to work as a general-purpose mailmap-fixing tool, but those assumptions hold for the current state of our repo and are likely to remain true.
I'm not exactly sure what to do with the script, but checking it into tools/ with this PR, so it doesn't get lost seems a good start. If we wanted to trust it more then it's complex enough to need tests (where should tests for tools/ scripts even live?). Should it get a Makefile line or a tox environment?
The script is probably too fragile to make it part of the CI, although if you wanted to do it, you should use the form:
$ tools/fix_mailmap.py -sn

which would give a fairly terse output and not make any changes to .mailmap, just report a non-zero exit code if there is an error. It requires python 3.9 and no other dependencies.
For interactive non-CI use it gives pretty complete feedback about what it's doing but you should definitely look at the output and check that it's making good choices since there's a lot of heuristics going on. Generally the pattern should be something like:
$ tools/fix_mailmap.py
...output describing which changes were made and what the script got confused about...
$ vi .mailmap.
...manually fix .mailmap based on the above output
$ tools/fix_mailmap.py
....new output about fresh changes
$ vi .mailmap
...and so on

See the individual commits to this PR as examples of how that went for this big fixup. Hopefully things won't get so bad in general.
It's not a good idea to just run the script a whole bunch of times in a row without looking at the output because any bad assumptions could propagate pretty far through the mailmap by that time and it will be more of a pain to fix it.
Results
Before this PR:
$ git shortlog -sn --group trailer:Co-Authored-By --group author --email | grep '<' | wc -l
515

After this PR:
$ git shortlog -sn --group trailer:Co-Authored-By --group author --email | grep '<' | wc -l
440

and
$ git shortlog -sn --group trailer:Co-Authored-By --group author --email | grep '<'

gives a clean-looking author list.
I put in the grep '<'  because we have some 85 mis-formed trailer lines of the form

Co-Authored-By: firsname lastname<EMAIL_ADDRESS>
rather than the correct

Co-Authored-By: firsname lastname<EMAIL_ADDRESS>
I don't think there's any way to use a .mailmap to fix those - a history rewrite would be the only way to normalize those.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
12 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.001%) to 88.789%

Files with Coverage Reduction
New Missed Lines
%

qiskit/transpiler/passes/synthesis/unitary_synthesis.py
2
88.26%

crates/qasm2/src/lex.rs
4
92.48%

qiskit/synthesis/two_qubit/xx_decompose/decomposer.py
6
90.91%

Totals

Change from base Build<PHONE_NUMBER>5:
-0.001%

Covered Lines:
73488

Relevant Lines:
82767

💛  - Coveralls


AAE-11403 experiment prettier format

Will add more to docs/readme once we agree on the PR content.


Show coaching in the path wizard

Similar to coaching in the standard Sales Path feature for Opportunities and Leads, add coaching to each step of the wizard when configuring a Mass Action.
The coaching would help explain when to use reports vs. list views and other FAQ to better help guide the user through the setup process.

Delivered in release 2.0


Microsoft Edge/kiosk mode: broken relative links

Description:
The 4 images in the subsection "Supported configuration types" are supposed to be linked to their image files,
but the relative links have been broken by not containing the needed parent directory dots.
Proposed change:
Add the required parent directory dots to enable the links to point to the files as intended (even if not strictly needed to begin with).
It may not be easy to spot the changes due to the text layout and HTML linking format,
so a meta-diff for the 4 individual link changes should be more useful:
- |**Single-app**
<a href="/images/Picture1.png" alt="Full-sized view single-app
+ |**Single-app**
<a href="../images/Picture1.png" alt="Full-sized view single-a

-

<a href="/images/Picture2.png" alt="Full-sized view single-app
+

<a href="../images/Picture2.png" alt="Full-sized view single-a

- | **Multi-app**
<a href="/images/Picture5.png" alt="Full-sized view multi-app
+ | **Multi-app**
<a href="../images/Picture5.png" alt="Full-sized view multi-a

-

<a href="/images/Picture6.png" alt="Full-sized view multi-app
+

<a href="../images/Picture6.png" alt="Full-sized view multi-a

Issue ticket reference or closure:
Closes #4275

cc @jvsam (via #4285)

Hi @nenonix and @JohanFreelancer9 for copy review, as per process. Thank you.

Hi @eavena this pull request has been copy edited and is ready for your final review and approval. Please let us know if there are outstanding issues to be resolved prior to merge. Thank you. See: commits and changes.

Hi again @eavena, kindly review this pull request when time permits. Thank you.

Hi again @eavena how are you? Can you please review this PR and merge if there are no issues? Thank you.
Hi @AndreaBarr can you help us with this? Thank you in advance.

Thank you @AndreaBarr for your help.


Update watsonx module: Add Text Extraction APIs, Configuration changes, and Pretty-Print logging

Add TextExtraction APIs: APIs to perform OCR on documents. For now, the use of these APIs is enabled by casting the ChatLanguageModel;
Remove PromptFormatter classes: With the introduction of the /chat API, the PromptFormater classes are no longer needed;
Create two different configurations ChatModelConfig and GenerationModelConfig: Created separate ChatModelConfig and GenerationModelConfig classes for easier  configuration;
Add space-id parameter;
Add model list link to ScoringModel documentation;
Add tool_choice parameter and rename TextChatParameterTools to TextChatParameterTool;
Response logging with pretty-printing;

Tell me if I have to do a squash after the review.

One note, I don't see any changes in the quarkus-langchain4j-watsonx.adoc in my workspace (the file with all the attributes). Is this something that only updates when the github pipeline is run?

Can you try running mvn clean install -DskipTests on the whole project?
It should update the docs

Not sure what the issue is to be honest

Not sure what the issue is to be honest

Let's wait for a new release, if the attributes are still not updated then I'll open an issue.

👍🏽


can i get AJAX/XHR response data

hi, can i get (specific) AJAX/XHR response data ?

request.response, still trying

    page.on('response', response => {
      console.log('fa')
      console.log(response.text())
    })

Promise { <pending> }  ??

something wrong with the web

@codenoid try this
    page.on('response', response => {         response.text().then(function (textBody) {             console.log(textBody);         })     })

I have the same problem.
An ajax request is going from script in puppeteer to the backend and the backend responds by sending json to the puppeteer browser.
I use page.on('reponse') which errs with following message.
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 5): Error: Protocol error (Network.getResponseBody): No data found for resource with given identifier undefined

Soz... last comment was rubbish. Got there in the end by making launching puppeteer with a head for debugging to notice that my ajax had a CORS issues.

Thank you for the hint @arsen-sargsyan. These two variants work for me:
Variant 1 (with ".then")
const puppeteer = require('puppeteer');

// Puppeteer page event types to catch
const pevents = [
    'console',
    'dialog',
    'load',
    'domcontentloaded',
    'error',
    'pageerror',
    'frameattached',
    'framenavigated',
    'framedetached',
    'request',
    'requestfinished',
    'requestfailed',
    'response'
];

async function main() {
    // Create headless session
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    const client = await page.target().createCDPSession();

    // Log puppeter page notifications
    pevents.forEach((peventName) => {
        page.on(peventName, async (plistenerFunc) => {
            console.log({ peventName, plistenerFunc });
            try {
                if (peventName == 'response') {
                    await plistenerFunc.text().then((textBody) => {
                        console.log('textBody:', textBody);
                    })
                }
            } catch (err) {
                console.error(plistenerFunc, err);
                console.log(plistenerFunc, err);
            }
        });
    });

    // Open a page, than close
    await page.goto('https://www.google.com', { waitUntil: ['networkidle2', 'load', 'domcontentloaded'], timeout: 100000 });
    await browser.close();
}

main();

Variant 2 (2 x await)
// cut here (same as Variant 1)
            try {
                if (peventName == 'response') {
                    const textBody = await plistenerFunc.text()
                    await console.log('textBody:', textBody);
                }
            } catch (err) {
                console.error(plistenerFunc, err);
                console.log(plistenerFunc, err);
            }
// cut here (same as Variant 1)

Note
On some pages (e.g. forbes.com) does not work as smooth as expected, please see #2258.

I still can't get the response from the ajax calls. I am trying this https://github.com/nei/rico-puppeteer/pull/1/files I've also tried some of the tips posted here but nothing worked.
I am using node v9.11.1, and puppeteer": "^1.6.0"

page.on('response', response => {
// allow XHR only
if ('xhr' !== response.request().resourceType()){
return ;
}
response.json().then((res) => {
console.log("===>>> ", res);
});
});


Remove dummy functions from globaloc.cpp and related code

Signed-off-by: Stefan Weil<EMAIL_ADDRESS>

thanks


bugfix: Remove double volume multiplier

The two wave files follow the path:
_play_wav >> wav_to_events >> event_to_snd until _snd_task_proc where they will be threated like any other sound (AudioChunk) coming from server.
However, volume multiplier is applied at the wav_to_events step and at the _snd_task_proc.
This patch removes the volume from the event generation in the call to wav_to_events from _play_wav so it will applied only once in the event processing.

Thanks!


Shotgrid: Fix how representation paths are received during publishing

Brief description
Representation instances don't have a "published_path" attribute when submitting remotely so the Shotgrid integrator plugins were failing expecting it. This PR abstracts the function that the ftrack integrator plugins used into a common module and uses it on the Shotgrid plugins to fix the bug.
Description
Rendering remotely in the farm we were hitting this bug where "published_data" attribute didn't exist on the representation instances:
INFO: Create Shotgrid version: {'id': 290916, 'project': {'id': 2917, 'name': 'zzz', 'type': 'Project'}, 'sg_task': None, 'entity': {'id': 53397, 'name': 'cloud1_10_10', 'type': 'Shot'}, 'code': 'zzz_Shots_cloud1_10_10_DummyTask_v045', 'type': 'Version'}
Traceback (most recent call last):
  File "/usr/openpype/exe.linux-x86_64-3.9/dependencies/pyblish/plugin.py", line 522, in __explicit_process
    runner(*args)
  File "/usr/openpype/exe.linux-x86_64-3.9/openpype/modules/shotgrid/plugins/publish/integrate_shotgrid_version.py", line 67, in process
  File "/sw/nuke/14.0v2/lib/python3.9/posixpath.py", line 142, in basename
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

I checked how the ftrack integrators dealt with it and found this function _get_repre_path which accounts for this case so if "published_data" doesn't exist it creates a path of the stagingDir attribute instead. I have abstracted that function and placed it under plugins/integrate.py (maybe there's a better place for it?) and replaced it on the few cases I saw where plugins relied on the published_path (except on the Kitsu integration plugin)
Testing notes:

Create a write render on Nuke
Set it to render in the farm
Click publish

I just hit another error on the integrate_shotgrid_publish.py but this time because the stagingDir is passed with the root[work] template:
INFO: {'name': 'baking', 'ext': 'mov', 'files': 'renderDummyTaskMain.baking.mov', 'stagingDir': '{root[work]}/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain', 'tags': ['baking', 'review', 'delete', 'publish_on_farm'], 'frameStart': 1001, 'frameEnd': 1001}
Traceback (most recent call last):
  File "/usr/openpype/exe.linux-x86_64-3.9/dependencies/pyblish/plugin.py", line 522, in __explicit_process
    runner(*args)
  File "/home/farrizabalaga/.local/share/openpype/3.15/openpype-v3.15.1-ax.2/openpype/modules/shotgrid/plugins/publish/integrate_shotgrid_publish.py", line 34, in process
  File "/sw/nuke/14.0v2/lib/python3.9/posixpath.py", line 142, in basename
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

So the get_publish_repre_path function is returning None when it can't check if the path exists:
    src_path = os.path.normpath(os.path.join(staging_dir, filename))
    if os.path.exists(src_path):
        return src_path

@iLLiCiTiT any ideas why that stagingDir would be with the template? Should we add a function that resolves the templated path on get_publish_repre_path? I would rather find out why the stagingDir is templated at first place

Should we add a function that resolves the templated path on get_publish_repre_path? I would rather find out why the stagingDir is templated at first place

No. We have to find out what it is caused by. Can you give more context? Like in which host it happens, what families etc.

Should we add a function that resolves the templated path on get_publish_repre_path? I would rather find out why the stagingDir is templated at first place

No. We have to find out what it is caused by. Can you give more context? Like in which host it happens, what families etc.
EDITED: Just looked at the traceback and it's nuke....
Isn't that because you're sending a job to farm?

Yeah... totally agree that we shold fund the culprit.
That's correct, it's happening when sending a Nuke render job + review to the farm (deadline), but the stagingDir having the template syntax is only happening to this "baking" representation, which I believe is being set here https://github.com/ynput/OpenPype/blob/develop/openpype/hosts/nuke/plugins/publish/extract_review_data_mov.py#L41
Here's the metadata.json log:
{
    "asset": "cloud1_10_10",
    "comment": "",
    "deadline_publish_job_id": "63eab68c214c530018bb4840",
    "fps": 24.0,
    "frameEnd": 1001,
    "frameStart": 1001,
    "instances": [
        {
            "asset": "cloud1_10_10",
            "bakingNukeScripts": [
                {
                    "bakeRenderPath": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain/renderDummyTaskMain.baking.mov",
                    "bakeScriptPath": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain/renderDummyTaskMain.baking.nk",
                    "bakeWriteNodeName": "Write1"
                }
            ],
            "comment": "",
            "extendFrames": null,
            "families": [
                "render",
                "review",
                "render2d",
                "slate"
            ],
            "family": "render",
            "fps": 24.0,
            "frameEnd": 1001,
            "frameEndHandle": 1001,
            "frameStart": 1001,
            "frameStartHandle": 1001,
            "handleEnd": 0,
            "handleStart": 0,
            "inputVersions": [],
            "jobBatchName": "",
            "multipartExr": false,
            "overrideExistingFrame": null,
            "pixelAspect": 1.0,
            "representations": [
                {
                    "ext": "mov",
                    "files": "renderDummyTaskMain.baking.mov",
                    "frameEnd": 1001,
                    "frameStart": 1001,
                    "name": "baking",
                    "stagingDir": "{root[work]}/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain",
                    "tags": [
                        "baking",
                        "review",
                        "delete",
                        "publish_on_farm"
                    ]
                },
                {
                    "ext": "exr",
                    "files": [
                        "renderDummyTaskMain.1000.exr",
                        "renderDummyTaskMain.1001.exr"
                    ],
                    "fps": 24.0,
                    "frameEnd": 1001,
                    "frameStart": 1000,
                    "name": "exr",
                    "stagingDir": "{root[work]}/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain",
                    "tags": []
                }
            ],
            "resolutionHeight": 1080,
            "resolutionWidth": 1920,
            "slate": true,
            "slateFrames": {
                "baking": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain/renderDummyTaskMain_baking_slate.png"
            },
            "source": "{root[work]}/zzz/Shots/cloud1_10_10/work/DummyTask/zzz_cloud1_10_10_DummyTask_v052.nk",
            "subset": "renderDummyTaskMain",
            "useSequenceForReview": false,
            "version": 52
        }
    ],
    "intent": null,
    "job": {
        "Aux": [],
        "Bad": [],
        "ComFra": 0,
        "CompletedChunks": 0,
        "ConcurrencyToken": null,
        "DataSize": -1,
        "Date": "2023-02-13T22:15:39.925+00:00",
        "DateComp": "0001-01-01T00:00:00Z",
        "DateStart": "0001-01-01T00:00:00Z",
        "Errs": 0,
        "ExtraElements": null,
        "FailedChunks": 0,
        "IsSub": false,
        "Mach": "webserver-deadline-10-1-23-6-78878c57f9-94vj7",
        "Main": false,
        "MainEnd": 0,
        "MainStart": 0,
        "OutDir": [
            "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain"
        ],
        "OutFile": [
            "renderDummyTaskMain.baking.mov"
        ],
        "PendingChunks": 0,
        "Plug": "Nuke",
        "Props": {
            "AWSPortalAssetFileWhitelist": [],
            "AWSPortalAssets": [],
            "AutoTime": false,
            "AuxSync": false,
            "Batch": "zzz_cloud1_10_10_DummyTask_v052.nk",
            "Chunk": 99999999,
            "Cmmt": "",
            "Conc": 1,
            "ConcLimt": true,
            "Dep": [
                {
                    "EndOffset": 0,
                    "IgnoreFrameOffsets": false,
                    "JobID": "63eab68bfd8f010018b6e057",
                    "Notes": "",
                    "OverrideFrameOffsets": false,
                    "OverrideResumeOn": false,
                    "ResumeOnComplete": true,
                    "ResumeOnDeleted": false,
                    "ResumeOnFailed": false,
                    "ResumeOnPercentageCompleted": false,
                    "ResumeOnPercentageValue": 0.0,
                    "StartOffset": 0
                }
            ],
            "DepComp": true,
            "DepDel": false,
            "DepFail": false,
            "DepFrame": false,
            "DepFrameEnd": 0,
            "DepFrameStart": 0,
            "DepPer": -1.0,
            "Dept": "",
            "Env": {
                "AVALON_APP": "nuke",
                "AVALON_APP_NAME": "nuke/14-02",
                "AVALON_ASSET": "cloud1_10_10",
                "AVALON_DB": "avalon",
                "AVALON_LABEL": "OpenPype",
                "AVALON_PROJECT": "zzz",
                "AVALON_PROJECTS": "",
                "AVALON_SCENEDIR": "",
                "AVALON_TASK": "DummyTask",
                "AVALON_TIMEOUT": "1000",
                "AVALON_WORKDIR": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask",
                "NUKE_PATH": "/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/openpype/hosts/nuke/startup:/pipe/openpype/plugins/nuke:/pipe/nuke:/sw/submission/Nuke/Client",
                "OPENPYPE_DATABASE_NAME": "openpype",
                "OPENPYPE_EXECUTABLE": "/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/openpype_console",
                "OPENPYPE_LOG_TO_SERVER": "1",
                "OPENPYPE_MONGO": "mongodb://root:pype@openpype-mongodb2:27017",
                "OPENPYPE_OIIO_PATHS": "/sw/bin",
                "OPENPYPE_PATH": "/pipe/openpype/versions",
                "OPENPYPE_PROJECT_ROOT_WORK": "/proj",
                "OPENPYPE_RENDER_JOB": "1",
                "OPENPYPE_REPOS_ROOT": "/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9",
                "OPENPYPE_ROOT": "/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9",
                "OPENPYPE_SG_USER": "farrizabalaga",
                "OPENPYPE_STATICS_SERVER": "http://localhost:8081/res",
                "OPENPYPE_STUDIO_PLUGINS": "/pipe/openpype/plugins",
                "OPENPYPE_VERSION": "3.15.1-ax-develop.4",
                "OPENPYPE_WEBSERVER_URL": "http://localhost:8081",
                "OPENPYPE_WORKFILE_TOOL_ON_START": "1",
                "PATH": "/home/farrizabalaga/.local/bin:/home/farrizabalaga/dev/rez_install/bin/rez:/home/farrizabalaga/.pyenv/shims:/home/farrizabalaga/.pyenv/bin:/sw/python/3.9.16/bin:/sw/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin",
                "PYTHONPATH": "/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/openpype/hosts/nuke/vendor:/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/openpype/vendor/python/python_3:/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/openpype/vendor/python/common:/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/openpype/tools:/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9:/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9::/home/farrizabalaga/dev/OpenPype/build/exe.linux-x86_64-3.9/dependencies",
                "schema": "openpype:session-3.0"
            },
            "EnvOnly": false,
            "EventDir": "",
            "EventOI": [],
            "Ex0": "",
            "Ex1": "",
            "Ex2": "",
            "Ex3": "",
            "Ex4": "",
            "Ex5": "",
            "Ex6": "",
            "Ex7": "",
            "Ex8": "",
            "Ex9": "",
            "ExDic": {},
            "FrameTimeout": false,
            "Frames": "1001",
            "FriStart": "-10675199.02:48:05.4775808",
            "FriStop": "-10675199.02:48:05.4775808",
            "Grp": "nuke-cpu-epyc",
            "InitializePluginTime": 0,
            "Int": false,
            "IntPer": 100,
            "JobFailErr": 0,
            "JobFailOvr": false,
            "Limits": [],
            "ListedSlaves": [],
            "MachLmt": 0,
            "MachLmtProg": -1.0,
            "MaxTime": 0,
            "MinTime": 0,
            "MonStart": "-10675199.02:48:05.4775808",
            "MonStop": "-10675199.02:48:05.4775808",
            "Name": "renderDummyTaskMain.baking.nk - renderDummyTaskMain",
            "NoBad": false,
            "NoEvnt": false,
            "NotEmail": [],
            "NotNote": "",
            "NotOvr": false,
            "NotUser": [
                "farrizabalaga"
            ],
            "OnComp": 2,
            "OptIns": {},
            "OverAutoClean": false,
            "OverClean": false,
            "OverCleanDays": 0,
            "OverCleanType": 1,
            "OvrTaskEINames": false,
            "PathMap": [],
            "PlugDir": "",
            "PlugInfo": {
                "AWSAssetFile0": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain/renderDummyTaskMain.baking.mov",
                "OutputFilePath": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain",
                "ProjectPath": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain/renderDummyTaskMain.baking.nk",
                "SceneFile": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask/renders/nuke/renderDummyTaskMain/renderDummyTaskMain.baking.nk",
                "UseGpu": "True",
                "Version": "14.0",
                "WriteNode": "Write1"
            },
            "PoJobScrp": "",
            "PoTskScrp": "",
            "Pool": "none",
            "PrJobScrp": "",
            "PrTskScrp": "",
            "Pri": 50,
            "Protect": false,
            "Region": "\"\"",
            "Reload": false,
            "RemTmT": 0,
            "ReqAss": [],
            "SatStart": "-10675199.02:48:05.4775808",
            "SatStop": "-10675199.02:48:05.4775808",
            "Schd": 0,
            "SchdDate": "2023-02-13T22:15:39.9151297+00:00",
            "SchdDays": 1,
            "SchdStop": "0001-01-01T00:00:00Z",
            "ScrDep": [],
            "SecPool": "none",
            "Seq": false,
            "SndEmail": false,
            "SndPopup": false,
            "SndWarn": true,
            "StartTime": 0,
            "SunStart": "-10675199.02:48:05.4775808",
            "SunStop": "-10675199.02:48:05.4775808",
            "TaskEx0": "",
            "TaskEx1": "",
            "TaskEx2": "",
            "TaskEx3": "",
            "TaskEx4": "",
            "TaskEx5": "",
            "TaskEx6": "",
            "TaskEx7": "",
            "TaskEx8": "",
            "TaskEx9": "",
            "Tasks": 1,
            "ThuStart": "-10675199.02:48:05.4775808",
            "ThuStop": "-10675199.02:48:05.4775808",
            "TimeScrpt": false,
            "Timeout": 1,
            "TskFailErr": 0,
            "TskFailOvr": false,
            "TueStart": "-10675199.02:48:05.4775808",
            "TueStop": "-10675199.02:48:05.4775808",
            "User": "farrizabalaga",
            "WedStart": "-10675199.02:48:05.4775808",
            "WedStop": "-10675199.02:48:05.4775808",
            "White": false
        },
        "Purged": false,
        "QueuedChunks": 0,
        "RenderingChunks": 0,
        "SnglTskPrg": "0 %",
        "Stat": 6,
        "SuspendedChunks": 0,
        "Tile": false,
        "TileCount": 0,
        "TileFile": [],
        "TileFrame": 0,
        "TileX": 0,
        "TileY": 0,
        "_id": "63eab68c214c530018bb483f"
    },
    "session": {
        "AVALON_APP": "nuke",
        "AVALON_ASSET": "cloud1_10_10",
        "AVALON_DB": "avalon",
        "AVALON_LABEL": "OpenPype",
        "AVALON_PROJECT": "zzz",
        "AVALON_PROJECTS": "",
        "AVALON_SCENEDIR": "",
        "AVALON_TASK": "DummyTask",
        "AVALON_TIMEOUT": "1000",
        "AVALON_WORKDIR": "/proj/zzz/Shots/cloud1_10_10/work/DummyTask",
        "schema": "openpype:session-3.0"
    },
    "source": "{root[work]}/zzz/Shots/cloud1_10_10/work/DummyTask/zzz_cloud1_10_10_DummyTask_v052.nk",
    "user": "farrizabalaga",
    "version": 52
}


Feature: Show scheduled end time & date from version panel

I'm re-opening the issue #8107.
The version panel doesn't show end time.
I had a client who claimed that they have set start and end scheduled date.
After digging MySQL table, we found out that the client didn't.
So it would be nice that the version panel will say if the user has really set start and end schedule time and date.
Currently, it doesn't show end time.

Ping


Document github pages deployment

See -> https://github.com/Manvel/cmints/issues/113

Settings for config.json:
const deployment =
{
  where: "git",
  branch: "gh-pages"
};

module.exports = {deployment};

Considering the setting above, the deployment could be done, by simply running command below:
cmints --static --deploy=git


Edit .gitignore to fix rsync in dev mode

This was not allowing sending the instance code to the instances when running in dev mode, so it needs to be removed from the gitignore.

No, we are always executing rsync pointing to the folder where flambe repo is located, so not related to cwd.
I think this is related to the fact that rsync is not being consistent with the usage of our .gitignore file. When it sees instance/, it ignores any folder that matches the name, not just a top level folder as git would do.

In that case, I wonder if it would be beneficial to add a test that ensures that no folder inside flambe have a name that would be ignored by gitignore, so that this doesn't happen in the future. For example, it looks like the name site and target would be prohibited.


Cosmos REST API

Is there a spec that we can download for the Cosmos REST api?
I'm referring to this one: https://docs.microsoft.com/en-us/rest/api/cosmos-db/
I've started working with it recently, and it would be really useful to have a JSON spec that I could import into Postman.

yes, you can download it from this right repo: https://github.com/Azure/azure-rest-api-specs/blob/master/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-09-01/cosmos-db.json

@leni-msft Thanks for the reply. I saw that earlier, but it doesn't seem to be the same API. The paths in the one I linked to don't seem to exist in that spec. Also, the API versions are completely different.

@leni-msft Following up on this. Do you know who might have an answer for this question?

@leni-msft Following up on this. Do you know who might have an answer for this question?

Hi @shellygms,  are you able to answer @nVitius 's question?

Hi @shellygms,  are you able to answer @nVitius 's question?

The apis listed in https://docs.microsoft.com/en-us/rest/api/cosmos-db/ are not recommended. These are the older APIs. The latest and recommended ones are listed under Resource Provider. I recommend you to use them.

The apis listed in https://docs.microsoft.com/en-us/rest/api/cosmos-db/ are not recommended. These are the older APIs. The latest and recommended ones are listed under Resource Provider. I recommend you to use them.

@nVitus please reopen this issue if you have more questions.

@nVitus please reopen this issue if you have more questions.