Feat naming convention

Ref thread: #251
Changes:
Other
bookmark-empty to bookmark
divide-selection-1 to split-area
cloud-book-alt to cloud-bookmark
privacy policy to privacy-policy
save-floppy-disk to floppy-disk
load-action-floppy to floppy-disk-arrow-out
save-action-floppy to floppy-disk-arrow-in
mail-opened to mail-open
pin-alt to map-pin
shopping-bag-alt to shopping-bag-pocket
key-alt-back to key-back
key-alt-minus to key-minus
key-alt-plus to key-plus
key-alt-remove to key-xmark
key-alt to key
No access
card-issue to card-no-access
no-access-window to window-no-access
log-denied to log-no-access
Warning
folder-alert to folder-warning
wifi-issue to wifi-warning
laptop-issue to laptop-warning
tv-issue to tv-warning
domotic-issue to domotic-warning
headset-issue to headset-warning
shopping-bag-issue to shopping-bag-warning
Lock
card-locked to card-lock
locked-book to book-lock
locked-window to window-lock
lock-key to lock-square
Circle
coin to dollar-circle
hospital-sign to hospital-circle
info-empty to info-circle
refresh-circular to refresh-circle
Shield
card-security to card-shield
Check
check-window to window-check
voice-ok to voice-check
password-pass to password-check
clean-water to water-check
Droplet
gas-tank-drop to gas-tank-droplet
Square
settings-cloud to cloud-square
text-alt to text-square
cooling to cooling-square
selection to square-dashed
git-command to slash-square
divide-selection-2 to split-square-dashed
fast-arrow-down-box to fast-arrow-down-square
fast-arrow-left-box to fast-arrow-left-square
fast-arrow-right-box to fast-arrow-right-square
fast-arrow-up-box to fast-arrow-up-square
heating to heating-square
carbon to c-square
fluorine to f-square
hydrogen to h-square
nitrogen to n-square
oxygen to o-square
x-coordinate to x-square
y-coordinate to y-square
z-coordinate to z-square
Tag
ar-symbol to ar-tag
vr-symbol to vr-tag
ip-address to ip-address-tag
closed-captions to closed-captions-tag
pharmacy-cross-square to pharmacy-cross-tag
down-round-arrow to arrow-down-tag
enlarge-round-arrow to arrow-enlarge-tag
left-round-arrow to arrow-left-tag
reduce-round-arrow to arrow-reduce-tag
right-round-arrow to arrow-right-tag
up-round-arrow to arrow-up-tag
X Mark
grid-remove to grid-xmark
remove-pin-alt to map-pin-xmark
remove-media-video to media-video-xmark
remove-media-image to media-image-xmark
remove-user to user-xmark
remove-square to xmark-square
multiple-pages-delete to multiple-pages-xmark
phone-delete to phone-xmark
delete-circle to xmark-circle
cancel to xmark
shield-cross to shield-xmark
map-issue to map-xmark
maps-arrow-issue to maps-arrow-xmark
cloud-error to cloud-xmark
bubble-error to bubble-xmark
chat-bubble-error to chat-bubble-xmark
wifi-error to wifi-xmark
fingerprint-error-circle to fingerprint-xmark-circle
voice-error to voice-xmark
password-error to password-xmark
shopping-code-error to shopping-code-xmark
error-window to window-xmark
drone-error to drone-xmark
ev-plug-error to ev-plug-xmark
web-window-close to web-window-xmark
Minus
remove-folder to folder-minus
remove-database-script to database-script-minus
remove-frame to frame-minus-in
ruler-remove to ruler-minus
remove-from-cart to cart-minus
remove-selection to minus-square-dashed
minus-pin-alt to map-pin-minus
shopping-bag-remove to shopping-bag-minus
multiple-pages-remove to multiple-pages-minus
Green
green-bus to bus-green
green-truck to truck-green
green-vehicle to vehicle-green
Plus
add-circle to plus-circle
add-square to plus-square
add-keyframe-alt to keyframe-plus-in
add-keyframe to keyframe-plus
add-keyframes to keyframes-plus
add-circle to plus-circle
add-square to plus-square
add-keyframe-alt to keyframe-plus-in
add-keyframe to keyframe-plus
add-keyframes to keyframes-plus
mic-add to microphone-plus
chat-add to chat-plus-in
phone-add to phone-plus
add-database-script to database-script-plus
add-frame to frame-plus-in
add-lens to lens-plus
ruler-add to ruler-plus
add-folder to folder-plus
add-page to page-plus-in
multiple-pages-add to multiple-pages-plus
add-page-alt to page-plus
grid-add to grid-plus
music-double-note-add to music-double-note-plus
music-note-add to music-note-plus
playlist-add to playlist-plus
add-selection to plus-square-dashed
add-media-image to media-image-plus
add-media-video to media-video-plus
shield-add to shield-plus-in
add-hexagon to hexagon-plus
add-to-cart to cart-plus
shopping-bag-add to shopping-bag-plus
bin-add to bin-plus
add-user to user-plus
add-pin-alt to map-pin-plus

Additional changes:
mic-remove to microphone-minus
mic-check to microphone-check
mic to microphone
mic-speaking to microphone-speaking
mic-warning to microphone-warning
mic-mute to microphone-mute
db-error to db-xmark
move-ruler to ruler-arrows
move-down to dot-arrow-down
move-up to dot-arrow-up
move-right to dot-arrow-down
move-left to dot-arrow-left
3d-select-solid to cube
cut-solid-with-curve to cube-cut-with-curve
bin-minus to bin-minus-in
bin-plus to bin-plus-in
3d-add-hole to cube-hole
patch-holes-3d to cube-bandage
search-font to text-magnifying-glass
missing-font to font-question
font-size to text-arrows-up-down

Additional changes:
arrow-bl-circle to arrow-down-left-circle
arrow-bl-square to arrow-down-left-square
arrow-br-circle to arrow-down-right-circle
arrow-br-square to arrow-down-right-square
arrow-tl-circle to arrow-top-left-circle
arrow-tl-square to arrow-top-left-square
arrow-tr-circle to arrow-top-right-circle
arrow-tr-square to arrow-top-right-square
arrow-bl to arrow-down-left
arrow-br to arrow-down-right
arrow-tl to arrow-top-left
arrow-tr to arrow-top-right
network-alt to network-reverse
voice-phone to mobile-voice
fingerprint-phone to mobile-fingerprint
dev-mode-phone to mobile-dev-mode
dev-mode-laptop to laptop-dev-mode
db-check to database-check
db-search to database-search
db-warning to database-warning
db to database

Additional changes:
removed eye-empty
removed eye-off
eye-alt to eye
eye-close to eye-closed

@sammarks @DaniFoldi take a look to see if everything looks good to you. When approved, I'll prepare the merge and the release 🙏🏻🔥

Additional changes:
clutery to cutlery

Additional changes:
remove-keyframe-alt to keyframe-minus-in
remove-keyframe to keyframe-minus
remove-keyframes to keyframes-minus
chat-remove to chat-minus-in
phone-remove to phone-minus
remove-page to page-minus-in
remove-page-alt to page-minus
remove-pin to pin-slash
remove-link to link-slash

hexagon
Additional changes:
Removed:
apple-half-alt
basketball
hexagon-alt
printer
cut-alt
Renamed:
basketball-alt to basketball
printer-alt to printer
doc-star-alt to doc-star-in
doc-search-alt to doc-magnifying-glass-in
doc-search to doc-magnifying-glass

Additional changes:
water-check to droplet-check
no-link to link-xmark
no-lock to lock-slash
no-battery to battery-slash
no-coin to coin-slash
no-credit-card to credit-card-slash
no-smoking to cigarette-slash
arrow-top-left-circle to arrow-up-left-circle
arrow-top-left-square to arrow-up-left-square
arrow-top-right-circle to arrow-up-right-circle
arrow-top-right-square to arrow-up-right-square
arrow-top-left to arrow-up-left
arrow-top-right to arrow-up-right
headset-charge to headset-bolt

Additional changes:
Removed:
color-picker-empty
Renamed:
shortcut to shortcut-square

Added 149 new icons: First SOLID ones.
1st-medal-solid.svg
adobe-after-effects-solid.svg
adobe-illustrator-solid.svg
adobe-indesign-solid.svg
adobe-lightroom-solid.svg
adobe-photoshop-solid.svg
adobe-xd-solid.svg
airplay-solid.svg
alarm-solid.svg
align-bottom-box-solid.svg
align-horizontal-centers-solid.svg
align-horizontal-spacing-solid.svg
align-left-box-solid.svg
align-right-box-solid.svg
align-top-box-solid.svg
align-vertical-centers-solid.svg
align-vertical-spacing-solid.svg
app-store-solid.svg
apple-shortcuts-solid.svg
arrow-down-circle-solid.svg
arrow-down-left-circle-solid.svg
arrow-down-right-circle-solid.svg
arrow-down-right-square-solid.svg
arrow-left-circle-solid.svg
arrow-right-circle-solid.svg
arrow-up-circle-solid.svg
arrow-up-left-circle-solid.svg
arrow-up-left-square-solid.svg
arrow-up-right-circle-solid.svg
arrow-up-right-square-solid.svg
bathroom-solid.svg
bitcoin-circle-solid.svg
bluetooth-tag-solid.svg
bold-square-solid.svg
book-solid.svg
bookmark-circle-solid.svg
bookmark-solid.svg
bubble-search-solid.svg
cable-tag-solid.svg
center-align-solid.svg
check-circle-solid.svg
clock-solid.svg
cloud-square-solid.svg
comp-align-bottom-solid.svg
comp-align-left-solid.svg
comp-align-right-solid.svg
comp-align-top-solid.svg
component-solid.svg
database-check-solid.svg
database-solid.svg
database-tag-solid.svg
database-xmark-solid.svg
design-nib-solid.svg
dogecoin-circle-solid.svg
download-circle-solid.svg
download-square-solid.svg
droplet-solid.svg
erase-solid.svg
ethereum-circle-solid.svg
eye-solid.svg
fill-color-solid.svg
filter-solid.svg
forward-solid.svg
frame-tool-solid.svg
headset-bolt-solid.svg
headset-solid.svg
headset-warning-solid.svg
heart-solid.svg
help-circle-solid.svg
help-square-solid.svg
horiz-distribution-left-solid.svg
horiz-distribution-right-solid.svg
hospital-circle-solid.svg
info-circle-solid.svg
italic-square-solid.svg
label-solid.svg
litecoin-circle-solid.svg
medal-solid.svg
microphone-check-solid.svg
microphone-minus-solid.svg
microphone-plus-solid.svg
microphone-solid.svg
microphone-speaking-solid.svg
microphone-warning-solid.svg
minus-circle-solid.svg
minus-square-solid.svg
music-note-plus-solid.svg
music-note-solid.svg
network-left-solid.svg
network-reverse-solid.svg
network-right-solid.svg
network-solid.svg
number-0-square-solid.svg
number-1-square-solid.svg
number-2-square-solid.svg
number-3-square-solid.svg
number-4-square-solid.svg
number-5-square-solid.svg
number-6-square-solid.svg
number-7-square-solid.svg
number-8-square-solid.svg
number-9-square-solid.svg
pause-solid.svg
percentage-circle-solid.svg
percentage-square-solid.svg
pin-slash-solid.svg
pin-solid.svg
play-solid.svg
plus-circle-solid.svg
plus-square-solid.svg
post-solid.svg
presentation-solid.svg
priority-down-solid.svg
priority-high-solid.svg
priority-medium-solid.svg
priority-up-solid.svg
redo-circle-solid.svg
refresh-circle-solid.svg
reports-solid.svg
rewind-solid.svg
server-connection-solid.svg
server-solid.svg
share-android-solid.svg
skip-next-solid.svg
skip-prev-solid.svg
spark-solid.svg
sparks-solid.svg
square-cursor-solid.svg
star-solid.svg
stats-down-square-solid.svg
stats-up-square-solid.svg
style-border-solid.svg
text-square-solid.svg
three-stars-solid.svg
timer-solid.svg
trash-solid.svg
underline-square-solid.svg
undo-circle-solid.svg
upload-square-solid.svg
usb-solid.svg
warning-circle-solid.svg
warning-square-solid.svg
warning-triangle-solid.svg
white-flag-solid.svg
wifi-signal-none-solid.svg
wifi-tag-solid.svg
wifi-warning-solid.svg
xmark-circle-solid.svg
xmark-square-solid.svg

Note for release:
Renamed icons by @paescuj
1st-medal to medal-1st
2x2-cell to cell-2x2
360-view to view-360
3d-arc-center-pt to arc-3d-center-point
3d-arc to arc-3d
3d-bridge to bridge-3d
3d-center-box to box-3d-center
3d-draft-face to face-3d-draft
3d-ellipse-three-pts to ellipse-3d-three-points
3d-ellipse to ellipse-3d
3d-pt-box to box-3d-point
3d-rect-corner-to-corner to square-3d-corner-to-corner
3d-rect-from-center to square-3d-from-center
3d-rect-three-pts to square-3d-three-points
3d-select-edge to select-edge-3d
3d-select-face to select-face-3d
3d-select-point to select-point-3d
3d-three-pts-box to box-3d-three-points
4k-display to display-4k


Loading screen says 'Loadings...'

Whatever that means ...

Looks like it's in some of the newer splash images. I can fix it.

See commit d954fb9 for the updated splashscreens.


Indentation

Current PyF implementation does nothing related to initial whitespaces in string. For example:
>>> putStrLn [f|Account informations:
  - Owner: {owner}
  - Balance : {balance:.2}|]
Account informations:
  - Owner: Guillaume
  - Balance : 3.14

is not satisfying on many points:

First line appears directly after the [f| symbol and is not really visible
First line is not indented as other lines
Others lines are less indented than the surrounding code.
End of quasiquote |] must appears at the end of the last line

I want to be able to write something like that:
>>> putStrLn [f|
    Account informations:
      - Owner: {owner}
      - Balance : {balance:.2}
  |]

In this solution, the block of text is clearly separated from the quasi quote symbols and the indentation inside the block is coherent. It can be also indented with respect the surrounding code, for example in case of deeply nested code, compare:
f a b = case a of
   _ pat -> if cond
       then [f|- a
- b|]
       else ""
   otherPat -> ...

with
f a b = case a of
   _ pat -> if cond
       then [f|
           - a
           - b
       |]
       else ""
   otherPat -> ...

This follows the python docstring convention, detailed here: https://www.python.org/dev/peps/pep-0257/#handling-docstring-indentation which can be resumed as:

First and last lines are ignored if they only contains whitespaces
Indentation is based on the minimum amount of whitespaces

I'm tempted to implement that, but many questions are still opened:

Should this be a separated quasi quoter (fTrim for trimmed, or f for trimmed and fRaw for untrimmed) to explicit the different behaviors?
Users won't be able to start / end a multiline string by empty lines. This does not appears to be a huge limitation.
There is no way to write a formatting string in which each lines are indented by a fixed amount. Is that important?

Why follow the docstring convention instead of the multiline string convention? For me it would be clearest and most flexible if
ghci >>> putStrLn [f|xxx|]
was exactly equivalent to
python3 >>> print("""xxx""")
for any contents of xxx including newlines and \
You could get the first-line-indented-with-the-rest behavior with a \, for example:
ghci >>> putStrLn [f|\
  a
  b
  c
|]

In my use-case I would prefer to have exact control of leading indentation and not have to make an additional pass over the Text, for instance
ghci >>> putStrLn $ unlines $ map ("  " <>) $ lines $ [f|\
a
b
c
|]

seems less readable, and less efficient as well.
What is the rational for striping leading indentation?

@ghorn the rational for stripping leading indentation was to have beautiful source file. I'll implement that later as a standalone function, for example;
foo = trim [f|\
      - a
      - b
      - c\
      |]

Will remove indentation based on the minimum indentation of the block.
Escaping of \ was implemented in <IP_ADDRESS>. I'm closing the issue.


feat: add apache/maven-mvnd

apache/maven-mvnd: Apache Maven Daemon
aqua g -i apache/maven-mvnd

To test (requires Java and Maven to be installed):
$ mvnd --version
Apache Maven Daemon (mvnd) 1.0-m8 linux-amd64 native client (0f4bdb6df5e74453d8d558d292789da4e66a7933)
Terminal: org.jline.terminal.impl.PosixSysTerminal with pty org.jline.terminal.impl.jansi.linux.LinuxNativePty
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /home/tasato/.local/share/aquaproj-aqua/pkgs/github_release/github.com/apache/maven-mvnd/1.0-m8/maven-mvnd-1.0-m8-m39-linux-amd64.tar.gz/maven-mvnd-1.0-m8-m39-linux-amd64/mvn
Java version: 17.0.9, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-17-openjdk-<IP_ADDRESS>.9-3.fc39.x86_64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "6.7.5-200.fc39.x86_64", arch: "amd64", family: "unix"

Thank you!

@suzuki-shunsuke Thanks for fixing my pull req!  Now it's failing to install older versions such as 0.8.1, 0.7.1, and 0.0.2. It appears aqua has some issue with unarchiving .zip files?  Because all the versions that fail are .zip files. .tar.gz seems to work just fine.

Please don't do force pushes after opening pull requests from the next time.
https://github.com/suzuki-shunsuke/oss-contribution-guide?tab=readme-ov-file#dont-do-force-pushes-after-opening-pull-requests

Hmm. The local test succeeded but CI failed.
I'll take a look.

As a workaround I think we can:
version_constraint: semver(">= 0.8.2")

as it doesn't make much sense to keep using older versions for mvnd.
But, as it might also suggest some potential issue with aqua around unarchiving zips, so it's more than happy if you're interested in looking into the issue more :-)

Just FYI, on my local laptop (Fedora 39), 0.8.1 fails in the same way it fails to install on the github action (ubuntu-latest):
$ aqua g -i<EMAIL_ADDRESS>$ aqua i
ERRO[0000] check file_src is correct                     aqua_version=2.23.1 env=linux/amd64 error="check file_src is correct: exe_path isn't found: stat /home/tasato/.local/share/aquaproj-aqua/pkgs/github_release/github.com/apache/maven-mvnd/0.8.1/maven-mvnd-0.8.1-linux-amd64.zip/maven-mvnd-0.8.1-linux-amd64/bin/mvnd: permission denied" exe_path=/home/tasato/.local/share/aquaproj-aqua/pkgs/github_release/github.com/apache/maven-mvnd/0.8.1/maven-mvnd-0.8.1-linux-amd64.zip/maven-mvnd-0.8.1-linux-amd64/bin/mvnd file_name=mvnd package_name=apache/maven-mvnd package_version=0.8.1 program=aqua registry=standard
ERRO[0000] executable files aren't found
Files in the unarchived package:

   aqua_version=2.23.1 env=linux/amd64 package_name=apache/maven-mvnd package_version=0.8.1 program=aqua registry=standard
ERRO[0000] install the package                           aqua_version=2.23.1 env=linux/amd64 error="check file_src is correct" package_name=apache/maven-mvnd package_version=0.8.1 program=aqua registry=standard
FATA[0000] aqua failed

This log is weird.
https://github.com/aquaproj/aqua-registry/actions/runs/8111293383/job/22171381584?pr=20468#step:5:151
INFO[0001] retry installing the package                  aqua_version=2.23.1 env=linux/amd64 error="reading file in zip archive: file already exists: /home/runner/.local/share/aquaproj-aqua/pkgs/github_release/github.com/apache/maven-mvnd/0.8.1/maven-mvnd-0.8.1-linux-amd64.zip/maven-mvnd-0.8.1-linux-amd64/README.adoc" package_name=apache/maven-mvnd package_version=0.8.1 program=aqua registry=standard retry_count=1

This log shown README.adoc existed in the zip but the following log shown the zip file was empty.

As a workaround, we would be able to remove some versions from pkg.yaml.
Now I'm tired, so I'll take a look tomorrow.

@suzuki-shunsuke No worries. Thank you for looking into it, Suzuki-san!  Take a good rest!

But, as it might also suggest some potential issue with aqua around unarchiving zips, so it's more than happy if you're interested in looking into the issue more :-)

aqua uses mholt/archiver/v3 (v3.5.1).
https://github.com/aquaproj/aqua/blob/65fb59915fced5e16413e59cd17b3f0a1b42b972/go.mod#L18
https://github.com/mholt/archiver
We haven't changed the version of mholt/archiver for over two years.
https://github.com/aquaproj/aqua/blame/v2.23.1/go.mod#L18

https://github.com/aquaproj/aqua/pull/377

https://pkg.go.dev/github.com/mholt/archiver/v3#Zip.Unarchive

As a workaround, I commented out some testdata.
ded31e2c67af0cb197535bb68892fe0785a227c7 95512c9d8e90944407129f957febe8877ce3bd55

About the above issue, I created an issue.

https://github.com/aquaproj/aqua/issues/2715

v4.147.0 is out :tada:
https://github.com/aquaproj/aqua-registry/releases/tag/v4.147.0


Some Debugger Errors should not cause the session and debugger to stop

A parse error occurring may well want to stop things from terminating and allow various client/server interactions by the user to better understand the failure.
The ability to move backward in time is typical - when we debug using just trace output from the CLI debugger scrolling backward to see what happened before the most recent error is definitely commonplace. Particularly important for debugging with bigger data files. We debug against files with hundreds of records/messages in them. A failure may result in wanting to look backward at successful parses that happened well before the record/message causing the specific failure.  Often the specific error isn't really relevant because the parse went off the rails well before the specific thing that ultimately created the parse error that ended the parse. The evidence of it going off the rails is what you want to find.
In the GUI debugger, some analog to this has to be available. Breakpoints and stepping help, but don't entirely eliminate the need for this.
Certainly an unparse error would not want to cause termination of the server session. There's so much state to interact with in the unparser it's really much richer.
Eventually I'd expect the server session to remain operating indefinitely and an explicit command would be sent over telling the server to restart a new parse/unparse, and only at that point would the state of the current action be lost and things be reset. Even closing the client should send a command to the server telling it to shut-down in orderly fashion.
Once started, I suspect that only an abort within the server, loss of connection to the client (due to client abort/crash), or an explicit shutdown command should end the server session.
Originally posted by @mbeckerle in https://github.com/apache/daffodil-vscode/pull/666#discussion_r1232598964

Fixes in #666.


[WEBDEV-390] Add error handling for invalid IDs

Coverage decreased (-5.2%) to 94.845% when pulling 073fbba85621649ccea4068f436d8eb2ebfd84e8 on bryonywatson1:bryonywatson1/webdev-390_invalid-id-error-handling into bb513cdc36985556395c7ab98f0218e6520e1aec on ukparliament:master.

Coverage remained the same at 100.0% when pulling c8ce51147cea52daa3e084743e9d5ddf09181e26 on bryonywatson1:bryonywatson1/webdev-390_invalid-id-error-handling into bb513cdc36985556395c7ab98f0218e6520e1aec on ukparliament:master.

Coverage remained the same at 100.0% when pulling c6722873677299a2fdb65039516139b2072a445b on bryonywatson1:bryonywatson1/webdev-390_invalid-id-error-handling into bb513cdc36985556395c7ab98f0218e6520e1aec on ukparliament:master.


Feature: add a search box to find collectives

Search would ideally search through titles, mission, description, etc. of a collective and show you a somewhat ranked result.

this is still needed IMHO


add test to verify that nothing changes in the git workspace

Pre-launch Checklist

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

cc @godofredoc @CaseyHillers @christopherfujino  how do i enable something like this for the LUCI shards as well?

@Hixie should this be run on all of the Flutter checks? Would it make sense to add this to bots/test.dart and run it at the end of every recipe?

bots/test.dart isn't run for every shard, is it? e.g. I don't think it gets run for the customer_testing shard.
For Cirrus I just added it as a line that gets run at the end of every Cirrus shard regardless.

It's not, but we could add it to the missing builds. That test could be run at the end of every bots/test.dart invocation.

If we're adding something, easier to just add git diff --exit-code :-)
My question is more about how to do that. Presumably long-term the move-of-test-descriptions-to-the-repo-under-test will make this trivial but right now we have to edit a recipe somewhere?

Yes, you'll need to add steps to the recipes. You can run the git command as a shell step in those recipes until we support go/flutter-single-recipe-builds
The recipes repo is hosted on git-on-borg at https://flutter.googlesource.com/recipes/

We have been calling these use case ad hoc validations and we have been implementing them in the following way:

Create a script in this location: https://cs.opensource.google/flutter/recipes/+/master:recipe_modules/adhoc_validation/resources/
Then add the script name in this list: https://cs.opensource.google/flutter/recipes/+/master:recipe_modules/adhoc_validation/api.py;l=18

If this is something that won't run as an independent task and instead we want to run it on every task we will need to add it as a step to the relevant recipes:

flutter
devicelab

The idea is to run it at the end of every job that ran anything, to make sure the test didn't affect the git workspace.
In any case it looks like it might be simpler to just wait until the recipes and such aren't written in python in another repo... I'm a little worried that for example if I made the change here it would catch a bug and break everything (unless there's a way to test the recipe changes ahead of landing them?).

The idea is to run it at the end of every job that ran anything, to make sure the test didn't affect the git workspace.
In any case it looks like it might be simpler to just wait until the recipes and such aren't written in python in another repo... I'm a little worried that for example if I made the change here it would catch a bug and break everything (unless there's a way to test the recipe changes ahead of landing them?).

Recipe changes are tested on presubmit using builds from framework, devicelab hostonly and engine. Here is an example: https://ci.chromium.org/p/flutter/builders/try/recipes-with-led/b8853549532636159696?

I've filed https://github.com/flutter/flutter/issues/78265 for now, going to close this. I'm unlikely to get to this in the near future unfortunately.


Ability to specify relation create new or use existing

Hi @JeffreyWay
If theres a way to do this and I've missed it apologies...
TestDummy creates a new model instance for every relation specified, this is okay, but it would be awesome if there was some way to specify whether existing seeded data should be used to populate the relation based on a previously seeded model.
For example, when using TestDummy for seeding creating 50 of a User factory, 100 of a Project factory, which has two references to User - created_by / completed_by ends up with 250 inserts to Users, for the amount you requested, plus 100 for each of the relations. This grows exponentially when trying to populate pivot tables as well, and doesn't really reflect pivot data that well.
I propose adding another string like 'factory:App\User' that could be something like 'model:App\User' that could get a count of existing Models and use Faker's numberBetween method to generate a relationship integer, or something to that effect.
I would be happy to submit a PR.

Yeah, that would be cool. @j4k, do you have any code written yet?

Not yet, will submit a PR soon, just wanted to see if people thought it might be useful

I also see this as a very important feature! I will wait for any update.

+1

@j4k @ehkasper @ven7ura
the work around for it is you can do the following
$factory(Comment::class, [     'post_id' => $faker->randomElement(range(1, 20)) ]);

@j4k, @ehkasper, @ven7ura, @efrontsa I have most of it working on my fork and will submit a PR hopefully today, since I don't see it having been implemented yet.

@laracasts/@jeffreyway could you have a look at #103, I think it'll be a good addition :)

This feature would be really helpful!! Hope it gets added.


install in kunpeng with newest version of openssl

when i try to install the newest version of openssl in kunpeng920,it failured.because kunpeng920 not support sha3 extension.how can i jump this?

Unfortunately we have no idea what kunpeng920 is. Also are you trying to install some pre-built openssl or are you building one of our releases by your own?

Unfortunately we have no idea what kunpeng920 is.

Google tells me its an ARM chip.

when i try to install the newest version of openssl in kunpeng920,it failured.because kunpeng920 not support sha3 extension.how can i jump this?

So how does it "fail"? Is this a compilation or a runtime failure? Can you provide further details?

Marking as inactive, to be closed at the end of the 3.4 dev cycle, barring further input


multi Interface shaping using queues leads to halved bandwidth

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
I was trying to limit bandwith networks using pipes with given bandwidth and also some queues so bandwith is shared by weight between different clients.
I tried to defined rules using 2 interfaces, so they work independent of network as ip ranges are meant to change and also ipv6 should be added in near future.
When doing this, bandwith for clients is only halve of the bandwith as defined in pipes.
To Reproduce
Steps to reproduce the behavior, for detailed settings look at screenshots:

create 2 new pipes with given bandwith (for down- and upload)
create 2 new queues with weight targeting the pipes
create 2 new rules for download and upload targeting the queues, that matches 2 interfaces (WAN, GUEST)

All in all setup is similar to https://docs.opnsense.org/manual/how-tos/shaper_guestnet.html, but with queues.
Then test download/upload bandwith for a single client behind GUEST interface with iperf3 or simple speed test.
One can observe, that only half of bandwith of pipes from step 1 is available.
Expected behavior
Bandwith should not be halved, if there is only one client in GUEST net, it should get full bandwith given by pipe.
Describe alternatives you considered
As a workaround rules based on source and destination may be possible, but these networks are meant to change.
Screenshots
pipe up

pipe down

queue up

queue down

rule up

rule down

Additional context
output of ipfw show lists these rules:
60009     0       0 queue 10002 ip from any to any recv igb0 xmit igb1_vlan20 // da1cda49-cfd1-44a5-9509-8381855800ba wan -> opt4: LOW Prio Down Queue
60011     0       0 queue 10006 ip from any to any recv igb1_vlan20 xmit igb0 // 21372daf-d801-4fe6-89c2-3286b60cd58c opt4 -> wan: LOW Prio Up Queue

According to https://www.freebsd.org/cgi/man.cgi?ipfw(8) this should apply:
The recv interface can be tested on either incoming or outgoing
packets, while the xmit interface can only be tested on outgoing
packets. So out is required (and in is invalid) whenever xmit is
used.

We can use pipes to artificially limit bandwidth, e.g. on a machine act-
ing as a router, if we want to limit traffic from local clients on
<IP_ADDRESS>/24 we do:

ipfw add pipe 1 ip from <IP_ADDRESS>/24 to any out
ipfw pipe 1 config bw 300Kbit/s queue 50KBytes

note that we use the out modifier so that the rule is not used twice.
Remember in fact that ipfw rules are checked both on incoming and outgo-
ing packets.

It looks like the out modifier is missing so packets are processed twice which leads to halved bandwidth because of using queues.
Also changing direction of rule doesn't add any modifier, but only changes interfaces within the rule.
So maybe it's enough to simply add out modifier after destination in rule if second interface is selected.
Relates to https://forum.opnsense.org/index.php?topic=26913.0
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 22.1 on X11SBA-LN4F (https://www.supermicro.com/en/products/motherboard/X11SBA-LN4F)

It's sort of the same as https://docs.opnsense.org/manual/how-tos/shaper_limit_per_user.html#limit-maximum-internet-bandwidth-users-can-consume but without the masks set in pipes since you don't need user-based limits. What stands out is that you use bi-directional rules which don't work as it should and the correct way to get the limit is to set source / destination for each rule as the documentation lays out.
Cheers,
Franco

Thanks for fast reply.
I have to add something here, didn't think this may be relevant, but i'm using queues so i can add rules for my "internet of things" network later. So bandwith should be shared between users, depending on weight.
I was thinking about using source and destination for my use case too, but unfortunately i wasn't able to select e.g. "GUEST net" like it's possible for firewall rules.
I can add "GUEST net" for source/destination but then i get only "please specify a valid network segment or address (IPv4/IPv6)"
So if network changes i have to adapt these values manually which i'm want to avoid.
So i tried to adapt https://docs.opnsense.org/manual/how-tos/shaper_guestnet.html which seems to work, except the halved bandwith :(
Also these rules doesn't seem to be bidirectional to me:
Is this because of missing in/out modifier or something else?
I also tried to change direction of rule (where only both means bidirectional to me) but this option seems to work different as soon as second interface is selected because then in/out isn't added to rules any more.
When i'm testing download, packet counter for one rule is increasing as expected and during upload the other rule matches.

It might be best to fiddle a bit with the rules and see which change you need, maybe we miss something, maybe we don't, I'm not 100% sure to be honest.
The rules are stored in /usr/local/etc/ipfw.rules and can be reloaded/flished using ipfw -f /usr/local/etc/ipfw.rules

Thanks for this hint, i'll try to change ipfw.rules directly on weekend.
Will this file be reverted to my config if i apply in gui? Just in case i break something.

Will this file be reverted to my config if i apply in gui?

Yes.

I was able to find the real problem.
My rule using 2 interfaces somehow clashed with an already existing "default queue" from previous tries.
My bad, i blamed the new rule only for this problem.
It is no good idea to mix up rules matching interfaces (without src/destination) and rules matching addresses only.
It was already working with src/dst address before, but when i changed the rule to match interfaces there are suddenly multiple rules matching:
60001    13     2833 queue 10000 ip from any to any recv igb0 xmit igb1_vlan10 // 47a9f075-3071-485a-af77-10bf40b890bf wan -> opt3: HIGH Prio Down Queue
60002    13     2387 queue 10004 ip from any to any xmit igb0 recv igb1_vlan10 // 6fd0200e-67ec-4cd3-8e28-48b09b2b7295 opt3 -> wan: HIGH Prio Up Queue
60003    26     5798 queue 10003 ip from any to any in via igb0 // a08111ee-8f5a-4d94-996c-3c77f22fb6e2 wan: NO Prio Down Queue
60004    11     3506 queue 10007 ip from any to any out via igb0 // f63b5459-06e8-4e3f-950a-72e7acc652d8 wan: NO Prio Up Queue

So for download both, rule 60001 and 60003 matched and i think because of this, the packet count twice for pipe --> the bandwith is reduced.
Though, the example here is wrong https://docs.opnsense.org/manual/how-tos/shaper_guestnet.html
For upload/download either the interfaces must be swapped or the direction must be changed.
If both, direction and interfaces, are changed this will result in same rule, e.g.
queue 10000 ip from any to any recv igb0 xmit igb1_vlan10
queue 10004 ip from any to any xmit igb1_vlan10 recv igb0

So only traffic in one direction is shaped when following current example.

looks like we accepted the wrong fix last year https://github.com/opnsense/docs/commit/680af4f10d38ad0babec7dfa3025c15af5c72af6, let me change the docs and close this ticket.


Cask request: Java Cryptography Extension Unlimited Strength Jurisdiction Policy

Cask details
Name:
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files
Homepage:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
License:
Gratis (Oracle Binary Code License Agreement for Java SE)
Download URL:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Description:
This package serve as an extension to the existing Java Cask, and enable some of the encryption features (e.g. AES256) that were previously disabled due to United States export ban on encryption

I'm opening this issue because I'm not sure if whether the JCE Policy Files belongs in the Cask as there is no conventional installer. Oracle only providing a package containing policy .jars that need to be copied to $(/usr/libexec/java_home)/jre/lib/security (although Java do install the a restricted stubs by default at that location, so a backup need to be made.)
I'm not quite sure what would be the best way to create this Cask, or even should it include in the Cask at all.

For a reference, this is how I installed it.
$ # download jce_policy-8.zip from homepage.
$ export JAVA_HOME=$(/usr/libexec/java_home)
$ sudo mv $JAVA_HOME/jre/lib/security/US_export_policy.jar{,.bak}
$ sudo mv $JAVA_HOME/jre/lib/security/local_policy.jar{,.bak}
$ unzip jce_policy-8.zip
$ sudo mv UnlimitedJCEPolicyJDK8/US_export_policy.jar $JAVA_HOME/jre/lib/security/US_export_policy.jar
$ sudo mv UnlimitedJCEPolicyJDK8/local_policy.jar $JAVA_HOME/jre/lib/security/local_policy.jar

Isn’t it this cask?

@vitorgalvao oops, looks like that's the one. Was grepping for /java/ for all along. Closing, thanks.


setVerbose got deprecated

https://pyobjc.readthedocs.io/en/latest/api/module-objc.html#objc.options

I removed this before I saw your PR. 🤦


Add ARB super-committer to Community Governance doc

During the TF LFN induction process, the LFN TAC provided feedback that the LF Community Governance doc should do a better job of discussing the issue of ARB members who are also "super committers" (read: have +2/-2 on Gerrit).
Please consult with Daniel Farrell for more information about the LFN TAC feedback.

I think this is another reason in favor of my suggestion of replacing the ARB with a council of PTLs https://lists.tungsten.io/g/tsc/message/152 since I don't think anyone would have a major issue with PTLs having +2/-2 (or at the very least having -2 since it's pretty easy to explain that the projects within TF are very closely interconnected and code shouldn't be merged in one project over the objection of a PTL of another project that likely depends on it. The relationship between PTLs and ARB in TF is currently not very well defined.

Migrated to Jira: https://jira.tungsten.io/browse/TFB-1397


Improve README with project description and examples

Improve README by adding a project description, examples, installation guide etc.

Closed by c1c60c06c1a7534f1044121263a7c431274c7876


Fixes the failed build due to merge conflict

The latest build failed due to merge conflict not being resolved in base settings. This PR fixes that.

Much thanks!


Assignable scope now supports management groups

According to observation and as documented in https://feedback.azure.com/forums/911473-azure-management-groups/suggestions/34391878-allow-custom-rbac-definitions-at-the-management-gr

Hi @rcabr
Thanks for your changes. I talked with the product team. They want to make sure this feature is fully complete before updating the docs. They have a plan for updating several areas in the docs.
I'm going to close this pull request for now, but I've made a note to update this pull request when the updated docs are published.
thanks

#please-close


Can't use react-native init to create new project

I can't use command
react-native init {someproject}
to create a new project to work. this is what appear in the console
import type {CommandT} from './commands';
^^^^^^
SyntaxError: Unexpected token import
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (module.js:613:28)
at Module._compile (D:\Works\Project2\node_modules\pirates\lib\index.js:91:24)
at Module._extensions..js (module.js:660:10)
at Object.newLoader [as .js] (D:\Works\Project2\node_modules\pirates\lib\index.js:96:7)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:501:12)
at Function.Module._load (module.js:493:3)

Same problem here.

Same problem here.

Same problem

same isssue here
{
  "name": "location",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "dependencies": {
    "react-native": "0.56.0"
  }
}

Here's workaround, this is a known bug in RN 0.56
https://stackoverflow.com/questions/51178688/error-creating-new-react-native-project

@dhthong92  Thanks a lot

I opened a new issue based on  issue template.
https://github.com/facebook/react-native/issues/20086


Fix AlterTable::dropConstraint() by allowing the use of decorator

Fixes a broken implementation under MySQL: DROP CONSTRAINT is not supported, you have to use DROP [FOREIGN KEY | INDEX | KEY] instead.
See issue #36
Warning: introduces a potential breaking change (string parameter is now a typed object).

Fixed errors after merge with master. Ready for integration in 3.0.0 if everything's ok for you.

@nanawel I too have this issue. (dont want to put in PR ID here to confuse the issue tracker relevancy, search "coverage" in open PRs where I point it out). Was passing then suddenly dropped. There was an effort to upgrade travis config files across all of ZF repositories to make it more strict and  after it there was more failings here in unexpected commits. I think I see why mine failed (though its a bit stretched) where I formatted my error output and so travis wants me to tests the full formatting logic, which is just a printf() XD ....
According to the report there is unexercised "processDropConstraints" function. Line was added there but none of your tests seem to cover it. Even if the whole file has coverage by previous commits, that does not mean this particular commit is covered, therefore travis thinks it is new untested BC break (which makes sense). That is, travis checks that this set of commits is fully covering all of changes.
Do your new tests execute that line 234 or only old ones?

There are actually 2 tests related to processDropConstraints() which are the drop of the FK and the index. I added those lines way before today's merge so nothing has changed there. In fact, the only changes required after the merge were code style related, to match how the strings are split up on develop, which is slightly different from how they were when I submitted the PR.

Hi, still looking forward to seeing this in the upcoming 3.0.0. Thanks!

Hi,
just bumping this PR, in case it got forgotten :)

@alexdenvir — Can you please provide an update on this?
I have a CMS and I am using Zend-DB. Right now I am not able to use the drop constraint functionality. I can use this code directly in my fork repo, but before that, I want to know the reason behind not letting this PR merged.
Update on this PR will be very helpful. So can you please provide it ASAP?

@alexdenvir — Can you please provide an update on this?

Sorry, but no. Maybe try pinging @alextech instead?

Same here, although never to zend-db specifically. I saw you had left a review and assumed @bjgajjar meant to ping you instead. My bad

I see it's marked as BC Break so planned for v3 release. I guess it will be much easier to get it in without BC Break (if possible?)

@alextech @nanawel @alexdenvir @bjgajjar
I think it is possible to change the code to keep BC.
We can accept both - string and ConstraintInterface, and deprecate on string.
If string provided we can create ConstraintObject internally so behaviour should really stay the same. Then for v3 we will accept only ConstraintInterface.
What do you think?

@alexdenvir

Maybe try pinging @alextech instead?

Yeah. Sorry for the inconvenience.
@webimpress

We can accept both - string and ConstraintInterface, and deprecate on the string.

Agree we can do that way also.
@nanawel
It seems like there is some issue with this PR. I tried to use this code in my fork repo and use the dropConstraint for Unique constraint as well as PrimaryKey. But not able to drop it.
When I print the SQL query it is returning "" as a constraint.
                    DROP CONSTRAINT ""

For your reference;
You have been added getConstraintType function in src/Sql/Platform/Mysql/Ddl/AlterTableDecorator.php and when I alter the table it is using the processDropConstraints function of src/Sql/Ddl/AlterTable.php

@bjgajjar would you be able provide PR based on that with changes I've described above, fixes of the issue you found, and tests to cover changes, please?

@nanawel @webimpress @bjgajjar @alextech @alexdenvir

We can accept both - string and ConstraintInterface, and deprecate on string.
If string provided we can create ConstraintObject internally so behaviour should really stay the same.

As suggested by @webimpress, I think we can provide BC(accept both - string and ConstraintInterface) by below change :
public function dropConstraint($constraint) {
	$constraint = is_object($constraint) ? $constraint : new ConstraintObject($constraint, NULL);
	$this->dropConstraints[] = $constraint;
	return $this;
}

Please share your thoughts on it.

This repository has been moved to laminas/laminas-db. If you feel that this patch is still relevant, please re-open against that repository, and reference this issue. To re-open, we suggest the following workflow:

Squash all commits in your branch (git rebase -i origin/{branch})
Make a note of all changed files (`git diff --name-only origin/{branch}...HEAD
Run the laminas/laminas-migration tool on the code.
Clone laminas/laminas-db to another directory.
Copy the files from the second bullet point to the clone of laminas/laminas-db.
In your clone of laminas/laminas-db, commit the files, push to your fork, and open the new PR.
We will be providing tooling via laminas/laminas-migration soon to help  automate the process.


Fix UndoRedo history mismatch when creating a new tile atlas

Fixes https://github.com/godotengine/godot/issues/86291
It seems that there's no need to put set_texture_region_size in do method as it's a newly created resource and no pairded redo method.
But I feel the history mismatch problem lies in other places, it's only a stopgap measure. Any suggestions ?

Thanks!


Tamper Chrome won't start

From @Fandekasp on May 19, 2017 8:29
After installing both the extension and the app, I'm still unable to use Tamper Chrome, the debugger console tab showing "Requires a second component" error:

Tried restarting the browser twice, didn't help.
Using Google Chrome Version 58.0.3029.110 (64-bit) from Arch Linux.
Copied from original issue: sirdarckcat/sirdarckcat.github.io#2

From @Fandekasp on May 19, 2017 8:41
$ uname -a                                                                                [17:39:23]
Linux xps_9360 4.10.13-1-ARCH #1 SMP PREEMPT Thu Apr 27 12:15:09 CEST 2017 x86_64 GNU/Linux
$ cat /etc/os-release                                                                              [17:39:26]
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
ID_LIKE=archlinux
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"

$ pacman -Qs chrome                                                                                [17:39:29]
local/google-chrome 58.0.3029.110-1
    An attempt at creating a safer, faster, and more stable browser (Stable Channel)

Fyi I was using tamper chrome last year on arch linux.
Thank you for the fast support !

Oh, wow, thanks for letting us know!
This is really strange, out of curiosity, which operating system do you use?

From @Fandekasp on May 19, 2017 8:57
No such rule in my iptables. Also, when opening the application from the chrome store page (useless because I cannot access the settings that are in the extension), I cannot see any related port being open. Or would that be scriptview ?
$ Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-19 17:54 JST
Nmap scan report for localhost (<IP_ADDRESS>)
Host is up (0.00013s latency).
Other addresses for localhost (not scanned): ::1
rDNS record for <IP_ADDRESS>: localhost.localdomain
Not shown: 997 closed ports
PORT     STATE SERVICE
443/tcp  open  https
3306/tcp open  mysql
7741/tcp open  scriptview

do you have iptables/pf setup?
The way TC works is by opening a local port, so if you have a firewall rule preventing connections from localhost to localhost, this could happen.

no, the port is 34013. can you click on the link background page (Inactive) under Tamper Chrome (application) and send over the contents of the console.log?
Thanks

@sirdarckcat hmm, this morning the issue seems to have been fixed. the port 34013 is opened (service unknown), and the chrome debug Tamper tab shows the settings as expected.
What I did over the weekend: restart the computer, upgrade packages. Probably one of the 2 solved it.

Awesome! It's strange why this happened anyway. Maybe we should consider sending a message to the app through chrome.runtime to check it the app is installed but binding to the port is what failed.

Same problem here, i'm using Windows 10 (disabled firewall), app v1.3.1, extension v1.3.2. Usually solved by restarting browser. Could it be version conflict? I tried to reinstall both from chrome store, but still got different versions.

Reopening since I think it's something else.
One potential problem might be when two apps installed in two different profiles interact with each other, but that shouldn't cause breaking behavior.
If someone can reproduce this consistently please let me know and reopen this bug.

sorry, I mean please comment on this bug. the bug is already reopened..

Got same issue now, is there any solution now?
I am using Mac OS 10.11.6

@Martin288 does it show you the "Please install the app error"?
what version of the app/extension do you have?

@sirdarckcat yes, it does. I installed the newest versions for both app and extension from chrome app store, this error is annoying. Maybe I need to check if any error message printed in console by the background page of the extension?

@sirdarckcat Feel so strange that it works now! I just uninstall both app and extension, and after that I install the extension firstly, and then click the app link in the extension page, after all installations are finished, it is back to normal now!
FYI, I installed them in reverse order last week and them doesn't work.

:) awesome


Path resolving issue

In core/Codeigniter.php lines 402, 408, there is a reference to this path:
APPPATH.'controllers/'.$RTR->directory.$class.'.php'
Normally, this works, but for users using custom loaders (like I use HVMC), it creates a problem on some machines.
It tries to access application/controllers/../modules/countries/controllers/Countries/index
Which on some machines translate correctly to application/modules/countries/controllers/Countries/index
And on some returns 404
A solution to that is using your own path resolver, something like:
Replace 402-408
function resolve_path($path) {
	$stack = [];
	foreach(explode('/', $path) as $segment)
		if($segment == "..")
			array_pop($stack);
		else
			$stack[] = $segment;
	return implode('/', $stack);
}
$controller_path = resolve_path(APPPATH.'controllers/'.$RTR->directory.$class.'.php');

if (empty($class) OR ! file_exists($controller_path))
{
	$e404 = TRUE;
}
else
{
	require_once($controller_path);

Any way, this is an issue needs addressing, I am confident I am not the first to encounter it

Sorry, but we don't support HMVC. That's a third-party package that you're relying on and this is not an issue at all as far as we're concerned.

It is a loader extension.
If you allow extending the loader, you probably should support relative loading paths.
This is not an HMVC issue, but a loader issue

Um, no ... this is something that you're arbitrarily calling a "loader issue", and you're making quite the stretch to reach that conclusion.
We allow (have provisions for) CI_Loader extensions, which deals with everything but controllers, which is very much intentional.


Make cluster gcn reproducible

Part of #749

Codecov Report

Merging #937 into develop will increase coverage by 0.4%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           develop    #937     +/-   ##
=========================================
+ Coverage     83.9%   84.3%   +0.4%
=========================================
  Files           53      53
  Lines         5101    5103      +2
=========================================
+ Hits          4281    4301     +20
+ Misses         820     802     -18

Impacted Files
Coverage Δ

stellargraph/mapper/mini_batch_node_generators.py
97.1% <100%> (+13.3%)
:arrow_up:

Continue to review full report at Codecov.

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


Accessible alt text suggestion

Hello! The board's markdown snippet was recently updated on the website to include a more descriptive alt, like so:
[![An image of @username's Holopin badges, which is a link to view their full Holopin profile](https://holopin.me/username)](https://holopin.io/@username)

May be worth syncing your <Holopin> component with what's above!
P.S. Love this, great idea.

Awesome, thanks for the heads up! I'll get this published to npm. 😄


Make sure the realeased version tag syncs up with Poetry

Implement a check on CI to make sure each tagged release is the same as the one in pyproject.toml

Fixed with a bash script in the CI action.


STUD-3906 Internal Network Resolution Support

Description

Adds more dns options to allow for internal dns resolution
Bumps fsouza/go-dockerclient

Acceptance Tests
See https://github.com/OneCloudInc/droplet/pull/498

+10

QA +1

@Workiva/release-management-p


native: import directly from shared src instead of bundle

pnpm run dev:shared is no longer necessary
While developing app, changing code in shared will now trigger a (working) reload of the app – no more unexpected undefined
Importing from @tloncorp/shared/dist/* is no longer allowed: imports of those subpackages must now be (1) declared in the exports in shared/package.json, and (2) imported using the alias from exports, e.g. @tloncorp/shared/db.

All packages typecheck and build, but some tests are failing – e.g. packages/shared/src/db/queries.test.ts.

These failures manifest as a cryptic Vitest Rollup error: Error: Expected ';', '}' or <eof>.
I ended up debugging by searching for the offending lines, which didn't show any sort of pattern, except that they were imports from a file in the same package.
Based on a hunch, I ran a dependency cycle checker:
and those are only the cycles reachable from that file. gist
At least one of these cycles (packages/shared/src/urbit/channel.ts -> packages/shared/src/urbit/content.ts) requires large careful code movement to fix (or maybe just merge the two files? I think I don't have context on the organization here)

I don't have a great understanding of why this is newly a problem: my guess is that we were kind of "dynamically importing" the bundled code when running tests previously (i.e. each file in the bundle had a dynamic require to another file in the bundle): since we're now doing "static imports" and need to resolve dependencies up front (to make an esm bundle?), Vitest's Rollup is blowing up at the cycles.

I think the main change in DX around skipping bundling shared was good enough here to open this PR; I'm going to look for workarounds on the dependency cycle issue; but we should really try to remove these cycles, as I think they are preventing more efficient bundling and potentially causing ghostly bugs.

Running dpdm --transform (iiuc, transform TS first, then look for cycles, then report based on sourcemap) makes the cycle list much smaller (just two easily-fixed entries); however, applying this patch (https://github.com/tloncorp/tlon-apps/commit/5aba3bffe2c9b1cf8c5d3c32f7dfccd6f4ded02b) to this branch does not fix the test failures
I don't know why --transform is only reporting this small number of cycles: tracing manually, one can see cycles like api/postsApi.ts -> db -> db/modelBuilders.ts -> api/postsApi.ts

This will probably require a lot of code movement to fix, but I'm trying to minimize the movement to get this PR in. Going forward, I think we should enforce the following dependency layers using @typescript-eslint/no-restricted-imports rules (which I think will also require us to migrate our eslint config to a modern format):
(higher directories can import from lower directories, but not the other way around)

store
api
db
urbit
logic

lmk if that looks right, I obviously have the least experience with this code

Wow I've wanted this forever, tysm so for finally setting it up. I poked at the test failures a bit, and found that it was actually the import of the migration sql file that was failing. I was able to fix the failures by adding assetsInclude: ['**/*.sql'] to the vitest.config.ts in the shared package.
That said, the tests for web are still failing for the same reason. We can fix by applying the same thing to the web vite.config.ts, or by imports around, since web should be able to load what it needs without accidentally including the migrations.

@dnbrwstr what a relief, i can try applying that patch to web after the meeting. curious how you found it!

Literally just commenting out imports until the bundle step stopped failing lmao. Traced it to db/index, then the migrations file, then the sql.

@dnbrwstr pnpm -r test run and pnpm run build:all both succeed with latest changes – any other checks you think I should do?

Nothing I can think of! Looks g2g to me.

looks like this broke the web-new build


Update ObjectPool reference assemblies

This change resolves a build break. I merged a PR that predated the reference assembly change, and thus didn't include that in its PR validation.


Crashing modules, I think due to wifi ssid and pass with spaces in it

Describe the bug
I have an installation with two SmartEVSE's that frequently lock-up. Only a hard power cycle makes them run again.
The wifi router is in the same technical room as the ESP's, both have a strong signal, RSSI of -28 to -32 dBm.
But something that might f*ck things up is a SSID similar to "Hello World 24" and the pass being identical as the SSID.
It happens every few days.
Upload your config
I have no access to the site without a physical visit. I only pull stats over MQTT, no HTTP port forwards for the webinterfaces.
Upload a debug log
N/A
To Reproduce
Steps to reproduce the behavior:
Just wait
Normal mode, 16A, 3F installation with EV meters
2x SmartEVSE as Master and Slave
Expected behavior
No lock ups :-)
Screenshots
Only add screenshots if it adds any information, e.g. when you are reporting a problem on the webserver screen.

Well that's a problem, if the spaces are the cause of your lock-ups, because then the problem would not lie into our firmware but in the underlying libraries we use....
You might try this alpha 3.5.1 version, that uses a lot of different libraries:
26eae13983e.zip
And the obvious question you probably already tried: if you remove the spaces from ssid and password, is the problem solved then?

I've configured the same SSID and password here at home to my two own SmartEVSE's (not in Master/Slave atm) due to one with a Sensorbox mainsmeter and another one using an SDM230 mainsmeter. So let's see if they will also crash.
First I'll try with the current firmware. If crashing occurs I'll try the above fw.

Well that's a problem, if the spaces are the cause of your lock-ups, because then the problem would not lie into our firmware but in the underlying libraries we use....
You might try this alpha 3.5.1 version, that uses a lot of different libraries: 26eae13983e.zip
And the obvious question you probably already tried: if you remove the spaces from ssid and password, is the problem solved then?

@dingo35 is this one built from mqtt branch?

No its from the mongoose2-plus-http-client branch; the hex code is the commit id.

@fluppie Did you check for signal interference --> "technical room" suggests a larger chance of equipment transmitting pulses &  spikes?

No, but it's a out-of-the-box router from the ISP, which are not great for SMB use. We now remotely updated them to 3.5.0 release. I think they were on RC1. So let's see if problems persist or are now solved.
In case issues remain we'll test the above release (which I have running on my own setup with their SSID en pass mimicked).And otherwise we'll propose a WiFi network/router update.

So far so good :). So might be an issue with an older RC? If by the end of this week no crashes occured, then we can mark this one as solved.

Something might have changed in one of the underlying libraries we use...


Add Show Remaining Energy (and Battery Status) into Lite and Full Cards

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Hi Slipx06,
Currently the Show Remaining Energy is not shown on the Lite / Full cards if you have the  battery_status: filled in.
Just looking at both cards and wondering if it could be added in to show both battery_state and show_remaining_energy ?
Expected behaviour
Show both entities, if both have a sensor assigned to provide the data, in the Lite and Full Card
Possible Solutions
In the lite card it appears theirs space to include it (see yellow boxes) potentially:

In the full card, there's these spaces that are left void and could potentially be used ?

Mode
Both
Context / Reason
Handy to know the actual kWh you have left in the battery, versus just a %.

@slipx06 Thanks !

I would love this to be added to the Compact card also, if possible? @slipx06


virtual types

Today I decided to waste some time experimenting with virtual types, which is something we've discussed often before. A virtual type is a formal member alias belonging to a class or interface, that is refined and assigned a value by concrete subclasses. For example:
interface Foo {
    shared formal alias Type;
    shared formal Type val;
    shared [Type] getIt() => [val];
    shared void takeIt(Type it) {}
}

class Bar() satisfies Foo {
    shared actual alias Type => String;
    val = "hello";
    shared void useIt() {
        print("got: " + getIt().first);
        takeIt(val);
    }
}

Now, this is strictly less powerful than parametric polymorphism, since we don't have a syntax for expressing refinements, e.g. something like what Scala has, approximately  Foo { Type=>String; }. So, when referring to plain Foo, we get a wild-carded Type, analogous to Foo<out Anything> with generics.
On the other hand, looking at some of the code in ceylon-ide-common, it strikes me that this could be a more convenient syntax to handle what look like type families we have going on there.
Anyway, after some experimentation, it doesn't look completely trivial from a typechecker / model point of view. But it's certainly not impossible. OTOH, I'm not going to spend any more time on this, at least not for now.

See also #4023.

Should subtypes be allowed to turn a virtual type into a type parameter?
interface X {
    shared formal alias T;
}
class C<V>() satisfies X {
    shared actual alias T => V;
}

This currently gives a “not assignable” error, and I feel like it should work.

FYI, the BETA language solved all the intricacies of virtual types already.

@sol50 Not true. BETA pioneered virtual types, but there were lots of problems with BETA's virtual types, in terms of safety, in terms of expressiveness, and in terms of decidability. In fact, virtual types is still an open research area.
Regarding decidability, I believe the restrictions @gavinking imposed makes this form of virtual types decidable. In particular, not allowing refinements prevents virtual types from introducing the infinite digressions that happen with Scala and with wildcards.

Should subtypes be allowed to turn a virtual type into a type parameter?

I don't see why not.

This currently gives a “not assignable” error, and I feel like it should work.

Yeah, look, this is totally incomplete and experimental. And I don't really have any plan to finish it. I just wanted to get a feeling for how hard it was.

Regarding decidability, I believe the restrictions @gavinking imposed makes this form of virtual types decidable. In particular, not allowing refinements prevents virtual types from introducing the infinite digressions that happen with Scala and with wildcards.

Yeah, the system I'm thinking of is something that can be pretty directly re-expressed using parametric polymorphism, so I don't think it would cause huge problems in terms of decidability.
And I wouldn't introduce refinements like in Scala. If you need refinements, then regular generics is the thing you should be looking at.

@RossTate I'm not aware of any such problems. Links?


Integrating Sym with Core: Network Architecture Layers

Modulus Pull Request
Description

Closes https://github.com/NVIDIA/modulus/issues/167
Checklist

[x] I am familiar with the Contributing Guidelines.
[x] New or existing tests cover these changes.
[x] The documentation is up to date with these changes.
[x] The CHANGELOG.md is up to date with these changes.
[x] An issue is linked to this pull request.

Dependencies

/blossom-ci

Quick comment - we should probably also include tests for these layers

/blossom-ci

This is just a cp from Sym right? Looking through the models I don't see anything wrong.

/blossom-ci

/blossom-ci

Quick comment - we should probably also include tests for these layers

Thanks for the comment. I added unit tests


Sui 101, Access On-Chain Time - test fails

As title suggests the test on the 'Sui 101, Access On-Chain Time' fails. This is due to the create_for_testing returning a clock object that is not handled, doc suggests that this helper function did share the object too, instead they are now separate functions.
solutions are:
destroy this object with 'clock::destroy_for_testing(clock)'
let ts = test::begin(@0x0);
let clock = clock::create_for_testing(ts::ctx(&mut ts));

clock::increment_for_testing(&mut clock, 20);
clock::increment_for_testing(&mut clock, 22);
assert!(clock::timestamp_ms(&clock) == 42, 0);

clock::destroy_for_testing(clock);
ts::end(ts);

share the object with 'clock::share_for_testing(clock)' helper function. requires 2 transactions.
let ts = ts::begin(@0x0);
{
    ts::next_tx(&mut ts, ADMIN);
    let clock = clock::create_for_testing(ts::ctx(&mut ts));
    clock::share_for_testing(clock);
};
{
    test::next_tx(&mut ts, ADMIN);
    let clock = test::take_shared<Clock>(&ts);

    clock::increment_for_testing(&mut clock, 20);
    clock::increment_for_testing(&mut clock, 22);
    assert!(clock::timestamp_ms(&clock) == 42, 0);

    ts::return_shared(clock);
};
ts::end(ts);

new to sui and move, may have missed something or there is a more concise way of writing this :)

@rwstapleton0 thanks for reporting this issue!

Thanks for the report @rwstapleton0 !  I've put up a fix for the docs here: #15248 (it's slightly different from what you've suggested because the issue was that the docs went out of sync with an existing test in the codebase, linked below).
https://github.com/MystenLabs/sui/blob/19c31ab9f41beac36c3a5c3e6bd60268b29a5ef4/crates/sui-framework/packages/sui-framework/tests/clock_tests.move#L10

@stefan-mysten @amnn thanks guys, loving sui, keep up the great work :)


python3 install scripts not up to date with python 2

install3.py in doc/install trails install.py somewhat
(but needs to be tested)

a single script would obviously be easier to maintain, especially if it would also be tested...

yes and yes, @isazi is working on this!

I think this is done, right?

not done yet (but less important now)

Is this still relevant? I think it can be closed...

I think it is: the python2 script can be removed, but the prerequisites in the python3 script need to be updated (older)..its not high priority though..

we moved to python3 fully and the install scripts where fixed


Delete manifests/j/JanDeDobbeleer/OhMyPosh/7.59.5 directory

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.2 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@wingetbot run

@wingetbot run


feat(Formatters): added hyperlink and maskedLink

Please describe the changes this PR makes and why it should be merged:

Added maskLink
Added hyperlink

The "title" bit from hyperlink comes from Digital Guide.
Status and versioning classification:

This PR changes the library's interface (methods or parameters added)

Codecov Report

Merging #4 (2b22869) into main (97cf337) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           12        14    +2
  Branches         4         5    +1
=========================================
+ Hits            12        14    +2

Impacted Files
Coverage Δ

src/messages/formatters.ts
100.00% <100.00%> (ø)

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 97cf337...2b22869. Read the comment docs.


fix(ui-shell): add aria label to sidenav with complimentary landmark

Elements having a WAI-ARIA complementary role such as <aside> used in our sidenav must have a label specified with aria-label.
This PR gives the <aside> element in the sidenav an aria-label="side navigation" silencing the error thrown by our automated test and providing a more adequate description for our users.

I I pivoted with my approach and after some research decided to nix the wrapping <aside> element altogether. This should simplify things. I moved the wrapping className attribute down to the formerly descendant <nav> element which seemed to work fine in the storybook.
That said, I'd give this one a close inspection just to make sure I'm not inadvertently breaking something.


refactor(transformer/react-refresh): unwrap BindingIdentifier::symbol_id

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#6817  👈
#6816
#6815
#6814
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on  Graphite


Conforming to current jasmine api. Passing needed test values

I started to implement https://github.com/whatadewitt/yfsapi/issues/41 and wanted to see if the existing tests still passed, but they weren't running.
Wanted to get them working for before adding the feature. Just a few things off, comments inline.

I'll take a look at this tonight... funny thing is I actually made a bunch of changes locally but didn't merge them in yet as I still had a few things breaking... thanks!

Yeah, those changes you had were some of it. Still need to nock out some endpoints and provide a callback


Add krakendesigner to the docker-compose file

Thanks for the contribution @nemenemsrouge

you're welcome!
I just played a little bit with krakend, it looks very nice!


cleanup: removed builderrepo option pointing to my dockerhub.

What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area tests
What this PR does / why we need it:
#244 added a builderrepo option poiting at my dockerhub repo to tests, to allow them to pass.
Clean it up now that we have falcosecurity images.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Will be rebased once #253 is merged and all images are pushed ;)

@dwindsor ci green! :green_circle:

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: dwindsor, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,dwindsor]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Fixed propensity example

As explained in #54 we want to support some method of passing "fixed" propensity scores. This PR does not change any in the implementation but rather shows how one can do it with the existing implementation creating a custom model.
Rendered version
Checklist

[ ] Added a CHANGELOG.rst entry

Would using DummyClassifier also work? With strategy prior, this spits out the empirical propensity score (so this isn't strictly a 'known' pscore estimator but in moderate-to-large samples will be basically accurate).
The econml analogue works well.

Absolutely - great point!


[knative] Update mirroring tutorial

Is your feature request related to a problem? Please describe.
When executing the following step of the tutorial:
kubectl apply -f $ITER8/samples/knative/mirroring/routing-rules.yaml

I get this warning:
Warning: using deprecated setting "mirrorPercent", use "mirrorPercentage" instead

We should update routing-rules.yaml to avoid this.
Expect no warning when running the tutorial

I tried doing this... and found that Istio's documentation is not working as promised (I am not sure if mirrorPercentage is actually implemented ... they might have documented it a bit too early!)

I tried doing this... and found that Istio's documentation is not working as promised (I am not sure if mirrorPercentage is actually implemented ... they might have documented it a bit too early!)

Oh well.. Guess no point in keeping this issue open then.


add open table designer event telemetry

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 41.482%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
26894

Relevant Lines:
58803

💛  - Coveralls


New package: CodeAI v1.1.1

Registering package: CodeAI
Repository: https://github.com/GenieFramework/CodeAI.jl
Created by: @essenciary
Version: v1.1.1
Commit: 6f1ac86cbc0b933d6fa763c304dce1f57c42aac8
Reviewed by: @essenciary
Reference: https://github.com/GenieFramework/CodeAI.jl/commit/6f1ac86cbc0b933d6fa763c304dce1f57c42aac8#commitcomment-110981907
Description: AI code generator based on OpenAI

name seems super general, but the content is specific to OpenAI, can we somehow represent that in the name?
[noblock]

@Moelf I'd like to add support for other models in the future, as we experiment with them (both via APIs and self hosted).
[noblock]


Compression Improvements

Hi,
just found your project and this looks rather interesting.
Here's a couple of improvements/changes that would be amazing if they could be added:

[ ] Explode nested jars and recursively repack them. however, in those nested jars only ever STORE files. then add DEFLATE compression at the final level. Separate issue: #3
[ ] Sort files by their extension. When files of the same type are beside each other in a nested jar file, it will be able to be better compressed. (based on some rudementary testing, this combined with the previous item, can drastically improve the compression at times) Separate issue: #3
[ ] Ability to specify oxipng level
[ ] Recompress nbt files (they are just gzip compressed, so uncompress then attempt to recompress at level 9), then STORE them. Separate issue: #4
[ ] Don't include zip entries for the directories. fun fact: you don't need zip entries for directories!

Based on a quick little command I ran, I recorded the frequencies of different file types present in jar files.
The command used was
mkdir ./tmp
# copy a bunch of jars into this temporary directory
for i in *.jar; do
    unzd "$i"
done

find . -type f \( -iname '*.jar' -o -iname '*.zip' \) -print0 \
    | xargs -0 -n1 unzip -qqql \
    | perl -0777 -C -pe 's/.*?\/?(.*\.(.*))?/\2/g' \
    | sed '/^$/d' \
    | sort \
    | uniq -c \
    | sort -n \
    | awk '{s+=$1; print $0} END {print s}'
# note: the last line is the total count of all files. this isn't by any means perfect, but whatever.

Here are the results from that:

% of files in jar
file extension

51.13%
.class

31.34%
.json

10.01%
.png

2.5%
.nbt

1.69%
.ogg

0.51%
.MF

0.4%
.jar

0.28%
.mcmeta

0.23%
.xdelta (I have no clue what this file format is)

0.23%
.md5

0.21%
.properties

0.14%
.at

0.1%
.txt

0.1%
.accesswidener

0.09%
.xml

0.07%
.md

0.06%
.js

Based on this, I think it might be reasonable to consider adding optimization processes for the following files:

[ ] .ogg files. These can possibly be optimized using ffmpeg. (you could possibly consider decreasing the quality to increase compression. a cli arg for this would be nice.) (there seem to be a couple of crates that provide ffmpeg support, so those could be considered)
[ ] .nbt files. They are just gzip compressed binary data, so uncompress then recompress with level 9, then STORE them.
[ ] .properties files. Blank lines can be stripped from these. (it doesn't make up a large amount of the files, but it's an easy addition)
[ ] .accesswidener files. Blank lines can be stripped from these, as well as any lines starting with a hash (#) are comments. (it doesn't make up a large amount of the files, but it's an easy addition)

It's probably not worth it to consider additional compressors for files not in that table as they appear so infrequently it just won't make much of a difference.
Do note however, that this is not based off of the size of the files in the jar, rather just their count. may make something basic to calculate this using the size later.

To elaborate on

Explode nested jars and recursively repack them. however, in those nested jars only ever STORE files. then add DEFLATE compression at the final level.
Sort files by their extension. When files of the same type are beside each other in a nested jar file, it will be able to be better compressed. (based on some rudementary testing, this combined with the previous item, can drastically improve the compression at times)

here are a few jars which had significant gains from this (using Detonater) (this was after having been processed with mc-repack):

Mod
Version
% saved
Size after mc-repack
Size after detonater

Fabric Language Kotlin
1.10.10+kotlin.1.9.10
34.83%
6.40M
4.17M

Farsight
1.20.1-4.1
33.84%
361.15K
238.92K

Boat Item View
1.20.1-0.0.5
33.57%
997.18K
662.36K

Quartz Elevator
2.2.5+1.20
32.78%
1019.87K
685.46K

Appleskin
mc1.20.1-2.5.1
32.35%
1.02M
699.90K

Cardinal Components API
5.2.2
31.71%
215.76K
147.34K

Dawn
5.0.0
29.11%
1.34M
966.34K

Fabric API
0.90.7+1.20.1
28.13%
1.96M
1.41M

BeaconOverhaul
1.8.4+1.20
27.11%
355.19K
258.89K

Blur
3.1.0
26.30%
155.12K
114.32K

Highlight
1.20-2.0.1
25.92%
274.70K
203.48K

Graves
3.0.0+1.20.1
25.80%
1.76M
1.31M

Create
0.5.1-d+mc1.20.1 (Prominent fork)
9.13%
22.01M
20.00M

LibZ
1.0.2
21.56%
2.00M
1.57M

Industrial Revolution
1.16.5-BETA
7.73%
4.65M
4.29M

CC Tweaked
1.20.1-fabric-1.108.3
10.85%
3.14M
2.80M

Tom's Simple Storage
1.20-1.6.5
23.58%
1.38M
1.06M

Zenith Attributes
0.0.6
24.44%
6.61M
4.99M

so, there are definitely significant savings to be had here by doing this.
and, I didn't even run this for all my mods, just a smaller subset, as detonater is kinda slow lol
the mods that primarily benefit from this change are the ones which bundle many libraries in them.

Thanks for the details! Your proposal will definitely help improving mod(pack) sizes.
I will work on optional directory skips in ZIP/JAR files. This removal will already make the mods smaller. This would make things simpler because the library (mc-repack-core) also works with a file system, where directories must be created before saving a minified file.
The new file types you mentioned can be easily added for minification or recompression. I was testing mainly on Forge mods so I may overlook file types like .at, .accesswidener or .md. There is a lot of mods to check and I must determine the most used file formats to be supported.
The jar-in-jar repacking situation is very tricky. It may need a completely new minifier with customizible options. I will try to make it possible.
New separate issues will be made. Thanks again for using MC-Repack!

The new file types you mentioned can be easily added for minification or recompression. I was testing mainly on Forge mods so I may overlook file types like .at, .accesswidener or .md. There is a lot of mods to check and I must determine the most used file formats to be supported.

the mods I used to generate that list were mainly fabric mods, as I just used the modpacks on my laptop. I have a few more instances on my desktop, so I can re-run it on there when I get back home.

also, I don't think that .jpeg/.jpg, .webp, or .avif files are particularly common in mods, as they mostly stick to pngs, however you could possibly add a compressor for those, doing smth similar to what rimage is doing. Assuming it's not a large amount of work and doesn't bloat the binary too much. tbh, if it's anything more than like 30 mins it's not worth it lol

The jar-in-jar repacking situation is very tricky. It may need a completely new minifier with customizible options. I will try to make it possible.

you could do smth similar to the following:
have a method called for jars called smth like repack_jar, which takes an optional parameter, deflate, defaulting to true. then, if you're already in a jar, just invoke it with false lol. that's similar to detonater did (when not in a jar, when in a jar), though unsure how feasible this is given your code structure. may need to pass some kind of a context around indicating if you're in a jar or in an fs.
but for the sorting, you could just sort all of them.

Also, I'm interested in using this as part of a gradle plugin I'm making (I was originally planning to do all these things myself, and was looking at making an oxipng kotlin/java jni wrapper, but then I found this and this is honestly basically what I need)
would you be willing to work with me to make a jni wrapper for this (not asking you to do it all on your own lol, bc that's cringe), so that instead of having to bundle the cli & invoke the cli, I could just use it via jni.

yo, unsure if you saw this or not bc it was a weekend, so imma bump it lol

Sorry for late response.
I would rather not make a library for a specific environment. I will keep maintaining CLI and core library. There is another project I am working on and mc-repack may not receive a release for a couple of weeks.

Sorry for late response.
I would rather not make a library for a specific environment. I will keep maintaining CLI and core library. There is another project I am working on and mc-repack may not receive a release for a couple of weeks.

wdym a library for a specific environment?
also, no worries, take your time 👍

I meant JNI "glue" for JVM.

I meant JNI "glue" for JVM.

yeah, I just mainly want to make a jni interface bc it's a lot more convenient to have this applied as a gradle plugin rather than a cli library


Fix useful-not-found-page console error

The commit variable may be undefined, resulting in:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'oid')
    at getLatestCommitToFile (refined-github.js:15213)
    at async showAlternateLink (refined-github.js:15265)

Test URLs
https://github.com/refined-github/refined-github/blob/d77b5ef46be8e935cf032184da94152e1dc660fa/source/features/rgh-linkify-features.ts
Screenshot
N/A

When is that the case?

Non-existing file

Like, never existed? I suppose that the commit would exist only if the file existed at some point.
If that's the case, this is good to go

Like, never existed?

Right.


add missing package.main entry

Importing through npm system and using browserify fails without this as the entry point does not match those checked by node here and so needs to be provided manually.

Coverage remained the same at 100.0% when pulling f081496e87fad11c5722604af77cb74baf0b56e1 on brokenalarms:master into 915a7eeeacf40b090938e97cb447164e5f61840b on jirikavi:master.


Access token of logged in user

I'm using Auth0 to allow users to login via GitHub.
I now need to get at the OAuth token from GitHub so I can make authorised requests to the GitHub API. I think maybe useAuth could expose this token too, if it can? (I'm not super familiar with auth0 so sorry if I'm heading down the wrong path here).
This library made auth so much easier so thank you for that!

@jackfranklin Just in time. I also need to obtain the id_token to add into the headers of my requests to graphcool.
Would be nice to document this and expose the token.
I wonder if the cookie that was stored and parsed into a token? Ill look into that.

@jackfranklin @bluematter
I haven't tried it, but you might be able to accomplish that by creating an Auth0 Rules function. The video in the link explains how to implement custom logic such that, "...you could easily change this to query one of your databases or make an API call to an external server as needed."

@bluematter @jackfranklin I've made some changes to a local version of useAuth that exposes both id_token and access_token; I'll get a PR up soon for discussion.

@jackfranklin @NWRichmond @puregarlic @bluematter just published version 0.4.0, which exposes the full authResult object which contains your accessToken and idToken ✌
https://github.com/Swizec/useAuth#users-access-tokens


Passing null bytes to instantiateImageCodec crashes engine

I haven't verified that this is the actual cause, but I just got an engine crash in a test with the following final words:
Shell: ../../third_party/skia/src/core/SkData.cpp:104: fatal error: "assert(src)"
Shell subprocess crashed with unexpected exit code -5 after tests finished.

...and I suspect the cause is that I was passing null bytes to instantiateImageCodec.
We should make that throw an exception rather than crash.

@Hixie can you post a repro project?


Gesture overlay and handling

Hey! Any way to add custom gesture handling and on zoom to display something like this:

Found one leaflet example, wondered if it would be useful to port some way? https://github.com/elmarquis/Leaflet.GestureHandling

You will have to implement it yourself - Openlayers / rlayers have the tools to do so - but do not have ready to use classes. Disable all the default interactions on the map and define your own interactions - you can check the constrained view example and the add/draw examples.

Yeap, figured. Already implementing - seems like it could be nice addition and perhaps if i finish my one i could send you a draft so that it could be added here?

There are two parts to such component - redefining the zoom interaction - which is already possible - and implementing a beautiful text effect to display the message - which is currently missing.
A component that does nothing except to redefine the zoom interaction won't be very useful - since you will still have to disable all the default interactions to include it. Displaying the message is the real deal. I will gladly accept a PR for this.


Suppress PlotBelowHorizonWarning messages in Sphinx build

So far we had a clean (warning-free) Sphinx build, but since yesterday we have a bunch of:
WARNING: PlotBelowHorizonWarning: Target "Algol" is below the horizon at time: 2457235.75 [astroplan.plots.sky]

Full log: https://gist.github.com/cdeil/570c00c055a414b095a9
Personally I don't like packages that emit warnings for things that occur all the time in normal usage and would remove the warnings here. But I think others like to have them in?
If so, could someone please suppress the warnings in the Sphinx build?

@cdeil Does this simply require catching the warnings in the code that generates the sphinx plots, i.e. with warnings.simplefilter("ignore")?

Does the warning occur in "normal usage" even in cases where one gets a correct output plot?
If so, that's not OK, let's fix this by removing the warning.
But to answer your question: yes, you can filter out warnings in the Sphinx build. (but it's not a good idea, our code and examples should be correct, i.e. there shouldn't be a warning that needs filtering).

In normal usage, you should only be plotting positions of things above the horizon. If the user tries to plot the position of a target that isn't above the horizon, nothing will be plotted -- that's when the warning is raised, to show the user that nothing is being plotted because there's nothing to plot. I think the examples have instances where shortcuts are being used to make plots that generate targets below the horizon, so I'll filter them out in the sphinx build.

In normal usage, you should only be plotting positions of things above the horizon.

That means extra work for the user. Before calling plot, always write some code to select just the targets above the horizon. It's much more convenient to just plot all and have those below the horizon not show up. I've never gotten a warning from matplotlib that I'm plotting something outside limits, it's just silently ignored, which is the behaviour I'd prefer here also.

@eteq / @jberlanga -- any objections to turning off the warnings in plots by default? See @cdeil's comments above.

I think it makes sense to have the default be no warnings, but it would be nice to have the option to get the warnings.

It'd be great to hear from @eteq and @jberlanga before merging #124 so I can feel out whether or not to sneak suppressing this warning into that PR.

Before calling plot, always write some code to select just the targets above the horizon.

@cdeil : Do you mean the user should do this or we should be doing this for the user?
Over the summer, @eteq and I discussed the idea of throwing out the times (& thus corresponding alt/az coordinates to plot) corresponding to an object being below the horizon.  I don't remember the exact reason why we thought it was a bad idea at the time.
For me at least, without the warnings (or some extra info on the plot itself), the skyplot can be misleading since we don't timestamp the chronologically first/last visible position of each object.  Since each object's positions are plotted independent of all other objects, and of course each rises/sets independently as well, you can't a priori guarantee that you are seeing all objects during the exact same time window (unless you've done this legwork outside the use of plot_sky).  This was my reasoning behind the warnings.  There's only so much you can do to discourage naive usage/interpretation of the plotting functions and their output, but all the same, I agree with @ejeschke that having the option of being warned in some way (e.g., warnings_on=False by default) would be fantastic.

Before calling plot, always write some code to select just the targets above the horizon.

@cdeil : Do you mean the user should do this or we should be doing this for the user?

I think documenting how to do this selection / advertising users add this to their scripts is a bit tedious, no?
@bmorris3 – Can you make a PR with your preferred solution to force a decision on this issue?
I think the options are:

Remove PlotBelowHorizonWarning
Suppress PlotBelowHorizonWarning in each docs example that currently plots targets below the horizon.
Select only targets above horizon in each docs example that currently plots targets below the horizon.
Suppress PlotBelowHorizonWarning globally in docs/conf.py

Maybe I missed some ...?
FYI: My preference would be 1., I'm OK with 2. and 3., and I think 4. is not OK (because then users will get the warning, but we don't explain to them why in the docs and even "cheat" ourselves to get rid of the annoying warnings with some global, unseen setup code.

In 429350a, I've taken the option based on @ejeschke and @jberlanga's suggestion. I've turned the warning off by default, but there's a keyword argument warn_below_horizon which can be set to True to raise warnings which someone somewhere might find useful. This way no warnings are raised when building the docs, and the warning isn't fully removed for users who might like it.
If that's sufficient @cdeil, we're good to merge #124 when the tests pass and to close this issue.

:+1:

@cdeil Tests are passing, I'm merging and closing this issue.


[feature request] tf.matrix_triangular_solve misses unit_diagonal= argument

Hello,
It would be useful to allow tf.matrix_triangular_solve have unit_diagonal= kw-argument and treat matrix argument as having unit diagonal.
Sure, the same may be obtained by composition tf.matrix_set_diag and tf.matrix_triangular_solve. However, additional assignment here seems to be inefficient. Solving triangular matrix involves quite simple formulae where diagonal elements of matrix are presented explicitly.

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


enhance: development flow

This PR adds some development tools to ease the development and maintenance of this library (coverage reports, documentation, versioning, etc.). Find each of these new functionalities described in the sections below.
Improve overall unit testing coverage
Added some additional tests. Now we are at 84% coverage (before that we were at 71%). We should set a threshold, so we ensure that we are always above that.
Improve code style
Minor styling issues raised by flake8, mainly docstrings and other minor coding lines.
Documentation
I created folder docs which will contain all the documentation config and output files. I have used Sphinx, which has been added to the dev dependencies.
I also have set up a readthedocs.org page for the documentation: https://docs.owid.io/projects/datautils. Currently only a the page for the branch feature/development is operative.
The idea is that all the docstrings in the source code are rendered in a human-friendly format. Additional pages can be created using reST or markdown. The documentation at https://docs.owid.io/projects/datautils is updated with every commit on the branches that we choose (e.g. main), and also tagged versions that we select.
Note that this is in a very early stage. Also, the fact that we use poetry and do not have a requirements.txt file makes the readthedocs.org configuration a bit more tricky (https://github.com/readthedocs/readthedocs.org/issues/4912).
Versioning
The version of the package appears in many files. To this end, I have added bumpversion as a dev dependency. It eases the process of maintaining all these annotations in sync.
I incorporated a command to the Makefile, so you can now run
make bump [part]

where part can be "major", "minor" or patch (based on SemVer 2.0.0).
Reports
You can now generate reports that provide an overview of the code style of the library and the coverage of the unit tests:
# Generates .report-linting directory with code style report (HTML)
make linting

# Generates .report-coverage directory with unit testing coverage report (HTML)
make coverage

Coverage tests
Set up a space in Codecov to host our coverage reports. Added a step to the CI/CD pipeline to upload the coverage to Codecov.
Bow, for PR we should get a report on how well we are doing in terms of coverage; specially compared to the base. If the test coverage of the PR is lower than the base, PR will be rejected (there is some tolerance).
In the future, it'd be nice to add this coverage check to the pre-commit config, if possible.

@pabloarosado Thanks! I think once this is merged, we can have a meeting where I do some demo on how to use the various tools.
Once we consolidate this workflow, I think it makes sense to create a template repository so we can import this setup easily in other projects.


Clicking connection or group icon only half-selects node

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Windows 10 64-bit, Godot 3.0 Alpha1, NVIDIA GTX 1060
Issue description: Steps to reproduce:
Clicking on a node's connection or group icon in the Scene panel highlights the node as selected, and is visibly selected in the editor, but the Inspector and Node panels still show properties and options for the previously selected node.

This was fixed in a80371ce0.


how does gatsby comunicate with strapi via graphql, if strapi has no graphql instaled?

how does gatsby communicate with strapi via graphql, if strapi has no graphql instaled?
i read the docs and now how it creates the schemas for the graphiql, but when you build and deploy to prod, how does gatsby communicate with strapi if strapi has no schema declared?
i am very confused

It's because GraphQL requests you do in Gatsby request the Gatsby GraphQL interface.
And then Gatsby fetches the needed data to Strapi via the REST API.

so is just simulating graphql support?
so the plugin, makes a request, analyzes the data, and then create the graphql schema?
is this correct?

Yap


_filter implementation

Hello James - this is the pull request for the initial implementation of the _filter search keyword.  Let me know if you need additional information.

Anthony Sute

Note: I am starting the merging process on this today.


Add migration playbook to support migration from version 1.x to 2.x

Version 2.0.0 of this role introduced a breaking change, namely swapping out anonymous docker volumes for named ones. This leads to data no longer being available on the instance and requires an additional migration step.
The migration step should also be documented within the readme.

fixed with 0b17f46


Add :db/txInstant constant to Attribute

:+1: (i just searched for this) though not sure Attribute is the right home for it.


Facet "more>>" option not working

While testing Valkyrie, I tried to open additional facet options in the catalog search, and under every facet, the more>> button fails to respond.

Testing Instructions
Go to the catalog page https://adl.s2.adventistdigitallibrary.org/catalog?utf8=✓&search_field=all_fields&q=
Open any facet and click the more>> option

[ ] Facet modal pop-up appears

TODO: Remove dog biscuits from catalog controller

QA RESULTS: :warning: PENDING
tested on STAGING

Works as expected when I tested in staging.