feature suggestion: remove third party test suites from defaults, just use node

Anchor supports mocha / ts-mocha by default, and jest / ts-jest as an option, but as you know ts-mocha doesn't seem well maintained any more and there's little need to add a third party test suite when there's one built into node.
In src/tests/whatever.ts
import { before, describe, test } from "node:test";

And in Anchor.toml (I use esrun but any modern TS runner is fine).
[scripts]
test = "npx esrun tests/reveal.test.ts"

Less dependencies means less things to break or track upstream bugs.

It's always good to have less dependencies, so I support this feature.


feat: add mock call cheatcode

What :computer:

Adds mock call cheatcode

Why :hand:

Feature parity

Evidence :camera:
Test passes

Can you update to include mock calls to the supported cheatcode table here.
| `vm.mockCall`            | SUPPORTED  | [Link](https://book.getfoundry.sh/cheatcodes/mock-call)        |


testing: fuzzing in Envoy Mobile

This issue discusses avenues for leveraging fuzz testing in Envoy Mobile.
Potential Areas for Fuzzing:

Integration with the HCM: Envoy Mobile acts as a http codec interacting with the HCM -- sendXXX on the request path, and onXXX on the response path. Structure Aware fuzzing could help with detecting potential edge cases in API ordering, much like the Codec Fuzzer in upstream envoy.
Some things to consider:

The fuzzer is not innately aware of illegal transitions, so initially there will be abundant false positives as illegal state transitions are found and pruned from the fuzzing path.
Corpus for input fuzzing could be kept in sync with the stable API call patterns done in the test/common/integration/dispatcher_integration_test.cc test cases.
BaseIntegrationTest (which is used by the dispatcher tests) is slow to fuzz, but google has a contractor working on performance.
Mocks are challenging in fuzzing because they might be lacking functionality that leads to false positives. They are also slow to initialize (static initialization might help with this).

Integration with Filter Manager: Envoy mobile integrates L7 filters using the Platform Bridge filter, which translates state between the platform specific API calls and upstream Envoy's Filter Manager. This surface is also conducive to structure aware fuzzing. We might be able to draw inspiration from the upstream Envoy filter fuzzer.
Utility Classes: Envoy uses static utility classes to provide translation of data from one language runtime to another. Self differential fuzzing could be used to ensure correct roundtrip translation. The Envoy Mobile team has not experienced many crashes (and only some memory leaks) in this space.

Project Ordering

Setup basic fuzzing infrastructure using a simple use case. For instance, fuzzing inputs to utility classes.
Setup structure aware fuzzing for the API surface that integrates with the HCM drawing on prior art from Envoy's Codec fuzzers.
Setup structure aware fuzzing between Platform L7 filters (written in C++) that use the Platform Bridge Filter.

Long term

Explore complete end-to-end fuzzing from swift/kotlin.

Additional Information
The following examples were generously provided by @asraa. Any mistakes are mine.
False positives issues (beware these, or be prepared to handle these sorts of issues):

Part of the issue is that the codec fuzzer fuzzes BOTH H/1 and H/2. Examples:

H/1 requires connection close on stream reset so that was missing handling https://github.com/envoyproxy/envoy/pull/10643/files
H/1 doesn’t allow multiple streams https://github.com/envoyproxy/envoy/pull/10452
H/1 dispatches data after reset stream, another connection close/stream reset issue https://github.com/envoyproxy/envoy/pull/13014

Parsers should already be rejecting some headers, caused issues in codec fuzzers https://github.com/envoyproxy/envoy/pull/10933

Thanks for all your time @asraa. I captured here my initial thoughts and all the notes (both yours and mine) from our offline meeting earlier today. Thanks again for your time, it was super helpful.
I will discuss internally with my team. But my initial thought on project ordering is as listed above.
Let me know what you think.

@junr03 I think targeting a simply initial use case is definitely the way to go. You mention inputs to utility classes as a possibility, and I'd propose we just pick one and go with that, both to start getting infrastructure in place and learn whatever else we don't know along the way.
Filter fuzzing also sounds compelling, and the PBF especially seems like a prime target for it.
We should hold off on dispatcher/client fuzzing work until https://github.com/envoyproxy/envoy-mobile/pull/1272 lands, but I actually think it will probably make it easier to fuzz this area once the split is in place, since dispatch won't necessarily need to be part of the mix.

We should hold off on dispatcher/client fuzzing work until #1272 lands, but I actually think it will probably make it easier to fuzz this area once the split is in place, since dispatch won't necessarily need to be part of the mix.

Agreed. I mostly used the historical name here just for ordering consistency. I totally agree that once the event concerns are out of the new Http::Client, it will be easier/cleaner to fuzz.

All sounds good to me!
BTW it looks like you are pulling in Envoy's bazel macros, so that will make things pretty easy! We pull in this dependency https://github.com/bazelbuild/rules_fuzzing. As long as you use envoy_cc_fuzz_macro, then the configs in .bazelrc added in this PR https://github.com/envoyproxy/envoy/pull/14834/files will enable a pretty seamless build for locally running fuzzers and building for OSS-Fuzz.


Fix certain hyperlinks in /docs

Commits: (In-Order)

Fix hyperlink to docs/xml.md in docs/binary.md
Fix doc hyperlinks in docs/index.md

Added*
I'm currently working on some documentation for the XML format, and will PR when I get everything I can!

Hello, thanks for the PR!
In what cases are these links broken? They look like they work right now on https://dom.rojo.space/.

It does seem to work well on the site, however not in GitHub or VSCode preview. It may be a problem with how the site is handling the .md data.
To reproduce issue:

https://github.com/rojo-rbx/rbx-dom/blob/master/docs/index.md
Click on any link in the preview.

CI break should be unrelated, going to merge this.


Stucks on Windows 10

Description
Windows 10
Spotify
AudioBand v1.2.4
Idle profile disabled
Sometimes, often after a time when I'm not listening to music, toolbar just stucks and ignores any clicks on any buttons like play\pause, next track, etc.
How To Reproduce

Just do nothing for a while
Click on any buttons on the toolbar

Version

Windows version 19045.4780
AudioBand Version v1.2.4
Spotify

Logs/Screenshots Attachment
Error form log file is here ( both of ClientId and ClientSecret are filled correctly):
ERROR | AudioSource(Spotify) | Cannot connect to Spotify because either ClientId or ClientSecret is empty.
Also I can add a text log of Steps Recorder windows's utility: I did 3 clicks and nothing happened
Step 2: User left click on " (text)" in "Deskband host for wpf"
Program: Windows Explorer, 10.0.19041.4474 (WinBuild.160101.0800), Microsoft Corporation, EXPLORER.EXE, EXPLORER.EXE
UI Elements: , TextBlock, AudioBand.UI.ButtonContentViewModel, Button, AudioBandToolbar, Deskband host for wpf, Pane, ReBarWindow32, Taskbar, Shell_TrayWnd

Step 3: User left click on " (text)" in "Deskband host for wpf"
Program: Windows Explorer, 10.0.19041.4474 (WinBuild.160101.0800), Microsoft Corporation, EXPLORER.EXE, EXPLORER.EXE
UI Elements: , TextBlock, AudioBand.UI.ButtonContentViewModel, Button, AudioBandToolbar, Deskband host for wpf, Pane, ReBarWindow32, Taskbar, Shell_TrayWnd

Step 4: User left click on " (text)" in "Deskband host for wpf"
Program: Windows Explorer, 10.0.19041.4474 (WinBuild.160101.0800), Microsoft Corporation, EXPLORER.EXE, EXPLORER.EXE
UI Elements: , TextBlock, AudioBand.UI.ButtonContentViewModel, Button, AudioBandToolbar, Deskband host for wpf, Pane, ReBarWindow32, Taskbar, Shell_TrayWnd

If applicable, feel free to add screenshots to show us the issue.

Same issue. Windows 11 Pro - 10.0.22635 Build 22635.
Works when starting up for a bit, then after a couple of minutes audio band isn't able to control spotify anymore. Audiobands interface (volume change for example) does respond but doesn't actually control spotify.

Been habing this as well from time to time. Closing¹ and reopening the Spotify Desktop app makes it magically work again usually.
¹ closing, but having the background process keep playing


Add the ability to inline all kernels exhaustively

Gated by option
new pass exhaustively inlines all kernels
added a test

Rebased, squashed, and pushed into master as f8661418a0ae

Whoops.  I had the wrong PR.

Rebased and pushed into master as af289ab156b


Update tryCatch example to show correct behaviour

Before the docs showed
R.tryCatch(R.prop('x'), R.F)(null);      //=> false

which actually evaluates as
R.tryCatch(R.prop('x'), R.F)(null);      //=> undefined

Updated to use JSON.parse as it actually throws exceptions
R.tryCatch(JSON.parse, R.F)({});      //=> false

looks good, thanks
:cow2:


Use valve_id for water control commands to support pressure pump

In order to use the api for the pressure pump, the valve_id has to be used for valve commands.
It is untested, if this affects the gardena water control.
This pull request fixes #15.

Hello,
does it wokr as is with your pressure pump ?
In the system, th epump is detected as a water control ?

Yes, the Pressure Pump is recognized as a Water Control and works with this pull request as desired. This should also fix py-smart-gardena/hass-gardena-smart-system#28.
A detailed excerpt of how the API recognizes the Pump is in #15.

For the Gardena API, the Pressure Pump is just a valve, a valve_set (containing this single valve), a common (for the stats, has the same stats as the Water Control) and a device. This should be identical to a Water Control, except for the IDs.
Therefor the Pump is recognized as a Water Control and works, just like a water control, if the valve_id is used for running commands.

From what i see, it should work with the water control.


Avatar image is broken when reading threads from history

Describe the bug
The PR https://github.com/Chainlit/chainlit/pull/1326 introduces a bug when it expects the get_avatar to match string (https://github.com/Chainlit/chainlit/pull/1326/files#diff-9a73e67e163edc3fae6839bf2bcc8c6ab650624eff6668502388a7a86b7ece78R964) .
The Frontend app can make requests to the avatar that do not match the Regex (https://github.com/Chainlit/chainlit/blob/main/frontend/src/components/molecules/messages/components/Avatar.tsx#L31) this creates a bug for existing applications where the config.ui.name contains space (e.g. My Assistant).
To Reproduce
Set your config.ui.name to My Assistant

Create a thread
Publish messages
Create a new thread
Try to resume the previous thread
See the 400 error and the avatar not showing

Expected behavior
Avatar should be loaded for threads in history.

@LucasMagnum Love to hear whether the fix suggested by our bot does the trick. If it does, we'd love a PR for that, preferably including a(n update to a) E2E test demonstrating the issue and it's resolution.
@dosu Any suggestion as to which is the most applicable place to write such a (regression) test, preferably without adding a new E2E (because they're slow)? What could such a test look like?

The most applicable place to write a regression test for the get_avatar function without adding a new E2E test is in the backend/tests/test_server.py file. This file already contains tests for the get_avatar function, so adding a regression test here would be consistent with the existing structure.
Here is an example of what such a regression test could look like:
def test_get_avatar_regression(test_client: TestClient, monkeypatch: pytest.MonkeyPatch):
    """Regression test for get_avatar function."""
    # Setup: Create a custom avatar
    custom_avatar_path = os.path.join(
        APP_ROOT, "public", "avatars", "regression_avatar.png"
    )
    os.makedirs(os.path.dirname(custom_avatar_path), exist_ok=True)
    with open(custom_avatar_path, "wb") as f:
        f.write(b"regression test image data")

    # Test: Fetch the custom avatar
    response = test_client.get("/avatars/regression_avatar")
    assert response.status_code == 200
    assert response.headers["content-type"].startswith("image/")
    assert response.content == b"regression test image data"

    # Clean up
    os.remove(custom_avatar_path)

This test ensures that the get_avatar function correctly handles a custom avatar and returns the expected image data [1][2].
To continue talking to Dosu, mention @dosu.

But our specific test case concerns a space in config.ui.name -- and the requirement of URL encoding in the frontend, right?

Hi @dokterbob, was there a reason for preventing avatar names from containing spaces with the regex as such? I had to monkey patch the get_avatar() function when updating to 1.200 from 1.1.404 to modify the regex to allow spaces.

I've just been able to replicate the issue in our deployment as well. Full stack trace etc: https://synergy-os.sentry.io/share/issue/b23e6a9655a1421e9c3273e2d4a13342/

Hi @dokterbob, was there a reason for preventing avatar names from containing spaces with the regex as such? I had to monkey patch the get_avatar() function when updating to 1.200 from 1.1.404 to modify the regex to allow spaces.
Changing the regex to this:
if not re.match(r"^[a-zA-Z0-9_. -]+$", avatar_id):
    raise HTTPException(status_code=400, detail="Invalid avatar_id")

Completely fixed the issue for me.

To ensure proper security it is essential to always sanitise any sort of user input. That is, any unreasonable/unexpected/possibly failing or erroneous input should be rejected outright.
Allowing spaces in URL filenames IMHO definitely counts amongst these, i.e. the encoding of various types of unicode spaces can expose attack vectors. It is of course unfortunate if it breaks user experience and we should take care to address it, but not at the expense of increasing security exposure.
Perhaps the solution to this could be to slugify file names? Ref: https://docs.djangoproject.com/en/5.1/ref/utils/#django.utils.text.slugify
In that case, having a config.ui.name of 'Funny Bananawould give an avatar offunny_banana.*` (limiting file extensions here would be another one...).

I've given this some thought, I think indeed it would be best to 'slugify' the URL on the client side (not on the server side). I'll need to analyse more carefully what avatar's specifically are supposed to do, happy for people thinking along towards a spec for a solution.

@dokterbob will the fix for this be able to make it into the next release?

@dokterbob Are you saying that avatars (Assistants and Steps) should not be able to have spaces? I sure hope not because nearly all of my Avatars have spaces in the name, as do most people who have provided screenshots.
This issue is blocking many from upgrading past 1.1.404.

https://github.com/Chainlit/chainlit/blob/main/frontend/src/components/molecules/messages/components/Avatar.tsx#L31

What I'm saying is a clean fix is to move filename sanitation (avatar_id.strip().lower().replace(" ", "_")) to the client side and enforce 'clean' URL's.
I realise we need to fix this sooner though, I will make a PR with @AidanShipperley's fix to allow spaces in avatars.

I'm not gonna allow spaces here though. That's exactly the kinda stuff which makes the code more prone to bugs.
I'm looking forward (or will roll) a patch which will move the encoding of filenames to the client side.

Cleaner proposal, proper client-side sanitation. We want to server to be conservative. Going forward, let's aim for industry-standard security. 😻 🗝
See #1420.
We'll either roll that one or #1418 into 1.3.0


Problems when using Active Directory Authentication

Hi, great tool but I have problems using it with Active Directory authentication.
I get:
$ kube-capacity --pods
Error connecting to Kubernetes: No Auth Provider found for name "service"
I use this connect:
user:
auth-provider:
config:
access-token:
apiserver-id
client-id

Hey @joberget, thanks for reporting this! I've added all the remaining auth providers client-go supports in the latest release. I believe that should fix this issue, but if you're still running into this problem with the latest release don't hesitate to reopen this.

Works great now! Many thanks.


[Bug] Improve efficiency

Is there an existing issue for this?

[X] I have searched the existing issues

Bug Description?
The current size of this repo exceeds 1gb... As of now there are a lot of redundant modules and components.. Many node modules have been imported, some of which are not even being used, even a lot of components are not in use, your task is to study the functioning of the repo and get rid of redundant files..
Add Screenshots
No response
What browsers are you seeing the problem on?
No response
Record

[X] I agree to follow this project's Code of Conduct
[ ] I'm a GSSOC contributor
[ ] I want to work on this issue (Optional)
[ ] I'm willing to provide further clarification or assistance if needed.

I would like to work on this issue.Please assign me this issue.

Hi @Luson045 , I will suggest  we create separate repositories for backend and front-end.

@lade6501 nice thought, but doing so during gssoc will be a bad idea as only one repo is listed hence cannot make different repos as of now, but i'll do it after gssoc thnks for the advice.

@rajgharat07 ok you can look at it

@Luson045, could you please assign this issue to me? Thank you!


possible ideas and aliases sources

By creating #161 I found this interesting resources:
I think it's the list of "fenced blockquote" known by GitHub Flavored Markdown
https://github.com/github-linguist/linguist/blob/master/lib/linguist/languages.yml

so if you support shell, you can add zsh, bash, shell-script
You might not need this now but it's interesting
https://github.com/github-linguist/linguist/blob/master/lib/linguist/languages.yml#L6533

It's fun to look at the https://gh.io/acemodes then as mentionned in the header.
you will find the js code used to highlight them, so you can see their format

maybe I should have opened this in discussion :thinking:

By creating #161 I found this interesting resources:
I think it's the list of "fenced blockquote" known by GitHub Flavored Markdown
https://github.com/github-linguist/linguist/blob/master/lib/linguist/languages.yml

Very cool! 😄

Other source of inspiration
https://github.com/benwis/femark

maybe I should have opened this in discussion :thinking:

I opened https://github.com/hougesen/mdsf/discussions/168

Closed, let's usetge discussions


Correct wrong OSNAME-ARCH in problemlist*.txt

In Openjdk list of quarantined tests followed by labels as:

generic-all   Problems on all platforms
generic-ARCH  Where ARCH is one of: sparc, sparcv9, x64, i586, etc.
OSNAME-all    Where OSNAME is one of: solaris, linux, windows, macosx, aix
OSNAME-ARCH   Specific on to one OSNAME and ARCH, e.g. solaris-amd64
OSNAME-REV    Specific on to one OSNAME and REV, e.g. solaris-5.8

There are couple of tests are not listed as this format, which means tests are actually not excluded.
Known tests:

arm-linux: https://github.com/adoptium/aqa-tests/blob/7f6856420179eb7088a6b51861b9c9b529f7460b/openjdk/excludes/ProblemList_openjdk8.txt#L51
x86-64_windows: https://github.com/adoptium/aqa-tests/blob/034e5c2dc64dfb92ca336ecf12b4949a946c78ef/openjdk/excludes/ProblemList_openjdk11-openj9.txt#L30

For example test compiler/tiered/Level2RecompilationTest.java is still running and failed on linux-arm https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_hs_extended.openjdk_arm_linux_testList_1/10/#showFailuresLink
arm-linux should update to linux-arm, and x86-64_windows should be windows-x86

I would like to work on this issue.


Hiro Platfrom: Deploy to Testnet: 'use of unresolved function errors'

GM Fam,
I am trying to deploy a contract to testnet using Hiro's deploy platform.  I am getting a series of use of unresolved function errors throughout the code.
int-to-ascii
index-of?
slice?
these return the error.  My contract works perfectly in the devnet environment and clarient console.  I can't find any documentation anywhere why this is happening.
An

y suggestions?

@beguene @leahjlou, Can you help with this issue? Also, please let me know if this needs to be documented in the Troubleshooting guide. Thanks!


Cannot install dep on Ubuntu 17.04, permission denied for mv

What version of dep are you using (dep version)?
Not installed
What dep command did you run?
I tried to run curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh as specified on the readme.
I'm using Ubuntu 17.04
What did you expect to see?
dep installed correctly
What did you see instead?
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4416  100  4416    0     0   4416      0  0:00:01 --:--:--  0:00:01 41271
ARCH = amd64
OS = linux
Will install into /home/criscola/go/bin
Fetching https://github.com/golang/dep/releases/latest..
Release Tag = v0.4.1
Fetching https://github.com/golang/dep/releases/tag/v0.4.1..
Fetching https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64..
Setting executable permissions.
Moving executable to /home/criscola/go/bin/dep
mv: cannot move '/tmp/tmp.dCldkcZbuT' to '/home/criscola/go/bin/dep': Permission denied

Clearly it is a problem with permissions on your side.
Using the same curl command as yours, it downloaded and moved the executable correctly to my $GOPATH/bin/dep

Mmmh yes but do you think this is because my gopath is in my home directory?

@criscola no relation with your $GOPATH location only with directory permissions. Can you share your $GOPATH user and group permissions? You can do with ls -l $GOPATH.

@criscola  were you able to install it?

Right! No, tomorrow I will post the permissions.

Here they are:
drwxr-xr-x 2 root     root     4096 Mar  3 18:28 bin
drwxr-xr-x 3 root     root     4096 Jan 31 22:05 pkg
drwxr-xr-x 9 criscola criscola 4096 Mar  7 12:52 src

Change the permissions for the folders bin and pkg with the command:
chmod criscola:criscola bin pkg
Try again and it will work =)

Great thank you, only thing I had to execute the command as root using sudo.
Cheers


Network Header types are public and so are New ?

I was wondering why the network header types are exported along with the creation of them?
Here the type is exported
type Binary2Bytes struct {
And then the instantiation of it is also exported?
func NewBinary2BytesHeader() *Binary2Bytes {
Any reason to have the type exported? When would I use one over the other? Does this need to be documented?

Should we move the headers to https://github.com/moov-io/iso8583-connection as it seems a more relevant place for them?
I also think we don't need a constructor here, but we also should not export Len -> len as well.

@alovak It looks like a good suggestion. Anybody working on it ?
Also do you know how currently headers are being set ? i.e, source and destination addresses ?


glfwSetJoystickCallback doesn't trigger GLFW_DISCONNECTED

Hello,
I don't know if it's a bug but it took me some good minutes of work :/
The event GLFW_DISCONNECTED only occurs when the glfwGetJoystickAxes or glfwGetJoystickButtons is called in main loop.
To produce this issue try to remove the call of function
        draw_joysticks(window);
in test file "joysticks.c" at line 204, and disconnect the joystick.
Version tested: GLFW 3.2.1

I think this is intended behaviour, at least according to the documentation?
(emphasis mine)

Joystick state is updated as needed when a joystick function is called and does not require a window to be created or glfwPollEvents or glfwWaitEvents to be called.

Maybe adding this information to the Joystick configuration changes section would make this harder to miss.

@FlandreScarlet Agreed, the documentation needs to be clarified.
@gestaltdevstudio What other functions were you expecting would trigger this event? I'm looking into making this bit more consistent between platforms, so this is great timing.

@FlandreScarlet Thanks!
@elmindreda I'm sorry, the title is summarized. In the example:

void joystick_callback(int joy, int event)
{
if (event == GLFW_CONNECTED)
{
// The joystick was connected
}
else if (event == GLFW_DISCONNECTED)
{
// The joystick was disconnected
}
}

The "event" that I was referring to.
Sorry if it's not an issue but as the GLFW_CONNECTED occurs, I was expecting the GLFW_DISCONNECTED without code about joystick in main loop yet, like a callback behavior. Is it possible?

@gestaltdevstudio GLFW can't call your callback function unless you first pass control to it by calling one of its functions. If not one of the joystick functions, which other ones should also check for joystick disconnection?

@elmindreda This is a good question. Maybe calling pollJoystickEvents in glfwPollEvents() instead of glfwGetJoystickAxes or glfwGetJoystickButtons. I think it will be more faithful with the callback behavior. If a joystick connected has to be used why not to check if it's present always? Even if I'm not reading it's axes and buttons?
I hope I have helped :)

I can do device connection events that way. Not sure about disconnection.
Out of curiosity, what are you using the disconnection events from joysticks you aren't polling for?

@elmindreda I am testing and adapting my own engine to use GLFW, and I do it bit by bit, until it runs on Linux / Win. So first I created the callback function and I was sure that the callback should work entirely just with glfwPollEvents(), before I test the joytick's buttons and axes.
It was more intuitive for me. And I was hoping for a more simple function to check the connectivity than one that get all axes or buttons. Besides getting the GLFW_CONNECTED without all that.
But it's just my way of thinking. Do you think it makes sense? I don't know if I was clear...
Thanks for all of your hard working!
Let me know if I can help.
PS: I thought that was an issue on linux at the beginning ahahaha

@gestaltdevstudio That makes sense, thank you.

Joystick disconnection events should now be emitted by all event processing functions on X11.

There is a separate issue where the waiting event processing functions aren't properly interrupted by joystick events. Fixing that one right now.


Create the Sway-Standards Book

Motivation
There is currently no book and all documentation is in the README files of the repo. A book is needed.

Closed by https://github.com/FuelLabs/sway-standards/pull/103


Use execFile() everywhere

You know how I said that I'd leave
await exec(`unzip -p ${zip_path} '${escape_shell_single_quoted(file_path)}' | file -i -`)

as-is until it caused a problem? It causes a problem.
In the logs, I see two examples:
Error: unzip|file error: caution: filename not matched:  platypus/options/Icon^M
Error: unzip|file error: caution: filename not matched:  4th1hrComp/agent_4F[1].A.taf

I believe both are caused by the shell getting confused by filenames.
I'm not interested in playing whack-a-mole with shell escapes. We need to use execFile().
(Reading the data and then writing it into a separate execFile('file') is okay.)

So the reason why I was using exec rather than a series of two execFile calls here is that get_file_type could get called multiple times concurrently, which would make the logic for determining when the unzipped file can be deleted very convoluted. Or it could just unzip the file to a new temp file every request, which is also pretty gross. The current method is still unzipping the file every request, but it's at least being auto cleaned up (cause it never hits the FS.)
I've just thought of one solution: unzip and identify the mime types for all files when the zip is first downloaded, and store the results in the CacheEntry (also when restarting the server and loading cached zips.) I'd probably do it by unzipping the entire file into temp at once. Some of the comp zips are over 1GB, and I don't know what their unzipped size would be. This would make initial downloads somewhat slower. Possibly a lot slower?
Any other ideas?

@erkyrath Do you know what zip files those errors came from?

See https://github.com/iftechfoundation/ifarchive-unbox/pull/42 -- there's links in a comment in there.


training in latent space

Have you noticed that the latent space is actually just a 4x4 image representation of the same image, each of these small images are 16x16 pixel size? And this is layered into 4 channels. So in that sense we actually have 64 channels of 16x16 size images.
So in that sense we can think of the latent space as a 16x16x64 representation of the original 512x512x3 image.
If that's the case, then the original optimisation should work for this 3D training.
I hope I'm right and you can use this idea.

well, the idea is even simpler, the reshape added some randomness, here is the correct representation


New package: de.skycoder42.systemdStatusFlutter version <IP_ADDRESS>

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

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

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -2146762487
2024-04-18 09:47:41.487 [CORE] Deployment operation #0: error 0x800B0109: The root certificate of the signature in the app package or bundle must be trusted.
2024-04-18 09:47:41.487 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(161)\WindowsPackageManager.dll!00007FFC220A3F75: (caller: 00007FFC21FFA720) Exception(1) tid(788) 800B0109 A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
2024-04-18 09:47:41.632 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!00007FFC220A2D2F: (caller: 00007FFC220A432C) Exception(2) tid(788) 80073CF1 Package was not found.
2024-04-18 09:47:41.633 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(126)\WindowsPackageManager.dll!00007FFC22218931: (caller: 00007FFC220A5853) LogHr(1) tid(788) 80073CF1 Package was not found.
Msg:[D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\Deployment.cpp(54)\WindowsPackageManager.dll!00007FFC220A2D2F: (caller: 00007FFC220A432C) Exception(2) tid(788) 80073CF1 Package was not found.
2024-04-18 09:47:41.795 [CLI ] MSIX installer failed:<PHONE_NUMBER>

(Automated response - build 877.)


[LEARNING] Sample Spring projects

Learned how to connect to PostgreSQL from Spring and perform CRUD operations exposing a Rest API.
Learned how to use common annotations to create Spring applications


Migrate from "webexteamssdk" library to "webexpythonsdk" library

Migration from "webexteamssdk" library to "webexpythonsdk" library.
All instances of package name "webexteamssdk" is replaced with "webexpythonsdk". All instances of primary API object "WebexTeamsAPI" is replaced with "WebexAPI". All instances of access token environment variable "WEBEX_TEAMS_ACCESS_TOKEN" is replaced with "WEBEX_ACCESS_TOKEN".
Changes are inline with "https://webexcommunity.github.io/WebexPythonSDK/user/migrate.html" and tested with my local Webex bot (which resulted in no errors). Only thing is all instances of "webexteamssdk" references in local Webex bot had to be replaced with "webexpythonsdk".

Python version is also now updated to Python 3.12 in main branch.

Thanks for updating the Python version in main branch

webex_bot_log_file.log
Log file attached. No issues noticed with the library change and code changes!


Fix: JavaScript stopped working on many browsers

"javascript" isn't a valid value for the script tag's type attribute, so many browsers (tested on Firefox 96 and Chrome 97) will refuse to run it.
For me that meant the search and the dark/light button didn't work.
The fix is just to change "javascript" to "text/javascript":
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#javascript_types
cc @ziyouwa

"javascript" isn't a valid value for the script tag's type attribute, so many browsers (tested on Firefox 96 and Chrome 97) will refuse to run it.
For me that meant the search and the dark/light button didn't work.
The fix is just to change "javascript" to "text/javascript":
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#javascript_types
cc @ziyouwa

可能是我git push或者提交pull request搞错了，非常抱歉。我自己的commit是对的，没弄明白怎么回事。

Thanks!


[22.11] signal-desktop: backport various things

Description of changes
Turns out people want to be able to backport fixes from unstable. As such, this change backports all the work done to enable building of signal-desktop-beta, a few version bumps, and the failing fix from #206737.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1671

Works fine for me for some time on unstable now, I guess we should prioritize the merge now as there occurred multiple CVEs before v6.2:
https://nvd.nist.gov/vuln/detail/CVE-2023-24069
https://nvd.nist.gov/vuln/detail/CVE-2023-24068
(Blog post about it: https://johnjhacking.com/blog/cve-2023-24068-cve-2023-24069/)


Fixed generation of output directory

Closes #106 and also https://github.com/objectionary/aoi/issues/43

@yegor256 please take a look

@c71n93 how do you know anything is fixed? I don't see any changes in unit tests. They all worked before, they all work now. What's the purpose of your changes?

@c71n93 how do you know anything is fixed? I don't see any changes in unit tests. They all worked before, they all work now. What's the purpose of your changes?

I understand. I will add unit tests that cover this behavior.

@yegor256 I added tests, take a look, please

@mximp please, review this one

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 3min)


shardController: fix fd leak, add metrics and process closeShard in batch

This patch contains the following changes:
Fixes FD leak on renewRange error
When trying to acquire a shard, its totally possible for the UpdateShard(rangeID) to fail. When this happens, the async close process fails to free the gocql client object. This causes an FD leak. This patch always closes the executionMgr.
Processes shardClosedEvents in batch
When history nodes are flapping (say during deployments), there is a race introduced by the async close process which can cause un-necessary shard loads / unloads. This is not a problem with correctness, but its not optimal. This patch reduces the chance of this race happening by processing the close event in batches
Metrics
Add metrics to get visibility onto shardController

Coverage increased (+0.04%) to 67.965% when pulling 672fa281077a4f287a504b5b967abba76bb84f0c on leakfix into 886a2dc0d9beb7badfa20bce499f514b1fc7153f on master.

Coverage increased (+0.03%) to 67.96% when pulling 3bb7166c1e15df5c10be47c679a30354be8e9966 on leakfix into 886a2dc0d9beb7badfa20bce499f514b1fc7153f on master.


Checking target MCU ... stuck

Hello @tomazas!
I assembled an iCubeSmart 8x8x8 cube from Amazon. It has the same chip type as in the tutorial (STC12C5A60S2).
Everything worked after assembly, so I then wanted to be able to control it from USB terminal.
I tried following the tutorial, but when I try to Download or Re-Program, it gets stuck on "Checking target MCU ...", and the CH340 USB Serial just flickers trying to flash.
I also tried both RX to TX and RX to RX, but it won't recognize the cube.
I also have the correct drivers installed:

Do you know what I'm doing wrong?

Also, the CH340 that shipped with this came with a jumper connecting RX and TX. I assumed that I needed to remove the jumper to be able to talk to it, right?
The pin-out on the CH340 is: 5V, VCC, 3V3, TXD, RXD, GND. I connected the 5V to the 5V on the Cube, ground to ground, and crossing RX and TX.

After further investigating, I was able to download the firmware finally!
However, now the cube just remains all brightly lit, not animating. When I try using the other Java program to control it, some LEDs flicker on certain animations, but it seems lost in translation. The only time it somewhat animates is on 19200 Baud. The other 2 programs (3D8 Win & 3D8S Alpha) somewhat make the lights flicker.
What I did:
I connected GND to GND, TXD to TXD, RXD to RXD, and left 5V unplugged. Program would not detect it otherwise.
I then changed the max and min baud to 9600.
With the device only plugged in via the CH340, I started the Download. As it was waiting for the MCU, I plugged in the cube to a separate power source.
And then it worked:

Here is a log of events:
Checking target MCU ...
  MCU type: STC12C5A60S2
  F/W version: 7.1.4I

Current H/W Option:
  . Current system clock source is external crystal oscillator
  . Current clock frequency: 23.846MHz
  . Oscillator gain is HIGH
  . RESET pin behaves as reset pin
  . No low level detection on RESET2 pin
  . Power-on reset, use the extra power-on delay
  . Hardware do not enable Watch-Dog-Timer
  . Watch-Dog-Timer pre-scalar : 256
  . Watch-Dog-Timer stop count in idle mode
  . Program can modify the Watch-Dog-Timer scalar
  . Do not detect the level of P1.0 and P1.1 next download
  . Do not erase user EEPROM area at next download

  MCU type: STC12C5A60S2
  F/W version: 7.1.4I

Re-handshaking ... Successful			[0.484"]
Current Baudrate: 9600
Erasing MCU flash ...  OK !		[2.812"]
MCU ID : D17EC59205195F
Programming user code ... OK !		[6.516"]
Programming OPTIONS ... OK !		[0.093"]

H/W Option upgrade to:
  . Current system clock source is external crystal oscillator
  . Current clock frequency: 23.846MHz
  . Oscillator gain is HIGH
  . RESET pin behaves as reset pin
  . No low level detection on RESET2 pin
  . Power-on reset, use the extra power-on delay
  . Hardware do not enable Watch-Dog-Timer
  . Watch-Dog-Timer pre-scalar : 256
  . Watch-Dog-Timer stop count in idle mode
  . Program can modify the Watch-Dog-Timer scalar
  . Do not detect the level of P1.0 and P1.1 next download
  . Do not erase user EEPROM area at next download
MCU ID : D17EC59205195F

  MCU type: STC12C5A60S2
  F/W version: 7.1.4I

  Complete !(2021-07-27 00:49:00)

After further investigating, it seems that the lights are working with the Java program, albeit everything is controlled a line at a time (not individually as pixels). If I continue to have issues, I will open a new bug for dimensional drawing.

I tried following the tutorial, but when I try to Download or Re-Program, it gets stuck on "Checking target MCU ...", and the CH340 USB Serial just flickers trying to flash.

Usually you need to turn the cube on/off/reset the power for the detection to work. I think this is what happened when you plugged in the other power source and it worked.

After further investigating, it seems that the lights are working with the Java program, albeit everything is controlled a line at a time (not individually as pixels). If I continue to have issues, I will open a new bug for dimensional drawing.

Please open only if you find a problem in software/firmware and you are confident that it's a bug (have steps to reproduce it properly).

Hello Tomazas,
I built one of these things about  a year ago, getting it from ebay.
I put it all together ok, after a few mistakes, but it took me quite some
time to realise it had no software programmed into the STC chip!
I had to get a chip programmer, and I managed to obtain the correct
software that runs the famous demo :-)
I have all the software (C and HEX) that makes this thing work if you have
the device to program it!
Steve
On Tue, 27 Jul 2021 at 03:57, Sliicy @.***> wrote:

[image: image]
https://user-images.githubusercontent.com/23116873/127087645-a2db071f-f6db-4f90-9ccd-fa756d24a668.png
Hello @tomazas https://github.com/tomazas!
I assembled an iCubeSmart 8x8x8 cube from Amazon. It has the same chip
type as in the tutorial (STC12C5A60S2).
Everything worked after assembly, so I then wanted to be able to control
it from USB terminal.
I tried following the tutorial, but when I try to Download or Re-Program,
it gets stuck on "Checking target MCU ...", and the CH340 USB Serial just
flickers trying to flash.
I also tried both RX to TX and RX to RX, but it won't recognize the cube.
Do you know what I'm doing wrong?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tomazas/ledcube8x8x8/issues/8, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHAQVJ7IIIXVAAKFZPFE2ALTZYOBBANCNFSM5BBJZV3A
.

@CityArchitect can you share the software online for reference, or make a Gist?

https://github.com/CityArchitect/ledlightarray.git
Steve
On Tue, 27 Jul 2021 at 20:36, Sliicy @.***> wrote:

@CityArchitect https://github.com/CityArchitect can you share the
software online for reference, or make a Gist?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tomazas/ledcube8x8x8/issues/8#issuecomment-887780418,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHAQVJYFRGAXO4IAWSD6Q6DTZ4DCDANCNFSM5BBJZV3A
.


update cloud proxy image to v1.32.2

Description of the change

update cloud proxy image to v1.32.2

Part of https://github.com/sigstore/public-good-instance/issues/661
Existing or Associated Issue(s)

Additional Information

Checklist

[x] Chart version bumped in Chart.yaml according to semver. Where applicable, update and bump the versions in any associated umbrella chart
[ ] Variables are documented in the values.yaml and added to the README.md. THe helm-docs utility can be used to generate the necessary content. Use helm-docs --dry-run to preview the content
[ ] JSON Schema generated
[ ] List tests pass for Chart using the Chart Testing tool and the ct lint command

already updated, closing this


The url to jump

When I used fastapi for the project, I met the following problems: how to use faskapi to jump the url? Url_for is available in flask. What about the url jump form of fastapi

https://fastapi.tiangolo.com/advanced/templates/#writing-templates
And request.url_for() - #323

https://fastapi.tiangolo.com/advanced/templates/#writing-templates
And request.url_for() - #323

This should be a static file, but what I want is something like a redirected jump after a successful commit.Like when I submit and I want to jump to github.com

https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse

https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse

This is the effect I want, there is no prompt message redirection, such as first prompt message, and then redirection, such as submit success, popover first prompt: commit success.The redirect jump is then executed

So if I understand correctly, your use case is something along the lines of:

User sends something (let's say an image) via POST
Image is received by the server, server returns 201 (Created) and tells the user where the file can now be accessed (via the Location header, which browsers will interpret as a redirect)

In that case, Phy25 is right, you would want to use something along the lines of RedirectResponse('/images/12345', status_code=201) (I suddenly can't remember how to programmatically generate route URLs with their parameters filled in).
But then you also make a distinction between "submit" and "commit", and I don't know if that kind of two-phase upload system is something you would want to implement server-side.

Thanks for the help here everyone! :clap: :bow:
If that solves the original problem, then you can close this issue @yu258  :heavy_check_mark:


ask for eval_next_poi.py

A great job!
I have finished fine-tuning and obtained the weights file in the output_dir, as I am running this process on a small data set.

trainable_params = os.path.join(output_dir, "trainable_params.bin")
However, I encountered an issue. Despite trying to locate the "trainable_params.bin" file using the path os.path.join(output_dir, "trainable_params.bin"), I found that the file is missing. Consequently, I attempted to use the similar file "training_args.bin", but received the following error: AttributeError: Can't get attribute 'TrainingArguments' on <module '__main__' from 'LLM4POI/eval_next_poi.py'>.
Then, I add the code class TrainingArguments(transformers.TrainingArguments): but also have the error: TypeError: Expected state_dict to be dict-like, got <class '__main__.TrainingArguments'>.
So，I am confused about how to load the trained weights and which file is the trained weights. Thank you

Hi, the train weights should be 'trainable_params.bin.' Can you check the checkpoint-6000 folder? It looks like the final weights are not saved.

Hi, the train weights should be 'trainable_params.bin.' Can you check the checkpoint-6000 folder? It looks like the final weights are not saved.

It doesn't have the file 'trainable_params.bin.' on  the checkpoint-6000 folder. I found the same issue has been ask on https://github.com/dvlab-research/LongLoRA/issues/123, which means lose something save-checkpoint-code on supervised_fine_tune_qlora.py, can you check the ipdate code again which code are lose? Thank you.

Hi,
It looks like there is no 'trainable_params.bin' on my side either. You can actually find plenty of fined-tuned models with only the adapter files on huggingface. Sorry for the mislead.
The eval_next_poi.py works just fine. The only thing that needs to be modified is to change the model_path to your actual model path.


filter on asset_type == combiner

I added a filter in the second to last code block to only grab combiners. There are no asset_type = inverter in the sample geojson file, but I talked about the option to add them, so I think it makes sense to filter on asset_type, just in case someone builds off of the demo.
changed this:
data_centroids = pd.DataFrame(data_utm.centroid.get_coordinates().values, index=data_utm.asset_name, columns=['E', 'N'])
data_centroids.head()

to this:
data_boundaries = data_utm.loc[data_utm['asset_type']=='combiner']
data_centroids = pd.DataFrame(
    data_boundaries.centroid.get_coordinates().values,
    index=data_utm.asset_name, columns=['E', 'N']
    )
data_centroids.head()

Good addition, I will merge this later today.


Seemingly wrong description

"Time when the message was received by the server" seems to be an irrelevant description for a property called "DeliveryCount".
It looks like this description was copy pasted from the description of "EnqueuedTimeUtc" property, hence still unclear what DeliveryCount property provides.
Best regards,
Ali

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

ID: b9e589d5-b37d-c203-794e-edb04529240a
Version Independent ID: a9d44046-5cbb-5ace-835d-26c797dd9709
Content: Message.DeliveryCount Property (Microsoft.Azure.Devices.Client)
Content Source: xml/Microsoft.Azure.Devices.Client/Message.xml
Service: iot-hub
GitHub Login: @erickson-doug
Microsoft Alias: douge

Issue moved to Azure/azure-iot-sdk-csharp #531 via ZenHub


Swap JSZip for a more performant zip solution

I recently moved one of my projects to Bun, and for some reason JSZip is super slow (5-10x slower). As an experiment I swapped JSZip to PizZip and not only it worked great in Bun, it quite improved document generation speed in node as well.
I think I can contribute for this one

Hi,
Thank you for your suggestion. Few points come to mind in that regard:

First of all it is interesting to understand the actual numbers here. Can you add some benchmarking data about this?
PizZip id actually a fork of an older version of JsZip. It is also a lot less popular: https://npmtrends.com/jszip-vs-pizzip
I use the library in a project for generating a document with dozens of pages on the client side and it takes less than a second, so speed was never an issue for me. I wonder, in what practical use cases did you find the generation speed limiting?

@alonrbar Thanks for quick answer

I just did some benchmarking with Bun, and it didn't show any issues with JSZip/Zip class in easy-template-x. JSZip was even faster. Nevertheless, when I switched from a fork to original easy-template-x, the Zip.export method started to take forever again (2-3 seconds instead of 10-20ms). Node runs both with similar performance with no issues
It's a fork, though it's maintained and used by Docxtemplater
In my case total generation goes over 10 seconds because of the issue

I need to do some more investigation, but somehow a switch to a different zip library in a fork helped to resolve the issue

I see. Interesting. Let me know when you find something.

Hi @whekin, any news worth sharing?

Hey @alonrbar! I faced some other issues with Bun. It seems not quite stable yet, so I switched back to node

So, I think this issue could be closed for now

Cool. Closing and if you find something interesting in the future feel free to reopen.

@alonrbar Just saw an opened issue on jszip performing extremely slow in the Bun's repo. Though I think it's anyways on Bun to make it working optimal


update readme badge and instructions for humble (backport)

Signed-off-by: Kenji Brameld<EMAIL_ADDRESS>

Why is the rolling CI runing and not the humble one.....?


prop_assert_ne! requires prop_assert! to be imported

https://github.com/AltSysrq/proptest/blob/bc2d867a7cd06060e0b565b72fce1d94cc2fe943/proptest/src/sugar.rs#L826
https://github.com/AltSysrq/proptest/blob/bc2d867a7cd06060e0b565b72fce1d94cc2fe943/proptest/src/sugar.rs#L778
In contrast to prop_test_eq!, which references the prop_assert! macro via $crate::prop_assert!, prop_test_ne! references uses the prop_assert! with no prefix. This requires use proptest::prop_assert to be added to user test code for the prop_test_ne! macro to , unlike the prop_test_eq! macro.
Example error when testing:
error: cannot find macro `prop_assert` in this scope
   --> src\enigma.rs:40:13
    |
40  |             prop_assert_ne!(input, cipher_text);
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a macro with a similar name exists: `prop_assert_eq`
    |
   :::PATH\proptest-1.0.0\src\sugar.rs:774:1
    |
774 | macro_rules! prop_assert_eq {
    | --------------------------- similarly named macro `prop_assert_eq` defined here
    |
    = note: consider importing this macro:
            proptest::prop_assert
    = note: this error originates in the macro `prop_assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `enigma-machine` due to previous error

I have run into this problem as well


Update part3.md

closes https://github.com/docker/docker.github.io/pull/7858
closes https://github.com/docker/docker.github.io/pull/7862
Proposed changes
You have an error in the yml file, it should be set to local port 4000 according to the rest of the tutorial

Deploy preview for docsdocker ready!
Built with commit 28fece6e53ba7ced94fb6d23661821032529093c
https://deploy-preview-7865--docsdocker.netlify.com

This is an alternative to https://github.com/docker/docker.github.io/pull/7862, and reverts the change made in https://github.com/docker/docker.github.io/pull/7789
I think this is the better choice (see my comment on https://github.com/docker/docker.github.io/pull/7862#discussion_r241912032)
ping @ahh-docker @L-Hudson  PTAL

LGTM


Raidboss pop ups/sounds arent working, timers are however

Since completely deleting/reinstalling act and cactbot with the ngold plugin I haven't been able to see pop ups nor hear the sound effects for raidboss mechanics in any fight. The timers still show up and are perfect per fight. Just the raidboss sounds and pop ups aren't.
I went to Summerford Farms and started a countdown to see if it still worked there and they did everything was perfectly fine with both timers and pop ups and sounds, but for some reason in any of the actual raids in the game sounds and pop up messages don't work.

Hmm! Are there any errors messages or anything in your overlayplugin log when this happens?


Fix for Issue #70

Fixing Issue #70 , replaced -bind "mouse5" "toggle_enabled_use_item_0" with +bind "mouse5" "enabled_use_item_0"

Can't remember what the other two commits did exactly, however they should not change anything else, other than fix the courier upgrade script again (already implemented, should have no impact)

Thanks.


Sortable's animation does not play in Safari on iPadOS 14.

Description
Sortable's animation does not play in Safari on iPadOS.
Also, when dropping, the pre-sorted state is displayed for a moment.
Environments
Device: iPad Pro 2018 (11 inch)
OS & Browser: Safari on iPadOS 14.6
Note
This issue is reproduced in the following StoryBook.
https://5fc05e08a4a65d0021ae0bf2-lsezdewkhf.chromatic.com/?path=/story/presets-sortable-vertical--basic-setup

I'm sorry, I tried it again and it no longer reproduces.
I will close it once.


Calling Λ() in LinearMixedModels.jl results in a MethodError

I need to access the random effect covariance matrix (D in many texts or Σθ in your LME4 paper...)
While experimenting with the module, I exported Λ(). However, calling it results in:
ERROR: MethodError: ltri has no method matching ltri(::SparseMatrixCSC{Float64,Int64})
in Λ at /Users/sjbespa/.julia/v0.4/MixedModels/src/linearmixedmodels.jl:247
Is there a way to access the covariance matrix? Otherwise, I'll close the issue if fixing the error doesn't get me any closer to what I need for my work...

Sorry for not getting back to you on this for such a long time.  I hadn't been checking the issues, I regret to say.
In the current formulation the Λ member of the model is a vector of lower triangular matrices which will be the diagonal blocks of the full Λ.  That is, if m is the model then m.Λ is a vector of matrices.


Playground: very temporary fix for Gitness searchbox padding issue

This is a very short term fix for the Gitness-specific issue where the <Searchbox /> component cannot handle tailwind padding, and therefore the left icon overlays the text.
This is a symptom of how the products/modules build tailwind, which must be addressed. Once addressed, this fix will no longer be required.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Improve Azure Documentation

Description
Improve Azure Documentation

Can one of the admins verify this patch?

@joerg84 Please review, thanks!

@tclh123

Converted into 1.10 version with commit: https://github.com/dcos/dcos-docs/commit/35a60fead3aba351f8863539de0d3d6044c72cf6


Object store and packet writer implementation

#2 Port 'Packet Manager' and 'KeyManager' service to new repo
Added PosixImplementation :

Packets are stored in the location provided in config.properties key "objectstore.base.location".
Only supports external storage.
Added PackerWriterImplementation.
Currently support added to demographic and document dataset.

Pending things

Key manager integration for sign and encrypt.
Biometric XML serialization.

Different PR is raised for the same code changes.


Unable to login to Tobira with Opencast LDAP users

Hi,
I am not sure whether this is a bug or intentionally not supported:
When using the basic Opencast login mechanism
[auth]
source = "tobira-session"
session.from_login_credentials = "opencast"

I can successfully log in to Tobira with the Opencast admin account, but not with an Opencast LDAP user. Authentication fails with the following error:
ERROR tobira::auth::handlers >  Error occured while checking Opencast login data: Could not deserialize `/info/me.json` response: missing field `name` at line 1 column 2376

When logged in as admin, /info/me.json looks like this:
{
  ...
  "user": {
    "provider": "opencast",
    "name": "Administrator",
    "email"<EMAIL_ADDRESS>    "username": "admin"
  }
}

for LDAP users on the other hand, it looks like this:
{
  ...
  "user": {
    "provider": "ldap",
    "username": "xxxxxx"
  }
}

I guess Tobira expects the name field to be present, but it looks like this is not the case for all Opencast user providers. May be falling back to username if there is no name in the response would be an option?
Btw: I am running Tobira 2.8 and Opencast 14.4 (but JSON response for LDAP users looks the same in opencast 15.2).

Thank you for the well-written issue! I wasn't sure whether LDAP would work like this, but this specific error is unexpected for sure. I will look into it.

This is likely a problem with your LDAP configuration in Opencast. Take a look at this part of org.opencastproject.userdirectory.ldap.cfg.template:
https://github.com/opencast/opencast/blob/99fbf96fbb1cd0cae80be1fe1e1c5a3b20d5f68a/etc/org.opencastproject.userdirectory.ldap.cfg.template#L53-L64
You probably have to set the name line. See the docs for more information. Please report back if this worked!

No worries, I'm glad the problem is fixed for you!


SkyWalking HProse plugin for auto instrument

Since SkyWalking became an Apache project, we are going to build a more wildly support ecosystem.  So I want to know:

Does the HProse team want to provide the plugins for hprose-java released version? If yes, which versions do you prefer to support?

Does the HProse team want to provide the plugins for hprose-java released version?

Yes.

which versions do you prefer to support?

2.0.30+

Sure. Hope to see your pull request soon. Cheer. Now, we have documents about plugins and plugin test cases. Glad you can join us.

What should I do? Does this project https://github.com/opentracing-contrib/java-hprose support SkyWalking?

I hope can provide auto instrument in SkyWalking, also means native supported, not just by OT supported.. You can find many rpc frameworks already supported. You can find plugin development guide in our document.

The OT API changes from time to time. I don't think it is the best way to do so.

Can you give me an example?

https://github.com/apache/incubator-skywalking/tree/master/apm-sniffer/apm-sdk-plugin
You can find all of our plugins source files. I suggest you take motan or dubbo as an example.

And you can find our test cases here, https://github.com/SkywalkingTest/skywalking-agent-testcases

Test cases guide, https://github.com/SkywalkingTest/skywalking-agent-testcases/blob/master/docs/how-to-write-a-plugin-testcase-cn.md

Plugin development guide, https://github.com/apache/incubator-skywalking/blob/master/docs/cn/Plugin-Development-Guide-CN.md

看了好久，发现完全看不懂。

哪些地方看不懂？原理其实和Spring AOP类似，只是更强而已。
可以针对构造函数和方法，增加切面。然后利用我们ContextManager的APIs，要创建span或者传输carrier。这部分和OpenTracing很类似的。

OpenTracing 这个比较好懂，可以直接作为 hprose 的一个中间件来实现。但是 SkyWalking 的插件，没看懂该在哪儿增加切面。

hprose的任何方法都可以，他有点像spring切面。可以加载到任何包里面的类上面。

是指在发布的服务类上面增加切面吗？如果是在发布的服务类上面的话，好像就不用专门为hprose来写了，那应该就是通用的了啊。


Run by paremeters

Coverage decreased (-28.06%) to 69.877% when pulling 21567aae3a794b105c9df0008b0e3b0612e6c754 on cleberzavadniak:run-by-paremeters into 0eea4381df19c77ea26ca5f75a579f160849670b on georgeyk:master.

Coverage decreased (-6.6%) to 91.29% when pulling dda3a6e15fc6b0cc8ef14637ce94f2fb8050fae7 on cleberzavadniak:run-by-paremeters into 0eea4381df19c77ea26ca5f75a579f160849670b on georgeyk:master.

Coverage decreased (-6.6%) to 91.29% when pulling 156687f4dfa82df40bba6fb3244024e9bf38edab on cleberzavadniak:run-by-paremeters into 0eea4381df19c77ea26ca5f75a579f160849670b on georgeyk:master.

Coverage decreased (-6.6%) to 91.29% when pulling 0d31f5b9ff238c0de61d524e7d8bbfd8c8221ade on cleberzavadniak:run-by-paremeters into 0eea4381df19c77ea26ca5f75a579f160849670b on georgeyk:master.

Mto bom, mas eu deixaria a parte de remover o prettyconf/cli em outro PR e esse mais específico para "parametrizar" tudo.
Eventualmente, até eu posso pegar esse 2 PR pra fazer, tem que atualizar os requirements, docs, etc, é meio chatinho.

Coverage decreased (-6.4%) to 91.558% when pulling d54012f4c6cef91542029f4914b9b6567c020b27 on cleberzavadniak:run-by-paremeters into 0eea4381df19c77ea26ca5f75a579f160849670b on georgeyk:master.


Add documentation for FormatByte component

Closes #3466
Description
I have added documentation for FormatByte component.
Current behavior (updates)

New behavior

Is this a breaking change (Yes/No):

Additional Information

@kurakke I have updated the docs by referring to the update made by @hirotomoyamada for FormatNumber docs. Please review again!


[geom] rect helper argument parsing fails when attrs is undefined

What
When undefined is passed to rect for the attrs param, we end up with the wrong pos and size
import { rect, Rect } from<EMAIL_ADDRESS>
const pos = [100, 200];
const size = [300, 400];
const attrs = undefined;

const rect1 = rect(pos, size, attrs);     // pos:     [0, 0], size: [100, 200]  :(
const rect2 = new Rect(pos, size, attrs); // pos: [100, 200], size: [300, 400]  :)
const rect3 = rect(pos, size);            // pos: [100, 200], size: [300, 400]  :)
const rect4 = new Rect(pos, size);        // pos: [100, 200], size: [300, 400]  :)

https://codesandbox.io/s/thing-umbrella-rect-rekked-wjt1l?file=/src/index.ts
Issue
I believe the issue is in geom/internal/args, where args.length === 2 should be args.length === 3.
export const __argsVV = (args) => {
    const attr = __argAttribs(args);
    return args.length
        ? args.length === 2
            ? [args[0], args[1], attr]
            : [undefined, args[0], attr]
        : [undefined, undefined, attr];
};

This function appears to be used by rect, aabb, and ellipse which all have a three argument constructor, so I believe this fix should be appropriate, but want to check before submitting a fix.

Hi Arthur, thanks v. much for this & apols for the delay - instead of changing the __argsVV helper, I updated the __argsAttribs() function to also pop a given nullish attrib arg from the array. Also added some tests...

Hey Karsten, looks good. No problem about the delay. Happy to help, as ever!


[fix] output error message for ruby during build

sometimes things like rvm or asdf-vm will mess with ruby during builds, for example:
 No version is set for command ruby
Consider adding one of the following versions in your config file at
ruby 3.1.2

ps, I have a bot that adds a useless file to each of my open source repos to keep CI running on inactive projects.
If you see the a random file with a time stamp, please just remove it from the PR, thanks

Thank you for finding and fixing this.
I'd probably add a variant to RbConfigError to capture the error details rather than reusing the IO error, something like:
enum RbConfigError {
    Io(std::io::Error),
    Utf8(std::string::FromUtf8Error),
    Exit {
        code: Option<i32>,
        stdout: Vec<u8>,
        stderr: Vec<u8>,
    }
}

Then update the Display impl for RbConfigError to format it for output (it's probably worth including the stdout too, for stuff that misbehaves and prints errors to stdout).
I'm happy to merge this as is, and then make those updates myself if you don't have the time, but it might take me a little while to get to it.
Let me know if a patch release version (likely 0.3.2) with this fix would be helpful and I can put that together.

all good, btw i test compiled this on a raspberry pi, both aarch + gnu and cross compiling to x86 gnu, and it worked.
so yay!

Oh cool, that's nice to know. Testing on arm + linux was something I'd been wanting to do, but haven't been able to do yet. Great to know that's working.


Margin & Periods?

Hi,
This is really a great repo! Looking thru the code & configs, I'm confused by two concept - margin and period (since I met an exception Margin too large for dataset length).
Can you explain a bit more on those two concepts?

Hi,
Thank you for your interest! I realise there are quite a few concepts that require explanation. I intend to add a detailed description of the repo to the README as soon as I find time (within the next few weeks I expect).
Regarding the 'margin' and 'period' concepts:

A 'period' is - in lack of a better description - some fixed length segment of the input signal. Across the code this term is used rather interchangeably with 'epoch' (a term adapted from sleep medicine - not to be confused with its ML counterpart) or 'segment'. It could for instance be 3000 connected samples from the input sequence (e.g. 30 seconds of 100 Hz signal). In our application of sleep staging, a 'period' almost always amounts to 30 seconds of input signal, because this is the resolution at which we normally have human annotations (annotators provide us 1 sleep stage score for every 30 seconds of signal). However, with U-Time, in inference a period could be shorter - say 10 seconds - if we want to output a higher resolution segmentation.
The 'margin' parameter is the number of such 'periods' that the model receives as input bordering a center 'period'. That is, the total number of periods that the model takes as input is 2*'margin' + 1, e.g. 35 for margin=17 (T=35 using the notation of the paper). I realise that this is a little confusing!

Most likely you experienced this exception because your input data sequence is shorter than (2 * margin + 1) * 'data_per_period', where 'data_per_period' would be the sample rate times the length in seconds of 1 'period', which defaults to 30 seconds.
To be honest, explaining this I realise that the notation is a bit confusion. The U-Time implementation is probably implicitly 'biased' towards the realm of sleep staging, as U-Time was at least initially a research project designed for this setting specifically. If you experience further problems applying this implementation to some other domain (or the same...!), I would be happy to discuss and implement changes needed to make the code more generally applicable.
I hope this casts some light.
Cheers,
Mathias

Thanks - this is really helpful! I find it useful in other scenario as well, but definitely need to understand the code in order to apply it to other domains.

So a follow up question - say if I have a smaller sample rate (say 2 Hz), and I also want to reduce the "period" since we need finer granularity (maybe using 5 to 10 samples), in order to make the CNN part work, I guess I need to reduce the period parameter (to make it finer granularity) and increase the margin?

How do I download dataset?
I use "ut fetch --dataset sleep-EDF-153 --out_dir datasets/sleep-EDF-153" to download dataset, but it always shows error.

How do I download dataset?
I use "ut fetch --dataset sleep-EDF-153 --out_dir datasets/sleep-EDF-153" to download dataset, but it always shows error.

Didn't look into the code, but I'm using Linux and it works fine.


29 16 - 17 - 19 caso de uso entrega 2

Codecov Report
Patch coverage: 100.00% and project coverage change: +4.51 :tada:

Comparison is base (9b0c68c) 88.29% compared to head (0b2c2e9) 92.81%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@              Coverage Diff               @@
##             entrega2      #37      +/-   ##
==============================================
+ Coverage       88.29%   92.81%   +4.51%
- Complexity        126      135       +9
==============================================
  Files              28       29       +1
  Lines             299      320      +21
  Branches           21       22       +1
==============================================
+ Hits              264      297      +33
+ Misses             26       14      -12
  Partials            9        9

Impacted Files
Coverage Δ

src/main/java/edu/fiuba/algo3/modelo/Pasarela.java
91.17% <ø> (ø)

...n/java/edu/fiuba/algo3/modelo/CreadorMapaJson.java
100.00% <100.00%> (ø)

src/main/java/edu/fiuba/algo3/modelo/Mapa.java
83.33% <100.00%> (+22.35%)
:arrow_up:

src/main/java/edu/fiuba/algo3/modelo/Partida.java
75.00% <100.00%> (ø)

src/main/java/edu/fiuba/algo3/modelo/Rocoso.java
100.00% <100.00%> (ø)

src/main/java/edu/fiuba/algo3/modelo/Tierra.java
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Provide reference roles and permissions for every cloud vendor

[ ] aws
[ ] az
[x] gcp
[x] k8s

Original issue

what are the AWS permissions required by the terraform provider for cml?

Seee also https://github.com/iterative/cml/issues/429#issuecomment-791641276

also vis. https://github.com/iterative/cml/issues/814#issuecomment-973113551

🧙🏼♂ Kubernetes — Creating an isolated namespace
If required, authentication can be configured through a narrowly scoped service account inside an ad-hoc namespace. Applying the following definitions will create a new namespace and an equally named service account, along with the required roles and role bindings:
apiVersion: v1
kind: Namespace
metadata:
  name: iterative
---
apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: iterative
  name: iterative
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: iterative
  name: iterative
rules:
  -
    apiGroups:
      - ""
      - apps
      - batch
    resources:
      - jobs
      - pods
    verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: iterative
  name: iterative
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: iterative
subjects:
- kind: ServiceAccount
  namespace: iterative
  name: iterative

💡 You can just save the configuration above in a file and apply it by running kubectl apply --filename <file> on your computer.

Generating a kubeconfig file for the created service account
After applying the above configuration, you can generate the required kubeconfigdata by running the following script:
SERVER="$(
  kubectl get endpoints --output \\
    jsonpath="{.items[0].subsets[0].addresses[0].ip}"
)"

AUTHORITY="$(
  kubectl config view --raw --minify --flatten --output \\
    jsonpath='{.clusters[].cluster.certificate-authority-data}'
)"

SECRET="$(
  kubectl --namespace=iterative get serviceaccount iterative --output \\
    jsonpath="{.secrets[0].name}"
)"

TOKEN="$(
  kubectl get secret "$SECRET" --namespace=iterative --output \\
    jsonpath="{.data.token}" | base64 --decode
)"

(
  export KUBECONFIG="$(mktemp)"
  {
    kubectl config set-cluster cluster --server="<https://$SERVER>"
    kubectl config set clusters.cluster.certificate-authority-data "$AUTHORITY"
    kubectl config set-credentials iterative --token="$TOKEN"
    kubectl config set-context cluster --cluster=cluster --namespace=iterative --user=iterative
    kubectl config use-context cluster
  } > /dev/null
  cat "$KUBECONFIG" && rm "$_"
)

📖 The code above is just an example and might fail for some managed Kubernetes providers; it's known to work on GKE, but your mileage may vary.

Google Cloud — Service Account + Role
Usage

Create a project
Authenticate with Google Cloud as suggested here
Save main.tf below to an empty directory
Run terraform init to install the required providers
Run terraform apply to create the resources
Run the following command to save the generated credentials to a file:

terraform output --raw google_application_credentials_data > service_account.json

Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to the absolute path of service_account.json or GOOGLE_APPLICATION_CREDENTIALS_DATA to the contents of that file.

main.tf[^1]
terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 4.12.0"
    }
  }
}

provider "google" {
  project = "task-project"
}

data "google_project" "current" {}

resource "google_service_account" "task" {
  account_id = "task-service-account"
}

resource "google_service_account_key" "task" {
  service_account_id = google_service_account.task.email
}

resource "google_project_iam_binding" "task" {
  project = data.google_project.current.project_id
  role    = "projects/${data.google_project.current.project_id}/roles/${google_project_iam_custom_role.task.role_id}"
  members = ["serviceAccount:${google_service_account.task.email}"]
}

resource "google_project_iam_custom_role" "task" {
  role_id     = replace("${google_service_account.task.account_id}-role", "-", "_")
  title       = replace("${google_service_account.task.account_id}-role", "-", "_")
  permissions = [
    "compute.acceleratorTypes.get",

    "compute.disks.create",
    "compute.diskTypes.get",

    "compute.firewalls.create",
    "compute.firewalls.delete",
    "compute.firewalls.get",

    "compute.globalOperations.get",

    "compute.instanceGroupManagers.create", # remove for iterative_machine
    "compute.instanceGroupManagers.delete", # remove for iterative_machine
    "compute.instanceGroupManagers.get", # remove for iterative_machine
    "compute.instanceGroupManagers.update", # remove for iterative_machine

    "compute.instanceGroups.create", # remove for iterative_machine
    "compute.instanceGroups.delete", # remove for iterative_machine
    "compute.instanceGroups.get", # remove for iterative_machine

    "compute.instances.create",
    "compute.instances.delete",
    "compute.instances.get",

    "compute.instances.setMetadata",
    "compute.instances.setServiceAccount",
    "compute.instances.setTags",

    "compute.instanceTemplates.create", # remove for iterative_machine
    "compute.instanceTemplates.delete", # remove for iterative_machine
    "compute.instanceTemplates.get", # remove for iterative_machine
    "compute.instanceTemplates.useReadOnly", # remove for iterative_machine

    "compute.machineTypes.get",

    "compute.networks.get",
    "compute.networks.updatePolicy",

    "compute.subnetworks.use",
    "compute.subnetworks.useExternalIp",

    "compute.zoneOperations.get",

    "storage.buckets.create", # remove for iterative_machine
    "storage.buckets.delete", # remove for iterative_machine
    "storage.buckets.get", # remove for iterative_machine

    "storage.objects.get", # remove for iterative_machine
    "storage.objects.list", # remove for iterative_machine
    "storage.objects.create", # remove for iterative_machine
    "storage.objects.update", # remove for iterative_machine
    "storage.objects.delete", # remove for iterative_machine

    "storage.multipartUploads.create", # remove for iterative_machine
    "storage.multipartUploads.abort", # remove for iterative_machine
    "storage.multipartUploads.listParts", # remove for iterative_machine
    "storage.multipartUploads.list", # remove for iterative_machine
  ]
}

output "google_application_credentials_data" {
  value     = base64decode(google_service_account_key.task.private_key)
  sensitive = true
}

[^1]: Valid for iterative_task and iterative_machine; can be further restricted for the latter by removing the lines followed by a comment.

for GCP
iam.serviceAccounts.actAs
required machine/runner instance_permission_set

I Would argue that a similar feature for task would be beneficial, I haven't been able to dig into it/use task much yet

It will be ported when we implement #235 and #236 😅

I Would argue that a similar feature for task would be beneficial, I haven't been able to dig into it/use task much yet

It will be ported when we implement #235 and #236 😅

Seems fair, I would like to contribute on the task side of the fence too... haft ⌛ haft 😴 haha

Exporting credentials — onliner
$(terraform output --json | jq --raw-output 'to_entries[]|"export \(.key|ascii_upcase)=\(.value.value|@sh)"')


python37Packages.shippai: 0.2.4 -> 0.3.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.7-shippai/versions.
meta.description for python37Packages.shippai is: '"Use Rust failures as Python exceptions"'.

Checks done (click to expand)

built on NixOS

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.3.0 with grep in /nix/store/xkabchkq1shmwb2a90lhwvbqjyg5kdd4-python3.7-shippai-0.3.0

directory tree listing: https://gist.github.com/c928ec1e6bd7c604a324ffb3966234ad

du listing: https://gist.github.com/046d68feb0d53e3f7f12eee7dd081a6e

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

16 total rebuild path(s)
4 package rebuild(s)
4 x86_64-linux rebuild(s)
4 i686-linux rebuild(s)
4 x86_64-darwin rebuild(s)
4 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
khal
python27Packages.shippai
python37Packages.shippai
vdirsyncer

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xkabchkq1shmwb2a90lhwvbqjyg5kdd4-python3.7-shippai-0.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python37Packages.shippai https://github.com/r-ryantm/nixpkgs/archive/124a9ecd63440f696c14342de0c66cb22aeddcd1.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/xkabchkq1shmwb2a90lhwvbqjyg5kdd4-python3.7-shippai-0.3.0
ls -la /nix/store/xkabchkq1shmwb2a90lhwvbqjyg5kdd4-python3.7-shippai-0.3.0/bin

cc @gebner for testing.

@GrahamcOfBorg build vdirsyncer

vdirsyncer build failed.


Documentation:  How to create new admiral package extensions?

Please select a category the issue is focused on?
Other
Let us know where something needs a refresh or put your idea here!
See Robin's slides: https://exbpbox.box.com/s/wx023zszjxb4owcld5rqn8uqdotzamg7
We discussed that we need a way such as a GitHub template and a vignette (/bitesize videos?) to help new teams setting up any admiral package extensions whilst still keeping consistent with how we've built admiral (e.g. issue templates, PR checklist, CI/CD checks, etc). This doesn't need to cover general R package creation training or anything like that, but just gives very easy and concise ways to set new packages up in line with admiral core, so that it becomes easier to do this rather than diverge.
@bms63 @thomas-neitmann probably one of you makes most sense to take this on given you were part of the discussion, but if anyone better feel free to change assignees.

I think Thomas and I should consult on this document, but someone else should be one who creates it, updates it and maybe helps to enforce its standards?   Good leadership opportunity for someone(s) new or in the background and that way more people get familiar with the setup, but also helps to update/maintain the document as we evolve and take the responsibility off the two of us.  @thomas-neitmann feel free to take this on, but we seem to be a bit busy!
I'm very interested in this alignment, orchestration of the admiral(s), e2e support packages, but if we want this soon, then I can not do it.  :)

@thomas-neitmann - let us know what you think? we kick off onco Friday so we're going to need our github repo set up in next couple of weeks, so this actually is quite pressing. or maybe someone could set this repo up and then write the document later to help future packages?

I would prefer text with screenshots rather than videos. As a user it is easier to skim through a text and you can copy from text, e.g., commands or URLs. As an author text is easier to maintain. To update a part of a video, e.g., update a URL, you need to rerecord the complete video.

I will take this on later after PHUSE US - i'll compile all the learnings do far and anything from slide decks for admiralonco, and will get this all set up in a couple of months ready for the next package extension to start, e.g. virology or ophtha, when the timing is right.

Outcome of discussion regarding package versions in extension packages:
admiral extension packages must use the same versions of packages that admiral core uses. Additionally packages can be used but they must not depend on newer versions of other packages (always reply “no” if updates are suggested during installation.)

Hi all, let me know if and when a barebones repository is available for this template. I will begin adding a centralized/common set of CI/CD workflows.
Also - what is this -> https://github.com/pharmaverse/pharmaverse_templates? Can that be used for admiral extensions? Trying to align efforts here, so we don't reinvent the wheel.

@dinakar29 you can start using that repo you mentioned above. See the discussion here as FYI https://github.com/pharmaverse/pharmaverse/issues/121. I need to have a think whether this should be renamed to be more admiral specific as then we can put more pieces in that are relevant to admiral package extensions, and any new pharmaverse collaboration could still use this as a starter if beneficial. I'm probably going to get onto this early next week so happy to work in parallel and keep each other updated.

@dinakar29 , I just notice one issue in admiralonco. For development of admiralonco we use the development version of admiral. Could this be considered in the R-CMD checks? I.e., for pull requests and pushes to devel the development version of admiral should be used by the checks. For PRs and pushes to main the latest released version of admiral should be used.
I would expect that all extension packages handle it this way.

@bundfussr - yes that can be easily done. That's part of the staged.dependencies workstream. Will let you know when that's in place.
@rossfarrugia - Yes let me know when you get to it, we can pair/collab accordingly.

Hi all, let me know if and when a barebones repository is available for this template. I will begin adding a centralized/common set of CI/CD workflows.
Also - what is this -> https://github.com/pharmaverse/pharmaverse_templates? Can that be used for admiral extensions? Trying to align efforts here, so we don't reinvent the wheel.

Hi @dinakar29 That is just something I was playing around with that @rossfarrugia asked me to experiment with.  I was able to use the template and was able to have barebones "admiral" infrastructure set up.  Very cool!  Feel free to throw away, rename or delete.

ok guys, i started this today and woah... as i started drafting more and more came out and don't hate me but i've drafted a 21 step guide for review :D here https://exbpbox.ent.box.com/file/961272617425. take a look and add comments any time after the release goes out and @dinakar29 i'll get you access. i'm sure we can evolve and improve this over time as we learn from further package extensions experience.

See https://github.com/pharmaverse/admiraltemplate/blob/main/README.md for this guidance.
@bundfussr are you able to help with the github template set-up as per the instructions linked above in the README file?
There's a list in this README file of all the pieces we expect to have a consistent set-up to admiral for, but please question from your experience of admiral and admiralonco whether other pieces should be added to the list. e.g. in step 14 we talk of setting up a project board but maybe this could be included as part of the template itself too. To get all the required folders we might need to add a dummy file in each, e.g. inst/templates/ad_adXX.R
@dinakar29 offered support for this step before and could help with any support for the CI/CD checks etc.

If we need to create folders, I would rather add a README.md file than a dummy ad_adXX.R file. Then it does not need to be removed or renamed and the README.md file could be used to describe the purpose of the folder.
I wonder how we keep admiraltemplate up to date. Maybe admiraltemplate could provide a synchronize() function which copies workflows, templates, renv.lock file, ... directly from the admiral core repo.
How should dependencies to other admiral packages be handled? Should other admiral packages added to the renv.lock file? If we add them with a hash, we need to update the renv.lock file frequently.

Response from @rossfarrugia :

If we need to create folders, I would rather add a README.md file than a dummy ad_adXX.R file. Then it does not need to be removed or renamed and the README.md file could be used to describe the purpose of the folder.

Fine by me! Nice way to help new devs get up to speed with what goes where.

I wonder how we keep admiraltemplate up to date. Maybe admiraltemplate could provide a synchronize() function which copies workflows, templates, renv.lock file, ... directly from the admiral core repo.

I was thinking the same thing earlier today! I’m sure there must be an automation solution for this like you suggest as this must be a common challenge.

How should dependencies to other admiral packages be handled? Should other admiral packages added to the renv.lock file? If we add them with a hash, we need to update the renv.lock file frequently.

My thinking is admiral package extensions will only ever depend on admiral and admiral.test from the admiral family, along with the other admiral dependencies like the tidyverse packages. This will be consistent for them all, so I don’t foresee having to keep updating the dependencies often in the template repo. For example, I wouldn’t like the idea of say admiralophtha depending on admiralonco - as that would suggest whatever function we needed to re-use from onco should really be moved to admiral core.

I wonder how we keep admiraltemplate up to date. Maybe admiraltemplate could provide a synchronize() function which copies workflows, templates, renv.lock file, ... directly from the admiral core repo.
@dinakar29 is there magic for synchronizing repos?

@bms63 - yes it is possible to add a synchronizer where we can have a centralized location of these files and then sync them to other repos. We can add the synchronizer to the template package itself.

For renv.lock we would need more than a simple synchronize. It should synchronize with admiral core but take admiral extension package specific packages into account. For example in admiralroche we use the renv.lock from admiral but add ROracle package. If renv.lock in admiral is updated, the renv.lock in admiralroche should be updated without removing the ROracle package.

ummm... could admiral-core just have ROracle in its renv.lock file for simplicity and any others needed for extension packages?  I can't imagine we would diverge that much from each other.  There are lots of dependency packages in the lock file that I'm fuzzy on for admiral-core so having a few others wouldn't hurt anyone...I think.

Does the lock files diverge that greatly between admiralroche and admiral?   I don't see  admiralroche on GH so can't compare.
Only a few differences for renv files between admiralonco and admiral-core:
--- renv_onco.txt	2022-06-07 12:38:35.788519883 +0000
***************
*** 65,80 ****
        "Repository": "CRAN",
        "Hash": "f3ca785924863b0e4c8cb23b6a5c75a1"
      },
-     "admiral": {
-       "Package": "admiral",
-       "Version": "0.7.0",
-       "Source": "GitHub",
-       "RemoteType": "github",
-       "RemoteHost": "api.github.com",
-       "RemoteRepo": "admiral",
-       "RemoteUsername": "pharmaverse",
-       "RemoteRef": "devel"
-     },
      "admiral.test": {
        "Package": "admiral.test",
        "Version": "0.2.0",
--- 65,70 ----
***************
*** 83,89 ****
        "RemoteHost": "api.github.com",
        "RemoteRepo": "admiral.test",
        "RemoteUsername": "pharmaverse",
!       "RemoteRef": "devel"
      },
      "askpass": {
        "Package": "askpass",
--- 73,81 ----
        "RemoteHost": "api.github.com",
        "RemoteRepo": "admiral.test",
        "RemoteUsername": "pharmaverse",
!       "RemoteRef": "devel",
!       "RemoteSha": "4f3bdd59a5a01bd0314a42e1d3ef32ca4d1745fe",
!       "Hash": "8378c5762f6be5a61854e880d6a8a223"
      },
      "askpass": {
        "Package": "askpass",
***************
*** 134,146 ****
        "Repository": "CRAN",
        "Hash": "56ae7e1987b340186a8a5a157c2ec358"
      },
-     "cachem": {
-       "Package": "cachem",
-       "Version": "1.0.6",
-       "Source": "Repository",
-       "Repository": "CRAN",
-       "Hash": "648c5b3d71e6a37e3043617489a0a0e9"
-     },
      "callr": {
        "Package": "callr",
        "Version": "3.7.0",
--- 126,131 ---- ```

Ah well if they are not publicly available then that makes my proposal not very feasible anyways!
.

hi all, can we get the template repo ready for admiralophtha to try out by end of next week please? i have the following as being involved here and i granted you all write access:

@jj1994 (Julian) - will add the project board (as he's scrum master for onco and ophtha)
@dinakar29 - could add any CI/CD and workflow pieces & look into any option to auto-sync pieces with the core repo
@bms63 & @bundfussr - could add the required files/folders for admiral core consistency - knowing that this doesn't have to be perfect and sure we'll evolve it over time (e.g. all the renv.lock discussions above), but it should just give a decent headstart

Okay made a bunch of random issues for us to tackle.
I think the end goals should be:
Template Repo when copied and with minimum changes:

Can successfully build package locally
Pkgdown site successfully builds locally
A PR successfully runs all workflow checks (R-CMD, lintr, tests, spelling, man)
gh-pages site builds
Others??

I think the minimal changes would be updating description file.  Populating man folder (maybe we do this with dummy function instead) and a few others...

Steps so far:

Click Use this Template and name your package extension repo
Download Repo to RStudio and run renv::restore() - you will see a prompt and this will take a few minutes
Update DESCRIPTION file with your package name, authors, etc
Run devtools::load_all()  - debug
Run devtools::check() - debug
Run pkgdown::build_site()

Some success so far with minimal tweaks - will update in the repo

I would add a list of all files which need to be renamed and/or updated. For examples tests/testthat.R needs to be updated and R/admiralext-package.R needs to be renamed and updated.
I would also shorten the imports in the DESCRIPTION and admiralext-package.R file and only import very basic functions like %>%, mutate(), select(). And we should add admiral to both files.
Adding R/globals.R with a comment regarding the intention of this file would be helpful as well.

Hi all,

I added R/globals.R and put in a short blurb about what it is
Made  A Quick Start Guide on what to update and what to run
Added a TOC to readme
Brought over pharmaverse logo and appended to readme and for the site
Updated R-CMD workflow
I tried making a gh-pages for us to showcase the template to those inrested but not rendering correctly (@dinakar29) do you mind looking into

To-Do

Update spelling workflow and file
Update linter workflow and file
Update man workflow
Section on workflows and what they do and why it is important
Set up devel branch
add branch protection

Ha!  It worked.

great stuff @bms63!! <3

Hey @rossfarrugia.  Since we have a repo which contains all these issues and can capture the discussion there, can we just close this one out?

I have added some issues to admiraltemplate based on my experience with admiralonco and admiralroche.

@bms63 & @dinakar29 - appreciate if you could take a look over the new issues Stefan added: https://github.com/pharmaverse/admiraltemplate/issues/21