File extension not added to filename of audio files

I've made a couple of uploads of audio files
When I don't add .ogg to de title of the file, the upload fails.
Since the end of May the app crashes after I've put in a title and description. This wasn't the case back in April, when I was still able to add categories through the app.

Hi @VDK ,
Could you please send us the crash report if possible? When the app crashes it should give you the option of submitting a crash report via email. That will help us diagnose the problem.
Thanks!

I've also had frequent random crash notices pop up since about a month when I'm not actually using the app. I've send in a couple of those.

USER_COMMENT=Wasn't using the app
ANDROID_VERSION=6.0.1
APP_VERSION_NAME=1.13
BRAND=Android
PHONE_MODEL=XT1572
CUSTOM_DATA=
STACK_TRACE=android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:460)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:68)
at fr.free.nrw.commons.contributions.Contribution.fromCursor(Contribution.java:218)
at fr.free.nrw.commons.modifications.ModificationsSyncAdapter.onPerformSync(ModificationsSyncAdapter.java:90)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)

Thanks @VDK ! Will try to look into it.

Hi @VDK ,
I've looked into your crash report, and released a patch yesterday that should fix the issue.
However, the cause of the crash appears to be unrelated to the .ogg issue. Do the uploads still fail if you don't add .ogg to the title? If they do, how do they fail? Does it just say 'failed' on the main screen, or does nothing happen, or does the app crash etc?
Thanks!

Uploads still fail if you don't add .ogg to the filename yourself. It says fail on the main screen

@VDK: Thanks for the feedback!

I am interested in fixing this bug. But I don't see an option to upload the audio files. When I tried to upload an ogg file the upload failed.

Wikimedia Commons supports wav, ogg and flac audio files. At the moment these files do get uploaded if you add the file extension yourself to the title of the upload, so Indian accent.ogg

I can successfully upload ogg files without adding extension name to the title of the upload. Is issue fixed or just i can upload without problem?

I'd like to take a look into the issue and solve it if it still exists.

OK @deydebaditya good luck, let us know about the situation every few days :-)

@nicolas-raoul Sure thing! :)

@neslihanturan I am planning to submit a proposal for GSoC on the project idea you are mentoring, and I thought it would be helpful to start working an issue or two. Do you think this issue would be a good starter to familiarize myself with the code?

Since this is beginner friendly, go for it @ilimugur :) But the issue is old, firstly please check if the problem still exists.

I already have, actually. I built the code on Android Studio and tried uploading an .ogg file using an emulator, but it seems the files (i.e. I tried 2 different ones) look grayed out, and can not be selected for upload. Same thing occurs when I tried using my physical device via the official distribution of the app in the Play Store.
Is there some other way to upload audio files via the app that doesn't use the gallery-browsing interface on the top right corner, or is the feature somehow disabled in the recent versions of the code?

Hey @neslihanturan, would it be alright if I take it up, and try to fix it? As long as it is not already assigned to someone.
I plan to fix this for gsoc_2018 proposal.

@ilimugur did you make any progress? Are you still working on?

I just cloned the code and and built the app. Just got started on it.

@neslihanturan @nicolas-raoul  I went ahead and did some investigations, and there is some ambiguity here (perhaps only to me?) about what does adding .ogg to the "title of the file" means.
Case 1: File upload fails when there is no "filename.ogg" in the title text field after the file is selected (but the file selected itself has the extension present) - This does not repro. The upload works fine.
Case 2: The file that is selected is of .ogg format but does not have an extension. The upload does fail here because the existing code cannot figure out the MIME type without any extension and sends a generic "application/octet-stream" to the server which I presume is being rejected.
A possible fix to this would be reading the signature in the file header for the MIME type and comparing it to known signature for ogg (and the like), but I'd like to know if that is a wanted change before I go ahead and attempt it. Are extension-less file uploads a valid use-case for Wikimedia Commons?
Also, I believe @ilimugur 's issue of being unable to select audio files is file-provider dependent. The app only launches the gallery file provider for MIME type "image/". I tried adding "audio/ogg", but the stock gallery file chooser on my phone only returns the first (image, in this case) kind of file. I was able to do this with Total Commander which returns any kind of file irrespective of the MIME Type asked for. Since Wikimedia Commons accepts audio files too, perhaps this should be another bug to correctly ask the gallery providers for the MIME Types ("image/", "audio/ogg", "audio/wav", etc?)

@neslihanturan Yeah I still am looking to regenerate the issue, but I was having a few technical issues with my OS in the last few days.
@prakhargahlot seems to have hit the spot with the MIME type suggestion. I'll look into extending the MIME types to include audio files in order to regenerate the problem and update this thread, hopefully in less than a day.

Okay, then I will hold off on doing any more work on it for the time being. I suggest you assign the issue (or have someone assign it) to you, @ilimugur if you're working on it.

Since @ilimugur is a first time contributor we can not assign to him, we can only add assigned tag but it is not guaranteed someone added this tag. However, as I wrote previously you can easily see if someone working on it by looking at comments and asking to that person:)

I used Intent.putExtra and Intent.EXTRA_MIME_TYPES to be able to help file managers detect the file formats we are interested in.
It seems to be partially working in a virtual device (API v26 & Android 8.0) as the file manager shows only 1 of the 3 different .ogg files I had as selectable. I tried uploading the selectable file with the title "dummy trial" and description "dummy description", and it seems to have been uploaded successfully, as can be seen here.
Unfortunately the uploaded file is, to my knowledge, copyrighted, so it will have to be removed asap. That being said, the download did not fail, and I could not regenerate the issue.
As @prakhargahlot noted, the MIME types seem to be the larger issue on which improvements can be made. So, @neslihanturan , unless there are any other ideas as to how I may regenerate this one, I am going to recommend this issue be closed. The MIME type declaration can be handled in a separate issue, and I'd like to work on that one, if that's okay.

Was this ever resolved or is it still being worked on... or still relevant?

Is this issue still opened i would like to fix this issue 🥇

Taking off assigned label as not updated for a long time
Taking off beginner friendly because as this issue has been open so long it's clearly not
Going to close as the app doesn't really support uploading audio files properly yet. When it does, if this issue reappears we can reopen. Also I agree with ilimugur's comment on why this should be closed.


state snapshot

Sometimes we need to simply access the current state and not react to it.
To do so, we still have to use observable like :
this.store.select( selector )
  .take(1)
  .subscribe( ... );

or in effects :
this.actions$
  .withLatestFrom( this.store.select( selector ) )

But it really seems like doing complicated things to achieve a simple task.
Would it be really bad if we could access the state directly ??
I've created an hacky getStateSnapshot( selector ) in some of my effects to experiment and didn't come into any trouble yet.

The thing is.. usually when you need a state snapshot, you are doing something "wrong". So what is the use case here?
There used to be getState(), getValue(), and value, but it was removed, so yeah, currently the only way is to do a subscribe.

You're scaring me, I'm doing this a lot on effects !!.
Usually when my actions refer to an entity in my state the payload is the entity id like :
SelectItemAction(payload/* id*/: string)

and on my effects I need the item instance so  I do :
actions$.ofType(SELECT_ITEM)
  .map(toPayload)
  .withLatestFrom( this.store.select( getItems ) )
  .map( ([id, items]) => items[id] )

I think I could also do :
actions$.ofType(SELECT_ITEM)
  .withLatestFrom( () => this.store.select( getSelectedItem ) )

But it feels weird and It's still accessing the state.

Doing it in effects the reactive way is perfectly fine. The problem would be if you wanted to do something like..
http.post('/foo', state.value.people['3'].name);

.. since there are ways to handle this better.

What's wrong with accessing the state value ?
Because I've replaced
actions$.ofType(SELECT_ITEM)
  .map(toPayload)
  .withLatestFrom( this.store.select( getItems ) )
  .map( ([id, items]) => items[id] )

with
actions$.ofType(SELECT_ITEM)
  .map(toPayload)
  .map( id => this.getStateSnapshot( getItems )[id] )

in some of my effects and it seems to work good. I can't see what could go wrong here.

@fxck What are those better ways? Can you show me where I should look for them?
Sometimes I want to have a snapshot, and sometimes I want a subscription.
It would be great if such native function existed.
If it's hard to do, simple alias for select(...).take(1) would be nice.

For me the only time I need a snapshot is in my logging service. If an error occurs I send a Request with the current state and the error message back to the server. It would be convenient to have something shorter as select(...).take(1) at this moment but it really doesn't hurt much. After all, that's only one case where I'd need it.

I don't buy into the blanket statement that accessing the current state in a non-reactive manner is always bad. I know my code and at some points in my code I know that the store already contains the data that I need to retrieve. I also don't care if the data is subject to (frequent) changes. A snapshot is usually enough. That means I don't need to wait for data to become available and I should not need to subscribe to state changes.
Please provide some examples or point me to a commit or issue where the removal of getValue() was discussed.

Please check this against NgRx v4, and if it’s still an issue, please reopen on https://github.com/ngrx/platform. Thanks!


Admin back-end - prevent choosed account to be visible in the "invitation list"

context
The list display every account registered in the database.
We might want to hide somes account, such as administrator, or google test account, for them to not be aviable in the list.
`

Add DB attribute to user table to determine if that user should be returned or not
Change teammate fetch in teammateJPArepository and captainJPArepository according

Not needed because we will change the behaviour to display only the company members #1367


Webreg: Accommodate long class name in the calendar view

With long class names, the text wraps to the next line. [ add screenshot ]

This issue is being closed due to platform migration and may be revisited at a later date.


Remove the appuniversum SASS includePath

ember-appuniversum 1.3+ no longer uses the @appuniversum/appuniversum package so this config fails the build if the project updated to that version (and the host app doesn't install the package itself).
The config isn't needed on older ember-appuniversum versions either since those also add the includePath already.

Thanks!


tflint: 0.12.1 -> 0.13.1

Motivation for this change
Changelog: https://github.com/terraform-linters/tflint/releases/tag/v0.13.1
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@GrahamcOfBorg build tflint


Add target_endian to the set of #[cfg()] items that are considered.

Without this, the entries added in
https://github.com/rust-lang/libc/pull/960 are never tested.

Oh dear, thanks!


Remove Braintree

Related to https://github.com/opencollective/opencollective/issues/3986
:warning: https://github.com/opencollective/opencollective-frontend/pull/6296 should be merged & deployed first.
We ended up going with PayPal implementation instead.

Looks good. To be rebased and small lint issue to fix.


added functionality to support multiple session via serial number

This enables the connection of two JLink debuggers simultaneously. They are differentiated by the serial number of the debugger.
Another command line argument was added.
usage: console [-h] [-t TARGET] [-s SPEED] [-p PATH] [-i ID] [-pwr POWER]

RTT Console v0.2.7

optional arguments:
  -h, --help            show this help message and exit
  -t TARGET, --target TARGET
                        Target chip name (example: STM32F407VE)
  -s SPEED, --speed SPEED
                        Target speed (default: auto)
  -p PATH, --path PATH  Path to JLink DLL
  -i ID, --id ID        ID (serial) of connected device
  -pwr POWER, --power POWER
                        Power on target by JLink

Multiple sessions can now be started without selecting the debugger via a GUI.
rtt-console -i 111111111
rtt-console -i 222222222

Wow! Thank You for the interest


[Nonsense] About the meaning of project name

Feel free to close this issue, this issue just contains some nonsense thinking about the project names. :)
Chemically (or physically) speaking, protons ( $H^{+}$ ) in acid solutions will produce oxonium with water:
$$H^{+} + H_{2}O \rightarrow H_{3}O^{+}$$
https://pubchem.ncbi.nlm.nih.gov/compound/Oxonium
So you can announce that the project's name means oxonium proudly in the README.md.

Yeah, IIUC oxonium is another name for the hydronium ion.
My point was more about that the backstory of the name (oxydation of H3) doesn't really match the real life reaction (protonation of water), as your equation demonstrates.
But I'm fine with it ^^


Changed Docs to Markdown Format from reStructuredText Format

Hello,
This PR aims to propose the idea of migration of the documentation from .rst format to .md format for easier editing & maintenance :smile:
Implements #977

Hello,
We have completed about 85-90% of the migration to markdown format for Read The Docs. But the following problems are arising, due to non-native support of .md file format in Sphinx Documentation Generator :

Upon the conversion of all the files from .rst to .md, the following files were most affected:
1. Index.md
2.  use_guide.md
3. search.md
Main Problems :
1. index.md doesn't have the working toctree as the .rst counterpart had.
2.  index.md is also not being rendered in HTML format even though, it is being rendered in normal markdown format.
3.  If we include any reStructured Text syntax then the document doesn't render markdown syntax :disappointed:
4. All Hoverxrefextension's commands & annotations were removed by me as it doesn't render correctly { Markdown doesn't support hoverxref extenstion}
5. user_guide.md doesn't render as the HTML page & does raise some trivial warnings :(
6. inline syntax, from Myst & rst, raises an error which is evident in both files
7. Again, toctree is not working & hence the referencing of the page is not possible & Index for referencing on the page remains empty
8. Will add more issues as and when I encounter them or will try to fix multiple :smile:

Hello,
We have completed about 85-90% of the migration to markdown format for Read The Docs. But the following problems are arising, due to non-native support of .md file format in Sphinx Documentation Generator :

Upon the conversion of all the files from .rst to .md, the following files were most affected:
1. Index.md
2.  use_guide.md
3. search.md
Main Problems :
1. index.md doesn't have the working toctree as the .rst counterpart had.
2.  index.md is also not being rendered in HTML format even though, it is being rendered in normal markdown format.
3.  If we include any reStructured Text syntax then the document doesn't render markdown syntax :disappointed:
4. All Hoverxrefextension's commands & annotations were removed by me as it doesn't render correctly { Markdown doesn't support hoverxref extenstion}
5. user_guide.md doesn't render as the HTML page & does raise some trivial warnings :(
6. inline syntax, from Myst & rst, raises an error which is evident in both files
7. Again, toctree is not working & hence the referencing of the page is not possible & Index for referencing on the page remains empty
8. Will add more issues as and when I encounter them or will try to fix multiple :smile:

The builds are failing:
ModuleNotFoundError: No module named 'myst_parser'

@DhruvSondhi could you please add the necessary modules to the dev requirements in pyproject.toml so they get picked up by https://github.com/poliastro/poliastro/blob/master/.readthedocs.yml ?
Then mark this pull request as ready for review so we can have a closer look :)
Great job fixing the remaining issues!

The builds are failing:
ModuleNotFoundError: No module named 'myst_parser'

@DhruvSondhi could you please add the necessary modules to the dev requirements in pyproject.toml so they get picked up by https://github.com/poliastro/poliastro/blob/master/.readthedocs.yml ?
Then mark this pull request as ready for review so we can have a closer look :)
Great job fixing the remaining issues!

After checking through all the documentation thus generated after the migration to Markdown, the following issues are found :

The nbSphinx gallery doesn't work (as stated above already by astrojuanlu)
The nbSphinx extension also had the functionality of executing & displaying all the outputs thus generated, but now doesn't work :disappointed:
Issue #1077 states problems with warning related to the Autoapi extension & is linked with the Search functionality of the document being redundant as of current status :disappointed:

After checking through all the documentation thus generated after the migration to Markdown, the following issues are found :

The nbSphinx gallery doesn't work (as stated above already by astrojuanlu)
The nbSphinx extension also had the functionality of executing & displaying all the outputs thus generated, but now doesn't work :disappointed:
Issue #1077 states problems with warning related to the Autoapi extension & is linked with the Search functionality of the document being redundant as of current status :disappointed:

@DhruvSondhi, #1077 is not linked to Search. see #1079

@DhruvSondhi, #1077 is not linked to Search. see #1079

Congratulations @DhruvSondhi for this pull request! It was not an easy task and the final results are awesome 🚀

Congratulations @DhruvSondhi for this pull request! It was not an easy task and the final results are awesome 🚀


Http range file v3

Modifies #443 with improving of last pcap to test more code paths in the PR, that is a range out of order which will have overlaps with previous ranges

Replaced by https://github.com/OISF/suricata-verify/pull/531


Probability distribution circuits

Summary
Add circuits to load probability distributions into qubit amplitudes.
Details and comments
This is a first batch of the probability distributions in Aqua. This converts the specific Aqua components to circuits and refactors uni- and multivariate distributions.
These circuits are used a lot in finance or in computing an expectation value using quantum amplitude estimation to load the probability distribution into the qubit amplitudes. Though they rely on QuantumCircuit.initialize since it is currently unknown how to efficiently prepare qubit amplitudes for normal or lognormal distributions, these classes can be bases for specific, more efficient implementations. See also [1], page 2 and Fig. 2, or [2] Eq. (3).

Concerning comment number 2: we already have a more generic circuit -- initialize/isometry 🙂 these distributions are the ones we use a lot in applications and we hope to find more efficient circuits in future for certain settings, therefore we want to add them as library circuits


[WIP] refactor gen_static

features:

pull only a subset of General

Time spent building tarballs for registry and<EMAIL_ADDRESS>
f77fb30: 32.119186 seconds (5.74 M allocations: 438.242 MiB, 0.39% gc time)
before f77fb30: 24.134260 seconds (7.35 M allocations: 472.674 MiB, 1.60% gc time)

using StorageServer

registry = "General"
pkgs = read_packages(registry; recursive=false, latest_versions_num=1) do pkg
    occursin("FFTW_jll", pkg.url)
end

@time make_tarball("General"; packages=pkgs)

The current version works for 95% times. I've observed some hash mismatch when creating tarballs for BinaryBuilder, not sure if that's expected.


SEPES POD Main UI

This is the main page for POD's. In the left pane there are two similar lists, one for sponsors and one for suppliers. Both allow you to add more sponsors/suppliers. Currently there are no documented rules for whom should be added or not.
Below are the dataset list where checked rows are the datasets to be used.
Right (main) pane shows all the configured POD's and the abilidy to create more POD's.

I find calling this the pods ui is confusing to me. Its more of a study details view.


Travis CI: Use Node.js 10.x

The Node.js 9.x "latest" branch has been superseded by the 10.x branch and testing against Node.js 9.x is no longer required.

9.x isn't EOL for another month.  We shouldn't stop testing with it until it is no longer supported.


prisma generate panics when building docker image on alpine base

When attempting to generate prisma.rs while building an alpine-based image, the binary panics with an OS "No such file or directory" error, which occurs on the prisma_cli.rs cmd.output().unwrap() call, as detailed in the stack trace below.
The build works fine when using a debian base image, but I wanted to use alpine since the resulting image size is 10x larger with debian.
Here is the relevant dockerfile stage:
FROM rust:alpine AS builder-alpine
RUN rustup default nightly
RUN apk add --update musl-dev libressl-dev
WORKDIR /app
COPY ./src-server .
RUN RUST_BACKTRACE=1 cargo prisma generate
RUN cargo build --release

The build output indicating the failing line:
------
Dockerfile:28
--------------------
  26 |     WORKDIR /app
  27 |     COPY ./src-server .
  28 | >>> RUN RUST_BACKTRACE=1 cargo prisma generate
  29 |     RUN cargo build --release
  30 |     # RUN apk add bash curl
--------------------
ERROR: failed to solve: process "/bin/sh -c RUST_BACKTRACE=1 cargo prisma generate" did not complete successfully: exit code: 101

Build output including stack trace:
602.7     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10m 01s
603.4      Running `/target/debug/prisma generate`
603.4 Downloading https://prisma-photongo.s3-eu-west-1.amazonaws.com/prisma-cli-4.8.0-linux-x64.gz to /root/.cache/prisma/binaries/cli/4.8.0/prisma-cli-linux-x64
736.9 Downloading https://binaries.prisma.sh/all_commits/d6e67a83f971b175a593ccc12e15c4a757f93ffe/linux-musl/query-engine.gz to /root/.cache/prisma/binaries/cli/4.8.0/d6e67a83f971b175a593ccc
12e15c4a757f93ffe/prisma-query-engine-linux-musl
738.6 Downloading https://binaries.prisma.sh/all_commits/d6e67a83f971b175a593ccc12e15c4a757f93ffe/linux-musl/migration-engine.gz to /root/.cache/prisma/binaries/cli/4.8.0/d6e67a83f971b175a59
3ccc12e15c4a757f93ffe/prisma-migration-engine-linux-musl
740.1 Downloading https://binaries.prisma.sh/all_commits/d6e67a83f971b175a593ccc12e15c4a757f93ffe/linux-musl/introspection-engine.gz to /root/.cache/prisma/binaries/cli/4.8.0/d6e67a83f971b17
5a593ccc12e15c4a757f93ffe/prisma-introspection-engine-linux-musl
741.9 Downloading https://binaries.prisma.sh/all_commits/d6e67a83f971b175a593ccc12e15c4a757f93ffe/linux-musl/prisma-fmt.gz to /root/.cache/prisma/binaries/cli/4.8.0/d6e67a83f971b175a593ccc12
e15c4a757f93ffe/prisma-prisma-fmt-linux-musl
742.5 thread 'main' panicked at /cargo/git/checkouts/prisma-client-rust-fa967aa5ad0ec391/3ac68d0/cli/src/prisma_cli.rs:40:18:
742.5 called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
742.5 stack backtrace:
743.0    0: rust_begin_unwind
743.0              at /rustc/13a52890dde8cfeb95069d77c223ac37c0cf3a46/library/std/src/panicking.rs:662:5
743.0    1: core::panicking::panic_fmt
743.0              at /rustc/13a52890dde8cfeb95069d77c223ac37c0cf3a46/library/core/src/panicking.rs:74:14
743.0    2: core::result::unwrap_failed
743.0              at /rustc/13a52890dde8cfeb95069d77c223ac37c0cf3a46/library/core/src/result.rs:1679:5
743.0    3: core::result::Result<T,E>::unwrap
743.0              at /rustc/13a52890dde8cfeb95069d77c223ac37c0cf3a46/library/core/src/result.rs:1102:23
743.0    4: prisma_client_rust_cli::prisma_cli::main
743.0              at /cargo/git/checkouts/prisma-client-rust-fa967aa5ad0ec391/3ac68d0/cli/src/prisma_cli.rs:40:5
743.0    5: prisma_client_rust_cli::run
743.0              at /cargo/git/checkouts/prisma-client-rust-fa967aa5ad0ec391/3ac68d0/cli/src/lib.rs:16:9
743.0    6: prisma::main
743.0              at ./src/bin/prisma.rs:2:5
743.0    7: core::ops::function::FnOnce::call_once
743.0              at /rustc/13a52890dde8cfeb95069d77c223ac37c0cf3a46/library/core/src/ops/function.rs:250:5
743.0 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

I've also played around with alpine containerfiles.
Containerfile
ARG RUST_VERSION=1.80.1
ARG APP_NAME=my_app
FROM rust:${RUST_VERSION}-alpine AS build
ARG APP_NAME
WORKDIR /app
RUN apk update && \
    apk add openssl musl-dev openssl-dev pkgconf && \
    cargo install cargo-chef
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
RUN cargo chef cook --release --recipe-path recipe.json
RUN cargo prisma generate && cargo build --locked --release

FROM alpine:latest AS final

RUN apk update && apk upgrade openssl
COPY --from=build "/app/target/release/my_app" /usr/local/bin
EXPOSE 3000
ENTRYPOINT ["/usr/local/bin/my_app"]

Cargo.toml
[package]
name = "my_app"
version = "0.1.0"
edition = "2021"

[dependencies]
anyhow = "1.0.86"
askama = { version = "0.12.1", features = ["with-axum"] }
askama_axum = "0.4.0"
axum = "0.7.5"
axum-extra = { version = "0.9.3", features = ["cookie-private"] }
dotenvy = "0.15.7"
openidconnect = "3.5.0"
reqwest = { version = "0.12.5", features = ["json"] }
serde = { version = "1.0.206", features = ["derive"] }
serde_json = "1.0.124"
tokio = { version = "1.39.2", features = ["full"] }
tower = "0.4.13"
tower-http = { version = "0.5.2", features = ["fs", "trace"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
prisma-client-rust = { git = "https://github.com/Brendonovich/prisma-client-rust", tag = "0.6.11", default-features = false, features = [
    "mssql",
] }

[workspace]

members = ["prisma-cli"]

resolver = "2"

My container won't run but it builds, so hopefully it helps you past that at least? 😄

@StoicDeveloper @delsehi
Hey y'all, I just spent the whole night getting my discord bot deployed on Alpine Linux on Railway and after a lot of pain, failures, 15 minute docker builds and a lot of googling and debugging I DID IT!
Summary of the gotchas I found

I did some debug digging into find the file path that the prisma rust cli was trying to call, to the extent of adding print statements to see what the actual command was. Turns out, prisma-client-rust-cli actually installed it at the right place, and tried to execute the right file path that was downloaded. The problem was something that blew my mind: in Alpine Linux, it is possible to have a file that when you execute says "file not found". Here's the explanation. I followed their solution to apk add libc6-compat. Doing so brought me forward from a file not found error to a "We're running the file, yay! But you don't have libssl1.1 and libcrypto1.1 installed. Failed" error. I'll cover them next.
prisma-client-rust uses the OG Prisma (JS)'s version 4.8.0's engines. This version claims to support not just OpenSSL 1.1, but is the first ever Prisma version to support OpenSSL 3.0.x on the (I'm guessing) latest Alpine Linux 3.17 at that time. The engines we get are downloaded from the same source as the JS version, so I believe this applies to us. HOWEVER, Alpine 3.18 ships with OpenSSL 3.1 by default. Alpine 3.20 ships with OpenSSL 3.3, and if you install postgresql-dev as recommended by this library it becomes OpenSSL 3.4. I'm guessing that it is for this reason we don't automatically get to use the Prisma engine for lib-musl-openssl3.0.x. We get the lib-musl Prisma engine (you can see it when you do cargo run --bin prisma; the URL from which it is downloading. If it is lib-musl it is the OpenSSL 1.1 variant; if it is lib-musl-openssl3.0.x it is the OpenSSL3.0.x variant. Prisma's team gives the binary download link breakdown here, and the list of variants here. So unless you happen to be using an x86_64 (so no ARM) Alpine Linux in 3.17 (I believe) (and now it's 3.20), you will not get the OpenSSL 3.0.x variant, and will need OpenSSL 1.1 to be available and probably linked. If you don't, your prisma generate will probably fail. It would give you a -lssl, -lcrypto file not found error. And if you made it, the actual runtime would fail saying there are missing symbols.
You need perl to compile OpenSSL. If you don't have perl installed and rust is somehow trying to compile openssl for you, it will fail.
I used Alpine 3.18 with openssl1.1-compat because the latest Alpine 3.20 (at time of writing) does not offer openssl1.1-compat; only edge branch and <=3.18 does.
OpenSSL 1.1 is EOL'd last year; and I don't recommend doing this for any project where there is sensitive user data that people have good reason to attack. I suggest trying 3.17, getting the needed postgresql libraries (if using postgresql) without using a package that upgrades OpenSSL beyond 3.0.x. I'll update here if I have time to try it, and get it to work.
You may also get the -lssl and -lcrypto errors by using the rust alpine default docker image and doing everything normally. Something to do with dynamic vs static linking that I don't feel qualified enough to explain myself, and I'm not completely sure if this is related. But it surely convinced me to not use the rust alpine docker image and use my own instead so I know what it's made of. here. And/or apk add openssl-libs-static.
And even with everything sorted out, my prisma generate succeeded as a build step, but did not generate a file. So I used prisma generate on my device, and changed the absolute path at the top of the file to a relative path to schema.prisma from the autogenerate file's directory. (So ../prisma/schema.prisma).
I also connected to the database to do migrations without using the Alpine Linux runtime. I was too tired at this point to try to make it part of the build. Luckily my app doesn't do frequent deploys.
Now my database calls are working, via prisma's query engine, running libssl1.1, prisma 4.8.0. God.

What works for me
# FROM rust:1.82.0-alpine as builder
FROM alpine:3.18 AS planner

# musl-dev is C lib
RUN apk add --no-cache musl-dev postgresql-dev gcc curl openssl-libs-static perl openssl1.1-compat libc6-compat
RUN curl -tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# prefer -proto 'https'
ENV PATH="/user/.cargo/bin:${PATH}"

WORKDIR /app
COPY . .
RUN cargo build --release
RUN mkdir -p bin && cp target/release/myappname bin
RUN touch .env

# # ensure we have DATABASE_URL
ARG DATABASE_URL
# other env vars

CMD ./bin/myappname


Fix format

Small changes to generate Kotlin code that please our lint rules.
Could be nice to merge it before the end of the week, since automatic integration to Element Android is set up and it will create a PR with bad code formatting :)

Thanks for the review.
Yes, it's definitely nicer 👍


centered rmsprop

I slightly modified the rmsprop code to accommodate the centered version which converges faster. Is it okay to merge it?

if it is guarded behind a kwarg, we might consider

Yes, it uses the config argument of the standard rmsprop and leaves the normal behavior intact if not set.


Prevent skeleton loader from showing forever

I see it here for an interminable amount of time, whereas I expect it to load content or show an error message if appropriate:

Same behavior appears in Send dialog:

Same behavior appears in Send dialog:


hamming: introduce use of @Rule

After #142, the exercise hamming is not the first to use the JUnit @Rule feature.  This feature is often not intuitive to those new-to-the-framework.
Please:

include a HINT.md file that describes the @Rule feature as succinctly and clearly as possible.
include a comment right about the use of @Rule that points the practitioner to JUnit documentation specifically about this feature (see QueenAttackCalculatorTest for inspiration).

Should that read "is now the first"?


autoCompleteStyle & git hooks

Codecov Report

Merging #120 into master will decrease coverage by 3.69%.
The diff coverage is 20%.

@@            Coverage Diff            @@
##           master     #120     +/-   ##
=========================================
- Coverage   42.07%   38.38%   -3.7%
=========================================
  Files           6        8      +2
  Lines         202      198      -4
=========================================
- Hits           85       76      -9
- Misses        117      122      +5

Impacted Files
Coverage Δ

src/SuperSelectField.js
39.16% <ø> (ø)
:arrow_up:

src/types/selectionsPresenterTypes.js
100% <100%> (ø)

src/SelectionsPresenter.js
100% <100%> (ø)
:arrow_up:

src/defaultProps/selectFieldDefaultProps.js
100% <100%> (ø)

...rc/defaultProps/selectionsPresenterDefaultProps.js
16.66% <16.66%> (ø)

src/types/selectFieldTypes.js
4.16% <4.16%> (ø)

Continue to review full report at Codecov.

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


No Limit for grenades and flashes

Describe the feature you'd like to see added
normally in the game only about 20 enemies can get hit from these types of grenades which makes playing sometimes really annoying when there are alot of enemies on screen
so i think this would be a good addition to tweaks
Qingsheng mentioned that offset 285E2D in the bio4.exe is where the limit is stored

Do you know if qingsheng had any luck changing it?
I found the code he mentioned, seems it decides max number based on weapon ID, but then makes use of stack memory where there's only room for 20 slots, so increasing the number would just make it overwrite other stack memory.
It'd probably be possible to get it to use our own block of memory with more space, but would need a way to test it out for myself though...

i didnt edit this myself as i didnt need to but i know Futon changed it using that offset
this is what qingsheng said in the full message
"If you want the grenade to damage more enemies, you can modify the EXE file, offset 285E2D
1400 that is 20 enemies 0014"

Hmm, they might have got lucky or maybe didn't test it for that long, I'm pretty sure if you edit that and it returns more than 20 enemies it'd overflow the stack and start overwriting other stuff, probably making it crash...
Like I said it wouldn't be too hard to make it use our own block of memory though, could probably allocate the memory for that function when grenade goes off based on how many cEm actors are active - would still need some way of testing it for myself though, not really sure how to get that many enemies at once.


Create a Normaleezie Singleton to avoid needing to instantiate a normalizer

We don't want to have a static class/singleton with the same name as our namespace.  Also seems like something users can do if it is desired.  Shouldn't force it on them.


Memory stats not returned on Firefox

Hi,
when I use the gem on chrome I get the memory-related attributes correctly, but when I am on firefox they are not there. Is that a firefox limitation or a known issue?
Thanks,
Pedro.

just read that firefox is not supported, sorry.


proposed fix for #796

Well, I removed currentRows and recordKey everywhere because I dind't find what are they meant to do.
Removing lines 164 to 169 is what fixes this problem.
I've tried it with the original error data and it works fine now.
@tfmorris:
I tried to run the test  https://github.com/tfmorris/OpenRefine/commit/2c0cb0d65700d48a68dbeec18103e1c4e71fbbe6
but it doesn't work, about this:
line 143 to 145: apparently project.rows.get(0).cells.get(1) and get(2) are allways null, I don't know why and also, when the last(s) cells of a column are empty, they are not stores, this leads to 143 to match with to be successful (it has cells 1 and 2 extra and 2 less at the end so, equilibrium) and 144 and 145 to complain saying that they have more cells than expected
line 147: "data1"? where does this come from, I think that should be "1" and for 148 and 149 have in mind last item

Qi have fix it with #1079 reusing some of your code.
Thank you very much for your help and analysis on this issue, very much appreciated.


Support function image by URL

Use case
In OpenStack deployment is it possible that IronFunction and underlying Docker swarm will be deployed over private subnet with no access to internet, because there’s only one Container-as-a-Service (Project Zun) available cloud-wide and only its underlying COE has an access to internet. So, users are capable to build images within Zun and after that it is possible to distribute built docker images within OpenStack Image service (Glance). Using Glance capabilities, it is possible to export image into Docker.
Proposal
Support route creation where Docker image is identified by tag and URL.
Docker Remote API allows to import image that is identified by tag and URL, IronFunctions might follow the same pattern in order to import function image from external source that is not Docker Hub, local or custom registry.
Such feature will impact the way how image is being resolved right now (assuming we have proper fix for https://github.com/iron-io/functions/issues/348):

lookup local registry
lookup Docker Hub
In case of URL - try to import an image

CLI example:
fn routes create otherapp /hello iron/hello --container-from-url http://example.com/hello.tgz

Impacts
HTTP API Impact - introduce new body parameter: fromURL
Server impact - ask runner to import image instead of looking up at registries

This is a compelling idea. We need to investigate, though, a way of making it happen in a way that's driver agnostic.


fix: add keepalives to GRPC channel

This patch adds keepalives to the GRPC channel every 2 minutes. By default, there are no keepalives to the GRPC channel. While running dataflow import jobs, issues have been observed with the spanner commit calls that run more than 10 minutes. Adding keepalives to the GRPC channel solves these issues.

@skuruppu - Can you please take a look at this.

Hi @skuruppu,
I dont have write access to the repository. Can someone with write access merge this pull request?

Thanks @olavloite


manifest.yml

Please don't create PRs that personalize the app.   This change is too specific to you.


merge upstream/master to wasm

Description:
This is currently blocking istio/istio from picking any upstream API changes because of config_dump protobuf changed.
Risk Level:
Testing:
Docs Changes:
Release Notes:

Thanks lizan!

Until here it is mostly mechanical + dedup + fix_format. I need more work to make CI pass.

Can we get this in? What's holding it?

@kyessenov someone has to approve, ping @PiotrSikora @jplevyak @htuch ?

Ping!


Not ignoring topics

First of all thank you for the amazing repo, the documentation provided by the technical report is really amazing.
I am testing the multimaster architecture to deploy in a system with very limited bandwidth. I am not sure if it is the expected behavior but once I add a topic to the ignore_topics param it don't show up when I run rostopic list, but if I try to echo this topic it seems to be synced. I expected to see this behavior only if the flag sync_topics_on_demand is set to true. Am I missing something?

Thanks for the praise!
Did you run only one master_sync? If not, did you added this topic to all master_sync nodes?
Otherwise I need the output from the master_sync node.

Due to the structure of the ROS communication, the system structure you have described is not completely possible.
If the robots do not have any common topics, e.g. because they are separated by namespaces, there are various options:

Prevent the robots to detect each other. Start master_discovery on robots with _listen_mcast:=False
rosrun fkie_master_discovery master_discovery  _listen_mcast:=False
Configure master_sync on robots to ignore other robot hosts using ignore_hosts parameter
Configure master_sync on robots to sync only to control station using sync_hosts parameter

I hope these solutions are suitable to you

I think that this third option will solve my problem. Thank you!


Update distribution.md

Summary: Subproject 6 (Power law and universality)

Coverage remained the same at 22.162% when pulling 21ac99963fda89878354c55e419776279929b4b7 on richiefeng:master into aefcb8fe1a255c1e3722451523eccb177f38b5a3 on berkeley-stat222:master.


Running on Docker: iHaskell.Display not found

Hi, I can build from the Dockerfile, but when attempting to replicate the demo notebook, I get the following when trying to import IHaskell.Display:
<interactive>:1:1: error:     Could not find module ‘IHaskell.Display’     Use -v (or :set -vin ghci) to see a list of the files searched for.
 I tried uncommenting - ./ihaskell-display/ihaskell-static-canvas from the stack.yaml, but that doesn't seem to have made any difference.
I'd be grateful for some pointers.

In the interest of saving space, the Docker image does not include the display packages. This unfortunately means that running the demo notebook from a fresh Docker container will not work. How are you trying to use the Docker container?

Oh, I'm literally doing a docker build and running it with the port exposed (as per the README). How does one go about adding the display packages from the command line? Theoretically, I can just add that to the Dockerfile. I'd be happy to make a pull request afterwards to the README.md with a short line to explain how to add those packages in case anyone else wants to do the same thing.

Here's a docker file which includes all packages including Display: https://github.com/IHaskell/ihaskell-notebook

Brilliant, thanks.


test_tenant_delete_races_timeline_creation is flaky

The test_tenant_delete_races_timeline_creation test added by #6310 is flaky, as was already noted in the thread of #6310. It sometimes gives errors like found here:
2024-01-18 10:35:49.81  INFO [neon_fixtures.py:2039] not allowed error: 2024-01-18T10:35:41.855944Z ERROR request{method=POST path=/v1/tenant/b881497cb505658654093a9da48e1892/timeline request_id=2118e566-6abd-4fe6-ad5a-1f629b2085a5}:timeline_create{tenant_id=b881497cb505658654093a9da48e1892 shard=0000 timeline_id=965833c923199ffa69d008dcf0068792 lsn=None pg_version=Some(15)}: Failed to remove temporary initdb directory '/tmp/test_output/test_tenant_delete_races_timeline_creation[debug-pg15]-3/repo/pageserver_1/tenants/b881497cb505658654093a9da48e1892/timelines/basebackup-965833c923199ffa69d008dcf0068792.___temp': No such file or directory (os error 2)
2024-01-18 10:35:49.81  INFO [neon_fixtures.py:2039] not allowed error: 2024-01-18T10:35:44.299372Z ERROR delete_tenant{tenant_id=b881497cb505658654093a9da48e1892 shard_id=0000}: Error: timelines dir not empty: Timelines directory is not empty after all timelines deletion: ["basebackup-965833c923199ffa69d008dcf0068792.___temp"]
2024-01-18 10:35:49.81  INFO [neon_fixtures.py:2039] not allowed error: 2024-01-18T10:35:44.299488Z  WARN delete_tenant{tenant_id=b881497cb505658654093a9da48e1892 shard_id=0000}: Marking Stopping tenant as Broken state, reason: timelines dir not empty: Timelines directory is not empty after all timelines deletion: ["basebackup-965833c923199ffa69d008dcf0068792.___temp"]

The issue is that the remove_dir_all function for the temporary directory against which initdb is running encounters a not found error No such file or directory (os error 2) and bails out, leaving behind traces on disk.
One attempt for a fix is in #6352, making the remove_dir_all function tolerate not found errors. This is not a full solution however as versions of the failure have been encountered that involve a Directory not empty (os error 39) error inside the remove_dir_all function, indicating parallel write activity in addition to parallel read activity.

one more time:
https://neon-github-public-dev.s3.amazonaws.com/reports/pr-6381/7572949812/index.html#suites/3556ed71f2d69272a7014df6dcb02317/ad01fc543f86573b

Some further insights from experimentation I did:

if one implements then the kill().wait based cancellation, then the Failed to remove temporary initdb directory error is gone, although other errors take its place, like various things taking too long, allure report link. this might be turned into a proper fix however.
#6352 still doesn't work, not sure why. allure report

At least now I have a direction into which to "stab"

Some further experiments:

removing cancellation from initdb makes the test in #6404 extremely robust (allure report, before it was failing like 5 times as often), which strengthens the theory that it is initdb still messing with the directory. I put the remaining failures onto due to how we retry the deletion request and how we handle allowed errors: if the allowed error occurs, it is not failing the test but it exists the retry loop. I added a wait to the PR which is ugly, waiting on CI for that as I write this.
John's PR  #6436 is adding a test that lets me reproduce the cancellation racing with directory being deleted issue locally. It works really great. Removing cancellation from run_initdb makes me not reproduce the issue.
I ran strace with initdb and it did launch multiple processes. These will not be killed (immediately) when the parent initdb process gets killed, meaning that the way we cancel actually doesn't really work well at all.
I have tried using process groups for this together with killpg, see this patch, but I can still reproduce the failure with John's PR's test (just do git merge of that branch with origin/jcsp/issue-6423).

To validate the killpg patch, I have built a small program that tries different approaches using three processes "pgtest" (the root/grandparent/pageserver), an intermediate "parent" (what would be initdb in our case), "child" (the leaf process):

using kill, like done currently on main. you see that only the parent gets killed but the children still print their "reached end" messages
using killpg, like done in my patch. you see that no child prints anything any more, they are killed successfully
just waiting for the processes to exit, to validate that all processes print a "reached end" message

You can see how there is a new pgid for the child processes, so that works pretty well.
use std::os::unix::process::CommandExt;

#[derive(Debug, Copy, Clone)]
enum Strategy {
    Kill,
    Wait,
    KillPg,
}

fn main() {
    run_strategy(Strategy::Wait);
    run_strategy(Strategy::Kill);
    run_strategy(Strategy::KillPg);
}

fn run_strategy(strategy: Strategy) {
    let pgid = nix::unistd::getpgid(None).unwrap();
    let pid = nix::unistd::getpid();
    println!("------------------------");
    println!("Runner started, strategy={strategy:?}, pid={pid}, pgid={pgid}.");

    let mut parent_path = std::env::current_exe().unwrap().parent().unwrap().to_owned();
    parent_path.push("parent");
    let mut child = std::process::Command::new(parent_path)
        .process_group(0)
        .spawn()
        .unwrap();
    std::thread::sleep(std::time::Duration::from_millis(500));
    match strategy {
        Strategy::Kill => {
            println!("Killing parent using normal kill...");
            child.kill().unwrap();
            println!("Parent killed.");
        },
        Strategy::KillPg => {
            println!("Killing process group of parent...");
            let pgid = nix::unistd::Pid::from_raw(child.id() as _ );
            nix::sys::signal::killpg(pgid, nix::sys::signal::Signal::SIGKILL).unwrap();
            println!("process group killed.");
        },
        Strategy::Wait => {
            println!("Doing nothing...");
        },
    }
    std::thread::sleep(std::time::Duration::from_millis(3_000 + 3000));
    println!("Runner ends after wait.");
}

------------------------
Runner started, strategy=Wait, pid=439316, pgid=439316.
  Parent started, pid=439318, pgid=439318.
    Child started, pid=439319, pgid=439318.
    Child started, pid=439320, pgid=439318.
    Child started, pid=439321, pgid=439318.
Doing nothing...
    Child reached end, pid=439319, pgid=439318.
    Child reached end, pid=439320, pgid=439318.
    Child reached end, pid=439321, pgid=439318.
  Parent reached end, pid=439318, pgid=439318.
Runner ends after wait.
------------------------
Runner started, strategy=Kill, pid=439316, pgid=439316.
  Parent started, pid=439322, pgid=439322.
    Child started, pid=439323, pgid=439322.
    Child started, pid=439324, pgid=439322.
    Child started, pid=439325, pgid=439322.
Killing parent using normal kill...
Parent killed.
    Child reached end, pid=439323, pgid=439322.
    Child reached end, pid=439324, pgid=439322.
    Child reached end, pid=439325, pgid=439322.
Runner ends after wait.
------------------------
Runner started, strategy=KillPg, pid=439316, pgid=439316.
  Parent started, pid=439326, pgid=439326.
    Child started, pid=439327, pgid=439326.
    Child started, pid=439328, pgid=439326.
    Child started, pid=439329, pgid=439326.
Killing process group of parent...

process group killed.
Runner ends after wait.

full crate, including "parent" and "child" processes pgtest-0.1.0.crate.zip
So the approach of the killpg patch seems to work well. I don't know why it doesn't work in our instance. Further debugging might find the reason, maybe it's because initdb launches sh and that resets the process group ID? I don't know.
I also don't want to spend my entire week on debugging initdb cancellation, as I have other responsibilities, so I will follow John's suggestion to not have the pageserver cancel a running initdb but run it to its end.


Need to use app.php instead of smith.php for translation

Describe the bug
App.php should be replaced with smith.php for translations. Currently, I have to create a generic app.php file in my translations folder in order to be able to translate this plugin.
Steps to reproduce

Create smith.php in your translations folder
Does not work and the plugin is still in english
Rename smith.php for app.php
Translation now works properly

Craft CMS version
4.10.2
Plugin version
2.0.1
Multi-site?
No
Additional context
French translation, if you want to include it to the plugin and save me from having to create a pull request just for that:
 'Copier',
    'Paste' => 'Coller',
    'Clone' => 'Cloner',
    '1 block copied' => '1 bloc copié',
    '{n} blocks copied' => '{n} blocs copiés',
];

There are indeed only a few translated strings in the plugin, and these are under the app category because Craft already includes these strings in the app category, so it seemed unnecessary to translate them twice.
But yes, I might just add those to the smith category anyway for clarity.


change LbstanzaMac to StanzaMac

Homebrew complained that the class name didn't match the package name (this also mirrors the StanzaLinux formula)

Thanks! But installing on a mac works though? I don't have one to test it with.


Add bindings for git_config_multivar_iterator_new

Yields a slightly more convenient API over just filtering the iterator returned
by entries, as we don't have to unwrap the entry only to discard it.

👍


Create modal for file upload

Background
Link to issue
https://biomage.atlassian.net/browse/BIOMAGE-572
Link to staging deployment URL
https://ui-135-agi.scp-staging.biomage.net/
Links to any Pull Requests related to this
N.A.
Anything else the reviewers should know about the changes here

Mocked creation of projects
Implemented MIME type file validation
Instructions default to uploading folder with files in it.
File upload not yet implemented
Create new project modal up automatically opens when there is no project
Upload samples modal automatically open if project has no samples

Changes
Code changes

Implemented Dropzone with simple file-type validation

Definition of DONE
Your changes will be ready for merging after each of the steps below have been completed:
Testing

[X] Unit tests written
[X] Tested locally with Inframock
[X] Deployed to staging

To set up easy local testing with inframock, follow the instructions here: https://github.com/biomage-ltd/inframock
To deploy to the staging environment, follow the instructions here: https://github.com/biomage-ltd/biomage-utils
Documentation updates
Is all relevant documentation updated to reflect the proposed changes in this PR?

[ ] Relevant Github READMEs updated
[ ] Relevant wiki pages created/updated

Approvers

[ ] Approved by a member of the core engineering team
[ ] (UX changes) Approved by @vickymorrison (this is her username, tag her if you need approval)

Just before merging:

[ ] After the PR is approved, the unstage script in here: https://github.com/biomage-ltd/biomage-utils is executed. This script cleans up your deployment to staging

Optional

[X] Photo of a cute animal attached to this PR

I suggest updating the wording on the modal as follows:
Only 10x Chromium datasets are currently supported.
For each sample, the following three files are required:
• barcodes.tsv or barcodes.tsv.gz
• features.tsv or features.tsv.gz
• matrix.mtx or matrix.mtx.gz
Drag and drop the folder containing these three files. The folder should be named with the sample ID.
Further guidance on supported file types and formats is available here.
The "here" should provide a link to the following PDF: https://drive.google.com/file/d/1qX6no9od4pi-Wy87Q06hmjnLNECwItKJ/view?usp=sharing

If the user attempts to upload invalid file types (as I just tried), should the "upload" button be disabled?

If the user attempts to upload invalid file types (as I just tried), should the "upload" button be disabled?

Disable upload if there is invalid file, add option for user to delete the files and try to upload again.

I think there is a bug behaviour-wise: In the initial module open I get the disabled "Create project button" which is ok, but if I create a proejct and then open the modal again to create another project I get an enabled button by default,so I can create projects with empty project names

Reply to https://github.com/biomage-ltd/ui/pull/135#discussion_r586728582
I remove the ability for users to remove the display so that they will not be able to close the projects list / data management UI. These are the only 2 components that are in the page, and the Data Management part relies on Projects List to choose the currently opened project. Right now, there is no mechanism to reopen the Projects List and Data Management and to reload it users have to refresh the page. By removing the remove button, we'd essentially prevent the change of missclicks from happening.


awesome tool | made a few changes to get it to work for me

1. change
Extended array of methods best not to touch. Without that, xtrace causes an exception after a while:
'expection' being: _os_unfair_lock_recursive_abort
I added retainWeakReference, _tryRetain, autorelease, isEqual:, hash and I added back the dealloc related methods

see:
            else if ( name[0] == '.' ||
                     [nameStr isEqualToString:@"description"] || [nameStr hasPrefix:@"_description"] ||
                     [nameStr isEqualToString:@"isEqual:"] || [nameStr hasPrefix:@"hash"] ||
                     [nameStr isEqualToString:@"retainWeakReference"] || [nameStr isEqualToString:@"_tryRetain"] || [nameStr isEqualToString:@"retain"] || [nameStr isEqualToString:@"release"] || [nameStr isEqualToString:@"autorelease"] ||
                     [nameStr isEqualToString:@"_isDeallocating"] || [nameStr isEqualToString:@"dealloc"] || [nameStr hasPrefix:@"_dealloc"] )
                ; // best avoided

2. change
Made formatValue function not call isKindOfClass on proxy objects to avoid a crash when proxies implement isKindOfClass
other

added #pragma clang diagnostic ignored "-Wignored-attributes" so the NS_RETAINS macro on the templated c function works in all cases
had to remove the last pop pragma to make it compile

edited changes

Hi @Daij-Djan, Thanks for this. Any chance you could make it into a PR?


Why did not update last week, when to support spring boot 2.0

We are waiting for it

I'm looking forward to it, too

I'm waiting for it ,too.

waiting +1

Thank you for waiting , it will be released in this week!

Duplicated #37


SPT Motion Control - ST_AxisStatus - DriveDeviceError

If in a axis the status DriveDeviceError is set, the FB_BasicAxis has no error. The Error of FB_BasicAxis is FALSE and the ErrorID is 0.
But if DriveDeviceError ist set, there must be called MC_Reset to get out of this error.
The Reset method will only be called if a Componet has an error. If FB_BasicAxis has no error also FB_Component_BasicAxis has no error. So the Reset method can not be called.
How is your idea to get out of this error?
Regards
Silvano

Thanks and good point--this will be fixed in the next release

This has been fixed.  DriveDeviceError now should throw an error.  This was added in motion control library v3.2.5.  Components have been updated to reflect this error as well, v3.2.7.
We also added parameter to base types v3.2.10 that allows you to reset all components regardless of error flag.
In the next major release, this will be the default behavior.  There will be other breaking changes in the next major release (4.x) so we figured best way to not break existing applications would be the parameter.


Updates for managed disk and storage tiers

Changes to support managed disk for the Operations Manager VM deployment and also enable selection of premium or standard storage.  Using premium disk for the OpsMan VM provides a significant performance improvement when importing/extracting Ops Manager tiles.

@dwrightmsft the PR looks good. to validate, how does this change benefit the consumer over what exists now?

@mxplusb this is using managed disks which is a best practice in Azure for performance, security and availability reasons.  In addition, offering the option to deploy using Premium storage for the VM disk dramatically reduces the time required for IO intensive operations such as importing/unzipping large Ops Manager tiles such as PAS, resulting in a much improved experience for the platform operator.


Update dependencies

Just a lil thing, localforage can support multi stores for indexeddb (a base feature...) since 1.3, is it possible to update angular-localForage dependencies ?
Next users will save a lot of time^^
Thanks

Anyway, if we can't get an instance with name + storeName, the update is useless

Is there any ETA for localforage 1.4 support?

Not really, if you want to make a PR you can, but I don't work on this lib anymore...

Ok sure, I don't see any breaking issues, so not sure why it wouldn't work. But should run some tests.

Okay so package.json was already updated. Submitted PR in #109 to also bump bower.json

Thanks @barryvdh, I'm putting this as priority number one in my roadmap. Leaving this open until it's fully resolved.


Uninitialized variables at pb2nc.cc and regrid_data_plane.cc

pb2nc.cc: "ev" at get_event_index()
regrid_data_plane.cc: has_coord_input at get_grid_mapping

Created bugfix_1156_uninitialized branch and merged to develop and master_v8.1


[WIP] Add mock HTTP server

This PR adds a simple mock HTTP server that runs alongside our specs so that we can test runtime behavior of our REST functions! :smile: :heart:

How it works:
The server exposes a simple API of POST /_endpoints to "prepare" and endpoint with a response with an object like the following:
{
  "method": "GET",
  "resource": "/ping?v=1",
  "status_code": 200,
  "headers": {
    "Content-Type": "text/plain"
  },
  "body": "pong"
}

You can then GET /ping?v=1 and receive that object as you specified, with the given headers and status code applied. The Client is pointed at our mock server with -Dmock_server as a compile-time change.
This lets us write specs using a class-level function that prepares an endpoint:
describe Discord::REST do
  it "#create_message" do
    # Instance the expected object
    expected = Discord::Message.from_json(message_json)

    # Tell the server what we expect to receive back on the next call to this endpoint
    Discord::MockServer.prepare_endpoint("POST", "/channels/1/messages", 200,
      {"Content-Type" => "application/json"}, expected.to_json)

    # Spec it!
    client.create_message(1, expected.content).should eq expected
  end
end

CI is accomplished by spec_runner.sh that starts the server in the background, waits until its prepared /ping endpoint replies, runs specs, then kills the process.

This PR
Mostly I am looking for feedback on the design of the Mock server and its integration into the library and specs. There are still some TODO left around that I'll touch up tomorrow probably.
There are a lot of REST functions, so if possible, I would like this PR to merge the server and an example spec, and more REST coverage can come in later PRs to keep this manageable.
My main concerns right now:

Should the server be under src/ (maybe src/mock_server) for users to use in their own bots? Or should it be kept as a lib developer tool?

I'm unsure that logging is needed server side but I added it anyways. It just logs to INFO right now.

spec_runner.sh. I don't pretend to know bash, this was certainly hacked together, but it seems to work.

There's going to be a LOT of JSON in these specs. Should we add a spec/json/ dir and a JSON loader helper method to keep specs easier on the eyes? Or do we care?

we don't need a mock HTTP server, just to use something like webmock

Hm, I think I'd rather still stick with our own solution. Eventually we'll want to mock the gateway too which webmock doesn't cover, and this pr would give us a pretty easy path to. Or we'd have to find some other shard.
(Also, a webmock spec is failing for me on 0.25, I'm not sure why or if it's relevant at the moment)
If we want to go with webmock for now, happy to throw that together; from #90 and other convos something custom seemed best in lieu of there not being any well-developed Discord mock services.


Watch fails to reload server

From discord thread
Issue tracked down to commit https://github.com/leptos-rs/cargo-leptos/commit/94ba14b10a369f3944959c8a3e59ef3dbe3a835e
Trying to summarise:

doesn't seem to be a server binary permissions issue.
unlikely to be a firewall issue
doesn't output println's from the server, indicating that the binary is never run.
only happens on Mac
possibly an ADDRINUSE issue, see this

I have not been able to reproduce this. If anyone is experiencing this issue, then please add a comment to this issue so that I can get an idea of how common this is.

This happens reliably for me (macos). I haven't had time to come back and investigate further yet.

I can reliably reproduce it as well. I investigated a bit and I think I found some traces.
The first (clean) build always works. On the first rebuild of the code, there is a crash. In the system level log below you can see the error EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid)) so it seems to be an issue with the code signing afterall.
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Incident Identifier: D87C84A9-7712-40AE-8564-8452AD32920B
CrashReporter Key:   2A015311-7078-7285-2872-05F6775BE363
Hardware Model:      MacBookPro18,1
Process:             example_leptos [36974]
Path:                /Users/USER/*/example_leptos
Identifier:          example_leptos
Version:             ???
Code Type:           ARM-64 (Native)
Role:                Unspecified
Parent Process:      cargo-leptos [35285]
Coalition:           com.googlecode.iterm2 [636]
Responsible Process: iTerm2 [610]

Date/Time:           2023-01-21 16:45:39.8406 +0100
Launch Time:         2023-01-21 16:45:39.6379 +0100
OS Version:          macOS 12.5 (21G72)
Release Type:        User
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
Exception Subtype: UNKNOWN_0x32 at 0x00000001043e0000
Exception Codes: 0x0000000000000032, 0x00000001043e0000
VM Region Info: 0x1043e0000 is in 0x1043e0000-0x10526c000;  bytes after start: 0  bytes before end: 15253503
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  mapped file                 1043e0000-10526c000    [ 14.5M] r-x/r-x SM=COW  ...t_id=59be8647
      mapped file                 10526c000-1052f0000    [  528K] rw-/rw- SM=COW  ...t_id=59be8647
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: CODESIGNING 2

Highlighted by Thread:  0

Backtrace not available

No thread state (register information) available

Binary Images:
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

Error Formulating Crash Report:
_dyld_process_info_create failed with 6
dyld_process_snapshot_get_shared_cache failed
Failed to create CSSymbolicatorRef - corpse still valid ¯\_(ツ)_/¯

EOF

-----------
Full Report
-----------

{"app_name":"example_leptos","timestamp":"2023-01-21 16:45:44.00 +0100","app_version":"","slice_uuid":"2308001e-6ca6-3686-b5c9-9240e3850d97","build_version":"","platform":0,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 12.5 (21G72)","incident_id":"D87C84A9-7712-40AE-8564-8452AD32920B","name":"example_leptos"}
{
  "uptime" : 10000,
  "procLaunch" : "2023-01-21 16:45:39.6379 +0100",
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro18,1",
  "procStartAbsTime" :<PHONE_NUMBER>52,
  "coalitionID" : 636,
  "osVersion" : {
    "train" : "macOS 12.5",
    "build" : "21G72",
    "releaseType" : "User"
  },
  "captureTime" : "2023-01-21 16:45:39.8406 +0100",
  "incident" : "D87C84A9-7712-40AE-8564-8452AD32920B",
  "bug_type" : "309",
  "pid" : 36974,
  "procExitAbsTime" :<PHONE_NUMBER>18,
  "translated" : false,
  "cpuType" : "ARM-64",
  "procName" : "example_leptos",
  "procPath" : "\/Users\/USER\/*\/example_leptos",
  "parentProc" : "cargo-leptos",
  "parentPid" : 35285,
  "coalitionName" : "com.googlecode.iterm2",
  "crashReporterKey" : "2A015311-7078-7285-2872-05F6775BE363",
  "responsiblePid" : 610,
  "responsibleProc" : "iTerm2",
  "sip" : "enabled",
  "vmRegionInfo" : "0x1043e0000 is in 0x1043e0000-0x10526c000;  bytes after start: 0  bytes before end: 15253503\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  mapped file                 1043e0000-10526c000    [ 14.5M] r-x\/r-x SM=COW  ...t_id=59be8647\n      mapped file                 10526c000-1052f0000    [  528K] rw-\/rw- SM=COW  ...t_id=59be8647",
  "isCorpse" : 1,
  "exception" : {"codes":"0x0000000000000032, 0x00000001043e0000","rawCodes":[50,4366139392],"type":"EXC_BAD_ACCESS","signal":"SIGKILL (Code Signature Invalid)","subtype":"UNKNOWN_0x32 at 0x00000001043e0000"},
  "termination" : {"namespace":"CODESIGNING","flags":0,"code":2},
  "vmregioninfo" : "0x1043e0000 is in 0x1043e0000-0x10526c000;  bytes after start: 0  bytes before end: 15253503\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  mapped file                 1043e0000-10526c000    [ 14.5M] r-x\/r-x SM=COW  ...t_id=59be8647\n      mapped file                 10526c000-1052f0000    [  528K] rw-\/rw- SM=COW  ...t_id=59be8647",
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "usedImages" : [
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  }
],
  "legacyInfo" : {
  "threadHighlighted" : 0
},
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "5ffde50ce2aacd000d47a95f",
      "factorPackIds" : {

      },
      "deploymentId" : 240000242
    },
    {
      "rolloutId" : "607844aa04477260f58a8077",
      "factorPackIds" : {
        "SIRI_MORPHUN_ASSETS" : "6103050cbfe6dc472e1c982a"
      },
      "deploymentId" : 240000066
    }
  ],
  "experiments" : [

  ]
},
  "reportNotes" : [
  "_dyld_process_info_create failed with 6",
  "dyld_process_snapshot_get_shared_cache failed",
  "Failed to create CSSymbolicatorRef - corpse still valid ¯\\_(ツ)_\/¯"
]
}

Great info. Looks like you are running macOS 12.5 whereas I'm on 13.1 which could explain why I'm not seeing the issue

just for documentation purpose:
I can confirm that after upgrading to macOS 13.1. the old 1.3. version is now working for me as well.


Missing API for instance attributes

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Checked that your issue isn't already filed.
Reduced the issue to a self-contained, reproducible test case.

Description
The file Lean/Meta/Instances.lean misses API to get the priority and attribute kind of existing instances.
def getPriority (declName : name) : CoreM (Option Nat) := sorry

def getAttrKind (declName : name) : CoreM (Option AttributeKind) := sorry

Steps to Reproduce
n/a
Versions
commit: 1b0c2f7

Added the APIs.
def getInstancePriority? (declName : Name) : CoreM (Option Nat)
def getInstanceAttrKind? (declName : Name) : CoreM (Option AttributeKind)


Tableau MSSQL Source does not match case of MSSQL import

Describe the bug
When importing a Tableau Dataset that stems from a MSSQL Table, the lineage is not shown correctly. Instead a new mssql table is created in DataHub with all lowercase Database / Schema / Table Name.
To Reproduce
Steps to reproduce the behavior:

Create an MSSQL Table with a not all lowercase name
Create a Tabelau Datasource with a connection to MSSQL Server
Ingest MSSQL to DataHub. Notice that tables / schema/  database names are not all lowercase
Ingest the Tableau Project
Notice that in datahub a new mssql-table is created with all lowercase letters

Expected behavior
Lineage is created to the table imported via the mssql connector.
Additional context
The conversion to lowercase happens here:
https://github.com/datahub-project/datahub/blob/a518e3d13e6a2a440b2c4ab792f81617dbb1a6de/metadata-ingestion/src/datahub/ingestion/source/tableau_common.py#L432

We had similar issue with Snowflake & Tableau before, our solution is to write a transformer, and lower case when required. That way you have a consistent way of generating dataset name when needed.

We've added an option to the mssql source to lowercase urns, so that they'll match up with Tableau and other downstream BI systems. See https://github.com/datahub-project/datahub/pull/8551.


Error running locally ：RuntimeError: selected index k out of range

Config:
{
  "config": {
    "API_KEY": "sk-xxxx",
    "PROXY": "http://<IP_ADDRESS>:23457",
    "API_BASE": "",
    "MAX_CHAT_HISTORY": "5",
    "MIN_CATEGORY_SIM": "0.7",
    "FETSIZE": "3",
    "User_Names": "[\"Mike\"]",
    "SHOPPING_SEARCH": "Your search url"
  },
  "LLM_type": "OpenAI",
  "LLM": {
    "temperature": 0.3,
    "model": "gpt-3.5-turbo-16k-0613",
    "log_path": "logs/god"
  },
  "root": "shopping_state",
  "relations": {
    "shopping_state": {
      "0": "shopping_state",
      "1": "end_state"
    }
  },
  "agents": {
    "Jonh": {
      "style": "humorous",
      "roles": {
        "shopping_state": "Shopping assistant"
      }
    },
    "Mike": {
      "style": "indifferent",
      "roles": {
        "shopping_state": "customer"
      }
    }
  },
  "states": {
    "end_state": {},
    "shopping_state": {
      "roles": [
        "Shopping assistant",
        "customer"
      ],
      "controller": {
        "controller_type": "order",
        "judge_system_prompt": "",
        "judge_last_prompt": "response<end>0<end>",
        "judge_extract_words": "end",
        "call_system_prompt": "",
        "call_last_prompt": "",
        "call_extract_words": "end"
      },
      "environment_prompt": "The current scenario is an AI shopping guide answering customers' questions and recommending corresponding products based on the user's needs to induce users to buy. The main roles are: shopping_assistant (Jonh) is responsible for answering users’ questions, and customers (Mike) come to consult shopping opinions.",
      "begin_role": "Shopping assistant",
      "begin_query": "Welcome to the store, is there anything you want to buy?",
      "agent_states": {
        "Shopping assistant": {
          "style": {
            "role": "Shopping assistant",
            "style": "humorous"
          },
          "task": {
            "task": "Guide users to purchase goods"
          },
          "rule": {
            "rule": "Your language should be as concise as possible, without too much nonsense. You have to repeatedly guide customers to purchase goods"
          },
          "CategoryRequirementsComponent": {
            "information_path": [
              "Single_Agent/shopping_assistant/bb_info.json",
              "Single_Agent/shopping_assistant/toy_info.json"
            ]
          }
        },
        "customer": {
          "style": {
            "role": "customer"
          },
          "task": {
            "task": "Make things difficult for the shopping guide and ask him to provide as much product information as possible"
          },
          "rule": {
            "rule": "Your language should be as concise as possible, without too much nonsense. You cannot ask questions repeatedly. You need to ask different aspects each time, and you can also ask questions reasonably. You can choose not to shop, but you must ask for as much information as possible. You need to constantly ask for different aspects of product information and follow up reasonably. Remember, your tone needs to be cold and your style needs to be tricky"
          }
        }
      }
    }
  }
}

Command：
 python run.py --agent Single_Agent/shopping_assistant/config.json

Error Log:
Jonh(Shopping assistant):Welcome to the store, is there anything you want to buy?
Mike: hell
Jonh(Shopping assistant):Hey Mike, welcome to the store! How can I assist you today? Is there something specific you're looking to buy?
Mike: Buy toys
Traceback (most recent call last):
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/run.py", line 44, in <module>
    run(agents,sop,environment)
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/run.py", line 34, in run
    action = current_agent.step(current_state,user_input)   #component_dict = current_state[self.role[current_node.name]]   current_agent.compile(component_dict)
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Agent/Agent.py", line 131, in step
    response,res_dict = self.act()
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Agent/Agent.py", line 153, in act
    system_prompt, last_prompt, res_dict = self.compile()
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Agent/Agent.py", line 218, in compile
    response = component.func(self)
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Component/ExtraComponent.py", line 89, in func
    topk_result = matching_category(
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/utils.py", line 357, in matching_category
    top_k_cat = torch.topk(total_scores, k=top_k)
RuntimeError: selected index k out of range

Config:
{
  "config": {
    "API_KEY": "sk-xxxx",
    "PROXY": "http://<IP_ADDRESS>:23457",
    "API_BASE": "",
    "MAX_CHAT_HISTORY": "5",
    "MIN_CATEGORY_SIM": "0.7",
    "FETSIZE": "3",
    "User_Names": "[\"Mike\"]",
    "SHOPPING_SEARCH": "Your search url"
  },
  "LLM_type": "OpenAI",
  "LLM": {
    "temperature": 0.3,
    "model": "gpt-3.5-turbo-16k-0613",
    "log_path": "logs/god"
  },
  "root": "shopping_state",
  "relations": {
    "shopping_state": {
      "0": "shopping_state",
      "1": "end_state"
    }
  },
  "agents": {
    "Jonh": {
      "style": "humorous",
      "roles": {
        "shopping_state": "Shopping assistant"
      }
    },
    "Mike": {
      "style": "indifferent",
      "roles": {
        "shopping_state": "customer"
      }
    }
  },
  "states": {
    "end_state": {},
    "shopping_state": {
      "roles": [
        "Shopping assistant",
        "customer"
      ],
      "controller": {
        "controller_type": "order",
        "judge_system_prompt": "",
        "judge_last_prompt": "response<end>0<end>",
        "judge_extract_words": "end",
        "call_system_prompt": "",
        "call_last_prompt": "",
        "call_extract_words": "end"
      },
      "environment_prompt": "The current scenario is an AI shopping guide answering customers' questions and recommending corresponding products based on the user's needs to induce users to buy. The main roles are: shopping_assistant (Jonh) is responsible for answering users’ questions, and customers (Mike) come to consult shopping opinions.",
      "begin_role": "Shopping assistant",
      "begin_query": "Welcome to the store, is there anything you want to buy?",
      "agent_states": {
        "Shopping assistant": {
          "style": {
            "role": "Shopping assistant",
            "style": "humorous"
          },
          "task": {
            "task": "Guide users to purchase goods"
          },
          "rule": {
            "rule": "Your language should be as concise as possible, without too much nonsense. You have to repeatedly guide customers to purchase goods"
          },
          "CategoryRequirementsComponent": {
            "information_path": [
              "Single_Agent/shopping_assistant/bb_info.json",
              "Single_Agent/shopping_assistant/toy_info.json"
            ]
          }
        },
        "customer": {
          "style": {
            "role": "customer"
          },
          "task": {
            "task": "Make things difficult for the shopping guide and ask him to provide as much product information as possible"
          },
          "rule": {
            "rule": "Your language should be as concise as possible, without too much nonsense. You cannot ask questions repeatedly. You need to ask different aspects each time, and you can also ask questions reasonably. You can choose not to shop, but you must ask for as much information as possible. You need to constantly ask for different aspects of product information and follow up reasonably. Remember, your tone needs to be cold and your style needs to be tricky"
          }
        }
      }
    }
  }
}

Command：
 python run.py --agent Single_Agent/shopping_assistant/config.json

Error Log:
Jonh(Shopping assistant):Welcome to the store, is there anything you want to buy?
Mike: hell
Jonh(Shopping assistant):Hey Mike, welcome to the store! How can I assist you today? Is there something specific you're looking to buy?
Mike: Buy toys
Traceback (most recent call last):
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/run.py", line 44, in <module>
    run(agents,sop,environment)
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/run.py", line 34, in run
    action = current_agent.step(current_state,user_input)   #component_dict = current_state[self.role[current_node.name]]   current_agent.compile(component_dict)
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Agent/Agent.py", line 131, in step
    response,res_dict = self.act()
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Agent/Agent.py", line 153, in act
    system_prompt, last_prompt, res_dict = self.compile()
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Agent/Agent.py", line 218, in compile
    response = component.func(self)
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/Component/ExtraComponent.py", line 89, in func
    topk_result = matching_category(
  File "/Users/zhangyajun/Documents/CodeWorkSpace/skyjun/agents/examples/../src/agents/utils.py", line 357, in matching_category
    top_k_cat = torch.topk(total_scores, k=top_k)
RuntimeError: selected index k out of range

Due to the removal of our partner company's search engine, we currently do not support shopping assistant. Please try another demo and we will try changing the search engine later. Sorry!

Thank you.


docs(ee/readme) database version requirement

Summary
Update database version requirement in the Enterprise changelog.

@gszr is this ready to merge, or does it need more review?

It's ready, thanks for pinging @coopr. I will wait on @darrenjennings's approval though.


update metadata with chef-brigade contact info

nope. this needs to be updated to use the sous-chefs standards

closing in favor of #6


feat: Provide e2e variable for Object ID of Active Directory application

Provide e2e variable for Object ID of Active Directory application and rename AZURE_SP_ID to AZURE_SP_APP_ID.
Checklist

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)

/run-e2e azure*

/run-e2e azure*

Remember that e2e test on PR uses the workflow from main branch, make get-cluster-context use the new variables but the environment variables are still the old because the yaml is not in main yet

/run-e2e azure*

/run-e2e azure*


Does the next version of the developer pack include everything needed from the previous version?

For instance, does the .NET Framework 4.8 Developer Pack include the needed files from the .NET Framework 4.7.2 Developer Pack and below, such that it allows you to target earlier versions of the .NET Framework?  i.e. the .NET Framework 4.8 Developer Pack supersedes the the .NET Framework 4.7.2 Developer Pack and below.
It does not seem clear to me.
For instance, this When building an application from Visual Studio or using MSBuild from the command line, MSBuild may display error MSB3644, "The reference assemblies for framework "framework-version" were not found." To address the error, download the developer pack or the targeting pack for that version of .NET Framework. indicates to me that 4.8 does not include 4.7, etc.
However, the image from the Visual Studio installer appears to indicate that it is not always true as the one highlighted portion states ".NET Framework 4 - 4.6 development tools", and 4.7.2 and 4.8 are not even listed.
I appreciate any clarity you can provide.
Thank you

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

ID: bf46f86d-940f-3d1b-a83c-6ced0ead20bb
Version Independent ID: 56305860-d431-de58-1503-cdf57e4814b5
Content: Install the .NET Framework developer pack or redistributable - .NET Framework
Content Source: docs/framework/install/guide-for-developers.md
Product: dotnet-framework
Technology: dotnet-install
GitHub Login: @adegeo
Microsoft Alias: adegeo

Hello, The screenshot is out of date which is why you don't see those versions. I'll update the article wording and the screenshot. Thank you for reporting this.

I appreciate that the image was updated, but I was hoping that text would be added that specifically stated whether any version supersedes previous versions of the Developer Pack.
For instance, if the .NET Framework 4.8 Developer Pack is installed, then do we still have to install the .NET Framework 4.7.2 Developer Pack, the .NET Framework 4.7.1 Developer Pack, and the .NET Framework 4.7 Developer Pack to be able to build a project that targets 4.8, one that targets 4.7.2, another 4.7.1, and another 4.7?
You can carry that question down to all of the possible supported Framework versions to target.
I look forward to improved clarity on this, that is more that just the image that implies it may be possible.
Thank you

@adegeo, I appreciate that the image was updated, but I was hoping that text would be added that specifically stated whether any version supersedes previous versions of the Developer Pack.
For instance, if the .NET Framework 4.8 Developer Pack is installed, then do we still have to install the .NET Framework 4.7.2 Developer Pack, the .NET Framework 4.7.1 Developer Pack, and the .NET Framework 4.7 Developer Pack to be able to build a project that targets 4.8, one that targets 4.7.2, another 4.7.1, and another 4.7?
You can carry that question down to all of the possible supported Framework versions to target.
I look forward to improved clarity on this, that is more that just the image that implies it may be possible.
I appreciate any responses on this.
Thank you

Hi @mdell-seradex I've opened another PR to add a statement about it.


After updating from 1.14.20 to 1.14.23 version, there is an interface incompatibility

After updating from 1.14.20 to 1.14.23 version, there is an interface incompatibility. It seem about rviz::EditableEnumProperty. could it be rollback?
[ERROR] [1715910267.480759600]: PluginlibFactory: The plugin for class 'rviz_plugin/ObjectArray' failed to load.  Error: Failed to load library /home/rviz_plugin/lib/librviz_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = /home/rviz_plugin/lib//librviz_plugin.so: undefined symbol: _ZN4rviz20EditableEnumPropertyC1ERK7QStringS3_S3_PNS_8PropertyEPKcP7QObject)

Your environment

OS Version: e.g. Ubuntu 20.04
ROS Distro: [Noetic]
RViz, Qt, OGRE, OpenGl version as printed by rviz:

or is there any way I can temporarily downgrade back to 1.14.20, using apt-get?

The missing symbol corresponds to the following constructor:
https://github.com/ros-visualization/rviz/blob/fd566b96d54f6f2f003291dd99563396ee5809e4/src/rviz/properties/editable_enum_property.h#L47-L52
The Qt4-style signals have been replaced with modern Qt5-style signals. The constructor now looks as follows:
https://github.com/ros-visualization/rviz/blob/2db2c5394a4f1fcf5fecfb8d0952d4f913c04aee/src/rviz/properties/editable_enum_property.h#L52-L58
You need to adapt the construction and pass your change_slot as a method pointer instead of a string:
EditableEnumProperty("name", "default", "description", parent, &MyClass::changed_slot, receiver);

Actually, it should suffice to recompile your plugin. I designed the new API to be backward-compatible. However, it is not ABI-compatible. So a recompile is required.


Remove the discovery functionality in the Relay node

Given that we have the stun based discovery in the agent itself, relay based discovery function is now
redundant.

lgtm so far, pending CI and whatever was on your todo list to remove it from draft

wanted to run local e2e and few more tests before opening the PR. Also updated the related bits in the documents.


exchange/base/types can not be find

when running meet this:
>>> import frameworks.exchange.base.type
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'frameworks.exchange.base.type'

its better to add a pyprojetc.toml for build the project like this:
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "smm"
version = "0.1.0"
description = "smm"
readme = "README.md"
authors = [
    {name = "your", email = "you email"}
]
license = {file = "LICENSE"}
requires-python = ">=3.10"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
]

dependencies = [
    # Network/IO
    "aiosonic",
    "aiohttp",
    "aiofiles",
    "uvloop",
    "orjson",
    "pyyaml",

    # Compute
    "numpy",
    "numpy_ringbuffer",
    "numba",

    # Misc
    "ciso8601",

    # DEX signing
    "msgpack",
    "eth_account",
    "eth_utils",

    # Official SDKs
    "dydx-v4-client"
]

[tool.setuptools.packages.find]
where = ["."]
include = ["*"]
exclude = ["tests*"]
namespaces = true

[tool.setuptools]
include-package-data = true

will do! thanks :D


Issue in barplot

Hi,
In ebm.explain_global() in categorical feature plots (barplots) the x axis values calculated seems wrong to me. For categorical extra nan is coming in 'specific' 'names' list, this leads to the length mismatch between 'names' and 'scores' the last categorical value is being ignored from the plot.
And there is no null values in my data.
For example,
{'density': {'names': [nan, 'abc', 'efg'],   'scores': [66486, 118521]},  'lower_bounds': [-2.246691779337516, 1.1945678479167394],  'names': [nan, 'abc', 'efg'],  'scores': [-2.136401943158369, 1.1984443228864698],  'type': 'univariate',  'upper_bounds': [-2.026112106979222, 1.2023207978562003]}

Hi @ta94,
Thanks for getting in touch. What operating system and Python version are you running on?

I'm not sure if this is related, but I also noticed an issue related to the names. For the y-axis of  my horizontal barplots for LIME, the scores and values match, but the names do not.
Here's an example:
import interpret
import numpy as np
from interpret import show

# loading the data
from sklearn.datasets import load_wine

wine_data = load_wine()
X_wine = wine_data['data']
y_wine = wine_data['target']
wine_data_feature_names = wine_data['feature_names']

# make wine data set binary
# from:to
wine_class_conversion_dict = {0:0, 1:1, 2:0}
y_wine = np.array([wine_class_conversion_dict[class_num] for class_num in y_wine])
np.unique(y_wine)

# train/test split
from sklearn.model_selection import train_test_split

proportion_of_data_for_testing = 0.25
X_wine_train, X_wine_test, y_wine_train, y_wine_test = train_test_split(X_wine, y_wine, test_size=proportion_of_data_for_testing)

# fit a blackbox
from sklearn.ensemble import RandomForestClassifier
rfc_wine = RandomForestClassifier(n_estimators=32)
rfc_wine.fit(X_wine_train, y_wine_train)

# use LIME on that RFC
from interpret.blackbox import LimeTabular

#Blackbox explainers need a predict function, and optionally a dataset
lime = LimeTabular(predict_fn=rfc_wine.predict_proba,
                   data=X_wine_train, random_state=1, feature_names=wine_data_feature_names)

# Pick the instances to explain, optionally pass in labels if you have them
lime_local = lime.explain_local(X_wine_test[:5], y_wine_test[:5], name='LIME')

show(lime_local)  # LOOK at idx=0
## values and scores correspond, but the names on the y-axis do not

##### LOOK at idx=0 for above dashboard and below dictionary

## what the values should actually be
print('row at idx 0 in test set')
print({feature_name:val for feature_name, val in zip(lime_local.data(0)['names'], lime_local.data(0)['values'])})

## demonstrating that show() is, somewhere, using
# lime_local.feature_names rather than lime_local.data(0)['names']
from copy import deepcopy

lime_local_example = deepcopy(lime_local)
lime_local_example.feature_names = ['asdf' for _ in range(0, len(lime_local_example.feature_names))]
show(lime_local_example)

Perhaps I'm misunderstanding something?

Hi @gabriel6280 - that doesn't sound good, it's likely on our end.
There was a recent bug that was surfaced around v0.1.12 relating to incorrect graphs. Can you try updating to the latest version v0.1.13 and see if it's the same result?

Hi @gabriel6280 - that doesn't sound good, it's likely on our end.
There was a recent bug that was surfaced around v0.1.12 relating to incorrect graphs. Can you try updating to the latest version v0.1.13 and see if it's the same result?

Just did that, and now, everything seems to match-up correctly. Thanks a lot!


Refactoring

Main Changes

average initial attitude computed in ahrs (see averageQuaternion)
new method  in motor driver
new method  in radio
logSerial, setupBuzzer, buzz and waitForPiSerial go to util
delete config.cpp
change all Serial.print to logSerial
deactivate all printing while flying
rename BZZZ_VERBOSITY to BZZZ_LOGGING_LEVEL

Associated Issues

Closes #41

DevOps
Before we merge this:

We should merge #44 into dev first
Then merge dev into feature/41-tidy-up-main
And then move initAngularVelocity to AHRS (as we've done with averageQuaternion here)

@jamie-54 can you have a look and make sure that everything makes sense and that it works on the quadcopter? I haven't really changed any functionality; I just reorganised the code.

Hi looks good and everything makes sense I'll test it on the hardware tomorrow just to be sure.
Just wondering do you want to keep setGainsFromRcTrimmers in the main.cpp or move it somewhere else?
I get that it doesn't really have a clear file that it belongs to.

@jamie-54 this actually is part of the loop. I just moved this functionality to setGainsFromRcTrimmers for loop to be more readable. I don't think it belongs to another file.

Oh yea I see what's happening now, looks good

@jamie-54 I'm merging this now, but can you check whether everything still works (it should). I've made some very minor changes (see last commit).

@jamie-54 I'm merging this now, but can you check whether everything still works (it should). I've made some very minor changes (see last commit).

No problem


Adding README.md for setting up examples

Issue #, if available:
Description of changes:
Adding README.md for setting up examples
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

LGTM


Using Alphalens notebook ValueError: Cannot pass a datetime or Timestamp with tzinfo with the tz parameter

When running Using Alphalens notebook, at get_pricing line, it gives error:

ValueError                                Traceback (most recent call last)
 in
6         asset_list,
7         pipeline_start_date,
----> 8         end_date)
9 prices.head()
c:\src\lycn\conda-environments\zipline-trader\src\zipline-trader\zipline\research\utils.py in get_pricing(data_portal, trading_calendar, assets, start_date, end_date, field)
51
52     global END_DT
---> 53     END_DT = pd.Timestamp(end_date, tz='UTC', freq='C')
54     start_dt = pd.Timestamp(start_date, tz='UTC', freq='C')
55
pandas_libs\tslibs\timestamps.pyx in pandas._libs.tslibs.timestamps.Timestamp.new()
ValueError: Cannot pass a datetime or Timestamp with tzinfo with the tz parameter. Use tz_convert instead.

Hi. fixed: https://github.com/shlomikushchi/zipline-trader/commit/8910a023dbfb941a870223062645d369709b71f0
pull from the master branch


React to Forbid changes

@Tratcher

@HaoK,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

273b25fb3a2967834b2603f8b3c71cc572d06e13