[Snyk] Upgrade web3 from 4.2.2 to 4.3.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade web3 from 4.2.2 to 4.3.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 26 versions ahead of your current version.
The recommended version was released a month ago, on 2023-12-04.

Release notes

Package name: web3

4.3.0 - 2023-12-04[4.3.0]
Changed
web3-core

Web3config contractDataInputFill has been defaulted to data, istead of input. (#6622)

web3-eth-contracts

By default, contracts will fill data instead of input within method calls (#6622)

Added
web3-utils

SocketProvider now contains public function getPendingRequestQueueSize, getSentRequestsQueueSize and clearQueues (#6479)
Added safeDisconnect as a SocketProvider method to disconnect only when request queue size and send request queue size is 0 (#6479)
Add isContractInitOptions method (#6555)

web3

Added methods (privateKeyToAddress, parseAndValidatePrivateKey, and privateKeyToPublicKey) to web3.eth.accounts (#6620)

Fixed
web3-rpc-methods

Fix web3-types import #6590 (#6589)

web3-utils

Fix unecessary array copy when pack encoding (#6553)

4.2.3-dev.f8d8774.0 - 2023-11-23

4.2.3-dev.ef6f04e.0 - 2023-11-20

4.2.3-dev.e6d8c14.0 - 2023-11-28

4.2.3-dev.d8b8e18.0 - 2023-11-20

4.2.3-dev.be86e25.0 - 2023-11-20

4.2.3-dev.bcd0706.0 - 2023-11-20

4.2.3-dev.b9da5a5.0 - 2023-11-20

4.2.3-dev.b3ccd5c.0 - 2023-11-28

4.2.3-dev.af91519.0 - 2023-11-20

4.2.3-dev.8e3e676.0 - 2023-11-10

4.2.3-dev.7461c8e.0 - 2023-12-01

4.2.3-dev.72e9bbd.0 - 2023-11-03

4.2.3-dev.6cc86b3.0 - 2023-11-20

4.2.3-dev.4778a0c.0 - 2023-11-06

4.2.3-dev.41dbf2a.0 - 2023-11-06

4.2.3-dev.3bda14d.0 - 2023-11-27

4.2.3-dev.332c18c.0 - 2023-11-06

4.2.3-dev.2c60685.0 - 2023-11-20

4.2.3-dev.2c132c5.0 - 2023-11-16

4.2.3-dev.20cc5da.0 - 2023-11-23

4.2.3-dev.11f20b2.0 - 2023-11-06

4.2.3-dev.119dfa5.0 - 2023-12-04

4.2.3-dev.0dec262.0 - 2023-11-17

4.2.3-dev.09c8ad0.0 - 2023-11-07

4.2.3-dev.2785782.0 - 2023-11-20

4.2.2 - 2023-11-03Added
web3-core

Added isMetaMaskProvider function to check if provider is metamask (#6534)

web3-types

Interface MetaMaskProvider added and is part of SupportedProviders (#6534)
gasPrice was added to Transaction1559UnsignedAPI type. (#6539)

Changed
web3

Dependencies updated

Fixed
web3-errors

Fixed grammar and spelling in transactionTimeoutHint (#6559)

web3-eth-contract

Will populate data for transactions in contract for metamask provider instead of input (#6534)

    from web3 GitHub release notes

Commit messages

Package name: web3

b9b5fe0 update test
33c068d fix getproof error
7e2b4e7 add missing package
84242da update changelog
8c75060 update changelog
8e87ef9 update packages
4163ad1 revert some package bumps
9ccb2fb update vers
4dffacc fix versioning
3301287 update changelog
ee5e81d update changelog and run lerna
b3ccd5c change default to data (#6622)
e6d8c14 Stress Tests 1 - QA Tests (#6595)
3bda14d added methods (privateKeyToAddress, parseAndValidatePrivateKey,and privateKeyToPublicKey) to web3.eth.accounts (#6621)
20cc5da Proposal: Expose plugin functionality to plugins so it's easier to discover what plugins could do (#6538)
f8d8774 update socket provider test (#6614)
2785782 Stress Tests 3 - create long duration ws tests  (#6588)
af91519 fix: unnecessary array copy when pack encoding (#6553)
2c60685 Stress Tests 2 - QA Tests (#6583)
d8b8e18 fix: faster hex to byte implementation (#6596)
be86e25 Write a migration guide from ethers to web3.js (#6603)
ef6f04e add websocket methods  (#6479)
6cc86b3 4x clean docs (#6582)
b9da5a5 chore: reference hardhat plugin for typescript artifacts (#6586)

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (38bcbb6) 77.83% compared to head (fb90620) 77.83%.

:exclamation: Current head fb90620 differs from pull request most recent head 5425597. Consider uploading reports for the commit 5425597 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2001   +/-   ##
=======================================
  Coverage   77.83%   77.83%
=======================================
  Files          40       40
  Lines        3086     3086
  Branches      625      625
=======================================
  Hits         2402     2402
  Misses        479      479
  Partials      205      205

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


json support for netopeer2 user-rpc --content

Hi @michalvasko ,
when i am trying to send an RPC content in json format im getting error as ly ERROR: Invalid character sequence "{
"file-download":
{", expected element tag start ('<'). (Line number 1.)
nc ERROR: Failed to create RPC, perhaps a required feature is disabled.
cli_send_recv: Failed to send the RPC.
Any idea on this.

netopeer2-cli is a NETCONF client and NETCONF supports only XML encoding so I do not think this should be supported even though it may be possible.


Multipackage internal API improvements

This allows a subclass of Chef::Provider::Package to declare package_class_supports_arrays which will cause the superclass to only pass arrays into the child class.  This gets rid of most of the need for the subclass to have .is_a?(Array) checks everywhere and just use Arrays internally.
I developed this against #4106, but that got stalled due to unrelated chocolatey.org issues, and want to use this in the Zypper provider to rework #4102 (along with eventually using this in the yum and apt providers, but those are large yaks for another day...)

@chef/client-core needs some review love

Looks like an unrelated travis error at first glance, smells like we might have picked up a new serverspec dep....

Other than the naming of that wrapper, I love it. So much cleaner.
:+1:

I've seen the with_ thing used a lot in ruby-land for those kinds of helper wrappers that do stuff and yield...  I don't have particularly strong feelings about it though...
@chef/client-core anyone else up for reviewing?

Haven't reviewed yet, but do we know what's up with the travis failure? Looks unrelated, would a rebase fix, or is master broken?

I tried a rebase, not sure if master is busted or not..

yeah, master is busted, bunch of stuff @thommay merged last week was broke when it ran on master, not sure if a merged PR broke stuff or we pulled in a new gem dep...

yeah, I'm :+1: modulo the bikeshedding over the function name.

@btm can you look at that last commit 1e74aab428a4e31c00218eab6c1e95e9f49048e0 into the windows_package resource?  I removed some code there and I'm not sure what the intent was.  Since the source attribute gets set to nil in the initializer of the superclass we were never in a state when the instance variable check would have been false, so I think its dead code -- although it just became active (and trolled me) due to the changes I made in this PR to set all the default values through the accessors rather than through hitting the ivars directly...

:shipit:


how to configure annotation processor when picocli classes are relocated by shadow plugin

I have a gradle based project, and I'm using shadow plugin to create a uber jar, and all third-party classes are relocated.
However, the classnames in reflect-config.json aren't changed. For example:
  {
    "name" : "picocli.CommandLine$AutoHelpMixin",
    "allDeclaredConstructors" : true,
    "allPublicConstructors" : true,
    "allDeclaredMethods" : true,
    "allPublicMethods" : true,
    "fields" : [
      { "name" : "helpRequested" },
      { "name" : "versionRequested" }
    ]
  }

This class has been relocated to thirdparty.picocli.CommandLine$AutoHelpMixin, so when I run the native image created by graalvm, this error occurs:
Exception in thread "main" thirdparty.picocli.CommandLine$InitializationException: thirdparty.picocli.CommandLine$AutoHelpMixin@787c77a is not a command: it has no @Command, @Option, @Parameters or @Unmatched annotations
	at thirdparty.picocli.CommandLine$Model$CommandReflection.validateCommandSpec(CommandLine.java:11985)
	at thirdparty.picocli.CommandLine$Model$CommandReflection.extractCommandSpec(CommandLine.java:11815)
	at thirdparty.picocli.CommandLine$Model$CommandSpec.forAnnotatedObject(CommandLine.java:6388)
	at thirdparty.picocli.CommandLine$Model$CommandSpec.mixinStandardHelpOptions(CommandLine.java:7382)
	at thirdparty.picocli.CommandLine$Model$CommandReflection.extractCommandSpec(CommandLine.java:11810)
	at thirdparty.picocli.CommandLine$Model$CommandSpec.forAnnotatedObject(CommandLine.java:6388)
	at thirdparty.picocli.CommandLine.<init>(CommandLine.java:230)
	at thirdparty.picocli.CommandLine.<init>(CommandLine.java:224)
	at thirdparty.picocli.CommandLine.<init>(CommandLine.java:199)

How can I handle this situation?

It seems that using the latest native-build-tools it's not needed to create the uber jar.

Awesome, glad you found a solution!
Enjoy picocli! 😊


Negative Altitude

Hello,
I am not sure if I am not doing it correctly or if something is off. I seem to only get negative altitude from this library. Here is a simple example and the output:
`#include <SiderealPlanets.h>
SiderealPlanets myAstro;
double lat = 33.835289;
double lon = -117.914497;
double elevation = 22;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
myAstro.begin();
myAstro.setTimeZone(-8);
myAstro.setGMTdate(2022, 01, 31);
myAstro.setGMTtime(6, 10, 0);
myAstro.setLatLong(lat, lon);
myAstro.setElevationM(elevation);
myAstro.setRAdec(myAstro.decimalDegrees(6, 45, 8), myAstro.decimalDegrees(-16, 43, 26));
Serial.println(myAstro.doRAdec2AltAz());
Serial.print("Local Time: ");
Serial.println(myAstro.getLT());
Serial.print("Altitude: ");
Serial.println(myAstro.getAltitude());
Serial.print("Azimuth: ");
Serial.println(myAstro.getAzimuth());
}
void loop() {
// put your main code here, to run repeatedly:
}`
Output:
1
Local Time: 22.17
Altitude: -41.86
Azimuth: 82.22
Any help would be appreciated
Thank you!

I repeated your sketch, with slight modifications, and I am able to get a positive altitude by using a different time of day:
`#include <SiderealPlanets.h>
// Need the following define for SAMD processors
#if defined (ARDUINO_ARCH_SAMD)
#define Serial SerialUSB
#endif
SiderealPlanets myAstro;
double lat = 33.835289;
double lon = -117.914497;
double elevation = 22;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
delay(2000); //SAMD boards may need a long time to init SerialUSB
myAstro.begin();
myAstro.setTimeZone(-8);
myAstro.rejectDST();
myAstro.setGMTdate(2022, 01, 31);
myAstro.setGMTtime(6, 10, 0);
myAstro.setLatLong(lat, lon);
myAstro.setElevationM(elevation);
myAstro.setRAdec(myAstro.decimalDegrees(6, 45, 8), myAstro.decimalDegrees(-16, 43, 26));
Serial.println(myAstro.doRAdec2AltAz());
Serial.print("Local Time: ");
Serial.println(myAstro.getLT());
Serial.print("Altitude: ");
Serial.println(myAstro.getAltitude());
Serial.print("Azimuth: ");
Serial.println(myAstro.getAzimuth());
Serial.println("");
myAstro.setGMTtime(12, 10, 0);
Serial.println(myAstro.doRAdec2AltAz());
Serial.print("Local Time: ");
Serial.println(myAstro.getLT());
Serial.print("Altitude: ");
Serial.println(myAstro.getAltitude());
Serial.print("Azimuth: ");
Serial.println(myAstro.getAzimuth());
Serial.println("");
myAstro.setGMTtime(18, 10, 0);
Serial.println(myAstro.doRAdec2AltAz());
Serial.print("Local Time: ");
Serial.println(myAstro.getLT());
Serial.print("Altitude: ");
Serial.println(myAstro.getAltitude());
Serial.print("Azimuth: ");
Serial.println(myAstro.getAzimuth());
Serial.println("");
myAstro.setGMTtime(0, 10, 0);
Serial.println(myAstro.doRAdec2AltAz());
Serial.print("Local Time: ");
Serial.println(myAstro.getLT());
Serial.print("Altitude: ");
Serial.println(myAstro.getAltitude());
Serial.print("Azimuth: ");
Serial.println(myAstro.getAzimuth());
}
void loop() {
// put your main code here, to run repeatedly:
}`
Gives:
`1
Local Time: 22.17
Altitude: 39.31
Azimuth: 184.65
1
Local Time: 4.17
Altitude: -12.46
Azimuth: 258.07
1
Local Time: 10.17
Altitude: -72.47
Azimuth: 13.62
1
Local Time: 16.17
Altitude: -6.40
Azimuth: 105.86
`

How strange, I plugged in your exact code yet I get significantly different output:
`1
Local Time: 22.17
Altitude: -59.34
Azimuth: 63.17
1
Local Time: 4.17
Altitude: 12.75
Azimuth: 120.46
1
Local Time: 10.17
Altitude: 32.44
Azimuth: 213.21
1
Local Time: 16.17
Altitude: -32.36
Azimuth: 270.84
`
I am using an Arduino Mega 2560, if that could be the difference?
Thank you for your time!

The other issue that is currently being reported on this Library is of a similar nature - it is also on a Mega 2560 specifically that is causing a problem.  I'll quote what I wrote there:
I examined the code again, and see that there are no Mega-specific sections to it. In other words, the exact same code is being compiled and run on the Mega as on my SAMD board. It's just a different variation of the GCC complier that is doing the actual compilation. So whatever is messing this up on the Mega is specific to that compiler build.
I do know that a big difference between ARM and Atmel processors is the handling of double vs. float. Quoting from https://forum.pjrc.com/threads/44011-Teensy-3-2-Maths-compatablity-with-Mega-2560 here:
"On AVR platforms, double is the same as float (i.e. 32-bit floating point). On ARM platforms, double is 64-bits and float is 32-bits."
While this doesn't seem like it should cause a problem as big as seen here, I can't rule it out. Without the two processors side-by-side to do comparisons, I can't easily find where the Mega GCC is going wildly different, compared to the SAMD GCC implementation.
For the other issue, I'm starting with doing some print statements to compare the SAMD and Mega outputs.  However, since I don't own a Mega board, I have to wait for the other person to run the exact same test on their system.  I may end up having to do the same thing here.  Yet I suspect the two issues are probably different manifestations of the same thing.  Let me see if I can track down the other one first, to see if that helps with this issue that you are seeing.  Of course, if you have a SAMD board, in addition to your Mega, that would help too.  We will just have to be patient on this.

I definitely found one issue, which is now fixed in version 1.1.1 of the library.  When the Arduino Library manager updates with the new release, go ahead and test it out to verify if it resolves this issue for you.  (And yes, it is something subtly specific to the Mega processor as compared to the SAMD boards that I use.)

I manually installed your latest version and now your sketch from earlier is giving me the same output. I will try it out in my telescope code and will let you know. Just in case it doesn't work, what specific board are you using? I could switch boards if I have to, although I need one that can handle 3 Serial connections at the same time.
Thank you so much!

I think it is working now although in my code it is wrong. I suspect this is an issue on my end, when I plug in values into a simple sketch like we used earlier I am getting close enough numbers that I can compare with Stellarium.
My telescope code is dynamically entering the time and location from a GPS and then over bluetooth syncing what object I have selected in Stellarium. Must be an issue in there.
If I could make a suggestion, having a method for getting the GPS coordinates out could be useful. I can fork over the code and add it my own for now.
Thank you again for all the assistance and this wonderful library.

FYI - I am using a Sparkfun Redboard Turbo for my development and testing.  It is based on the Arduino Zero design, and uses the same SAMD ARM processor (32-bit).  I know Adafruit makes a similar board as well.  The SAMD processor does allow defining more than the standard two UART interfaces, via the SERCOM functionality.  My test setup has three UART interfaces: SerialUSB, Serial1, and a Serial2 that I created from SERCOM.  Another possibility is using Teensy 4.0/4.1, which also allows more than the standard two UART interfaces.  (It is also much faster, and has hardware double float support as well.)
As far as getting the GPS coordinates, I figured that GPS specific handling is outside the scope of the library.  (And I didn't think that reading back the Longitude and Latitude provided to the library was a needed function, since that can be recorded by the user externally.)

No worries, I just forked it for myself and added this little bit to get it out:
double SiderealPlanets::getLatitude(){
return decLat;
}
//Get Longitude
double SiderealPlanets::getLongitude(){
return decLong;
}
Since the object is global for me, and my GPS handling is its own separate function, it was easier for me to get the GPS I am at out of the SiderealPlanets object. Thanks for the help.

I noticed that this issue was still open.  Even though it hasn't been updated in over a year, on reflection I've decided to take yoshiwars recommendation to include functions for getLatitude() and getLongitude().  These will be put into release 1.2.0 today.

Added changes in as Release v1.2.0.  Closing issue now.


Updated to BookStack v0.11.1 & php7

Was just trying out your Docker image for BookStack. Thought I'd update it to the latest recent bugfix release and also update to PHP 7 to gain the performance improvement.
Awesome docker image by the way, I tried before but just failed as I had trouble orchestrating containers. Your docker-compose setup just worked right away, Was awesome to see work on the first docker-compose up without any issues.

Thanks for your PR 💖  . For me it's okay when we use PHP 7 instead of 5. I want to be only as closely as possible to the official repository. So If you say that use PHP 7 for your own setup than i will switch to it. I will test it later and after that I will merge this.

It works for me. I will merge this now. 👍


tig doesn't depend on git

I'm new to nixos and I tried to install tig (a git CLI). Surprisingly, installing tig doesn't install git.
I know technically, you don't need to git to build tig, but you can't run tig without git. Moreover some version of tig might expect some version of git to work.
So one can say that there is a "soft runtime dependency" between the to software.
So my question is, is the fact that there is no dependency between tig and git and mistake or a design choice ?

Seems like a mistake to me. I gave fixing it a go in the above pull request.

Thanks.


Add SquareRGBLed component

This change adds a new SquareRGBLed component with the following features:

The visual of the LED is square, which makes it possible to build a LED matrix with less visual interference.
The square LED has the same inputs as the existing RGBLed.
The square LED can be turned, allowing the inputs to be on any side.
The LED is 3x3 in size, centered on a 4x4 grid:

This design allows the following constructions:

LEDs can be stacked without gap in a 2xN matrix and the circuitry will be outside the matrix:

A single LED can be placed on top of a 4x4 sub-circuit, which outputs the RGB values on the bottom of its layout:

A larger matrix can be created by stacking longer sub-circuits of size 4x(4*N). For example, three 4x12 drivers stacked create a uniform 3x3 LED matrix, where the pixels are spaced by one unit, both horizontally and vertically:

That being said, the thick line of the sub-circuit ends up creating an illusion that the vertical space is larger than the horizontal space; I suppose we'll live with that for now and solve it with a full LED matrix component.

NOTE: this is related to #47, but not the full solution.
As another example, one could create a multiplexing display matrix by stacking a bunch of drivers; each driver takes the horizontal enable input on the size and a combined RGB input for each pixel on top; it then output the combined RGB on the bottom, next to the individual RBG inputs for the LED; the pins should be placed so the combined input and output are vertically aligned. One can make an arbitrary long row like this, effectively using 4 units of space for each LED. Then it is simply a matter of stacking several rows, multiplexing them, like a real LED matrix.
Ex:

Attached is a file that exercises the new component.
SquareRGBLedTest.txt

I've made a few changes to the initial component:

the square LED is now opaque - think of it as sitting flat on a breadboard; it would not have transparency like a straight up LED. This allows the LED to hide circuitry passing behind it, like the pins of other LEDs (but not wires, which draw on top of them).

I've added a property to control the length of the square LED pin - this allows the connection nodes to be far away from the LED itself. These large pins draw in gray, so they don't call attention to themselves.

With these features we can now build a proper display matrix straight out of square LEDs:

This matrix is built by adding a LED with a pin length of 12, then you copy it and start pasting down. Each LED lays on top of the previous, hiding the circuitry. Once the row is complete, copy the row and start pasting to the right. In the end, you have the LEDs in a nice matrix and the connection pins are below the last row, in the same order as the LEDs. Those pins can be connected to controlling sub-circuits as usual. Since the LED can be turned, the circuitry can be on any side of the LEDs.
To make some designs easier, I've also made the LED turn on when at least one input is connected.
Here's a full example:

This is really cool! Cant wait to find use from it!

Very neat! loved it. This potentially has many uses.

I tried using the module. It is great with one issue.
The LED is small to be kept compact. Maybe I am missing something.

https://circuitverse.org/users/3/projects/8618
However, @blane1257 has created a circuit which is quite compact. Unfortunately, the nodes show up too.

https://circuitverse.org/users/3/projects/1354
Is there, any improvement we can make on this?

an easy solution to get the nodes out of the way of course is to simply increase the pin length, i sacrificed the aesthetic however to make my circuit more compact. If it's possible to draw the LEDs above nodes and wires, this would of course be optimal, but i'm not sure if the code allows for such a change

@blane1257 , you are correct that if you were to extend the pins then the LEDs would be isolated from the circuitry.
The other option, as you mentioned, would be to tweak the rendering so we skip drawing the nodes from the LEDs. @satu0king , do you think that is reasonable?
And the other option which I'm willing to tackle is to simply build a proper display matrix, as a single component. Now that I got my hands and feet in the water it looks fairly straightforward - I just need to take the time to do it. :-)

I tried using the module. It is great with one issue.
The LED is small to be kept compact. Maybe I am missing something.

https://circuitverse.org/users/3/projects/8618
However, @blane1257 has created a circuit which is quite compact. Unfortunately, the nodes show up too.

https://circuitverse.org/users/3/projects/1354
Is there, any improvement we can make on this?

@satu0king , that is a cool circuit. You can eliminate the gap in your LEDs by having all led buffers of a single row in a sub-circuit. Then, in that circuit you export the RGB pins of each LED right next to each other. With that setup the LEDs will be touching.

@blane1257 , you are correct that if you were to extend the pins then the LEDs would be isolated from the circuitry.
The other option, as you mentioned, would be to tweak the rendering so we skip drawing the nodes from the LEDs. @satu0king , do you think that is reasonable?
And the other option which I'm willing to tackle is to simply build a proper display matrix, as a single component. Now that I got my hands and feet in the water it looks fairly straightforward - I just need to take the time to do it. :-)

To disable node rendering for connected nodes for all circuit elements is straightforward. I had tried before but it looked confusing for some circuit element, maybe we can configure it on a per circuit element basis.


[ctsi-staking-pool] new strategy for ctsi staking through pools

Changes proposed in this pull request:
New strategy for CTSI staking through staking pools only

@tuler Can resolve conflicts?? Looks good to be merged

conflict resolved, thanks


Code for "Automated Backups to S3"

This code has already been reviewed and is ready for merge

forced merge for reviewed changed


Techdocs: Unable to generate docs on Gitlab hosts locally

Expected Behavior
Gitlab projects cloned inside /tmp/backstage-xxxx
Current Behavior
Gitlab projects are currently being cloned inside a subfolder /tmp/backstage-xxxx/repository-name-xxxx
When generating the doc, mkdocs can't find the mkdocs.yml file because the mkdocs is not inside /tmp/backstage-xxxx but inside /tmp/backstage-xxxx/repository-name-xxxx
Steps to Reproduce

Create a Gitlab repository with documentation inside it (I had the issue on Gitlab enterprise)
Have a backstage project linked to it
Run your backstage backend
Run your backstage frontend
Go to the documentation page
The error should be displayed on the backend console

Context
On my dev env, I was trying to display the documentation of a project hosted on Gitlab
I don't have backstage running in a container, I directly used yarn start on my host machine from a clone of backstage.
Techdocs is configured like this:
techdocs:
  requestUrl: http://localhost:7000/api/techdocs
  storageUrl: http://localhost:7000/api/techdocs/static/docs
  builder: 'local'
  generators:
    techdocs: 'docker'
  publisher:
    type: 'local'

Here is a stack trace:
2021-02-11T14:30:04.980Z techdocs warn Could not read file /tmp/backstage-r2ayTr/mkdocs.yml before running the generator. ENOENT: no such file or directory, open '/tmp/backstage-r2ayTr/mkdocs.yml' type=plugin
2021-02-11T14:30:07.585Z backstage error Failed to generate docs from /tmp/backstage-r2ayTr into /tmp/techdocs-tmp-cBtwQo with error Docker container returned a non-zero exit code (1) type=errorHandler stack=Error: Failed to generate docs from /tmp/backstage-r2ayTr into /tmp/techdocs-tmp-cBtwQo with error Docker container returned a non-zero exit code (1)
    at TechdocsGenerator.run (webpack-internal:///../techdocs-common/src/stages/generate/techdocs.ts:120:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async DocsBuilder.build (webpack-internal:///../../plugins/techdocs-backend/src/DocsBuilder/builder.ts:94:5)
    at async eval (webpack-internal:///../../plugins/techdocs-backend/src/service/router.ts:143:13)

Your Environment

NodeJS Version (v14.15.4):
Ubuntu 20.04
backend-common (v0.4.3)

Just to make sure - you are not on gitlab.com but on hosted GitLab? Do you have a version for it - wondering how I can deploy a hosted GitLab to test.
Note of the problem: The URL reader is extracting the folder in a sub-directory of the tmp path.

@OrkoHunter I confirm I'm on a hosted GitLab the version is: 13.6.3-ee

@yorickgirard Thanks! Could you helps us out by attaching a zip file that gets downloaded when you hit the archive endpoint for the repository
https://github.com/backstage/backstage/blob/0f029aefbb830645d8d7120d98effd5a5de3d3e7/packages/backend-common/src/reading/GitlabUrlReader.ts#L130-L133
(Please make sure the repository has no sensitive data, you can create a new blank repo with just a README)
An example API URL you can use to download is -
https://gitlab.mycompany.com/api/v4/projects/backstage%2Fmock/repository/archive.zip?sha=master from the test
https://github.com/backstage/backstage/blob/1b38e38094c729e4ca9e4fc43041318801b61f53/packages/backend-common/src/reading/GitlabUrlReader.test.ts#L240

Ummm - @backstage/backend-common v0.4.3 seems to be quite old https://github.com/backstage/backstage/blob/master/packages/backend-common/CHANGELOG.md
Could you try yarn backstage-cli versions:bump and test with the latest version of the URL Reader? It's possible that the previous versions had bugs with hosted GitLab.
https://backstage.io/docs/FAQ#how-do-i-keep-my-backstage-app-up-to-date

Here is the project
I'll update my dependencies right now thanks
project-sample-backstage-master.zip

@OrkoHunter after updating the dependencies it works properly, I think the issue can be closed


Problems to use gcs as blobstore

Hi,
I'm actually unable to use gcs as blobstore. Even if i perform bosh upload-blobs or bosh create-release, i encounter the following error:
Creating blob in inner blobstore:
	unknown location

Here is my final.yml
---
final_name: test
blobstore:
  provider: gcs
  options:
    bucket_name: bucket-test

and my private.yml
---
blobstore:
  options:
    credentials_source: static
    json_key: |
          {
            "type": "service_account",
            "project_id": "*****",
            "private_key_id": "***",
            "private_key": "-----BEGIN PRIVATE KEY-----\n*****\n-----END PRIVATE KEY-----\n",
            "client_email"<EMAIL_ADDRESS>            "client_id": "***",
            "auth_uri": "https://accounts.google.com/o/oauth2/auth",
            "token_uri": "https://oauth2.googleapis.com/token",
            "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
            "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/bosh-test%40******.iam.gserviceaccount.com"
          }

I have no problem to do operations on bucket using gsutl tool with the same json file.
the bucket seems to be well reached as if i change the bucket name with an unexisting one in final.yml, i get
    Creating blob in inner blobstore:
      storage: bucket doesn't exist

Is there something i don't do well ?

It seems we have hard-coded regions in our bosh-gcscli library which are out of date. You are likely using one of the 10 "new" regions which were not available during initial development.
@mfine30 I'd recommend us fixing this by prioritizing the merge of https://github.com/cloudfoundry/bosh-gcscli/pull/23 with some dev recommendations of seeing if that list is still accurate and if we can avoid hard-coding this list to prevent us from getting out of date again.

@jraverdy-orange Could you please reopen this issue against the bosh-gcscli if you still run into the problem? It is not really an issue with the bosh CLI.


gha: prevent buid from passing if git reports dirty

This should prevent bugs where what we build is not the tracked
code or divergence between version inside package.json and
package-lock.json

I think this change is incorrect. npm ci should guard from this.

In fact npm ci does not guard this in any way. That is why we end-up with this issue. I think that we have a similar test in https://github.com/ansible/vscode-ansible/blob/main/.github/workflows/ci.yaml#L98-L99 which works fine, but we missed to add one in ALS itself.

I know that it's present in the extension and I don't really like it. But it's rather pointless in this place, after running the commands specifically meant to modify the version in the metadata and the lockfile. Why do you think npm pack will modify the lockfile?

@ssbarnea instead of this, consider having a separate workflow that read the metadata and the lockfile with something like jq or python -m json.tool and compare the versions separately. Maybe that'll work. OTOH I'd rather just keep working on the workflow improvements (in my TODO list).

@ssbarnea instead of this, consider having a separate workflow that read the metadata and the lockfile with something like jq or python -m json.tool and compare the versions separately. Maybe that'll work. OTOH I'd rather just keep working on the workflow improvements (in my TODO list).

I would see that more complex and not being able to catch a wider range of problems. Another one that I know for sure was the reordering of package.json file. That change is simple and effective. In fact I used it in tox.ini in the past, for the same reason, preventing CI passes when tracked code was adulterated.

It is pointless because Git will never be dirty after a git commit.

It is pointless because Git will never be dirty after a git commit.

I think you are wrong here because the previous command, npm pack does implicitly run npm ci as part of prepack script. This has the effect of altering the content on package-lock.json if the bumping was incomplete. In fact that is what happened and why we failed to have a correct lock file.
Running git dirty at the end of almost any CI job is a good way of catching such bugs in workflow logic.
In fact I dislike our CI driver version bumping but that should be the subject of a different discussion. For the moment I am trying to prevent similar mistakes from slipping in again.

I think you are wrong here because the previous command, npm pack does implicitly run npm ci as part of prepack script. This has the effect of altering the content on package-lock.json if the bumping was incomplete.

The whole point of the npm ci command is that it never changes the files if anything is inconsistent, it fails loudly. It's the key difference from npm install.


Request: help with best procedure for using a USB to enter passphrase with fallback to prompt (Debian)

Apologies for posting as an issue. I'm new to these parts. Didn't feel right to post on r/voidlinux. If I'm out of scope here and there's a better place for me to ask this, please chide me with a link and close this.
...
I have a Debian 11 Bullseye system up and running via the Debian 10 Buster guide with appropriate changes.
What am I looking for?

I'd like to be able to use a USB drive to unlock my passphrase, so I can be in a different room and reboot without needing to walk upstairs.
I want to be able to remove the USB after boot and have the system stay up
If the USB is missing on a reboot, I still want a prompt as a fallback using '/etc/zfs/zroot.key'

...
I've been reading a bit:

this issue  ... but honestly I haven't quite put the pieces from that together correctly.
ArchWiki ... to see how they do it
Oracle to ponder about user properties

...
Is the method used to set up Debian in the Buster guide already able to use a USB key partition but fallback to the key on the encrypted pool if USB is missing (and prompt for input) as-is?
If not, what's considered the best way for me to patch that in?
I was thinking of editing 'zfs-load-key.sh' to read in a user property (which would be set to /dev/disk/by-id/{USBid}-part1) and, if exists, read that. If it doesn't exist then fall back to the default method.
But given the comments found on the issue I mentioned it reads like maybe I'm being clueless and it may already work.
Is there a guide or post that does what I'm asking?
If not, I'm heavily documenting my entire system setup and, if I get this working, will be including this as an optional step. It will go live on github once I'm done with other configurations.
...
NOTE: I'm preferring to set my passphrase manually rather than a /dev/random so that I can remember it at the prompt. This system is a home server and VFIO host. I'm mostly going through this to add some convenience at the loss of a bit of security. I'm not worried about people in my house (wife, 3 dogs, roommate) accessing the server, I just want to be able to lock it down when we're out of town.

The only thing to be aware of with the key-in-initramfs approach is that Debian (like Ubuntu and Arch) set a mode of 644 on the image by default. Any user who can read the initramfs can unpack it and gain access to the etc/zfs/zpool.key contained within (even if you set mode 000 on the file, as you should).
Dracut does the right thing here and explicitly sets a umask of 0077 before creating the file so only the superuser can read the image. On Void Linux, which offers mkinitcpio as an alternative to dracut, we work around the problem by forcing the right umask before we ever call the program from the automatic kernel hook.
You will probably want to find a way to always set a umask of 0077 on your initramfs from within Debian, or else you will want to inject some kind of script like the key-loading hook you write for ZBM into your Debian initramfs.

If you've replaced initramfs-tools with dracut, you should be fine. Just make sure /boot/initramfs* is only readable by root.

If I'm understanding correctly what you'd like to do, I've mocked up / tested a bare-bones script to accomplish what you want. You'll want to create a partition on the USB drive, set a GPT label and then write junk to the entire partition. You can then pick a random offset and write your password into the drive.
#!/bin/bash

# fill it with junk
# dd if=/dev/urandom of=/dev/disk/by-partlabel/primary bs=1M
# write our password to a "random" location
# echo -n zfsbootmenu | dd of=/dev/disk/by-partlabel/primary bs=11 seek=1100

# shellcheck disable=SC1091
[ -f /lib/zfsbootmenu-lib.sh ] && source /lib/zfsbootmenu-lib.sh

plain="/dev/disk/by-partlabel/primary"
pass=0

while true; do
  if [ "${pass}" -gt 10 ]; then
    zinfo "timed out waiting for ${plain}"
    exit
  fi

  if [ -b "${plain}" ] ; then
    mkdir /etc/zfs
    dd if=/dev/disk/by-partlabel/primary skip=1100 bs=11 count=1 2>/dev/null > /etc/zfs/ztest.key
    exit
  else
    if delay=5 prompt="Checking for drive in %0.2d seconds" timed_prompt "[RETURN] check now" "[ESCAPE] cancel unlock" "" ; then
      pass=$((pass+1))
      continue
    else
      exit
    fi
  fi
done

If you're building ZFSBootMenu from master, you can then add this script to your image via:
`zfsbootmenu_early_setup="/path/to/script/raw-unlock.sh"
Just make sure it's +x . Let me know if this works for you, or if it's not what you were thinking of.

Wow.
I spent most of this time (over) building a script to sanity check a LIVE USB prior to partitioning, so I hadn't gotten to where I needed to make an unlock script. So, that's great synergy for me.
I am going under the assumption that most LIVE USBs have a ton of wasted space (example, on my 10 year old 16GB USB drive, LIVE only uses 4GB). So I'm using that extra space for more partitions.
Your method is better than what I was going for. In mine I was going to add a 1 sector unpartitioned space before a last "filler" partition. The advantage for me was knowing where to look. The disadvantage is ... so would everyone else.
I think I'm going to have my process do these things:

create a 'swap' partition ... this won't actually be in use in any OS. I'll write out random to the swap to fill it with junk
create a usable storage partition that fills the remainder
write the passphrase to a randomized sector on the swap, possibly based on the boot drive's ID (haven't thought it through)
add logic to the script above to find the sector to read in
add DD to the initrd (haven't done this before but I'll figure it out)

I'll document and post the final USB creation script when done along with any modifications to your prototype.
Thanks for the assist.

@zdykstra ...
Since I'd rather the location on the partition relate to the zroot, and not be invalidated if the current disk is replaced, I'm thinking of basing the location of the phrase on the USB on zroot's GUID.
Any thoughts about that being good/bad?
Would allow the USB key to hide the location when it isn't attached, rather than being able to find the passphrase on the USB if you only have it but can gain access to the server later.

@zdykstra ...
Since I'd rather the location on the partition relate to the zroot, and not be invalidated if the current disk is replaced, I'm thinking of basing the location of the phrase on the USB on zroot's GUID.
Any thoughts about that being good/bad?
Would allow the USB key to hide the location when it isn't attached, rather than being able to find the passphrase on the USB if you only have it but can gain access to the server later.
I'm able to query the GUID from an emergency shell and from the booted system, so it seems like the most stateful breadcrumb that doesn't rely on the disk ID but isn't tied to the USB.

That seems overly complicated for no real gain - though almost all of this is over-complicated for very little gain. Personally, I'd just put the ESP on a USB drive, and put your zpool key in the ZFSBootMenu EFI. When you travel / are otherwise not present, pull the USB drive out and physically secure it - in a safe, on your person, etc.

I am close to finishing up the overly complicated method I wanted, but, have a family emergency for the next week or two. I'm closing just to keep your issues cleaned up. I'll happily toss in the final as a possible contrib when I'm able to set up and polish a bit.
Thanks for the help, sorry, forgot to do this before I hit the road.


copycat scammer ?

http://i-directmessage.com uses project assets however directs to multiple advertisement sites...

@alibekch wow thank you for reporting this. I'm not sure how to handle this, but I guess the least I could do is put a warning/disclaimer on the README and the website.

@ifedapoolarewaju commercialize asap, start selling your product as soon as it is usable and copycats will perish.
check on plugn.io for a great example of DM+comment management on IG.


lesson 1 + more structure to tutorial

@shd101wyy please check that the links work when built as a site and if they don't, advise on how to fix them.

@dwightguth  I just built it locally and all links are working correctly :+1:


bug: overflow-y: scroll; CSS property crashes app.

Type: bug
Ionic Version: 2.x
Platform: android 6.0 webview
overflow-y: scroll;
CSS property crashes app.
I debugged 10 hours to find the issue.

Hello! While we appreciate you opening an issue with us i am going to close this issue and ask that you open a new one that has the issue template filled out please. Thanks for using Ionic!


Wishlist branch with fixes and features

Hi Lanyon fans!
I love and use Lanyon for my GitHub Pages sites. Because this repo has been still for a little while, I created a branch called upstream-wishlist that includes some fixes and features. You're welcome to clone/fork it for your own use, too!
https://github.com/wireddown/wireddown.github.io/tree/upstream-wishlist
Changes from HEAD

Fix intra-site links

#108, #140, #180, #206, #209, #210, #225

Compatible with Jekyll 3

#124, #197

Added search page

#194

Added support for tags

#83

Thanks for having done this! Working on getting caught up.


Proposal for a New URL Protocol for Sharing Open Source Projects in DHT (Distributed Hash Table)

Proposal
I propose developing a new URL protocol for Git to share open source projects in a DHT(Distributed Hash Table). The benefits of leveraging DHT include enhanced reliability, fault tolerance, and scalability. Given these advantages, a specific URL protocol for this purpose would significantly advance how developers collaborate on open source projects.
Expected Benefits

Scalability: With DHT, the new URL protocol can handle more projects than current solutions.
Reliability: The DHT's inherent redundancy ensures that projects remain accessible even if several nodes go down.
Decentralization: This protocol would enhance open source openness by making projects less reliant on centralized platforms.

@wujian0327 and @benjamin-747,
The original Git protocol syntax is:
[<protocol>://]<username>[:<password>]@<hostname>[:<port>]/<path>[.git]

For a p2p Git protocol in Mega:

The <protocol> could be an optional prefix like p2p:// or mega:// to indicate the p2p protocol.
The <username> represents the node key accessing the repository, so we could replace it with  for the p2p identity.
The <password> is not needed for public repositories. Authentication could be designed separately per #57.
The <hostname> normally represents the server, but in p2p it maps to the node key hosting the repo. We could reuse <key> here, or use a different term like <hostkey> to avoid confusion.
The <port> may not be relevant for p2p networking?
For <path>, mega uses monorepos so there are no <namespaces> or <repo> names, only paths. We could design a virtual path scheme to privately map paths to exposed public paths.

Here are some results of our discussions：

The p2p address of mega is:

p2p://<peerId>/<repo>

for example：p2p://12D3KooWFgpUQa9WnTztcvs5LLMJmwsMoGZcrTHdt9LKYKpM4MiK/abc.git

<peerId> Indicates the address of the p2p node
<repo> Indicates the name of the repository

When a user uploads a repo to mega, we will generate this shareable address for him.

How DHT store data:
for example：key=abc.git
value=

[
    {
        "upstream":"node_a_peerId",
        "peerId":"node_a_peerId ",
        "hash":"abcdefg",
        "timestamp":1690191636
    },
    {
        "upstream":"node_b_peerId",
        "peerId":"node_a_peerId ",
        "hash":"ddddddd",
        "timestamp":1690128000
    }
]

Steps to work with address：

mega pull p2p://12D3KooWFgpUQa9WnTztcvs5LLMJmwsMoGZcrTHdt9LKYKpM4MiK/abc.git
get peerId: 12D3KooWFgpUQa9WnTztcvs5LLMJmwsMoGZcrTHdt9LKYKpM4MiK
get nodeAddress by peerId: /ip4/<IP_ADDRESS>/tcp/8002/p2p/12D3KooWFgpUQa9WnTztcvs5LLMJmwsMoGZcrTHdt9LKYKpM4MiK
dial peer address
begin to transport the package of abc.git

todo get_obejct_id
todo pull functiuon


[#3040] Add downgrade option to damage calculating

This new option will take any immunities and downgrade them to resistances. Downgrade will be ignore if that immunity is ignored, but not if the resistance is ignored. This allows for features that ignore resistance to a certain damage type and treat immunity as resistance.
This should allow the implementation of features like Fiery Soul from the Pyromancy origin in Magic the Gathering - Plane Shift: Kaladesh:

Closes #3040

Feels like this logic might be simpler if our definition of 'downgrade' were more general, i.e. immunity -> resistance, resistance -> normal. It would cover the case of Fiery Soul in your example since resistance would be downgraded to normal, effectively being ignored.

May as well allow for 'normal' to be downgraded to 'vulnerability' while we're at it, then.

May as well allow for 'normal' to be downgraded to 'vulnerability' while we're at it, then.

Well then we no longer implement the example feature correctly.

May as well allow for 'normal' to be downgraded to 'vulnerability' while we're at it, then.

Well then we no longer implement the example feature correctly.

True. Should it be more configurable? E.g., only allowing to downgrade resistance but not an immunity on a per-roll or per-feature basis?
Admittedly not aware of anything that ignores resistance only while not ignoring immunity.

Admittedly not aware of anything that ignores resistance only while not ignoring immunity.

Most features that do this sort of thing actually ignore resistance but not immunity. The Elemental Adept feat for example, does nothing if the target has immunity to the chosen element. But in those cases you would just pass ignore, rather than downgrade. With ignore + downgrade you have a decent amount of configurability, I was hoping that we could simplify the code a bit for downgrade.

Feels like this logic might be simpler if our definition of 'downgrade' were more general, i.e. immunity -> resistance, resistance -> normal. It would cover the case of Fiery Soul in your example since resistance would be downgraded to normal, effectively being ignored.

My only concern is that this would make it impossible for something that downgrades immunity but still keeps resistances, but I'm not sure I've actually seen that feature.

My only concern is that this would make it impossible for something that downgrades immunity but still keeps resistances, but I'm not sure I've actually seen that feature.

Yeah, me neither. In the absence of such a feature, I'd rather we take the complexity win if we can.

@Fyorl Okay now downgrade reduces immunity to resistance and resistance to normal.


[mesheryctl] pattern import results in Response Status Code 500, possibly Server error

See mesheryctl Command Tracker for current status of commands.
Current Behavior
command
$ mesheryctl pattern import -f percona.yaml -s manifest
Unable to create a response from requestResponse Status Code 500, possibly Server error

manifest
apiVersion: psmdb.percona.com/v1
kind: PerconaServerMySQL
metadata:
  name: my-mysql-deployment
  namespace: my-mysql-namespace # Replace with your desired namespace
spec:
  version: 8.0 # Or your desired MySQL version
  secretsName: my-mysql-secrets # Replace with the name of your secrets
  volumeSpec:
    persistentVolumeClaim:
      resources:
        requests:
          storage: 1Gi # Adjust the storage size as needed

Desired Behavior
I should get an understandable explanation (using MeshKit error code) that explains what went wrong and what to do about it.
Screenshots/Logs
$ mesheryctl pattern import -f percona.yaml -s manifest
Unable to create a response from requestResponse Status Code 500, possibly Server error

Environment

Host OS: Mac
Meshery Server Version: stable-v0.7.105
Meshery Client Version: stable-v0.7.105
Platform: Locally built and running Meshery Server

Contributor Guides and Handbook

📚 mesheryctl Contributing Guide
📺 Beginner's guide to contributing to Meshery and mesheryctl
⌨ mesheryctl Command Tracker
⌨ Meshery CLI Commands and Documentation
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

Hi @leecalcote, can you please assign the issue on my name. I would like to work on it.

@ganeshvenkatasai, go ahead....

Hi @Ashparshp and @leecalcote,
I attempted to reproduce the issue, but it still doesn't work. Additionally, I'm confused about how to use the Meshkit error codes to retrieve the corresponding struct information. Could you please provide guidance or clarify how I can achieve this?
Thanks!
Error struct {
        Code                 string
        Severity             Severity
        ShortDescription     []string
        LongDescription      []string
        ProbableCause        []string
        SuggestedRemediation []string
    }

If you haven't seen this doc, you'll want to digest it - https://docs.meshery.io/project/contributing/contributing-error

@leecalcote
I saw on the server side there are explanations of the error using MeshKit error code
meshery-meshery-1     | time="2024-11-05T08:39:29Z"
level=error msg="open temp.data: permission denied" app=meshery code=meshery-server-1134
probable-cause="unable to convert docker compose to design.docker compose may be corrupted.incorrect source type selected"
severity=2 short-description="Failed to convert docker compose to design" suggested-remediation="check if the docker compose is valid and not corrupted.check if the source type selected is Docker Compose"

On the mesheryctl side there is no explanation, do we want to tell the user to view the explanations on the server side or we need to have the explanation on the mesheryctl side as well?
Command I ran and the messages I got back on mesheryctl side
./mesheryctl design import -f ../../../Downloads/docker-compose.yaml -s compose
Making request
validTypeHelm Chart
validTypeDocker Compose
Making request
Response Status Code 500, possibly Server error


A word ending with special character in the docs

Describe the bug
there are situations in which you need to add special character (like !@#$%^&().) which is fine, but for RTL the direction is reverted so the placement of the special character is reverted, as well.

Locate and click on the link for your Windows version (32 or 64 bit) and a .exe file will be downloaded to your computer.

Here is the file
https://github.com/freeCodeCamp/freeCodeCamp/blob/519e0d2a51221e54907b8ee0c21e09dce7457ee2/docs/how-to-catch-outgoing-emails-locally.md#L53-L54?plain=1
Likely we have the CSS property to fix this, we simply need the element to wrap that word so we can apply them.
To fix this issue wrap the .exe, between markdown code, like this `.exe`, so the sentence will be something like this

Locate and click on the link for your Windows version (32 or 64 bit) and a .exe file will be downloaded to your computer.

If you would like to fix this issue, please make sure you read our guidelines for contributing, we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum if you need help contributing, our moderators will guide you through this.

There is a second mentioning of .exe in this sentence

To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file.

if it changed to .exe too, that would be awesome

Hi,
Has this issue been assigned to someone? If not, could you please assign this to me?

We don't assign issues, feel free to open PR after reading our docs 👍


Generated signals based off MLClassification [x]

Generated signals based off MLClassification [x] LR

Commit figures illustrating signals generated by the MLClassification models [x] LR


An API way to blit contents of a texture or framebuffer into the default backbuffer?

I was wondering if there is any way i can do that with the existing api without writing my own.

I don't think there's any. Just render a quad.

Yup, render quad. Anyway what's your use case?

Well, i have multiple cameras which render different layers to their own frame buffers and i need to be able to blit these fbos to the back buffer. Since there are already pretty decent blit functions in the api, i was wondering if maybe there was a hidden functionality via which to blit a fbo or a texture directly into the backbuffer.

I guess it's just a matter of rendering all the framebuffers/textures as quads. No need to complicate in this case.


Make rich-text buttons accessible

If the text becomes longer, the rich text editor button becomes inaccessible. To avoid this, the max-height value for the editor has been reduced.
Closes AB#783
User changes

The height of rich text editing area is now reduced

Super User changes

None

Admin changes

None

System admin changes

[ ] anet.yml or anet-dictionary.yml needs change
[ ] db needs migration
[ ] documentation has changed
[ ] graphql schema has changed

Checklist

[x] Described the user behavior in PR body
[x] Referenced/updated all related issues
[x] commits follow a repo#issue: Title title format and these 7 rules
[x] commits have a clean history, otherwise PR may be squash-merged
[ ] Added and/or updated unit tests
[ ] Added and/or updated e2e tests
[ ] Added and/or updated data migrations
[ ] Updated documentation
[ ] Resolved all build errors and warnings
[ ] Opened debt issues for anything not resolved here

I am looking for something more sophisticated than just reducing the text field height.
Reducing the text field height means the user has decreased overview on the report is is editing, so I would prefer that is maximized to his available screen height.


deposit: Fix lifted embargo display

closes https://github.com/inveniosoftware/invenio-rdm-records/issues/400

https://user-images.githubusercontent.com/15194802/121338295-a8e8dd80-c91d-11eb-8a14-9b4a85b9f942.mp4

If it happens that you re-test it, please add a screenshot! :)

Yes, added, thanks!


Treat all warnings as errors by default

cc @peterhuene

I think we should rather only treat warnings as error during CI and allow them for usual builds (e.g. during prototyping)

I think we should rather only treat warnings as errors during CI and allow them for usual builds (e.g. during prototyping)

That's a fair point. Let me fix it then.

I also agree that we should probably limit this to CI as warnings are pretty frequent during the development process.

Is this enabling clippy, and requiring that all PRs be clippy-clean?
I'm somewhat skeptical of that approach. While the warnings builtin into rustc are carefully crafted to be unambiguously worth fixing, a lot of clippy's warnings are quite subjective, and in other projects, I've seen it become a nuisance, especially when its warnings change as clippy evolves.

It would, yes.  If we don't want that, perhaps (assuming I have the GitHub actions correct):
...
    - name: Build debug
      env:
        RUSTFLAGS: "-d warnings"
      uses: actions-rs/cargo@v1
      with:
        command: build
    - name: Build release
      uses: actions-rs/cargo@v1
      env:
        RUSTFLAGS: "-d warnings"
      with:
        command: build
        args: --release
...

I guess it’s worth a try, thanks @peterhuene. I reckon that passing the flags to the compiler only in debug build should be more than enough though.

Is there any rationale for doing both debug and release build in the CI?

Is there any rationale for doing both debug and release build in the CI?

Good question. I guess we don't really need the debug build especially since we're running tests later on anyhow (albeit with a couple more dependencies than if invoking cargo build). Anyhow, I'm happy to strip away the debug build :-)


Null pointer exception when importing xml containing only passing test cases

mporting xUnit XML for a suite of test cases which does not contain a failure results in a Null pointer exception.
Using xml generated from the python unittest framework for a suite with two passing test cases, we encountered a Null pointer exception:
[ZapiTestResultReporter] [INFO] Examining test results...
Build result is SUCCESS
Total Test Cases : 2ERROR: Build step failed with exception
java.lang.NullPointerException
at com.thed.zephyr.jenkins.utils.rest.TestCaseUtil.executeTests(TestCaseUtil.java:331)
at com.thed.zephyr.jenkins.utils.rest.TestCaseUtil.processTestCaseDetails(TestCaseUtil.java:441)
at com.thed.zephyr.jenkins.reporter.ZfjReporter.perform(ZfjReporter.java:98)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:726)
at hudson.model.Build$BuildExecution.post2(Build.java:185)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
at hudson.model.Run.execute(Run.java:1766)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
Build step 'Publish test result to Zephyr for JIRA' marked build as failure

The issue can be solved by update the line 332 of the class: com.thed.zephyr.jenkins.utils.rest.TestCaseUtil. The reason is that response will only be initialised if the failList is not empty. So later if the passList is also not empty, the response is to be closed when it will remain null if the failList is empty.
from:
response.close();
to:
if(response!=null){
response.close();
}

yup done and dusted !


Native/3.2.0

Creating a draft PR to run through the build machines

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: pmconne:white_check_mark: nick4598:x: AJMiglioreYou have signed the CLA already but the status is still pending? Let us recheck it.

@ColinKerr @MichaelBelousov @bsteinbk @NancyMcCallB any hesitation with us merging this?
@nick4598 any other blockers? If not, lets merge tomorrow morning.

@ColinKerr @MichaelBelousov @bsteinbk @NancyMcCallB any hesitation with us merging this?
@nick4598 any other blockers? If not, lets merge tomorrow morning.

No other blockers, just remerged from master.


dag_isomorphism::is_isomorphic_matching checks don't work on PyDAG with removed node

retworkx::dag_isomorphism::is_isomorphic_matching was written by copy and pasting petgraph's isomorphism functions and changing the input type to be PyDAG instead of petgraph's Graph. However, the code wasn't 100% compatible as originally assumed because of node removals. The function assumes that an isomorphic graph will always have the same number of node indexes, however in the case of petgraph's StableGraph(which PyDAG uses internally) this is not the case. A stable graph's number of indexes increases on each node add, and if a node is removed the old index is not used again, unlike Graph. This will cause a panic like: thread '<unnamed>' panicked at 'index out of bounds: the len is 4 but the index is 4' when trying to compare a graph with removals to a graph without any.
A temporary workaround for this is to use deepcopy (or pickle and unpickle) the pydags. This will reset the index counters so they'll be the same. This is not a great answer, it's just a workaround until the function is updated.

Hi @mtreinish! I was wondering what the status of this bug is, since it's referenced here
https://github.com/Qiskit/qiskit-terra/blob/0.15.1/qiskit/dagcircuit/dagcircuit.py#L779
I'm wondering because from my testing, it looks like Aqua's operator flow (CircuitStateFn in particular) uses QuantumCircuit.__eq__ quite a bit in trying to reduce operators, and the deepcopy calls slow it down. Perhaps Aqua should do something instead of using __eq__, but I figured I'd check here first. Thanks!

There haven't been any updates on this since I initially opened the issue. I hadn't treated it as a priority because I thought QuantumCircuit.__eq__ was only be used for testing so the use of deepcopy to reset the node indexes wasn't a big deal since for a test case performance doesn't matter so much. It shouldn't be too hard to fix this, there are just a couple of places in the dag_isomorphism.rs module that assume the indices are the same in both graphs where we'll have to factor in that number of indices are the same, but the exact index numbers aren't. If you'd like to take a stab at fixing it I can give you some pointers, otherwise I'll try to circle back to this soon.

Unfortunately I don't know anything about Rust, but it seems like something good to learn at some point. For now though I don't think I'll be able to fix it. Also maybe @Cryoris would be interested in this issue as well. But thanks for the info, this is helpful!

So I've come up with a simple test case in case to reproduce this easily if someone wants to take a crack at it. I took a quick look at it yesterday and it wasn't the 2 line fix I initially thought it would be, but I still don't think it should be too bad to solve.
    def test_isomorphic_compare_nodes_with_removals(self):
        dag_a = retworkx.PyDAG()
        dag_b = retworkx.PyDAG()

        qr_0_in = dag_a.add_node('qr[0]')
        qr_1_in = dag_a.add_node('qr[1]')
        cr_0_in = dag_a.add_node('cr[0]')
        qr_0_out = dag_a.add_node('qr[0]')
        qr_1_out = dag_a.add_node('qr[1]')
        cr_0_out = dag_a.add_node('qr[0]')
        cu1 = dag_a.add_child(qr_0_in, 'cu1', 'qr[0]')
        dag_a.add_edge(qr_1_in, cu1, 'qr[1]')
        measure_0 = dag_a.add_child(cr_0_in, 'measure', 'cr[0]')
        dag_a.add_edge(cu1, measure_0, 'qr[0]')
        measure_1 = dag_a.add_child(cu1, 'measure', 'qr[1]')
        dag_a.add_edge(measure_0, measure_1, 'cr[0]')
        dag_a.add_edge(measure_1, qr_1_out, 'qr[1]')
        dag_a.add_edge(measure_1, cr_0_out, 'cr[0]')
        dag_a.add_edge(measure_0, qr_0_out, 'qr[0]')
        dag_a.remove_node(cu1)
        dag_a.add_edge(qr_0_in, measure_0, 'qr[0]')
        dag_a.add_edge(qr_1_in, measure_1, 'qr[1]')

        qr_0_in = dag_b.add_node('qr[0]')
        qr_1_in = dag_b.add_node('qr[1]')
        cr_0_in = dag_b.add_node('cr[0]')
        qr_0_out = dag_b.add_node('qr[0]')
        qr_1_out = dag_b.add_node('qr[1]')
        cr_0_out = dag_b.add_node('qr[0]')
        measure_0 = dag_b.add_child(cr_0_in, 'measure', 'cr[0]')
        dag_b.add_edge(qr_0_in, measure_0, 'qr[0]')
        measure_1 = dag_b.add_child(qr_1_in, 'measure', 'qr[1]')
        dag_b.add_edge(measure_1, qr_1_out, 'qr[1]')
        dag_b.add_edge(measure_1, cr_0_out, 'cr[0]')
        dag_b.add_edge(measure_0, measure_1, 'cr[0]')
        dag_b.add_edge(measure_0, qr_0_out, 'qr[0]')

        self.assertTrue(
            retworkx.is_isomorphic_node_match(
                dag_a, dag_b, lambda x, y: x == y))

    def test_isomorphic_compare_nodes_with_removals_deepcopy(self):
        dag_a = retworkx.PyDAG()
        dag_b = retworkx.PyDAG()

        qr_0_in = dag_a.add_node('qr[0]')
        qr_1_in = dag_a.add_node('qr[1]')
        cr_0_in = dag_a.add_node('cr[0]')
        qr_0_out = dag_a.add_node('qr[0]')
        qr_1_out = dag_a.add_node('qr[1]')
        cr_0_out = dag_a.add_node('qr[0]')
        cu1 = dag_a.add_child(qr_0_in, 'cu1', 'qr[0]')
        dag_a.add_edge(qr_1_in, cu1, 'qr[1]')
        measure_0 = dag_a.add_child(cr_0_in, 'measure', 'cr[0]')
        dag_a.add_edge(cu1, measure_0, 'qr[0]')
        measure_1 = dag_a.add_child(cu1, 'measure', 'qr[1]')
        dag_a.add_edge(measure_0, measure_1, 'cr[0]')
        dag_a.add_edge(measure_1, qr_1_out, 'qr[1]')
        dag_a.add_edge(measure_1, cr_0_out, 'cr[0]')
        dag_a.add_edge(measure_0, qr_0_out, 'qr[0]')
        dag_a.remove_node(cu1)
        dag_a.add_edge(qr_0_in, measure_0, 'qr[0]')
        dag_a.add_edge(qr_1_in, measure_1, 'qr[1]')

        qr_0_in = dag_b.add_node('qr[0]')
        qr_1_in = dag_b.add_node('qr[1]')
        cr_0_in = dag_b.add_node('cr[0]')
        qr_0_out = dag_b.add_node('qr[0]')
        qr_1_out = dag_b.add_node('qr[1]')
        cr_0_out = dag_b.add_node('qr[0]')
        measure_0 = dag_b.add_child(cr_0_in, 'measure', 'cr[0]')
        dag_b.add_edge(qr_0_in, measure_0, 'qr[0]')
        measure_1 = dag_b.add_child(qr_1_in, 'measure', 'qr[1]')
        dag_b.add_edge(measure_1, qr_1_out, 'qr[1]')
        dag_b.add_edge(measure_1, cr_0_out, 'cr[0]')
        dag_b.add_edge(measure_0, measure_1, 'cr[0]')
        dag_b.add_edge(measure_0, qr_0_out, 'qr[0]')

        self.assertTrue(
            retworkx.is_isomorphic_node_match(
                copy.deepcopy(dag_a), copy.deepcopy(dag_b),
                lambda x, y: x == y))

Fwiw, deep rust experience shouldn't be required to solve this and I'll gladly help anyone that was interested in diving in on it. It would probably actually be a good intro to rust project (except for that the code in dag_isomorphism.rs is pretty hairy mostly because of the coding style that is used in the upstream petgraph it was forked from) because it's a logic bug in a existing algorithm. The steepest part of the learning curve with rust the first time is normally dealing with the extra checking and requirements the compiler enforces (how it provides safety) but starting with a working piece of code means at least you have a known compiling starting point.


Multiple routes rendered at once

After moving to Preact X and using hooks I started noticing something weird happening with the useLayoutEffect hook that I was using to store the scroll position when exiting a route.
After some investigation what I found is that, in some conditions, the router will actually have both the outgoing and the incoming route rendered on screen at the same time.
Here's a reduced test case. Clicking the link will change from the route Foo to the route Bar and will print the current html of the page as seen by the cleanup function of the useLayoutEffect hook:
https://codesandbox.io/embed/admiring-rain-0st62
You can see that during the cleanup function both Foo and Bar are rendered in the dom at the same time (which makes reading from the DOM on the hook useless for my use case sadly).

After going deeper into this I managed to reproduce it without using preact-router at all. Looks like an issue with Preact X itself. I opened a bug there instead. Sorry.

Awesome :tada: No need to apologize. Timing issues are always hard to debug. We're super thankful that you reported it so that we have a chance at fixing it :+1:


Update Bluemix CLI to IBM Cloud CLI

Update Bluemix CLI references to IBM Cloud CLI.
Issue: https://github.com/IBM-Blockchain/ibm-blockchain.github.io/issues/77

The website has been archived; closing.


Improving Tag Index page

[x] This is a question about using the theme.
[x] This is a feature request.

Thank you very much for your amazing work! I would like to request a new function that change the /tags page to something similar to the Tag Index on your blog (https://mademistakes.com/tag/).

I made it, thanks!


Indiscernible color for directories in ls output under Agnoster theme

I thought this would be a common issue faced by many users but after a quick search I don't seem to have found any previous posts on this. Basically, the directories in ls outputs under Agnoster theme would have a green-yellowish highlight background, which is very similar to the blue font color used. The result is that the directory names are hardly discernible. This screenshots demonstrate the issue:

Weirdly I never encountered this issue before. Only after installing oh-my-zsh in two new systems did this problem start to occur.
It happened on both Terminator and Konsole, using the Solarized color scheme.

same for me

I listed all terminal's colors using script from https://askubuntu.com/a/17300 and found problem.
This is LS_COLORS'es OTHER_WRITABLE (ow) variable.
echo $LS_COLORS said that ow=34;42
Greping on .oh-my-zsh said nothing, that means LS_COLORS has default values.
Fast google brought me dircolors utility - OMZ use it in ~/.zshrc.pre-oh-my-zsh.
dircolors gets default values from a precompiled database which contains (ta-dam!)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
This color which what we see on your screenshot: blue font on green background.
Fast fix for me (white font on green background):
echo "LS_COLORS=$LS_COLORS:'ow=37;42:'"  >> ~/.zshrc

Try running without OMZ with zsh -f, check the coloring there and run echo $LS_COLORS to see the values you get. If these are good you can put them in your zshrc file.
OMZ uses the default dircolors -b values if $LS_COLORS is undefined, so that ls always shows colored output. I'm afraid we can't do more to fix these kinds of problems.


Added 'New Zealand North - nzn prefix'

Added 'New Zealand North - nzn prefix' to Azure regions

@lukemurraynz, I have submitted a PR to add the New Zealand North location:
https://github.com/microsoft/CloudAdoptionFramework/pull/56


WIP: Change i18n from logical keys to "textual" ones

These changes move the i18n keys from logical ones (this.title) to textual ones (This title). The reason is that:

We get to see the actual human string in the code (maybe be useful for grepping, etc.);
We get to see what we're translating in the very translation file (no need to look into one source language file).
We don't mix keys/textual when using the <Trans> tag.
We instantly update any strings needing changes because the keys change when the text changes.

It also includes a new command to create/update the i18n: npm run i18n
For creating new translations, create a locale directory with the new language code + run the command mentioned above.

@illume , This is very WIP ATM, but I'd love your opinion on the direction (one file does use <Trans> in blocks that have no inner tags for example).

Like it. Much more readable.
The downside of using strings as keys are if there are big strings, or if the strings change a lot. That's not the case with Headlamp, and if it becomes that way we could always switch back to keys then.

I have updated the catalog now with a few more namespaces. I will finish the PT version if it looks good, but we need to add a language picker as well.

Status: We should make the app translatable as well and hopefully joining the translations as well (i.e. have them all in the frontend/ if possible).
One thing that's needed for knowing (in Electron) when the user changes the locale (in React) is to use the IP (electron.ipcRenderer) to exchange that info, but it seems we need changes in order to make electron available to the app.
I did a few attempts (e.g. based on this one) but still no luck so I'll leave it for tomorrow.

I updated the PR description with the latest PR additions and a screenie.


Problems to execute explorer.py

Hi!
I'm working with your code (It looks amazing) with another dataset of images. The images were taken by another camera then I generated the JSON (I had to do other things because I needed another library and I wasn't able to install it). After some changes like set images_have_yaw = True in "scripts/lib/pose.py" I could execute process.py successfully (apparently). However I want to see the result of this, I used explorer.py to do that and I received the message:
Traceback (most recent call last):
File "explorer.py", line 702, in
app.load( os.path.join(proj.analysis_dir, "models") )
File "explorer.py", line 308, in load
self.sortImages()
File "explorer.py", line 461, in sortImages
top_entry = result_list[-1-self.top_image]
IndexError: list index out of range
When I analyzed the error I realized this happened because this functions m.getTightBounds() in explorer. py doesn't return anything. That means it asked for some bounding box to create the visualization and it didn't receive it from the model
My idea is to try to export the result as GeoTIFF but meanwhile, I would like to check the result and see if it is working for my dataset.
If you can give me your email, I could share with you the JSON file and the images that I'm using it.
Thank you so much in advance.

Hi Lorena,
It definitely sounds like something didn't work.  Are you able to share
your image set?  I could try running the code through here and see if I can
figure out what happened.
Thanks,
Curt.
On Wed, Feb 2, 2022 at 4:47 PM Lorena Peñuela @.***>
wrote:

Hi!
I'm working with your code (It looks amazing) with another dataset of
images. The images were taken by another camera then I generated the JSON
(I had to do other things because I needed another library and I wasn't
able to install it). After some changes like set images_have_yaw = True in
"scripts/lib/pose.py" I could execute process.py successfully (apparently).
However I want to see the result of this, I used explorer.py to do that and
I received the message:
Traceback (most recent call last):
File "explorer.py", line 702, in
app.load( os.path.join(proj.analysis_dir, "models") )
File "explorer.py", line 308, in load
self.sortImages()
File "explorer.py", line 461, in sortImages
top_entry = result_list[-1-self.top_image]
IndexError: list index out of range
When I analyzed the error I realized this happened because this functions
m.getTightBounds() in explorer. py doesn't return anything. That means it
asked for some bounding box to create the visualization and it didn't
receive it from the model
My idea is to try to export the result as GeoTIFF but meanwhile, I would
like to check the result and see if it is working for my dataset.
If you can give me your email, I could share with you the JSON file and
the images that I'm using it.
Thank you so much in advance.
—
Reply to this email directly, view it on GitHub
https://github.com/UASLab/ImageAnalysis/issues/19, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXYYDMMEVETJFVZPDSUGRDUZGYBDANCNFSM5NNK46AA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Curtis Olson
University of Minnesota, Aerospace Engineering and Mechanics, UAS Lab


Deploy ssrs project from Visual Studio 2017 doesn't work

Using older version Deploy-SSRSproject.ps1 to deploy older version ssrs project works fine, but after upgrading ssrs poject to Visual Studio 2017, the Powershell script Deploy-SSRSproject.ps1 doesn't work any longer, which doesn't show any error but doesn't deploy ssrs project to reporting server either, I also downloaded your latest powershell script and tried to use Publish-SSRSProject.ps1 to deploy the VS2017 Reporting project, it doesn't show any error and doesn't deploy the ssrs project either.

pull request pending of approval related to this issue

@timabell Any way we could get this merged? I love your module. Just need it to support VS 2017.

#24

done


Adding Kotlin Multiplatform support!

I would like to suggest you make support for kotlin multiplatform since you already support obj-c and java. It would be awesome to be able to use this with kotlin native and the multiplatform eco-system!

Could be great to have this integrated into the roadmap at some point.

Is there any progress on this? It shouldn't be too difficult as both Android and iOS are already supported.

We do not plan to offer a Kotlin implementation any time soon.

Why?

First, we simply do not have enough people to do this.
But secondly, one can easily use the Java API from Kotlin. Because of this, it is not obvious that having two implementations are actually useful.  For example, imagine you have a codebase which is written in Java, and which uses Tink, and which you wish to migrate to Kotlin. You can do so with each file, but you will keep the Java version of Tink (since the Tink objects are method parameters in your code base and migrating one of them won't migrate them all).
In the end, if you come from this path, you anyhow end up having Java Tink objects in your Kotlin codebase. Migrating these to a completely different Tink implementation may not be worth the cost. At that point, you would find it most convenient if the APIs are the same anyhow.
Similarly, if you have a Kotlin codebase which uses Java Tink and a Kotlin codebase which uses Kotlin Tink, merging them would be more difficult than if both use Java Tink.
I think it would be better to simply migrate Tink to Kotlin if this is desired (but also, such a thing is very far out).

More than providing an idiomatic Kotlin API, adding support for Kotlin Multiplatform would allow the Kotlin implementation to work on targets other than the JVM.

OkHttp migrated to Kotlin without breaking the API for Java consumers, and probably using the Convert to Kotlin action from the IDE, either on a file, or directly on the entire source directory.
Maybe it can work out for tink.
Did someone give it a try?


APT source whitelist request for ppa:duggan/bats

ppa:duggan/bats is nice for Bash testing. Needed for testing CLI applications in a Bash shell

This is a dupe of #108

@mxplusb ping; can you close this dup?


New API Call Confirm

Hi,
I assume this message is new since the latest major:

Where is this information stored?
Is there a way to preconfigure domains so the user doesn't have to confirm them?
Is there a way to make the displayed message more expressive? i.e. tell the user which domain is used.

local procedure MyProcedure()
var
client: HttpClient;
response: HttpResponseMessage;
begin
client.Get('google.com', response);
end;
This information would be very helpful to us, thanks.

I don't think it has been documented somewhere, but I wrote a blog post about this a while ago:
https://www.kauffmann.nl/2018/11/05/outbound-http-calls-blocked-in-business-central-sandbox/

Thanks ajkauffmann, that indeed cleared up most of my questions.


Use image digest instead of commit tag in order to have renovate updates

Use image digest instead of commit tag in order to have renovate updates

To be clear, removing the tag means renovate will assume the tag latest. Not sure if those repos do use that tag.


MXML: CTRL+Space Import in fx:Script block sometimes places import on very top of file

When working within a Script block within an mxml file, CTRL+Space for completion/import sometimes places the import outside of the script block as the very first line of the file.
Steps to reproduce

Create an mxml file with a Script block:

<?xml version="1.0" encoding="utf-8"?>
<j:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:j="library://ns.apache.org/royale/jewel"
    xmlns:js="library://ns.apache.org/royale/basic"
    xmlns:html="library://ns.apache.org/royale/html">

    <fx:Script>
        <![CDATA[

        ]]>
    </fx:Script>

</j:VGroup>

Add some code that will allow auto complete

<?xml version="1.0" encoding="utf-8"?>
<j:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:j="library://ns.apache.org/royale/jewel"
    xmlns:js="library://ns.apache.org/royale/basic"
    xmlns:html="library://ns.apache.org/royale/html">

    <fx:Script>
        <![CDATA[
             private var test:RemoteOb
        ]]>
    </fx:Script>

</j:VGroup>

Use CTRL+Space to auto complete

Sometimes, the import will appear at the very top of the file

Expected Results
The import appears at the top of the Script block:
<?xml version="1.0" encoding="utf-8"?>
<j:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:j="library://ns.apache.org/royale/jewel"
    xmlns:js="library://ns.apache.org/royale/basic"
    xmlns:html="library://ns.apache.org/royale/html">

    <fx:Script>
        <![CDATA[
             import org.apache.royale.net.RemoteObject;

             private var test:RemoteObject;
        ]]>
    </fx:Script>

</j:VGroup>

Actual Results
import org.apache.royale.net.RemoteObject;

<?xml version="1.0" encoding="utf-8"?>
<j:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:j="library://ns.apache.org/royale/jewel"
    xmlns:js="library://ns.apache.org/royale/basic"
    xmlns:html="library://ns.apache.org/royale/html">

    <fx:Script>
        <![CDATA[
             private var test:RemoteObject;
        ]]>
    </fx:Script>

</j:VGroup>

Observations
I wish I had concrete steps on how to reproduce this issue; it is quite random/sporadic. I will add notes as I learn more.
It is possible that it may be tied to other features within VSCode like auto organize imports, or auto source formatting. I use Beautify for mxml, and ActionScript Tools for AS3. I have sometimes seen worse corruption after saving once this occurs as the imports are usually considerably off the viewable screen.

Update: I've just noticed that it happens quite often when pasting in code from another file. Possibly more so than from auto-completion.

Do you have something enabled in VSCode where it organizes imports on paste? There is no reason why it would add an import during paste, unless maybe something like that were enabled.

I currently do not have any auto formatting turned on for pasting. Only saving. I will keep monitoring to attempt to track down a reproducible steps.

Thanks!

Do you ever try to use <fx:Script> elements without <![CDATA[, like this?
<fx:Script>
 private var test:RemoteOb
</fx:Script>

While trying to reproduce, I saw that this is one case where imports are incorrectly added to the beginning of the file.

Sorry for the late reply. I do not believe I was doing that. I think I noticed it mostly after pasting and/or importing unknowns post paste, but, it is definitely possible what you reproduced is related.
I was able to verify that the case you found does exactly what I was describing.
I've been pulled into many projects lately and haven't had the time to reproduce. Feel free to do what you need with this task as far as using what you found, or closing it until I can find better steps.

Noticed this happening again today. Here was the scenario:
My mxml file contained the following:
    <fx:Script>
        <![CDATA[

        ]]>
    </fx:Script>

I pasted the following inside the CDATA block, which did not auto-import.
    [Bindable]
    public var menu:IVRMenu;

Which resulted in this:
    <fx:Script>
        <![CDATA[
            [Bindable]
            public var menu:IVRMenu;
        ]]>
    </fx:Script>

I went to the end of IVRMenu and hit ctrl+space, and the import appeared at the top of the file, not within the Script's CDATA block.
Hope this helps. I've seen this a few times lately, but usually notice it later as I'm further down within a file.

Hi Josh, I finally have one variant of this bug caught on video. In this case, It is happening due to "Organizing Imports" when saving. If I disable that flag in my workspace, it stops doing it.
https://user-images.githubusercontent.com/453805/123493313-e6fa2880-d5d0-11eb-9569-896769da3412.mp4
Ctrl+Space is putting it in the correct location. If I didn't catch the first issue, then pressing Ctrl+Space to add it, saving is what casues the worst of the issue, wiping everything between the two:
https://user-images.githubusercontent.com/453805/123493550-9d5e0d80-d5d1-11eb-95b1-0a450177a0bb.mp4
These settings in my workspace are likely relevant:
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
    "source.organizeImports": true,
    "source.fixAll": true
}

The combination of these two issues may be why I was confused as to what and or how it was happening.
Hope this helps!

Thanks! I'll take a look soon.

@brianraymes Thank you again! I can finally reproduce. It seems to happen when a missing import gets added automatically, but there were no existing imports in the <fx:Script> block beforehand.

Awesome!!
Potentially related or unrelated, I've been seeing issues where if I cut/copy/move code, not entirely certain what order of operations, but all imports used within MXML controls (not used within a script block) are deleted and I have to reimport them.

If you're interested in trying it out before I do the next release, feel free to try a nightly build.
https://github.com/BowlerHatLLC/vscode-as3mxml/wiki/Nightly-builds


Our PR, your PR respect

Built on level

Checkpoints
Functional doors
Gauntlets (binded to current enemys, 1 round per gauntlet to test)

How to test: play the game hehe

We respawn and activate spawn on the trigger

Im gonna sue u for stealing this pr <3


Post reference/algorithm/playbook to treat depressions

It would be a good idea to put the reference document that are implemented in this skill

I will add a link to the Psychology Today article in the readme.  I will try to get around to adding the links to some papers that I referenced when developing the skill. Thank you!


Support rust newtype idiom in IDL (tuple struct)

IDL actually doesn't seems to generate type that use the newtype idiom like:
#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct Username(String);

but generate correctly if I change it to:
#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct Username {
    s: String;
}

duplicate of https://github.com/project-serum/anchor/issues/232


Longest/synteny fails due to time limits

The following input samples fail at the LONGEST step.
Vespula_vulgaris,GCF_905475345.1
Vespa_velutina,GCF_912470025.1

I am pretty sure this is because they are not given enough time (died at 1h 05). error 140.
Also, the SYNTENY step failed for 2% of my comparisons (140). All dying ~1h.05m

Not sure if this should change on the pipeline repo or the config.
I guess this problem will be the same on all HPC, so we should maybe change the base config to allow more time


ci: update testing matrix

Description

Add PHP 8.3 in the list of version to check the tool against. Already ran the tests locally and they passed 👍

Thank you for contributing! 🎉


Implement Day 4 Part 2

Problem description: https://adventofcode.com/2023/day/4#part2

Well, looks like we've finally gotten to some recursion. We could also use a queue structure for this, as we need FIFO. Let's try the recursive route first.
Termination condition: Simple, just when you have no matches
Pre-condition: Record extra match
Recurse: Provide the array and the index you're currently on
Post-condition: none


Do not overload Logging macros

Solve #153

Codecov Report

Merging #154 (c498a88) into master (b582ef3) will decrease coverage by 6.88%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #154      +/-   ##
==========================================
- Coverage   81.22%   74.33%   -6.89%
==========================================
  Files          31       31
  Lines        3392     3382      -10
==========================================
- Hits         2755     2514     -241
- Misses        637      868     +231

Impacted Files
Coverage Δ

lib/MadNLPHSL/src/ma86.jl
81.13% <0.00%> (ø)

src/MadNLP.jl
62.50% <ø> (ø)

lib/MadNLPGraph/src/plasmo_interface.jl
0.00% <0.00%> (-93.31%)
:arrow_down:

lib/MadNLPGraph/src/schur.jl
0.00% <0.00%> (-80.24%)
:arrow_down:

lib/MadNLPGraph/src/graphtools.jl
0.00% <0.00%> (-66.67%)
:arrow_down:

lib/MadNLPGraph/src/schwarz.jl
0.00% <0.00%> (-63.77%)
:arrow_down:

src/matrixtools.jl
83.60% <0.00%> (-16.40%)
:arrow_down:

src/utils.jl
47.61% <0.00%> (-10.72%)
:arrow_down:

src/options.jl
84.61% <0.00%> (-1.10%)
:arrow_down:

src/Interfaces/MOI_interface.jl
71.82% <0.00%> (-0.66%)
:arrow_down:

... and 4 more

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 ec2aa2f...c498a88. Read the comment docs.

@frapac I was working on making CI independent of MKL, so that we can use the fresh install of julia in every CI (#157). If it works out, I believe c498a88 is not necessary

Ok, let me know if you want me to revert that commit!


fix(nx-plugin): add h3 dependency for APIs

This is not added when generating an analog js application
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/analogjs/analog/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Which package are you modifying?

[ ] vite-plugin-angular
[ ] vite-plugin-nitro
[ ] astro-angular
[ ] create-analog
[ ] router
[ ] platform
[ ] content
[x] nx-plugin
[ ] trpc

What is the current behavior?

Issue Number: N/A
What is the new behavior?
When generating an NX application, install the h3 npm dependency, which is used by the API section.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Adding it manually resolves the dependency issue on my end, but let me take a closer look.

Is this with pnpm?

Yeah, it is


Bug: success function doesn't register properly

Describe the bug
the success function can trigger without a release actually happening: https://github.com/0-vortex/octoherd-script-validate-contribution-test/actions/runs/1561192939
Steps to reproduce
malform the package.repository key and release, it's going to work without creating a release
Affected services
semantic-release-conventional-config
Platforms
Desktop
Browsers
No response
Environment
Production
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

closing in favor of https://github.com/open-sauced/release/issues/4


Support unicode array type.

fix #2895

One thing that's tricky about the 'u' array is that it looks like it's encoded as either UTF-32 or UTF-16 depending on the size of wchar_t:
https://github.com/python/cpython/blob/main/Objects/unicodeobject.c#L3251-L3274
One code point could be split over 2 WideChars in the array if its value is > u16::MAX, and as the code is now it just silently truncates the high bits of the value with the ch as _

One thing that's tricky about the 'u' array is that it looks like it's encoded as either UTF-32 or UTF-16 depending on the size of wchar_t: https://github.com/python/cpython/blob/main/Objects/unicodeobject.c#L3251-L3274
One code point could be split over 2 WideChars in the array if its value is > u16::MAX, and as the code is now it just silently truncates the high bits of the value with the ch as _

From the CPython's code, I am a little confused. Should SIZEOF_WCHAR_T == sizeof(wchar_t) always be true?
My understanding is that sizeof(wchar_t) and SIZEOF_WCHAR_T can be either 2 or 4 depending on machines, and the cases are
match (SIZEOF_WCHAR_T, sizeof(wchar_t)) {
    (2, 2) | (4, 4) =>  /* case [1] */,
    (4, 2) => /* case [2]  */
    (2, 4) => /* case [3] */
}

In RustPython, how can we deal with cases that SIZEOF_WCHAR_T != sizeof(wchar_t)? We do not have a macro SIZEOF_WCHAR_T and only have sizeof(wchar_t) from libc.
[1] https://github.com/python/cpython/blob/1512bc21d60f098a9e9f37b44a2f6a9b49a3fd4f/Objects/unicodeobject.c#L3230-L3241
#if USE_UNICODE_WCHAR_CACHE
    const wchar_t *wstr = _PyUnicode_WSTR(unicode);
    if (wstr != NULL) {
        memcpy(w, wstr, size * sizeof(wchar_t));
        return;
    }
#else /* USE_UNICODE_WCHAR_CACHE */
    if (PyUnicode_KIND(unicode) == sizeof(wchar_t)) {
        memcpy(w, PyUnicode_DATA(unicode), size * sizeof(wchar_t));
        return;
    }
#endif /* USE_UNICODE_WCHAR_CACHE *

[2] https://github.com/python/cpython/blob/1512bc21d60f098a9e9f37b44a2f6a9b49a3fd4f/Objects/unicodeobject.c#L3252-L3256
        assert(PyUnicode_KIND(unicode) == PyUnicode_2BYTE_KIND);
        const Py_UCS2 *s = PyUnicode_2BYTE_DATA(unicode);
        for (; size--; ++s, ++w) {
            *w = *s;
        }

[3] https://github.com/python/cpython/blob/1512bc21d60f098a9e9f37b44a2f6a9b49a3fd4f/Objects/unicodeobject.c#L3258-L3273
        assert(PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND);
        const Py_UCS4 *s = PyUnicode_4BYTE_DATA(unicode);
        for (; size--; ++s, ++w) {
            Py_UCS4 ch = *s;
            if (ch > 0xFFFF) {
                assert(ch <= MAX_UNICODE);
                /* encode surrogate pair in this case */
                *w++ = Py_UNICODE_HIGH_SURROGATE(ch);
                if (!size--)
                    break;
                *w = Py_UNICODE_LOW_SURROGATE(ch);
            }
            else {
                *w = ch;
            }
        }

I don't think it does check sizeof(wchar_t), and SIZEOF_WCHAR_T I believe should always be equivalent - maybe what you're confused on is a missing case, which was from the outer function which calls unicode_copy_as_widechar: https://github.com/python/cpython/blob/main/Objects/unicodeobject.c#L4235-L4267
CPython's string repr is kinda weird, so it's just checking whether the string is internally a Vec<u8>, Vec<u16>, or Vec<u32>. When they're converting to a wide string, it's obviously easy if the string is a Vec<wchar_t>, and a Vec<u8> can just be casted up from u8 -> wchar_t. The special case is converting from u16 to wchar_t if wchar_t == u32 or u32 to wchar_t if wchar_t == u16. The first one is also just an upcasting, the second requires converting to UTF-16.

Oh hey it'd actually be not too bad to do UTF-16 - char::decode_utf16 and str::encode_utf16/char::encode_utf16 seem like they'd make this pretty painless.

@coolreader18 Thanks for your explanation, and that's what I've learnt from the CPython's code:
In CPython, a string can be either encoded in UTF-8, USC-1, USC-2 or USC-4 depends on its content.
However, in RustPython, a string is always encoded in UTF-8. (as the PyStr::value's type is Box<str>). So we need no conversions inside the unicode array (Vec<wchar_t>). We only need conversions during initialization (from Box<str>) or the explicit call of fromunicode/tounicode (where the arguments are Box<str>).
I have another question:
If I call 'a.insert(-1, '\U0001FF00') where a is an array of unicode and sizeof(wchar_t) == 2, should we throw exception (and what kind of exception) or just truncate the value from the lower 2 bytes?
I have no such environment that sizeof(wchar_t) == 2 so I cannot test how CPython will behavior. Do you have any ideas?

Oh hey it'd actually be not too bad to do UTF-16 - char::decode_utf16 and str::encode_utf16/char::encode_utf16 seem like they'd make this pretty painless.

Note that CPython splits a USC-4 to two USC-2s, which is different from the behavior of char::encode_utf16. We may not use this function.
Maybe we can add a function like this?
fn to_usc16(ch: char) -> impl Iterator<Item = u16> {
    let ch = ch as u32;
    let mut usc16 = [0_u16; 2];
    if ch > u16::MAX as u32 {
        usc16[0] = (ch >> 16) as u16;
        usc16[1] = ch as u16;
        usc16.into_iter()
    } else {
        usc16[0] = ch as u16;
        usc16[..1].into_iter()
    }
}

Now all the test cases have passed :)

Fix clippy tips.

Thank you for contributing!


Mac OS install - brew now has latest version

Delete the line regarding "Shogun in homebrew is outdated", it has been updated 3 days ago to newest version.

Just for the context: https://github.com/Homebrew/homebrew-science/commit/f96e4b8b9c22176c575a4b6a79886ef91b6ff7fc

@gbohner thanks!


Netlify pricing/permissions research

A/C

make sure we won't get bit with pricing, billing, permissions
basic security gut check
renewal dates
SLA??
what tier do we have, what's next tier. worth it?
what's support like

cyndie is pricing czar and has access to billing/account mgmt for netlify.


Investigate battles using current TW multiplayer framework

Start a battle using the existing TW multiplayer framework via code and connect to battle via code. See if there are any map limitations, we need to load single-player battle maps. Document any issues here.

We need our own code for this. TW is engine level garbage


⚠ Spryr has degraded performance

In cd68380, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 4215 ms

Resolved: Spryr performance has improved in aa9c269 after 24 minutes.