Vuejs migration

Added a generic backbone view 'VueComponentView.js' which will render all the Vue Components. It is similar to RootComponent but the options in the constructor will come from the Router.
Modified Router.coffee to use this generic backbone view to render the vue components.
Added 2 base templates (base-empty and base-flat-empty) to use for pages without header and footer.

This will allow to directly use the vue component in the router without the need to create a backbone view with each Vue component.
TODO: Documentation for how to create new pages using VueJS given this routing setup. Meanwhile, I have added an example of creating a vue component like this in this PR (VueComponentExample.vue) - will remove it before merging.
To test the example vue component, navigate to 'localhost:3000/VueComponentExample/1'

Thank you for the review.
VueComponentView is similar to RootComponent, but is able to accept arguments for propsData, base template etc so that we can use it directly in the router.
We want to deprecate RootComponent in favor of this going forward, as we do not want to create a new backbone view with every Vue component going forward.

Update: If we want to use a vuex store module for a vue component page, the vue component should register it with a unique name instead of using the generic 'page' module and then unregister it before navigating away(when no longer needed).
Example here: https://github.com/codecombat/codecombat/blob/74d698a086b99facc7350f2651f5e205427585fa/app/views/VueComponentExample.vue
Will also add it in the documentation.


Add SUV Coupe BodyType

Fixes skodaconnect/homeassistant-myskoda#18

Lgtm, but i think we should test seperate vehicles, not all of them in one go.
Seperate vehicles at seperate configurations/software likely have different capabilities.

I agree but this is the trace I got from https://github.com/skodaconnect/homeassistant-myskoda/issues/18 so figured I might as well include it. As we get more traces from various vehicles and endpoints we can refine the tests.


Added Code to skeleton

Added the hover takeoff and land functions in the drone fsm file
Created a comm_node file for high level code execution based on skeleton from the ROB498 repo: https://github.com/utiasSTARS/ROB498-flight/blob/main/instructions/guides/challenge_task_2/code/comm_node_skeleton.py

Please accept


Build on macOS

It shouldn't be harder than installing Gtk3 dev and gintrospection packages on macOS, which should install all its dependencies (Gdk, GLib, ...), and to install Crystal. They all seem to be available in homebrew for example.
Once installed, it's a mere make build CRFLAGS=--release to build a ready-to-use executable.

I don't have a macOS machine. Help is welcomed!


Error executing lua callback

https://i.imgur.com/hwPCwL3.png

Updating nvim-treesitter/nvim-treesitter plugin and then TSUpdate fixed it for me.


Module config

I am trying to use a module config to configure some of my modules, like in this example:
// require-config.js
var require = {
    // ...
    config: {
        'main': {
            apiKey: '1234'
        }
    }
};

// main.js
define(['module'], function(module) {
    return module.config().apiKey;
}

I expected that the module configurations were inlined in the cleaned code. However, it seems that it's not supported in amdclean:

The require config is not passed to amdclean so it obviously won't figure out the module configs by itself. If there's a way to do that, it's not documented.
But, astonishly, amdclean seems to generate an empty object to bind the module parameter, as if there was some code supporting that.

Can you either:

add support for module configs
explain me how to make module configs work

In fact, it works,I forgot to pass the config in the amdclean config.


Criteo DLRM PyTorch Implementation

Many codes are directly copied from PR #89.

Added Pytorch implementation for Criteo1tb (following the Jax code).
Unified input pipelines implemented and forward pass working (with a single GPU).
Unit tests for model comparison implemented and confirmed its passing.

TODOs:

I am working with @rakshithvasudev to see if it meets the target accuracy with JAX.
Need to see if the implementation works with multi-GPU.

Yes we're working on this right now. Will keep you posted :)
Thanks!

@runame Update: we hit the initial loss with the same order of magnitude as the JAX code and confirmed that the loss increases.
There seems to be a problem with multi-GPU, @rakshithvasudev reported deadlock. We need to look into the deadlock issue.

Thanks for the update! At what point does the deadlock occur?

In the input pipeline you first batch using the per_device_batch_size and then num_devices (here and here). I'm not sure about the behavior of this function, but shouldn't we first batch using the global_batch_size? Then we could also use the data_utils.shard_numpy_ds afterwards, as for WMT (or probably also batch using num_devices, like it is now).

@znado Thanks for the comments! The current version has a lot of commented out stuff as it was under development. I will clean it in the next revision.
@rakshithvasudev has some good news to share. On a single GPU, we reach the target val loss with this version of the code. Regarding, the multi-gpu problem, on @rakshithvasudev's hardware, he is also getting the same (deadlock?) issue on ogbg workload, which uses the unified pipeline. @runame, did you previously observe any issue on ogbg workload?

Here is the error for OGBG : https://github.com/mlcommons/algorithmic-efficiency/issues/149
It would be worth it to verify it criteo pytorch runs with 8 GPUs in your env @runame, we know ogbg ran without any issues in your env.

Sure, I'll try to run it on my setup. Where can I get the data for the Criteo workload?

Great! Thanks.
Here is the link to dataset:
https://ailab.criteo.com/download-criteo-1tb-click-logs-dataset/
Once you download and extract it, you want to use the Linux utility “split”
on these extracted files in create multiple files where each file has 5
million lines.
These files are needed by the tf data pipeline.
Thanks
Rakshith
On Sat, Oct 1, 2022 at 11:35 AM Runa Eschenhagen @.***>
wrote:

Sure, I'll try to run it on my setup. Where can I get the data for the
Criteo workload?
—
Reply to this email directly, view it on GitHub
https://github.com/mlcommons/algorithmic-efficiency/pull/146#issuecomment-1264415042,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADGHVY6W3LRKCLLX6FEG3QDWBBR5BANCNFSM6AAAAAAQXNRGIY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Using the wrong shape when initializing the variable to receive a broadcasted tensor can actually result in a deadlock (which is why I asked about it here ;)), did fixing it resolve the issue? Didn't get to try running it on my setup yet, but have downloaded the data.

@runame Thank you! Yes, we just fixed it and was running the code. It does not have a deadlock issue anymore. @rakshithvasudev can maybe update us to see if the target loss is achieved with multi-gpu.

Awesome! Let me know if any new issues with DDP occur.

Training with multiGPU, loss is improving!
I1003 21:30:55.437373<PHONE_NUMBER>99104 submission_runner.py:295] 26.69s  1       {'train/loss': tensor(0.1785, device='cuda:0'), 'validation/loss': tensor(0.1912, device='cuda:0'), 'test/loss': tensor(0.1939, device='cuda:0')}
I1003 21:30:56.239438<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.240317<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.241438<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.242493<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.242469<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.242682<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.242746<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:30:56.242919<PHONE_NUMBER>99104 distributed.py:977] Reducer buckets have been rebuilt in this iteration.
I1003 21:37:40.322416<PHONE_NUMBER>99104 spec.py:258] Evaluating on the training split.
I1003 21:37:48.770949<PHONE_NUMBER>99104 spec.py:270] Evaluating on the validation split.
I1003 21:39:10.507946<PHONE_NUMBER>99104 spec.py:285] Evaluating on the test split.
I1003 21:40:33.161107<PHONE_NUMBER>99104 submission_runner.py:295] 627.14s         143     {'train/loss': tensor(0.1131, device='cuda:0'), 'validation/loss': tensor(0.1299, device='cuda:0'), 'test/loss': tensor(0.1370, device='cuda:0')}

I can confirm this code trains with 8 GPUs without deadlocks.

@runame Thanks for the comments again. The new commit should address the above issues.

Perfect, thanks!

looks fantastic to me!


Fix Makefile output of the different targets when using numbers

📖 Description
Fix the Makefile parsing regex to support numbers when listing the different targets.
🦀 Dispatch

#dispatch/devops

🎉 Résultat

Avant
Après

🦀 Requesting reviewers for this pull request:

@charlesdemers (contributor with 5 commits in the last 90 days and 100 commits overall)
@lucbernard (expert reviewer for the devops stack)

🦀 Mentionning users for this pull request:

@bducharme (learner reviewer for the devops stack)
@garno (learner reviewer for the devops stack)
@renatorfr (learner reviewer for the devops stack)


add iso week for now method

给now方法加入了iso8601标准的week

Changes Unknown when pulling 96974e522743a25a297f1783b938b189e859b14f on fr0m:#253 into ** on nuysoft:refactoring**.

Changes Unknown when pulling ce92e3f1b8356701dfeaaed4e173bfa1995248c0 on fr0m:#253 into ** on nuysoft:refactoring**.

Changes Unknown when pulling 1579e1d7d98416bdf95a17881ca80ee09eb2f170 on fr0m:#253 into ** on nuysoft:refactoring**.

Changes Unknown when pulling 7553bbb42f5d7a9d0c862ca923fb400d02721a38 on fr0m:#253 into ** on nuysoft:refactoring**.

Changes Unknown when pulling bce92b1e7b726a06f09570729ce74eb7100a3265 on fr0m:#253 into ** on nuysoft:refactoring**.


Inconsistent behavior while checking if nym is already taken

https://user-images.githubusercontent.com/27162016/230557133-a3a57655-cd42-4684-a4e0-5a422ba2c45b.mp4

Probably same cause as #213

If it is like #213 it's caused by multiple query requests being issued and their responses returning out of order.
In this case, fixing would be either

cancel any pending requests when a new one is issued, or
delay/debounce requests until the stacker stops typing

I think I’d like to work on this one. My thought was to take the debounce approach, less unnecessary server load is always a bonus.
Thoughts on debounce period? 300ms? 500?


Runelite locks /dev/snd

When I start Runelite before any other application, it locks my sound devices.
Because of this, I can't play youtube videos, vlc can't output sound, ...
I always have to make sure that either Firefox or vlc is started first.
I'm using pulseaudio 11.1, Linux 4.16.12 and OpenJDK 8 on Arch Linux

I use Arch btw

Are you sure you have pulseaudio set-up correctly?

My pulseaudio is indeed set-up correctly.
Recently I read some old arch forum entry about someone with the same issue. It was because some sun library tries to put a lock on the device in stead of talking to the sound server. I would link it, but I can't find it anymore...
Here is another link to someone who has the same issue, but in 2010:
https://ubuntuforums.org/archive/index.php/t-1445507.html

I've also experienced this with Arch Linux but not with Ubuntu.

I solved this by installing "pulseaudio-alsa".
(Please do not close this as it's still a bug)
The problem was that runelite directly communicates with Alsa, thus locking it.
Pulseaudio-alsa makes acts like an alsa wrapper, so that miss-behaving programs(like runelite in this case) can't connect to alsa, but pass to pulseaudio.

I am having the same problem on Arch.

Having the same problem on Pop!_OS. Can't find pulseaudio-alsa in Ubuntu repositories.

I may be experiencing the same thing when running the snap inside Fedora 31. I'm running the default sound configs. The behaviour I'm seeing is that pulseaudio crashes, but ALSA seems to continue working. I can tell that ALSA is working because Runescape audio keeps playing. Oddly, the notifications by the client do not continue playing.

As a workaround for people who are experiencing this, please take a look at man padsp. It's not a permanent fix because the issue is allegedly not with Runelite or OSRS and is something that should be reported to system maintainers.

Workaround is using BT headset for other audio. This just seems to hijack only speakers and audio jack

install pulseaudio-alsa

install pulseaudio-alsa

Already installed. Does not impact the bug

then your pulseadio is configured wrong or you have hit a different odd jvm behavior.

Nothing seems wrong with pulseaudio. Installed runelite through the AUR, it's deps are messed up btw. Could be causing some of the issue as I had to install some things manually.

Try the appimage from runelite.net, we don't support the aur version

Could also just try the jar. Once the jar is in ~/Downloads, you can use this to install a Desktop file to show up in most desktop managers
https://github.com/brainard52/RuneLite-Jar-Installer

I encountered this issue on Pop!_OS with openjdk-14. Installing alsa or pulseaudio-utils did not fix the issue. Running the AppImage yielded no sound, while running the AppImage with padsp yielded sound, but locked all devices.
The workaround for me was to use snap to install & run runelite.

sudo apt update && sudo apt install snapd
sudo snap install runelite
Launch runelite with snap run runelite

This is gonna sound stupid, but for anyone else with this issue, make sure the audio is playing out of the right device.

This is gonna sound stupid, but for anyone else with this issue, make sure the audio is playing out of the right device.

If anyone is having this issue and uses pipewire in place of pulseaudio, I can confirm that pipewire-alsa fixes this.

Uninstalling droidcam made sound work for me

@fuzxi is pipewire-alsa still working for you? For me I get lots of crackle whenever runelite is open

@TheGreatestJannet Yes, it still works fine for me. No audio issues. Currently using version 1:0.3.35-1 of pipewire and pipewire-alsa.

For those of you with pipewire but installing pipewire-alsa did not resolve the issue, installing wireplumber and uninstalling pulseaudio-alsa resolved the issue for me.

For those of you with pipewire but installing pipewire-alsa did not resolve the issue, installing wireplumber and uninstalling pulseaudio-alsa resolved the issue for me.

I do have wireplumber installed and do not have pulseaudio-alsa installed. Yet still no sound.

Weird. I was having this issue as well with almost exactly the set up above. I uninstalled pulseaudio-alsa and now I'm no longer having the issue. This is with using pipewire-media-session instead of wireplumber

Okay, I've managed to fix this issue on the device that was still having an issue.
I believe Runelite Flatpak's version of Java is outdated.
Installing Runelite from AUR and updating JRE to openjdk <IP_ADDRESS> resolves my sound issue entirely.

Okay, I've managed to fix this issue on the device that was still having an issue.
I believe Runelite Flatpak's version of Java is outdated.
Installing Runelite from AUR and updating JRE to openjdk <IP_ADDRESS> resolves my sound issue entirely.

Just tried this and no luck on my end. Runelite is the only application unable to output any sounds despite trying out everything that was mentioned as working in this post.

@sangoku116 Please tell me the result from running java --version. If you are on Arch, please also show me the output of archlinux-java get.

@sangoku116 Please tell me the result from running java --version. If you are on Arch/Manjaro, please also show me the output of archlinux-java get.
java --version

openjdk <IP_ADDRESS> 2022-04-22
OpenJDK Runtime Environment (build <IP_ADDRESS>+2)
OpenJDK 64-Bit Server VM (build <IP_ADDRESS>+2, mixed mode)

archlinux-java get
java-18-openjdk

@sangoku116 Well, hmm. Are you certain Runelite is running with the updated version of Java?
XXXX-XX-XX XX:XX:XX [main] INFO  net.runelite.launcher.JvmLauncher - Running [/usr/lib/jvm/java-18-openjdk/bin/java ... should appear somewhere in your runelite log.
If it is running with the updated version it may be related to installed packages. Note, contrary to my earlier post I am not running Wireplumber on this device. Here are mine:
alsa-card-profiles 1:0.3.51-1
alsa-firmware 1.2.4-2
alsa-lib <IP_ADDRESS>-1
alsa-oss 1.1.8-4
alsa-plugins 1:1.2.6-3
alsa-topology-conf <IP_ADDRESS>-1
alsa-ucm-conf <IP_ADDRESS>-1
alsa-utils 1.2.6-1
java-runtime-common 3-3
jre-openjdk 18.0.1.u10-1
jre-openjdk-headless 18.0.1.u10-1
pipewire 1:0.3.51-1
pipewire-alsa 1:0.3.51-1
pipewire-jack 1:0.3.51-1
pipewire-media-session 1:0.4.1-1
pipewire-pulse 1:0.3.51-1
pipewire-v4l2 1:0.3.51-1
polkit 0.120-5
realtime-privileges 4-1
rtkit 0.13-1
runelite 1:2.4.2-1
sof-firmware 2.1.1-1

Yup I get: 2022-05-23 21:01:16 [main] INFO  net.runelite.launcher.JvmLauncher - Running [/usr/lib/jvm/java-18-openjdk/bin/java . I tried with both wireplumber and pipewire-media-session.
alsa-card-profiles 1:0.3.51-1
alsa-firmware 1.2.4-2
alsa-lib <IP_ADDRESS>-1
alsa-oss 1.1.8-4
alsa-plugins 1:1.2.6-3
alsa-topology-conf <IP_ADDRESS>-1
alsa-ucm-conf <IP_ADDRESS>-1
alsa-utils 1.2.6-1
lib32-alsa-lib <IP_ADDRESS>-1
lib32-alsa-oss 1.1.8-3
lib32-alsa-plugins 1.2.6-1
pipewire-alsa 1:0.3.51-1
zita-alsa-pcmi 0.4.0-1
lib32-pipewire 1:0.3.51-1
lib32-pipewire-jack 1:0.3.51-1
pipewire 1:0.3.51-1
pipewire-alsa 1:0.3.51-1
pipewire-jack 1:0.3.51-1
pipewire-pulse 1:0.3.51-1
wireplumber 0.4.10-3
runelite 1:2.4.2-1

@sangoku116 In your audio mixer, do you see ALSA plug-in [java] or PipeWire ALSA [java]?

@sangoku116 In your audio mixer, do you see ALSA plug-in [java] or PipeWire ALSA [java]?

None of these appear.

@sangoku116 In your audio mixer, do you see ALSA plug-in [java] or PipeWire ALSA [java]?

None of these appear.

These may be two separate issues. I was having intermittent audio, with music cutting in and out but sound effects working (mostly) fine. I missed the part that your audio isn't working at all.
The only thing that I can think of is that somehow Pulseaudio hasn't been uninstalled completely. Maybe look for installed Pulse packages with pacman -Q | grep pulse. Having pulseaudio-alsa installed presented similar issues for me, and it isn't removed by installing pipewire. That's the only other thing I think it could be.

These are the only ones I havE: ```
lib32-libpulse 15.0-2
libpulse 15.0-4
pipewire-pulse 1:0.3.51-1
pulseaudio-ctl 1.70-1
xfce4-pulseaudio-plugin 0.4.3-2

Last try,
Do you have realtime-privileges installed?
If not, please install it and make sure your current user is a member of the group realtime.
Then I'd completely restart your device and try to launch Runelite again.

Last try,
Do you have realtime-privileges installed?
If not, please install it and make sure your current user is a member of the group realtime.
Then I'd completely restart your device and try to launch Runelite again.

I do not what does that package do?

Last try,
Do you have realtime-privileges installed?
If not, please install it and make sure your current user is a member of the group realtime.
Then I'd completely restart your device and try to launch Runelite again.

I do not what does that package do?

My best guess is that it allows your user to interact with the realtime audio process. I don't know for sure if it will resolve the issue but it is mentioned on the Arch wiki PipeWire troubleshooting guide and I've got it installed on both working devices.
I don't know what flavor of Arch you are running but if you're on Manjaro you may also try installing the following packages:
manjaro-alsa
manjaro-pipewire

Last try,
Do you have realtime-privileges installed?
If not, please install it and make sure your current user is a member of the group realtime.
Then I'd completely restart your device and try to launch Runelite again.

I do not what does that package do?

My best guess is that it allows your user to interact with the realtime audio process. I don't know for sure if it will resolve the issue but it is mentioned on the Arch wiki PipeWire troubleshooting guide and I've got it installed on both working devices.
I don't know what flavor of Arch you are running but if you're on Manjaro you may also try installing the following packages:
manjaro-alsa
manjaro-pipewire

I installed it and tried does not work for me. I am on arch not manjaro.

Last try,
Do you have realtime-privileges installed?
If not, please install it and make sure your current user is a member of the group realtime.
Then I'd completely restart your device and try to launch Runelite again.

I do not what does that package do?

My best guess is that it allows your user to interact with the realtime audio process. I don't know for sure if it will resolve the issue but it is mentioned on the Arch wiki PipeWire troubleshooting guide and I've got it installed on both working devices.
I don't know what flavor of Arch you are running but if you're on Manjaro you may also try installing the following packages:
manjaro-alsa
manjaro-pipewire

I installed it and tried does not work for me. I am on arch not manjaro.

Well I'm all out of ideas, sorry :(

Last try,
Do you have realtime-privileges installed?
If not, please install it and make sure your current user is a member of the group realtime.
Then I'd completely restart your device and try to launch Runelite again.

I do not what does that package do?

My best guess is that it allows your user to interact with the realtime audio process. I don't know for sure if it will resolve the issue but it is mentioned on the Arch wiki PipeWire troubleshooting guide and I've got it installed on both working devices.
I don't know what flavor of Arch you are running but if you're on Manjaro you may also try installing the following packages:
manjaro-alsa
manjaro-pipewire

I installed it and tried does not work for me. I am on arch not manjaro.

Well I'm all out of ideas, sorry :(

Thank you for your help, I appreciate it! I don't think I will ever get to hear the runescape audio again since the issue is marked as wontfix.

using openjdk-11 java -jar RuneLite.jar --configure then in the JVM arguments section I put these four lines:
-Djavax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
-Djavax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
-Djavax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
-Djavax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider

I'm not sure what else I need to do here, but this gave me progress in that I now get this error instead:
2024-04-04 17:04:55 EDT [Client] ERROR client-patch - Error initializing sound engine. Audio will be unavailable.
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 22050.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
        at java.desktop/com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:503)
        at java.desktop/com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:119)
        at java.desktop/com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:387)
        at ae.ah(ae.java:31)
        at ae.ah(ae.java:37)
        at hj.hf(hj.java:1557)
        at client.bh(client.java:1144)
        at bx.aa(bx.java:380)
        at bx.he(bx.java)
        at bx.run(bx.java:13052)
        at java.base/java.lang.Thread.run(Thread.java:829)

I had this problem too but fixed it and maybe it will help some of you.
I started Runelite for a terminal so I could see some more output.
There I saw it was complaining about a specific line of /etc/pulseaudio/client.conf saying Unknown lvalue 'resample-method' in section 'n/a'.
I could not remember ever editing that file, I removed the settings it was complaining about, it was 3 in total.
After restarting PulseAudio (pulseaudio -k && pulseaudio -D , or just reboot) Runelite sound worked again.
If this does not help you at all maybe the output you see from the terminal would put you on the right track.

I too get this issue, but I get no error message (to my knowledge) related to audio in the terminal.


cmd/go: align comments in go.mod files

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
Go 1.11
Does this issue reproduce with the latest release?
yes
What did you do?
go mod init
go mod tidy
What did you expect to see?
Into go.mod, is it possible to have (like into comment into source code) align of // indirect
module myModule

require (
	github.com/something v1.0.0
	github.com/foo v1.0.0       // indirect
	github.com/foo/bar v1.0.0   // indirect
)

What did you see instead?
module myModule

require (
	github.com/something v1.0.0
	github.com/foo v1.0.0  // indirect
	github.com/foo/bar v1.0.0 // indirect
)

/cc @bcmills @rsc to see if we actually want to do this.

Personally, I'm not a big fan of alignment like that. it messes up diffs - what would be a single-line addition pr removal of a dependency becomes a change to every line with a // indirect comment on.
Also, opefully, we'll see many less // indirect comments as time goes on and more and more repositories get go.mod files, so this will become less of an issue over time.

Also, hopefully, we'll see many less // indirect comments as time goes on and more and more repositories get go.mod files, so this will become less of an issue over time.

It is appear to be acceptable.
Thx

FWIW: This does not only affect modules or "indirect" comments but in general all kinds of enumeration:
Before:
func notAnElementName(name string) bool {
	return strings.HasSuffix(name, ",attr") ||  // names an attribute
	       strings.HasSuffix(name, ",chardata") // not actually a name
}

(first comment aligned by one space; second line indented by 1 tab and aligned by 7 spaces)
After:
func notAnElementName(name string) bool {
	return strings.HasSuffix(name, ",attr") || // names an attribute
		strings.HasSuffix(name, ",chardata") // not actually a name
}

(second line indented by 2 tabs; no alignment)
Now that's just two lines, but every other year one might have to handle a dozen+. Lack of alignment really hurts here. Struct tags do get alignment, so apparently someone had the same idea.
(... Of course, in the general case one probably does not want comments on adjacent lines to align - namely if the comments are not actually related.)

@Zsar that sounds like it should be a separate issue; the syntax and formatting of .go and .mod files are not related, even if they can look similar at times.


Add option to export CSS for a spritesheet

Feature to resolve #542.
Keeping it simple and only generating CSS for now (no LESS).

Oops, my fork was not fresh, but the code and demo are up-to-date now.

I Think the export to css should be in the others tab not in the PNG tab


Need a RBAC free mechanism for the pods that run the lm-eval jobs

Currently, the driver needs specific RBAC to update the state of CRs. Need a mechanism to avoid the RBACs when running the pod for the lm-eval jobs

I will start the implementation based on the design in this discussion.


[ListItem] right icon button events not forwarded

The event handlers of a ListItem's right icon button were never called. The checks were done on the component instead of its props.

Thanks @florian-steffen !


Handle CompileOnSave on projects that contain project references.

Came up as TODO from #32028 where we want to see what needs to happen for such projects..

Note: We're not really sure how to handle this.


chore: update react native to 0.69.7

BREAKING CHANGE: not compatible with lower versions of RN

:tada: This PR is included in version 2.0.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[kite] ERROR   Websocket error!

I'm getting this issue and I'm not to sure why, could anybody guide me, do I need to configure some extra stuff?
[kite] INFO      Trying to connect to ws://localhost:3636/kite
[kite] ERROR   Websocket error!
[kite] INFO      ws://localhost:3636/kite: disconnected

        import { Kite } from 'kite.js';

        const k = new Kite("ws://localhost:3636/kite");
        k.tell('square', 3).then(data => console.log(data));

Server works fine...
	k := kite.New("math", "1.0.0")

	k.HandleFunc("square", func(r *kite.Request) (interface{}, error) {
		a := r.Args.One().MustFloat64()
		result := a * a
		return result, nil
	})

	k.Config.Port = 3636
	k.Config.DisableAuthentication = true
	k.Run()

Client works fine...
        k := kite.New("exp2", "1.0.0")

	mathWorker := k.NewClient("http://localhost:3636/kite")
	mathWorker.Dial()

	response, _ := mathWorker.Tell("square", 4)
	fmt.Println("result: ", response.MustFloat64())

If you need me to provide extra information, just let me know I'll get back to you ASAP.

Hello @jakelacey2012, thanks for reporting this issue. This is an undocumented behavior because our golang server uses the SockJS to accept connections, therefore the connection is not available via WebSocket transport which is the default transportClass of Kite class.
So you will need to use SockJS transport class, exported via Kite.transport.SockJS, here is the example that is working with your case:
import { Kite } from 'kite.js'

const k = new Kite({
  // since there is no `websocket` connection, the url starts with http://...
  url: 'http://localhost:3636/kite',
  // transport layers are exported from `Kite.transport` object, and here we
  // are using the SockJS transport class.
  transportClass: Kite.transport.SockJS,
})

// and you need to wrap arguments in an array
k.tell('square', [3]).then(data => console.log(data))

Note that, you need to wrap arguments in an array.
The code above will work with the current version, but we are currently in the process of creating version 2 of kite.js library. One of the plans is to remove the requirement of wrapping arguments in an array.

Awesome thank you for getting back to me @usirin. That seems to have solved the initial connectivity issues. At least this is documented somewhere now :joy:
I'm now getting an error when using the tell method my go server crashes for some reason 😕 , I'll have a look and open a separate issue if I cannot solve.
Again thank you for taking the time :)


Fix CPM package docs.

Description
Fixes the documentation to list CPM packages.
I also updated the codeowners to request reviews on docs, examples, all of rapids-cmake/, and testing code.
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 cmake-format.json is up to date with these changes.
[ ] I have added new files under rapids-cmake/

[ ] I have added include guards (include_guard(GLOBAL))
[ ] I have added the associated docs/ rst file and update the api.rst

/merge


Update GreetingController.java

@chanmi910: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pr
6cfc803985e1894bcaf88303ff34b37184b8b5ce
link
/test pr

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.


book.json I10n

I thought the purpose of the book having different language files was so that you didn't need to do this? Also i don't want to just change 2 lines.

These mods are some examples.
https://github.com/Shadows-of-Fire/Apotheosis/blob/1.18/src/main/resources/data/apotheosis/patchouli_books/apoth_chronicle/book.json
https://github.com/klikli-dev/occultism/blob/version/1.19/src/main/resources/data/occultism/patchouli_books/dictionary_of_spirits/book.json

If people want to test their translations by resourcepack, the only way is use PRP mod.
Maybe enable use_resource_pack: true will be a good addtion.
https://vazkiimods.github.io/Patchouli/docs/upgrading/upgrade-guide-117/


sched: task: Fix comments and label in nxtask_assign_pid()

Summary

This commit fixes comments and label in nxtask_assign_pid()

Impact

None

Testing

Built with spresense:wifi

See https://github.com/apache/incubator-nuttx/pull/2737 as well

See https://github.com/apache/incubator-nuttx/pull/2737 as well

@btashton @xiaoxiang781216
I've just created a new PR.

@btashton @xiaoxiang781216
I've just created a new PR.


MdSnackBar does not close when MdDialog is closed

Bug, feature request, or proposal:
Bug
What is the expected behavior?
MdSnackBar should be closed automatically when it's host MdDialog is destroyed or should be closable in ngOnDestroy.
What is the current behavior?
MdSnackBar remains open even after it's host MdDialog is destroyed. The SnackBar will be unresponsive with the buttons unclickable.
What are the steps to reproduce?

Open an MdSnackBar from an MdDialog.
Close the MdDialog

What is the use-case or motivation for changing an existing behavior?
Better user and developer experience
Which versions of Angular, Material, OS, browsers are affected?
Angular 2, Material 2

All of the Material modules are intended to do be independent of each other. If we closed all of the toasts automatically when a dialog is closed, we'd make the dialog module dependent on the snack bar. You can achieve the same by subscribing to the dialog's close observable:
this.dialogRef = this.dialog.open(SomeDialog);

this.dialogRef.afterClosed().subscribe(result => {
  // close your snack bar
});

Here is a Plunker showing the issue: http://plnkr.co/edit/xrf3OSZec4J1w2MncFbY?p=preview
The component shown in the dialog is the component creating the snackbar

In the above example dismiss is called on the MdSnackBarRef instance in ngOnDestroy of the dialog component

@crisbeto could you take a look at this one?


Test failure: ItContainsVersionFile

This issue was made automatically. If there is a problem contact ryanbrandenburg.
This test failed with the following error:
Assert.Equal() Failure
Expected: 2
Actual:   1
   at Microsoft.AspNetCore.SharedFxTests.ItContainsVersionFile(SharedFxConfig config) in C:\b\w\259d19a0d368dfc2\src\Framework\Framework.UnitTests\SharedFxTests.cs:line 63

Other tests within that build may have failed with a similar message, but they are not listed here. Check the link above for more info.
This test failed on 2.2.
CC Eilon

This comment was made automatically. If there is a problem contact ryanbrandenburg.
Please use this workflow to address this flaky test issue, including checking applicable checkboxes and filling in the applicable "TODO" entries:

Is this actually a flaky test?

No, this is a regular test failure, fix the test/product (TODO: Link to commit/PR)
Yes, proceed below...

Is this test failure caused by product code flakiness? (Either this product, or another product this test depends on.)

[ ] File a bug against the product (TODO: Link to other bug)
Is it possible to change the test to avoid the flakiness?

Yes? Go to the "Change the test!" section.
No?

[ ] Disable the test (TODO: Link to PR/commit)
[ ] Wait for other bug to be resolved
[ ] Wait for us to get build that has the fix
[ ] Re-enable our test (TODO: Link to PR/commit)
[ ] Close this bug

Is it that the test itself is flaky? This includes external transient problems (e.g. remote server problems, file system race condition, etc.)

Is there is a way to change our test to avoid this flakiness?

Yes? Change the test!

[ ] Change the test to avoid the flakiness, for example by using a different test strategy, or by adding retries w/ timeouts (TODO: Link to PR/commit)
[ ] Run the test 100 times locally as a sanity check.
[ ] Close this bug

No?

Is there any logging or extra information that we could add to make this more diagnosable when it happens again?

Yes?

[ ] Add the logging (TODO: Link to PR/commit)

No?

[ ] Delete the test because flaky tests are not useful (TODO: Link to PR/commit)

@natemcmaster I assume this is you?

Yes. This was resolved by updating buildtools.
Fixed in https://github.com/aspnet/AspNetCore/commit/c2e9ca24d3ded27303d5266a2215dda37052ace6


texlab: 3.3.1 -> 3.3.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for texlab is: "An implementation of the Language Server Protocol for LaTeX"
meta.homepage for texlab is: "https://texlab.netlify.app"
meta.changelog for texlab is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/yh2y9i58q5x9wnmn7rggqb8ya8y78sbh-texlab-3.3.2/bin/texlab had a zero exit code or showed the expected version
0 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 3.3.2 with grep in /nix/store/yh2y9i58q5x9wnmn7rggqb8ya8y78sbh-texlab-3.3.2
found 3.3.2 in filename of file in /nix/store/yh2y9i58q5x9wnmn7rggqb8ya8y78sbh-texlab-3.3.2

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

2 total rebuild path(s)

1 package rebuild(s)

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

First fifty rebuilds by attrpath
texlab

Instructions to test this update (click to expand)

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

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yh2y9i58q5x9wnmn7rggqb8ya8y78sbh-texlab-3.3.2
ls -la /nix/store/yh2y9i58q5x9wnmn7rggqb8ya8y78sbh-texlab-3.3.2/bin

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

1 package built:

texlab

Maintainer pings
cc @doronbehar @kira-bruneau for testing.

Result of nixpkgs-review pr 162113 run on aarch64-darwin 1

1 package failed to build:

texlab

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

1 package built:

texlab

@siraben It looks like texlab was already failing to build on aarch64-darwin and I don't have an M1 mac to try to debug the failure :disappointed:


Potential memory leak when closing connection quickly after opening it

I noticed in a loop that opens a new connection, then rapidly closes it (say there was a very small amount of data to transmit intermittently, but a persisted connection was not desired), that resources are not released as expected, and if the loop runs for long enough, an OutOfMemoryException is thrown.  I found that a brief pause before closing the connection is sufficient to avoid the problem.
I have tested this in .NET 4.5, and .NET 4.6.1, using the NATS.Client 0.5.0 NuGet package, and in Debug and Release configuration.
To reproduce:
Step 1:
Create a .NET 4.6.1 C# Console application in VS.  I used VS2015 Community Edition)
Step 2:
Install the NATS.Client package from NuGet.  I ran install-package NATS.Client from the Package Manager Console.
Step 3:
Put the following code (C# 6.0) in the Program.cs file:
#define MEMORYLEAKSAREAWESOME

using static System.Console;
using static System.Threading.Thread;
using static System.Diagnostics.Stopwatch;
using static System.Diagnostics.Process;
using static System.Globalization.CultureInfo;

using NATS.Client;

namespace NatsLeakExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var proc = GetCurrentProcess();
            var sw = StartNew();
            bool continueTest = true;
            ConnectionFactory cf = new ConnectionFactory();
            while (continueTest)
            {
                using (IConnection conn = cf.CreateConnection())
                {
#if !MEMORYLEAKSAREAWESOME
                    Sleep(100); // brief pause in the connection lifetime dodges the problem
#endif
                }
#if MEMORYLEAKSAREAWESOME
                Sleep(100); // this will not affect the connection, and a memory leak will result
#endif
                if (sw.ElapsedMilliseconds > 300000)
                {
                    continueTest = false;
                }
            }
            sw.Stop();
            long privateBytesUsed = proc.PrivateMemorySize64;   // I chose PrivateMemory as it reflected the memory usage graph in VS debugging
            string formattedBytesUsed = privateBytesUsed.ToString("#,##0,,M", InvariantCulture);

#if MEMORYLEAKSAREAWESOME
            string testStatus = "set";
#else
            string testStatus = "not set";
#endif

            WriteLine($"Memory used after 5 minutes when {testStatus} to enable the leak : {formattedBytesUsed}");
        }
    }
}

When MEMORYLEAKSAREAWESOME is defined, the memory leak will occur.  When it is not defined, the memory leak will not occur.
Step 4:
Run the program.
Release output when MEMORYLEAKSAREAWESOME is defined:
Memory used after 5 minutes when set to enable the leak : 347M
Press any key to continue . . .

Release output when MEMORYLEAKSAREAWESOME is not defined:
Memory used after 5 minutes when not set to enable the leak : 16M
Press any key to continue . . .

This is just what I've noted, and created a proof of concept for.  It may also be related to Issue #91.

@RobertZFord Thank you for raising the issue - I'll check this out.

@RobertZFord Thank you for raising the issue - I'll check this out.

@RobertZFord  I was able to reproduce the issue, am looking into it, and really appreciate the instructions and code you provided.
Does your design have connections created and destroyed this quickly? In comparison to other NATS objects, creating connections are expensive (due to establishing the underlying TCP connection), so you'll get much better performance when using them as longer lived objects.

Well, it doesn't rapidly open and close connections.  Every fifteen seconds or so, if there is data to send, it opens a connection, sends the burst of data, then closes the connection.  If there is no data to send, it just waits another 15 seconds before checking if there is data to send.
Batching of data could work for some users, but the nature of the polling I'm doing precludes this; if there is any data collected within the last 15 seconds, it must be sent, no matter how small, which is where the problem comes up.  It may take time to build up, but it will eventually crash the process.
An additional option might be, yes, creating something that will hold a connection open, so long as there is no ambient/overhead traffic that occurs.  Some of the resources that will be using our NATS instance may be over metered connections, so excessive traffic to maintain a connection would be a problem.  I haven't done any kind of traffic analysis on it, so I don't know if this would occur.

I can understand where you are coming from!  Maintaining a connection is much cheaper to your application with respect to performance, and the only real traffic outside of what you drive are pings that go back and forth (every two minutes by default).  The number of bytes sent back and forth by establishing connections frequently will be much much larger than our infrequent ping/pong heartbeats.  Also, ping intervals can be configurable to meet your needs.
BTW - I did find the issue, and verified as well that it only occurs when rapidly disposing (closing) a connection after opening it - an orphaned timer is referencing the connection, so good catch on the memory leak - thanks!  I'm aiming to get a fix merged tomorrow AM.


RFC42-style options that default to unset, to have no attribute in config despite option

When defining an option in an RFC42-style free-form settings module, say settings.foo, the module system always creates a config.settings.foo value containing the default value.
Some configuration formats require that config definitions are omitted in order to get the default behavior. Filtering those out of the config is unpleasant at least and as far as I know we don't have a standard solution for it.
We could add a mkOption argument that has the effect of producing no default value and no config attribute when no definitions are present for the option.
This will allow us to simplify modules that need to elide unset options and it lowers the threshold for defining options within a settings module, improving documentation and merge semantics.
Notify maintainers

@Infinisil
Additional context
This idea has come up in #112494 as well, but I'm not convinced that it isn't feasible.

I don't feel like this should be part of submodule anymore, because it already bears so much complexity. Also RFC 42 settings are a use case where we're not doing any programming, but rather just modeling some data, so all the fixed point and introspection business is unnecessary.
Something simpler like types.record in https://github.com/NixOS/nixpkgs/pull/257511 could do the job instead, and it'd also be much easier and less risky to implement this feature onto that.
(Ignore types.fix; it's not capable enough to recover full submodule functionality, but we don't need that, and the module that contains the settings can be responsible for tying the knot. We don't need that to happen inside the settings itself; as said, we're not doing module-like programming in there.)
(A very concrete risk is that optionality implies having a filterAttrs somewhere, which adds strictness, as the attrNames of that requires evaluating all those declarations first, which IIRC currently isn't the case. Any new strictness will lead to unexpected errors including infinite recursions.)
I'm not sure exactly where to start with improving types.record, but I'll leave some comments. (Or maybe it's best to start from scratch?)
cc @infinisil


[SDL 0101] Add Android SDL Internal Interface

Proposal: Add Android SDL Internal Interface

The internal SDL interface will help reduce the dependency on the SDLProxyBase class and allow us to move away from it in the future when we introduce a more enhanced framework.

Review: https://github.com/smartdevicelink/sdl_evolution/issues/298

PR Merged, closing issue


[#51]: whPullReqTargetRepo can be null

Issue reference:
#51.
Submission Checklist:

[x] Have you followed the guidelines in our Contributing document (for example, is your tree a clean merge)?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Does your submission build?
[x] Does your submission pass tests?

[x] Have you updated all of the cabal/nix infrastructure?
[x] Is this a breaking change? Have you discussed this?

@roberth shall I add you to AUTHORS ?

Sure! The more the merrier.

Ugh, the merge with squash erased the authorship from 9a78a65. Surely that's not normal, otherwise it's a useless feature.

In my experience, git and github work best with merges.
Don't worry about fixing it up.

This has been released, thanks @roberth!


Bot will stuck in infinite loop when receive "group upgraded to supergroup" message

Steps to reproduce:

Create group
Add bot (without group privacy) to it
Upgrade to supergroup

Expected behavior:
Bot will correctly handle all these events
Actual behavior:
Bot cannot parse one of the update messages and fails with:
[info] No usable value for id
[info] Did not find value which can be converted into long
[info]  at org.json4s.reflect.package$.fail(package.scala:95)
[info]  at org.json4s.Extraction$ClassInstanceBuilder.org$json4s$Extraction$ClassInstanceBuilder$$buildCtorArg(Extraction.scala:526)
[info]  at org.json4s.Extraction$ClassInstanceBuilder$$anonfun$15.apply(Extraction.scala:546)
[info]  at org.json4s.Extraction$ClassInstanceBuilder$$anonfun$15.apply(Extraction.scala:546)
[info]  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
[info]  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
[info]  at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
[info]  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
[info]  at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
[info]  at scala.collection.AbstractTraversable.map(Traversable.scala:104)
[info] Caused by: org.json4s.package$MappingException: No usable value for id
[info] Did not find value which can be converted into long
[info]  at org.json4s.reflect.package$.fail(package.scala:95)
[info]  at org.json4s.Extraction$ClassInstanceBuilder.org$json4s$Extraction$ClassInstanceBuilder$$buildCtorArg(Extraction.scala:526)
[info]  at org.json4s.Extraction$ClassInstanceBuilder$$anonfun$15.apply(Extraction.scala:546)
[info]  at org.json4s.Extraction$ClassInstanceBuilder$$anonfun$15.apply(Extraction.scala:546)
[info]  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
[info]  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
[info]  at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
[info]  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
[info]  at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
[info]  at scala.collection.AbstractTraversable.map(Traversable.scala:104)
[info] Caused by: org.json4s.package$MappingException: Did not find value which can be converted into long
[info]  at org.json4s.reflect.package$.fail(package.scala:95)
[info]  at org.json4s.Extraction$$anonfun$org$json4s$Extraction$$convert$2.apply(Extraction.scala:704)
[info]  at org.json4s.Extraction$$anonfun$org$json4s$Extraction$$convert$2.apply(Extraction.scala:704)
[info]  at scala.Option.getOrElse(Option.scala:121)
[info]  at org.json4s.Extraction$.org$json4s$Extraction$$convert(Extraction.scala:704)
[info]  at org.json4s.Extraction$$anonfun$extract$6.apply(Extraction.scala:394)
[info]  at org.json4s.Extraction$$anonfun$extract$6.apply(Extraction.scala:392)
[info]  at org.json4s.Extraction$.customOrElse(Extraction.scala:606)
[info]  at org.json4s.Extraction$.extract(Extraction.scala:392)
[info]  at org.json4s.Extraction$ClassInstanceBuilder.org$json4s$Extraction$ClassInstanceBuilder$$buildCtorArg(Extraction.scala:514)

Telegram4s v3.0.9

Got it, thanks for reporting!
I pushed a fix (786ef9cc304e9f8b061f16a801777ba3ecb88f00) to v3.0.13, which is also updated to the latest Telegram Bot API (v3.4).
Overview
Just a de-serialization issue; these are easy to fix, but hard to find.
I'll look some property-based testing library so I can fuzz the (de)serialization routines.
Issue
Some fields (Message.migratetoChatId) were typed ChatId.Chat, serialization was covered for the super type ChatId but not for ChatId.Chat.
Fix
Replace ChatId.Chat by Long. This is the least-resistance solution. Also considered adding yet another custom serializer for ChatId.Chat.
Compatibility issues
This change should be transparent for most users, except for a few methods that expect Option[ChatId].
e.g.
SendGame(msg.source, ...)

becomes
SendGame(ChatId(msg.source), ...)


Subscriptions to start paying for

Once we get our own credit card, what should we buy?!?

Slack [Update: we now have upgraded Slack via NumFocus.]

Anything else?

Which of those things do we really need? We've done fine without them so far. While some of the things listed here are not  expensive (unlike Slack), I'm worried about the extra work required to keep all those things up-to-date (change user permission, update passwords, update Credit card information, sing-off purchases, classify items for financial reports).

So, I think we should focus on items that save us work such as hosting services or CI pipelines that are less flaky, don't time out as often, don't change their configuration that often etc.

If there are things which will make developing easier/faster, I think we should pay for them and try to figure out the admin costs/overheads. We have a team 1Password for keeping track of passwords and credit card info. And we're gonna need an admin for lots of things (see #24), so this would be something they would be responsible for.

From an ethical perspective, I'd feel most compelled to pay for readthedocs and travis (for the former, especially if it comes with not having any ads shown even for those rare few without ad blocking). I'd feel bad about paying any money to microsoft or google; I think as a free software project, we should have some preference towards similarly community spirit driven services.
Purely from a practical perspective, github itself has become quite slow, not sure if that is partially to push people to paid services, or if one can pay for spiffiness.

Is there a place where we can rank/vote these services?

@pllim , just let us know your thoughts/votes/priorities in words! If you prefer, please feel free to email<EMAIL_ADDRESS>

I was just thinking would be nice to have the aggregated rankings public. Individual votes can be anonymous. 🤷♀
In terms of priorities, here are the ranked reasons from me:

Really need that paid feature.
Really feel bad we have not been paying (i.e., ReadTheDocs).
Would be nice to have some paid features but will survive without them.

I see the point by @mhvk about ethical reasons but if we really can use that paid feature, we can negotiate for Open Source discount/perks.

While I think that it is useful to pay companies for their services, I would like to throw in another argument: Astropy is one of the major players nowadays, and the influence we can have on the companies is not negleglibe.
If we just pay for a service, then we may be find, but all the smaller project still can't have it. If we try to convince companies that they should open up one or the other property for free (optimally: "free as in speech"), then others would benefit as well.
As an example, Debian is not willing to base their development on top of a non-free service, and so there were many discussions with the Gitlab people to release some formerly propertiary features to the community version.
Obviously, Astropy is in a different situation than Debian, but I would appreciate that before buying in somewhere, we should make an attemtp to free the features we want.

+1 for paying RTD as a community project they could really use the support (and I am sure astropy could use some improved build resources as well, or maybe access to the continuous documentation feature?)
-1 On paying for CI, there are so many free services I can't see how you can need to pay for any. (it would be more effective, imo, to pay someone to maintain the CI configs than pay for build time)

Also +1 to supporting free and open source projects over closed solutions, astropy is in a lucky position to have some substantial funding and we should be paying it forward to grow the wider community where we can.

Okay, I guess we currently don't really need any paid CI features. But we do need a data server that is not GitHub Pages.

continuous documentation feature

this is very much what we could use, and was planning to have, but they said no due to out long build time. Given money that limitations I suppose can be lifted.
Otherwise I agree that I can't think of features that we need and can only get by paying for. In the past we had CI limitations, but that's not an issue any longer and fully agree with Stuart that we can cover all our needs with standard, free solutions (that doesn't cost more people time than if we paid for them).

Okay, I guess we currently don't really need any paid CI features. But we do need a data server that is not GitHub Pages.

As I have said before, I would say S3 is the way to do this, see https://github.com/sunpy/sample-data/ for how we mirror git lfs to S3.

how do you make sure you use the same region as the CI using that data?

Amazon is a big corporation too and they are even worse than other corps when it comes to supporting OSS. Also S3 can catch your wallet off-guard if you are not careful.

we can also try to reach out to them, as I recall there were some plans for a shared NF proposal/grant with them (maybe it was only brainstormed about)? Maybe @nicole-numfocus knows the details.

how do you make sure you use the same region as the CI using that data?

We cache it using the CI services cache to reduce bandwidth etc.

Also, what about sponsoring Python Software Foundation or something? https://www.python.org/psf/sponsorship/

Also, what about sponsoring Python Software Foundation or something? https://www.python.org/psf/sponsorship/

I feel that's very much beyond our scope.

we can also try to reach out to them, as I recall there were some plans for a shared NF proposal/grant with them (maybe it was only brainstormed about)? Maybe @nicole-numfocus knows the details.

@bsipocz if you were referring to NF working with AWS, then yes. They are gifting us some credits to distribute to projects. There will be some info about this going out in the newsletter on Monday so stay tuned. 😄

Trying to summarize:

Broad agreement to pay RTD
storage needed, AWS might be a solution (possibly through numfocus)

Not needed:

CI services (as of now)
slack (because we have what we need)

* storage needed, AWS might be a solution (possibly through numfocus)

In addition to hosting sample data, it would be useful to build and provide
native astropy packages through AWS instances for distributions where those
packages are not available in the official repositories.

@migueldvb: What distributions are you thinking about?
My impression is that its typically quite a bit of work to set up, test, debug, and maintain the build scripts for any specific distribution. Unless we find people who are willing to do that and commit to doing it long term, it's not going to happen, even if we have ample AWS instances to run things on.

Shouldn't that be the job of the distributions? What other projects take up doing packaging themselves outside of the official support?

@bsipocz It depends. For example, for another project, I support macports. I just had a lot of mac users with install problems that all went away once I offered the package through macports. It's also not uncommon for projects to provide their own rpms etc. (e.g. blender offer two windows builds, a linux build and a Mac build, conda has plenty builds for conda, even though conda is also available through some distributions).
However, that discussion is beyond the scope of this issue. Unless there is a distribution method that we already support now or that we would like to support but that is just held up by not having AWS instances, then it goes here. If we want to support new distributions methods beyond what we do today (pypi, conda-forge), then that should go into a separate issue.

Agreed that this would not seem to be a reason for AWS - even though I'm super-happy with having  most of linux covered by having .deb and .rpm made for us, I think our work should end at making sure pip install astropy works for cases where our dependencies can be installed as well (numpy, especially).  Of course, we should not be in the way of anybody packaging for us, as it really helps to catch bugs!

exactly @mhvk! Others packaging for us is great, but taking up the burden of distributing it beyond the official channels doesn't seem a thing we should start doing (working closely with those packagers is another question, and in fact we already do that with Debian).
Astropy is big enough that it's part of big distros, including default anaconda, so I don't see strong case for rolling our own on AWS.

@migueldvb: What distributions are you thinking about?
My impression is that its typically quite a bit of work to set up, test, debug, and maintain the build scripts for any specific distribution. Unless we find people who are willing to do that and commit to doing it long term, it's not going to happen, even if we have ample AWS instances to run things on.

Looking at available astropy packages in Linux distributions, there are a
number of them that are not included in their respective official repositories.
In my recent experience there are good-quality Arch build scripts available for
astropy and astropy-affiliated packages in community-driven repositories that
allow to compile the packages. These packages will likely not make it to the
official project repositories any time soon so it could be useful to provide
latest versions as pre-built packages, for example for college students using
those platforms. I agree that probably I underestimated the time and effort
required for this task.

Shouldn't that be the job of the distributions? What other projects take up doing packaging themselves outside of the official support?

Mozilla builds and distributes several binary versions of firefox as a nixpkgs overlay.  In the python world sublime text hosts some binary packages for distributions.  Some projects maintain build scripts for distribution in a free component of an enterprise product.

@migueldvb:

Looking at available astropy packages in Linux distributions, there are a
number of them that are not included in their respective official repositories.
In my recent experience there are good-quality Arch build scripts available for
astropy and astropy-affiliated packages in community-driven repositories that
allow to compile the packages. These packages will likely not make it to the
official project repositories any time soon so it could be useful to provide
latest versions as pre-built packages, for example for college students using
those platforms. I agree that probably I underestimated the time and effort
required for this task.

I can speak here only for Debian (Ubuntu+Mint+Raspbian take their package from there too): The major effort with "official" packages is their continuous maintenance. If someone volunteers to do that for an affiliated package, it is IMO worth to also include their effort into the "official" distribution. At least for Debian, I would welcome and
support that.

Mozilla builds and distributes several binary versions of firefox as a nixpkgs overlay.

Mozilla and Sublime are IMO a bit different from our case since they traditionally don't fit very well into the traditional distributions and require either quite a few patches (Mozilla), or packaging gazillions of dependencies, or are not suitable by their license (sublime).
In contrast, Astropy  really cares about the needs of distributions.

for example for college students using those platforms

Astropy currently provides ways for these students, or in fact almost anyone (with the possible exception of folks using super exotic hardware, but I'm sure they then have issue with getting numpy, too) to use the library with two rather standard and generic way, via pip or conda. I still fail to see how the distro packaging is a task/responsibility for the project to maintain and provide infrastructural resources for, rather than task for the distributions.

Can I politely ask to continue the discussion "Should be support more ways of distribution" in a different issue, if any more discussion is needed?
It's not something we want to be paying for right now (as the discussion above has made clear), so it's not part of "subscriptions we want to start paying for" (the title of this issue).

A quick note here: it seems like there's pretty universal agreement we should be supporting readthedocs, so the interim finance committee will be working on that ASAP.  Other stuff still needs convergence it seems like.

As a note, STScI is currently providing support for cloud storage and distribution of Astropy Data (https://github.com/astropy/astropy-data/issues/91)

"is currently providing" might be a little misleading. STScI offered to do it but more things need to happen before it is possible. astropy/astropy-data#91 is still unresolved. 🤷

This was a very useful discussion! If there are any specific proposals/requests to buy/upgrade a subscription to something, please open a new issue.

Amazon is a big corporation too and they are even worse than other corps when it comes to supporting OSS. Also S3 can catch your wallet off-guard if you are not careful.

yup, lost $5000 credit once and got overcharged $1500 once. No dead-man-switch


[GA] Remove SL Scan

Why are the changes needed?

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Thanks, merging to master for v1.3.0.


Position Picker infinite loop

Use position picker and you will hit infinite loop in the code sometimes.
Screenshots

Desktop (please complete the following information):

OS: Windows 10
Browser: Chrome

I hit this again in the ipad.

Should be fixed by new position picker


DtlsSocket security_tags empty cases Invalid argument during connect

Hi!
I got back to my old project add more functionality to it and I update all my libs including nrf-modem and then tried creating a DtlsSocket. I am pretty sure that works working fine before but now I did get Unknown error code -1 in SocketOptionError.
I narrowed it down to having empty security_tags, at first I don't fully understand what are those for so I left them empty.
I found that https://developer.nordicsemi.com/nRF_Connect_SDK/doc/v1.6-branch/nrfxlib/nrf_modem/doc/tls_dtls_configuration.html
And set it currently to 0xC014 and stuff started working!
I think that needs a more ergonomic way of providing that options with isn't that error prone.
For nrf9160 as far I see all the values are listed here https://www.nordicsemi.com/Products/nRF9160/Download#infotabs
So providing an enum with all those options (and eventually a "Custom" option to have user provide whatever they wont) would be better? Not sure about other chips.
Or at least a huge red warning in defmt (or even a panic) to not provide empty security_tags.

Yeah, I'd definitely welcome changes there!
Providing an enum with the available options sounds great and the custom fallback is nice too.
Good to hear you figured out the problem.

As far as I can see, the security tags refer to certificates saved in the modem. These are needed to verify server identity. The cipher suites are set via socket option. Setting a cipher suite is not required, if not setting ciper suites a default list will be used. Setting one or more security tags is required because otherwise the modem cannot verify the server's certificate.
I just submitted a PR for tcp over TLS which includes an enum of the available cipher suites: https://github.com/diondokter/nrf-modem/pull/26

Oh, thanks that looks nice to me!
I didn't get around to it, got side tracked with playing with raw udp and using serde-encrypt instead off build in tls.

I merged the TLS PR, so I think this issue can be closed?


Prep for GDS Services Week - Standards & Guidance Show & Tell

What
The team have been asked to contribute to the Standards & Guidance Show & Tell on the 10th March.
Several teams in central government departments, local government, public sector organisations and devolved administrations are working on service and digital standards and related guidance.
Why
To share best practice. To share what we are doing, how we are doing it, and how our work impacts public services.
Done when

[x] Decided on topics to cover
[x] Speak to Mission Team 1
[ ] Set up chat with MT1
[ ] Created slide deck
[ ] Run through
[ ] Present at Show & Tell

Rough agenda 2hrs for 7 presenters (15 mins, 5 mins q's)
Overview of service manual & community contribution
Vision, principles & goals (2.5)
Focus on inclusive skin symptoms guidance (10 mins)
Service standard update - standards & technology, sustainability - standards & design principles
Update on future of the service manual vision & strategy (2.5)

If @richkelly is happy for me to do so, I might mention some of the inclusion work in our backlog - anatomical illustrations and icons for BSL and CC - depending on where they have got to.

Absolutely :) Here's the latest with BSL icons, I'm presenting to Design Huddle tomorrow
NHS.UK Multimedia Team - BSL-Icon-Design.pptx
.

Perfect :)
I was going to lead into the focus on inclusive skin symptoms guidance by setting the scene with the goal: -
Provide guidance on how to make NHS products and services inclusive and accessible for the diverse populations we serve
& then show the other epics completed i.e. additional languages discovery or other teams working on i.e. inclusive services guidance, as well as other guidance in the pipeline.


Splash screen + About screen: Change texture opacity to 0.2

Checked on https://gooddev.netlify.com Works as expected https://www.screencast.com/t/devocY6D
Checked on https://www.screencast.com Reproduced https://www.screencast.com/t/3hbecGUyuC

Checked on QA environment
Look as per requirements


CreateToken to composition API

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[ ] Feature
[x] Refactoring

Context

[x] Related wtih #4750
[ ] Requires deployment <snek/rubick/worker>

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality

Optional

[ ] I've tested it at </ksm/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Did your issue had any of the "$" label on it?

[x] Fill up your DOT address: Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot 📸

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

Copilot Summary

🤖 Generated by Copilot at 2ec3839
Refactor CreateToken component to use Composition API and improve prop naming for clarity.

🤖 Generated by Copilot at 2ec3839

The CreateToken component got a new look
It now uses the Composition API for every hook
The Loader and SubmitButton props were renamed
To avoid confusion and make them more clear
This pull request deserves a thumbs up or a cheer

Tested with /snek/gallery/3124270296-11

Cc @prury
@leo-anderson-x have you tested that? 🥹

@leo-anderson-x have you tested that? 🥹

@vikiival I've only tested it briefly on snek and it would be nice to have @prury's verification!

testing now

RMRK1 test:
https://kusama.subscan.io/tx/0x0680cf8826e0bbc283d052d6eaa06bf921c957b3c24cd62359d40c5808ea0aa4 ❌

RMRK1 test: https://kusama.subscan.io/tx/0x0680cf8826e0bbc283d052d6eaa06bf921c957b3c24cd62359d40c5808ea0aa4 ❌

The changes only impact bsx & snek chain

my bad, running bsx/snek tests now

ok, it works ✔
https://deploy-preview-6896--koda-canary.netlify.app/bsx/gallery/5347553-2
https://basilisk.subscan.io/tx/0x0f2e61715b93c2343af5b676315f45bbfa9b6b64df2a149898dc5bfd2ccd6f6a
took a while because i found two unrelated bugs in the process

@vikiival Waiting for your confirmation 😃

😍 Perfect, I’ve sent the payout
💵 $70 @ 4.47 USD/DOT ~ 15.66 $DOT
🧗 12RA5J7wGg6bDWPTZG359Pn5bCzXSJRfsifo3UktqVAjhJ9k
🔗 0xe640a2af11b057a60c509a116c2ffe372c4524493377757c4bbdea3259592946
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Ensure analyse_types marks SimpleCallNode as analysed

Related to #5553
The analyse_types function does not mark SimpleCallNode as analysed after successfully analysing the node as a type constructor. In #5553, this results in vector[double]() being analysed twice, as a constructor and as an initialisation function, and therefore the type is misinterpreted as void eventually.

I'm wondering if we need to wrap some of the default arg generation mechanism is temp nodes/ proxy nodes to avoid things being evaluated twice. But right now this is an off-hand comment not based on an extensive look

That may be a feasible solution. What I found is that SimpleCallNode (instead of CallNode) would not marked as analysed if analyse_as_type_constructor returned successfully.

You don't know if this fixes #5554 too? My suspicion is that they're basically the same bug.
If it doesn't fix it then no need to try to make it part of this PR, but if it does then it'd be nice to include the test.

I just ran into #5554. I tried adding in this patch to my copy of Cython, but it doesn't appear to fix it. I can try a more robust patch later (my simple test was just modifying the Cython code in site-packages directly then cleaning and rebuilding my package) but that's one quick data point.

I believe this PR fixes #5554. I'm not sure if there is any reason not to mark SimpleCallNode as analysed after analyse_as_type_constructor returns successfully. Here is what I got on my machine.
Before applying this PR, it did not compile and Cython generated the following C++ code:
/*
 *
 * cdef class Foo:
 *     def bar(self, vector[double] b = vector[double]()):             # <<<<<<<<<<<<<<
 *         pass
 */
  try {
    std::vector<double> ();
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(1, 6, __pyx_L1_error)
  }
                      /*                              <- SimpleCallNode.generate_result_code (6, 51) */
  __pyx_k_ = ((std::vector<double> )None);
                      /*              -> SingleAssignmentNode.generate_execution_code (6, 4) */
                      /*                                                      -> SimpleCallNode.generate_result_code (6, 51) */

After applying this PR, the compiler correctly determines the return type of vector[double](), vector<double> instead of None:
/*
 *
 * cdef class Foo:
 *     def bar(self, vector[double] b = vector[double]()):             # <<<<<<<<<<<<<<
 *         pass
 */
  try {
    __pyx_t_2 = std::vector<double> ();
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(1, 6, __pyx_L1_error)
  }
                      /*                              <- SimpleCallNode.generate_result_code (6, 51) */
  __pyx_k_ = __pyx_t_2;
                      /*              -> SingleAssignmentNode.generate_execution_code (6, 4) */
                      /*                                                      -> SimpleCallNode.generate_result_code (6, 51) */

@garychia #5554 was a slightly different issue involving default args. The vector issue you give code for is #5553. I just thought it was worth checking the second issue too

@garychia #5554 was a slightly different issue involving default args. The vector issue you give code for is #5553. I just thought it was worth checking the second issue too

Sorry. My mistake. Will check that too.

No need to check sorry - @vyasr checked and says that it doesn't fix the second issue.
I'm happy with this PR


a question about code

def convert_to_single_emb(x, offset=512):
feature_num = x.size(1) if len(x.size()) > 1 else 1
feature_offset = 1 +
torch.arange(0, feature_num * offset, offset, dtype=torch.long)
x = x + feature_offset
return x
could you tell me why add this func? i am very about that?
thanks!

Hi @CAODH ,
This is an implementation trick.
We let different categories share a lookup table (E.g., nn.Embedding). Therefore, we add offsets to different column in order to separate them in the lookup table.

but why use add a different offset in different dim in a tensor ?maybe add same offset?
---Original---
From: "Chengxuan @.>
Date: Mon, Aug 16, 2021 11:22 AM
To: @.>;
Cc<EMAIL_ADDRESS>Subject: Re: [microsoft/Graphormer] a question about code (#18)
Hi @CAODH ,
This is an implementation trick.
We let different categories share a lookup table (E.g., nn.Embedding). Therefore, we add offsets to different column in order to separate them in the lookup table.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

For each dimension of category features, we assign (by default) 512 offsets to the index of lookup table, therefore, we shift each dimension for 512.
For example, an atom has 3 category features, and its feature vector looks like torch.Tensor([2, 1, 5]). Then the shifted feature vector would be something like torch.Tensor([2, 513, 1029]).

Close this issue due to inactivity for a long time. Feel free to reopen it if the problem still exist.

Why is feature_offset incremented by 1?
feature_offset = 1 + torch.arange(0, feature_num * offset, offset, dtype=torch.long)


About experiments on house-price

Hi, thanks for your great work! I am wondering how to evaluate the "success" for house-price task, given that there is not a baseline code. Is the improvement of 10% evaluated based on the sample submission csv file? Looking forward to your reply.

We used 1e10 as a baseline number since the starter code does not produce anything.

So for benchmarks whose starter codes are incomplete, the success means that the agent can successfully fill in the code and execute. Right?

Yeah basically

Thanks for your reply.


interface OptimizerConfig misses option

interface OptimizerConfig misses jsonify option as per doc.
types.d.ts
export interface OptimizerConfig {
    globals?: GlobalPassOption;
}

As per doc, "jsonify": { "minCost": 1024 } option should be included, too.
The version of @swc/core: 1.2.21

Sorry, this is for interface OptimizerConfig. I have corrected the initial post and later I will delete this one.


Rails/RedundantForeignKey cop incorrectly flags foreign key as redundant in Rails 7.0

The RedundantForeignKey cop was introduced here and calls out that it matches the logic from Rails: https://github.com/rubocop/rubocop-rails/pull/257
However, as part of Rails 7.0, the logic for determining the name of the foreign key no longer falls back to the name of the class but instead now relies on class.model_name: https://github.com/rails/rails/commit/4e37f288814feacdfe1e7724d2b33ad82575b85a#diff-b1aed4985f41ad87dc1be30472b728a19f1a7354f25ce71bf6ce9a7744a9cd0dR668.
This means that you might have a model that defines a model_name but reverts a certain relationship back to its own name and this cop will flag this attribute as redundant when it is not.
Example models:
class Publication < ActiveRecord::Base
end

class Book < Publication
  has_many :chapters, inverse_of: :books, foreign_key: :book_id

  # Override so routes and other helpers use "publications" over "books"
  def self.model_name
    Publication.model_name
  end
end

class Chapter < ActiveRecord::Base
  belongs_to :book
end

Expected behavior
Expectation is that the cop would not flag a foreign_key attribute when it is not redundant
Actual behavior
The foreign_key attributes are flagged (and removed when using auto-correct) on these models.
Steps to reproduce the problem
Example models from the description is the know version of this problem.
I believe the keys are:

Model has defined a class method for model_name which will change the default name used for the foreign_key relationship on a has_one/has_many relationship
The has_one/has_many is defined but is specifically using the name for the foreign key that matches the model name

When those are true, Rails 7.0 will require that you specify the foreign_key attribute to work properly, and this cop will incorrectly flag this for removal.
RuboCop version
$ rubocop -V
1.25.1 (using Parser <IP_ADDRESS>, rubocop-ast 1.17.0, running on ruby 3.0.3 arm64-darwin21)
  - rubocop-rails 2.13.0
  - rubocop-rspec 2.9.0

I can also add that I'm happy to work through adding the tests for this and trying to fix it. If there are any recommended examples for needing to reference other nodes in the class to do this that would be appreciated though!

Due to rails/rails#44594, belongs_to with class_name option must also have foreign_key option.


Perf/point cloud

:tada: This PR is included in version 1.0.0 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:


Public static inline functions erroneously marked up with attribute((unused))

It seems that in OpenSSL 3.0.0 multiple public static inline functions have been marked up with ossl_unused i.e. (__attribute__((unused))).
This generates warnings whenever one of these functions is called from an application.
I'm not sure what compiler the OP of https://github.com/openssl/openssl/issues/12792 was using, but it should not be generating a -Wunused-function for a static inline function in a header file.  These are by their nature public functions, and should not generate unused function warnings.  The only correct place to generate this warnings is when the functions's visibility is limited to the translation unit, and those functions are not called within the translation unit.
Can 067a3057c3aab0cdd9a3cdb13c2e0000f69a4170 either be reverted, or a guard added so that ossl_unused is only set in the absence of a macro being defined (happy to send a PR for this).
As it is currently, calling ERR_GET_LIB, ERR_GET_FUNC, ERR_GET_RFLAGS,ERR_GET_REASON, ERR_FATAL_ERROR will produce spurious used-but-marked-unused warnings at build time.  This breaks application compilation under clang where the warning is enabled, and -Werror is passed (common for CI builds).
-Wunused-but-marked-unused is a useful warning for any application that wants to keep __attribute__((unused)) usage in sync with reality.
Examples
src/lib/tls/session.c:1323:43: warning: 'ERR_GET_REASON' was marked unused but was used [-Wused-but-marked-unused]
               while ((ssl_err = ERR_peek_error()) && (ERR_GET_REASON(ssl_err) == BIO_R_UNSUPPORTED_METHOD)) {

src/lib/tls/ctx.c:373:12: warning: 'sk_X509_num' was marked unused but was used [-Wused-but-marked-unused]
                for (i = sk_X509_num(our_chain); i > 0 ; i--) {

The problem more seem to be that some compilers are generating warnings about unused static inline functions.  Other compilers are emitting code for these if they aren't tagged unused which causes link errors if libcrypto isn't linked in.
How, at compile time, does OpenSSL know if you are going to be linking libcrypto into your final executable or not?
Fixing the header files to not define such functions might be workable but breaks our public facing API.

The problem more seem to be that some compilers are generating warnings about unused static inline functions. Other compilers are emitting code for these if they aren't tagged unused which causes link errors if libcrypto isn't linked in.

That's annoying.  I've never seen that with clang or gcc but I'm guessing OpenSSL probably gets compiled under a much bigger set than that.

How, at compile time, does OpenSSL know if you are going to be linking libcrypto into your final executable or not?

I'm suggesting that for building libcrypto we add -DOSSL_UNUSED to the default CFLAGS.
Then in include/openssl/e_os2.h we change the macro block for defining ossl_unused to be:
# if defined(__GNUC__) && defined(OSSL_UNUSED)
#  define ossl_unused __attribute__((unused))
# else
#  define ossl_unused
# endif

User applications will not define OSSL_UNUSED by default, so when they come to include headers where ossl_unused is present, it will do nothing.  If the compiler being used to compile the application exhibits any of the poor behaviour you've described above, the application can define OSSL_UNUSED before including any OpenSSL header files.  This seems to cover all use cases.

OpenSSL supports a vast range of different compilers.  The world is a lot larger than clang and gcc.
You are also describing a breaking change to the API.  This is something we are very hesitant to do.

You are also describing a breaking change to the API. This is something we are very hesitant to do.

Which makes me ask why the change was made in the first place.   The code is now clearly broken on the 2 most widely used compilers.  It used to work for clang and gcc, and it now does not work.
So if the rule is "no breaking changes", then the original commit shouldn't have gone in.  And since the code is clearly now broken, "no breaking changes" is resulting in the action of "it's not going to be fixed".
There is no easy way out of this quandary.  As a first step, admitting that the current behavior is irrevocably broken on clang and gcc.  As a second step, finding out which platform / compiler saw the errors which caused the change to be made.  Once the scope of the problem is understood, then a solution can be proposed.

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


Suddenly Bot framework Webchat showing as 4minutes as default time.

My bot is hosted in Azure and working fine for the past three months. Suddenly today when I open the bot it is showing greeting message(Conversation Update) and I found 4mins difference in Time

This is creating very big impact in production. Need assistance on this.

Auto resolved


Integrate AWS and GCP for One-Click Beckn Network Launches

Description
Integrating one-click network launch capabilities with cloud providers like AWS and GCP will significantly enhance the user experience by simplifying the deployment process. This feature will allow users to deploy multi-node Beckn networks directly into their cloud environments, leveraging the scalability and reliability of AWS and GCP.
Goals

Facilitate easy and quick deployment of Beckn networks on AWS and GCP.
Enhance the scalability and manageability of networks through cloud integration.
Provide templates and automation scripts for deploying Beckn networks with minimal user interaction

Expected Outcomes

Deployment templates and scripts for AWS and GCP.
A user-friendly interface within the existing GUI and CLI tools that integrates cloud deployment options.
Documentation on how to use the cloud deployment features, including troubleshooting and best practices.

Acceptance Criteria

Users can deploy Beckn networks to AWS and GCP with a single click or command.
The deployment must automatically handle resource allocation, configuration, and setup.
Comprehensive testing must be conducted to ensure compatibility and robustness across different regions and configurations in both AWS and GCP.
Adequate security measures must be implemented to protect network integrity and data privacy during deployment.

Implementation Details

Develop CloudFormation templates for AWS and deployment manager templates for GCP.
Integrate these templates with the existing GUI and CLI installation tools.
Ensure that the templates are customizable to cater to different sizes and configurations of network deployments.
Work closely with cloud architects to optimize resource use and cost.

Technical Skills Required

Experience with cloud platforms, specifically AWS and GCP.
Proficiency in infrastructure as code tools such as AWS CloudFormation and Google Cloud Deployment Manager.
Knowledge of networking, security, and cloud-based deployment strategies.

Mentors
@rejahrehim
Complexity
High
Category
Cloud Integration, Deployment, Automation

Hi @harshcrop - Can you please check or take further into the community.


Allow any numeric value for BODY_SIZE_LIMIT in adapter-node

Describe the problem
From #11381 — it's unlikely but conceivable that someone would want to set a body size limit of zero. More to the point, it's arguably a bit weird that '0' actually means 'Infinity'.
It's also reasonable that someone would want to do something like BODY_SIZE_LIMIT=1e6 to express 'a megabyte'.
Describe the proposed solution
Allow any numeric JavaScript value, using parseFloat. Error if this results in NaN.

ok let me take a look

closed via #11589


Feat/copy-relevant-community-files-from-seedcase-project-repo

From what I can tell, the files that already exist in the seedcase-project repo that should be move to this repo are:

CODE_OF_CONDUCT.md
CONTRIBUTING.md

Are there others that I might have missed?
(GOVERNANCE.md also exists but is blank)

@lwjohnst86  CONTRIBUTING links to guide-entries* and Decisions posts**. Should these be moved to this repository as well or should I make changes to the CONTRIBUTING file so it links to these posts in the seedcase-project repo?
*guide entries:  Documentation-Driven Development, How to add posts, and Reviewing through pull requests
**decision posts: Why Discord and Why Quarto

@lwjohnst86 I have changed the callout block and simplified the contributing file to only include a reference to the seedcase-project website instead.


doesn't work for repo being in another repo

Hi,
plugin seems not to be working if the repository is cloned inside another cloned repository.
VS Code works fine in that case

@krzysztof-balas can you provide more details? Can you add gitlens.advanced.output = 'verbose' to your settings and then take a look at the Output pane for GitLens?

Thanks and sorry for the delay. I recognized the thing thanks to "verbose" log.
Higher-order repository contained .gitignore file ignoring directory with another cloned repository.
Git blame is skipped because global .gitignore is being used - not the local one.
I'm fine if you leave it as it is.

@krzysztof-balas Thanks for figuring it out! Trying to fix this will probably be quite involved (or hurt performance), but since I am only using the .gitignore file for better performance (avoiding blaming files that aren't going to be in the repo), I can add an advanced setting turn it off. Hopefully that will help.


Install a version of peptideshaker corresponding to search_gui <IP_ADDRESS>

Per @jmchilton "that would seem to be the best candidate" for the current tutorial. I'll also manually hide the 4.0.x version that's installed for now if this works.

@galaxybot deploy this


Update k8s scripts

@enisoc
When starting k8s clusters with multiple cells, the pod / vttablet names would be something like:
cell1:
vttablet-100
vttablet-101
...
cell2:
vttablet-100000100
vttablet-100000101
...
This really annoyed me for some reason so this change starts the cell numbering with 1 so that the tablet / pod names look more consistent when using multiple cells (i.e. vttablet-10000100 and vttablet-20000100).

Hm I see the point about it looking inconsistent for multi-cell use, but I'd rather not make the the default single-cell examples look ugly for a use case that most people won't need.
Can you make the switch to consistent names take effect only when using multiple cells? Then the default example would still be clean.

SGTM, done.

LGTM


Sequence Counter / Unique Identifier of Messages

Is your feature request related to a problem? Please describe.
Currently it is difficult to clearly identify a specific message when replaying an eCal measurement multiple times.
It can be very helpful to set a breakpoint as soon as a specific message arrives based on an unique identifier.
Of course it is possible to use the ecal timestamp or a timestamp contained in the payload to identify a message. However timestamps are typically quite long and cannot be captured that easily via a human person. Additionally, it is not ensured that a timestamp is unique.
On the other hand there is the (Data)Clock that is continously counting every message that has been sent from a publisher.
However, there is an problem when using the eCal Player, because the player counts the messages it has sent. If the developer jumps to a later location in the playback, the messages that have been skipped will not be counted and the IDs after the jump are no-longer consistent over multiple playbacks.
Describe the solution you'd like
As far as I know the DataClock is used for some sanity checks inside of eCal and cannot be changed.
However an additional Sequence counter could be added to suit that need.
Here I would see two options:

eCALRec records the original SequenceCounter and eCALPlayer replays exactly this sequence counter without any modification.
eCALPlayer assigns a unique ID to every message in the HDF5 file before replaying it. This ID is independent from the actual replay and possible jumps and thus can be used to identify a measurement

Describe alternatives you've considered
As this might involve some changes in the eCAL Message Frame, a short-term solution could be to include the sequence counter in the payload of the message. This would not require any changes in eCAL.

Hi Julien,
I am currently revisiting this issue. Repurposing the SequenceCounter is not suitable, this is internal eCAL Stuff that cannot be set from the outside. The eCAL Player already assigns a number to each message, just by ordering them. The number is displayed in the lower right corner of the status bar, where you can see the amount of frames in the measurement, as as well as the current position in the measurement.
So would a "Play until Frame..." option help you, which lets you input the frame number after which the player shall stop?

Hello Florian,
thanks for resuming on that topic.
Unfortunately I don't think that that would solve only a part of the problem. It would be nice if there would be a consistent solution that could be used independent from the ecal player; E.g. the frames should have the same IDs even when using a simulator binding or while accessing a measurement via the python or matlab api.
However, I would assume that the only real solution for that might be a change in the ecal message frame. However as this would break backwards compatibility I would not see that as a realistic option.
I would also say that this topic is absolute not urgent and that we could maybe remember this for future major releases (e.g. if there will be any changes in the message frame anyhow).

Hm, actually this sounds like you actually want to have a timestamp:

It almost uniquely identifies a message. The amount of duplications should be very rare, as the timestamp is in microseconds
The timestamp is saved as payload, so it is included in the measurement and can be read with any application
It is consistent across different machines. Each message has a timestamp.
It jumps backwards if the player jumps backwards

Whenever the eCAL Player publishes any message, it uses the original timestamp. So does this fit your needs?

Mmh yes,
Currently I'm using timestamps for that purpose. However they unfortunately do come with some drawbacks.
The numbers are typically quite big so that you cannot easily capture it as a human. Comparing timestamps typically requires to compare around 10 digits. This gets even more difficult if you are using multiple analysis tools at the same time (e.g. a matlab graph, a graphical algo visualization and the visual studio debugger) and you have to compare timestamps by hand. Especially for the visualization, these numbers cannot be displayed because they are too long and would blow up the visualization (e.g. if I want to write the timestamp beside all objects). Typically it's also not just about having a look at a single timestamp/message but about a sequence of multiple ones.
For that reason I've already applied some hashing mechanism or I tried to cut of the first and the last digits. However this makes the information less unique and the numbers are no longer continous.
For some messages we also have added sequence counters in the protobuf payload. However as the mechanism is always the same for all possible messages, it might be worth to think about if that could be a general feature.
Sequence counters would additionally have the benefit that it's directly possible to see what was the previous and what is the next message and is there something missing in between.
However as mentioned: This is currently quite a low-prio enhancement

To be honest, I don't like adding another sequence counter to the internal message header and therefore breaking compatibility and adding bulk that must be sent, just to provide another integer that is easier to look at. The timestamp is there and provides the functionality of having a gradually increasing number. I am not sure if one can repurpose the internal data clock counter for that, as it is set and increased in the eCAL Publisher to provide functionality like detecting message drops across a single connection.
In my opinion I would say it is acceptable to offload an additional increasing number to the User Payload. Most users will probably define a message header for their messages anyways, so one could easily integrate a counter there.


Entity types should be able to inherit from multiple other entity types

To ensure reuse of types the entity types should be able to inherit from multiple other entity types.
For example:
Entity Type Player inherits from Positional, Moveableand Named:

Entity Type
Inherits from
Attributes

Positional
-
vec3 position

Moveable
-
vec3 velocity

Named
-
string name

Player
PositionalMoveableNamed
vec3 positionvec3 velocity string name

Other Types:

Positon: XYZ
Color: RGB
Orientation: yaw, pitch, roll
OrientationSpeed: yawSpeed, pitchSpeed, rollSpeed