LG Screen Manager (Initial 2.08)

After making all changes to the cask:

[X] brew cask audit --download {{cask_file}} is error-free.
[X] brew cask style --fix {{cask_file}} reports no offenses.
[X] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] sha256 changed but version stayed the same (what is this?).
I’m providing public confirmation below.

Additionally, if adding a new cask:

[X] Named the cask according to the token reference.
[X] brew cask install {{cask_file}} worked successfully.
[X] brew cask uninstall {{cask_file}} worked successfully.
[X] Checked there are no open pull requests for the same cask.
[X] Checked the cask was not already refused in closed issues.
[X] Checked the cask is submitted to the correct repo.

Please submit this to caskroom/drivers

I disagree.  Screen manager is not needed by a Mac to use the display, but rather a utility for their layout.  It is "hardware specific" but not required for the hardware.  Is there cannon on the difference between something like a utility and a driver?

Our definition of "drivers" is basically if it is useless without hardware it belongs in caskroom/drivers


how to use next-awesome-typescript with next-compose-plugins? when i use next-awesome-typescript to replace @zeit/next-typescript, can someone help me?

Hi @Deval520
next-awesome-typescript unfortunately doesn't comply with the standardized plugin API every other plugin I know is using.
But you can create a wrapper function to make it compatible:
// next.config.js
const withPlugins = require('next-compose-plugins');
const awesomeTypescript = require('next-awesome-typescript');

const nextConfig = { /* config for next.js if you have any */ };

module.exports = withPlugins([
  (config) => awesomeTypescript({}, config),

  // add your other plugins here
  // e.g.: [sass, { /* sass config */ }],
], nextConfig);

If you need to set some options on the next-awesome-typescript plugin, you can do it in the first parameter on the awesomeTypescript call inside the wrapper function:
(config) => awesomeTypescript({ useCheckerPlugin: true }, config),

Does this work for you?
I'm currently working on version 2 of next-compose-plugin which has many improvements and I'm looking forward to release it this weekend. I'll also check if I find a easier and out-of-the-box solution for such plugins which have a different API and include it in this version.


UI regression: fullscreen top/bottom margins too small

Culprit: https://github.com/readium/readium-desktop/commit/53bc0c8289a3a95a0d6e33da47687c1fcf014037

Updated fullscreen mode:


Process with warning does not complete the stdout

Describe the bug
When running a command and getting a warning, like git diff's : warning: LF will be replaced by CRLF in test.md.
the stdout is not completed.
To Reproduce
Repo: https://github.com/domiSchenk/tauri-crlf-process

Create a new file test.md with CRLF/LF endings (should be the opposite then the standard)
Add some lines
Change path in file index.js:14 to this repo
Start live-server or any other server to serve index.html (Port: 5500) [or change in taur.conf.json]
check output in window

Expected output should be something like this:
warning: LF will be replaced by CRLF in test.md.
The file will have its original line endings in your working directory
:000000<PHONE_NUMBER>000 0000000 A        test.md

diff --git a/test.md b/test.md
new file mode 100644
index 0000000..a560784
--- /dev/null
+++ b/test.md
@@ -0,0 +1,7 @@
+dies ist ein test
+hello world
+asda
+asda
+sdasd
+asd
+asd

Actually returns:
:000000<PHONE_NUMBER>000 0000000 A test.md

diff --git a/test.md b/test.md
new file mode 100644
index 0000000..a560784
--- /dev/null

:000000<PHONE_NUMBER>000 0000000 A test.md

diff --git a/test.md b/test.md
new file mode 100644
index 0000000..a560784
--- /dev/null
+++ b/test.md

:000000<PHONE_NUMBER>000 0000000 A test.md

diff --git a/test.md b/test.md
new file mode 100644
index 0000000..a560784

Expected behavior
Stdout should be completed
Platform and Versions (please complete the following information):
Operating System - Windows, version 10.0.19042 X64

Node.js environment
  Node.js - 14.15.0
  @tauri-apps/cli - 0.14.1
  @tauri-apps/api Not installed

Global packages
  npm Not installed
  yarn Not installed

Rust environment
  rustc - 1.50.0
  cargo - 1.50.0

App directory structure
/.git
/dist
/node_modules
/src-tauri

App
  tauri.rs - 0.11.1
build-type - bundle
CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
distDir - dist
devPath - http://localhost:5500

As I suspected, the warning section is printed to stderr instead of stdout. If you also check stderr, you'll get the full output.

This is my test script btw:
let args = 'diff --no-ext-diff --patch-with-raw --no-index -- /dev/null C:\\path\\to\\test.md'
let command = new window.__TAURI__.shell.Command('git', args.split(' '))
command.on('close', data => {
  console.log(`command finished with code ${data.code} and signal ${data.signal}`)
})
command.on('error', error => console.log(`command error: "${error}"`))
command.stdout.on('data', line => console.log(`command stdout: "${line}"`))
command.stderr.on('data', line => console.log(`command stderr: "${line}"`))
command.spawn()

test.md:
gdfgfdg
fdgfdgdf
gfdgfdgfdg

console output:
command stderr: "warning: LF will be replaced by CRLF in C:\path\to\test.md."
command stderr: "The file will have its original line endings in your working directory"
command stdout: ":000000<PHONE_NUMBER>0000 00000000 A	"C:\\path\\to\\test.md""
command stdout: ""
command stdout: "diff --git "a/C:\\path\\to\\test.md" "b/C:\\path\\to\\test.md""
command stdout: "new file mode 100644"
command stdout: "index 00000000..b93f463e"
command stdout: "--- /dev/null"
command stdout: "+++ "b/C:\\path\\to\\test.md""
command stdout: "@@ -0,0 +1,3 @@"
command stdout: "+gdfgfdg"
command stdout: "+fdgfdgdf"
command stdout: "+gfdgfdgfdg"
command finished with code 1 and signal null


GH-37181: [MATLAB] Remove outdated test class tArrowCppCall.m

Rationale for this change
Now that featherread and featherwrite have been re-implemented in terms of the new APIs (matlab.internal.io.feather.Reader in #37046 and matlab.io.internal.feather.Writer in #37045), we can start removing the MEX code. To avoid submitting a large pull request, we should break the work down into several smaller, incremental steps.
The first step should involve deleting the outdated test class tArrowCppCall.m. This test class will no longer be relevant once the MEX source code is removed.
What changes are included in this PR?

Deleted the outdated test class tArrowCppCall.m

Are these changes tested?
No tests necessary.
Are there any user-facing changes?
No.
Future Directions

Move the test cases in test/tfeathermex.m to test/arrow/internal/io/feather/tRoundtrip.m. These test cases directly call the MEX functions, so we will re-write the tests to utilize the arrow.internal.io.feather.Reader and arrow.internal.io.feather.Writer classes directly.
Delete test/arrow/util/createVariablesAndMetadataStruct.m
Delete test/arrow/util/createTable.m
Delete test/arrow/util/featherMEXRoundTrip.m
Delete test/arrow/util/featherRoundTrip.m
Remove MEX source code.

Closes: #37181

+1


Support for (unsafe) atomic numeric and bit operations

Another fantastically useful concurrency crate—thank you, @taiki-e !
I'm using atomic-maybe-uninit to workaround rust-lang/unsafe-code-guidelines#517.  In particular, I transmute between "tagged pointer" structs similar to the following and MaybeUninit<u128> in order to manipulate atomically in an AtomicMaybeUninit<u128> without loss of pointer provenance:
#[cfg(target_pointer_width = "64")]
#[repr(C)]
pub struct TaggedPtr<T> {
    _align: [u128; 0],

    #[cfg(target_endian = "little")]
    pub tag: usize,

    pub ptr: *mut T,

    #[cfg(target_endian = "big")]
    pub tag: usize,
}

There are times that I need to atomically add/subtract from the tag.  Currently, I do this via fetch_update—however that is obviously suboptimal, as it produces a compare-exchange loop.  I'd like instead to be able to do a fetch_add/fetch_sub (and, by extension, one can also imagine cases where the other atomic bit and numeric operations might also be desirable).1
Clearly such operations must be unsafe as the caller must guarantee that the value has been fully initialised.  Indeed, casting as a fully initialised atomic, eg AtomicU128, to perform the operation is a possibility; but any value returned from such functions would then have lost pointer provenance, necessitating a subsequent load from the (uncasted) AtomicMaybeUninit to regain provenance—and thereby opening the door for other threads to modify the value in the interim.
Would you be open to adding such unsafe operations to AtomicMaybeUninit?

1. Before transmuting back from such a manipulated MaybeUninit<integer>, one must obviously check that the data is valid for the destination type; in this case, I will have to check that the tag did not overflow.

So what you are looking for are provenance-preserving fetch_add/sub? As in, atomic pointer arithmetic?

These operations won't actually modify the pointer, but yes I suppose the compiler will have to assume that it's pointer arithmetic.

As for fetch_add/fetch_sub, since double-wide atomic add/subtract instructions are not available in any architecture, I don't feel that this API is particularly efficient compared to the CAS loop (aside from LL/SC. well LLVM uses CAS instructions when it is available instead of LL/SC instructions, although). For 128-bit atomic instructions see this table.
As for bit operations, I have previously written implementations for aarch64: https://github.com/taiki-e/atomic-maybe-uninit/tree/rmw
Also, in my understanding, perhaps there would be no need for safety requirements on initialization at the AtomicMaybeUninit API level (iiuu <op> iuiu == iuuu (i=init,u=uninit) should be able to guarantee).
That said, there should be very few (perhaps none at all in practice) CPUs at this time that actually support double-width atomic bit operation instructions as well (see the table mentioned above).

AtomicMaybeUninit API level (iiuu  iuiu == iuuu (i=init,u=uninit) should be able to guarantee).

I'm not sure what you mean, but bit operations on uninit data are UB. Rust doesn't have "poison" semantics, it has "immediate UB" semantics for operations like this.

@RalfJung

I'm not sure what you mean, but bit operations on uninit data are UB. Rust doesn't have "poison" semantics, it has "immediate UB" semantics for operations like this.

It was over a year ago, so I don't remember exactly what happened, but I think I was thinking about what actually happens with bit operations on the assembly (hardware) side and how much of that could be reflected in the API.

In any case, for such a use case (all initialized), I think it would be better to add something like AtomicDoublePtr to portable-atomic crate, where the necessary implementation is already almost there, than to add such an API to this crate.

As for fetch_add/fetch_sub, since double-width atomic add/subtract instructions are not available in any architecture

Ah, this I hadn't realised.   The paper I was reading relies on double-width atomic RMW (read-modify-write) ops, and in pseudocode details an algorithm applying FAA (fetch-and-add) to a double-width variable, which is why I was searching for such facility so that I could play with an implementation in Rust.  Looking now at the reference C++ implementation, I see that it calls gcc libatomic's atomic_fetch_add which indeed compiles to a CAS loop if the architecture lacks native support (godbolt), which hadn't been clear to me from its documentation.
Therefore I personally no longer have a use for this and am quite happy for the issue to be closed.
Thank you all for indulging me with your time and consideration; apologies for my misunderstanding.


Clean up existing expiry key on update

Overview

When an existing key is inserted with different timestamps, the primary
key is the same but the primary value is different from the existing one.
Currently, this results in a new expiry key being inserted, but the old
one is not deleted, and lingers until it is removed by the inexorable
advance of time via the remove_expired server messages.
This checks whether there's already primary key for the inserted key,
and if so, cleans up the existing expiry key before proceeding with the
insert.
Testing recommendations

make eunit apps=couch_expiring_cache

Related Issues or Pull Requests

Checklist

[x] Code is written and works correctly
[x] Changes are covered by tests
[ ] Any new configurable parameters are documented in rel/overlay/etc/default.ini
[ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation

My only note here is that a name get_entries/3 is a bit generic and doesn't match clear_range/3. I'd rename them both to something lilke get_range_from/3 and clear_range_from/3 to indicate that they are expecting TS on input and work on ranges, but this is your call.

My only note here is that a name get_entries/3 is a bit generic and doesn't match clear_range/3. I'd rename them both to something lilke get_range_from/3 and clear_range_from/3 to indicate that they are expecting TS on input and work on ranges, but this is your call.

I think you're right that the names could be improved, however since the ranges are all to an end time (rather than from one), it seems like better names might be get_range_to and clear_range_to, so I'll change them.


Always have diameter and radius

Some functions only take a diameter and not a radius or vice versa, in v2 can we take both by default please as its easier than having to look up which ones take which parameters.

Easily doable.  I've been doing that already for a lot of modules.  Only case I'm not sure it makes sense for is in edge roundings, where I'm not sure that anyone would want to use diameter over radius.

yup agree, i meant shapes and stuff not edges

What is the status of this issue?  Is there a list of non-compliant functions?

I want to make a pass through all the docs and verify that the documented arguments match the actual arguments taken by the functions/modules.  While doing that, I can find any violations and fix them.


ci: Splitting doc CI in two to ensure that it runs on PRs AND on main

I am having a few issues with this CI. I believe this should work, but I am not sure exactly why the previous CI doesn't work (it did for a short while). It might be due to the token not being passed correctly.
This configuration essentially just takes the previous CI that did work on main and adds a completely separate CI for PRs.
To avoid having to change stuff in the future it convert the build command into make build-docs.
@isaac-chung would love a second pair of eyes on this if you have the time

Well I want it to run during a PR as well. Did try to combine it into one (the one we currently have), but couldn't get it to work. I have tried to make it a bit more clear (and also added the conditional to ensure that the push workflow isn't run)

And it seems to work on main as well - wonders!


Implement UI/firebase interface for displaying courses

This was mostly done by Joanna and I, but was completely finished by Aecio and I.


Where is the playboooks located?

In the documentation it's referring to the playbooks directory, but it can't be found in the repository.
Like this,
ansible-galaxy install -r playbooks/requirements.yml --force
ansible-playbook -i inventory playbooks/drupal/main.yml

@poon64 - If you're using the latest version of the Dramble cluster (which uses Kubernetes), there is no more playbooks directory; as mentioned in the README (https://github.com/geerlingguy/raspberry-pi-dramble#setting-up-the-pis), a couple of the pages on the Wiki still need to be updated, as I'm working quite a bit on making sure the Kubernetes setup process is working well before I complete the documentation edits.

See related: #133


Deploy: sendBundle should catch any errors and reject.

Nice catch(). :wink: :+1:

@HipsterBrown thanks!
@travis-ci
F-U

@HipsterBrown thanks for the review—travis is green, so landing now


"Arduino Nano upload error in 'Arduino IDE 2.1.1': 'avrdude: ser_open(): can't set com-state for "\.\COM4".

I have tried the following methods in Arduino IDE 2.1.1, but I still cannot upload the code successfully every time:

Re-download the latest CH340 driver.
Try the processor options "ATmega328P" and "ATmega328P (Old Bootloader)".
Replace the transmission line and slot.
Try uploading on a different computer.

This error message appears every time:

The project uses 3218 bytes (10%) of program memory. The maximum value is 30720 bytes.
global variables use 242 bytes (11%) of dynamic memory, leaving 1806 bytes for local variables. The maximum value is 2048 bytes.
avrdude: ser_open(): can't set com-state for "\.\COM4"
Upload failed: Upload error: exit status 1

'Arduino Nano' code I uploaded:

#include <SPI.h>
#include "RF24.h"
RF24 rf24(7, 8); // CE pin, CSN pin
const byte addr[] = "1Node";
const byte pipe = 1; //Specify channel number
void setup() {
Serial.begin(9600);
rf24.begin();
rf24.setChannel(83); //Set channel number
rf24.setPALevel(RF24_PA_MIN);
rf24.setDataRate(RF24_250KBPS);
rf24.openReadingPipe(pipe, addr); //Open channel and address
rf24.startListening(); // Start listening to wireless broadcasts
Serial.println("nRF24L01 ready!");
}
void loop() {
if (rf24.available(&pipe)) {
char msg[32] = "";
rf24.read(&msg, sizeof(msg));
Serial.println(msg); // Display message content
}
}

other:

I can successfully transmit this code to 'arduino uno r3'

An easy suggestion is to try upgrading to the latest Arduino IDE (the current version is 2.2.1). I don't recommend pinning your hopes on that solving the problem, though.
It seems that some Nano clones use the ATmega328PB microcontroller instead of the ATmega328P. The discussion toward the end of this thread includes some links to deal with that problem.


Detect ign instead of using cmake module to check for ignition-tools

Part of https://github.com/ignition-tooling/release-tools/issues/472
I don't detect the conditional installation of the ign submodule, the PR just
changed the way of detecting ign for testing.

This pull request has been mentioned on Gazebo Community. There might be relevant details there:
https://community.gazebosim.org/t/new-ignition-releases-2022-01-10/1228/1


refactor: remove Unity.Collections package dependency

Currently, we're not using DataStream and Unity.Collections package dependency might hold us back targeting 2019.4 & 2020.x for MLAPI package release.
Having said that, we might consider using NativeArray from UnityEngine.CoreModule and put in stream/reader/writer implementations into MLAPI side separately and independent from Unity.Collections package.

This needs a conversation.

This needs a conversation.


Ability to cargo-check mutually exclusive target/feature/other cfgs branches at the same time

Describe the problem you are trying to solve

I'm using NeoVim with coc-rust-analyzer. Currently if I've got code branches with mutually exclusive features like:
#[cfg(feature = "example")]
fn example() -> Result<()> {
    // implementation 1
}

#[cfg(not(feature = "example"))]
fn example() -> Result<()> {
    // implementation 2
}

I have to run cargo check twice with different --feature flags or update coc-rust-analyzer rust-analyzer.checkOnSave.features every now and then to see all the errors.
Describe the solution you'd like

Show all errors from all branches. This will be really handy for IDE integration.
Notes

Related: #4803

Thanks for the report!  I'm going to close this as a duplicate of #4803.  There are some workarounds mentioned in that issue (like cargo hack which can do different permutations of features).  I don't think rustc will ever be able to handle this natively, and doing permutations of features in cargo seems very expensive, and probably would have some complexity in handling it properly in an editor.  I'm not sure what rust-analyzer has planned for that, but might be worth discussing with them.


Drawback of articulate

Hello there ,
I have some concern like what are  the drawback of articulate .

You've been using it for awhile, I think you are more qualified to outline the drawbacks for your use case than we are.
I believe the largest drawbacks of Articulate currently are:

Insufficient Documentation
Over-reliance on Handlebars which can become complex quickly
A few tricky to understand concepts around training data


Add moveViewToEnd()

Hello,
I am now faced with a problem. No method, except moveViewTo, allows to move on the X axis to go to the last element not centered on the view.
I want to show the last element like this:
|. ------------- . .  o|
Where o is the last element.
How I can do this?
Thanks.

seems duplicated to more generic feature moveViewToX, take a look at #450 and  #468, and perhaps you can use ChartTransformer, discussed in #226, though it discusses zoom and scale, but there is some useful APIs to manipulate the matrix so you can display I think.

So, For the next people with this problem, you can resolve this issue like this:
    NSInteger count = [self.lineChartView.data.dataSets[0].yVals count];
    ChartDataEntry *entry = self.lineChartView.data.dataSets[0].yVals[count-1];

    [self.lineChartView centerViewToXIndex:count-1 yValue:entry.value axis:AxisDependencyLeft];

This worked for me.

Do you write centerViewToXIndex? I don't see it right now. It will be great if you could create a PR for this if you think it's helpful to others.

No, centerViewToXIndex  is an instance method of BarLineChartViewBase
I'll will se for the PR.

It does not exists, so you actually write it. You could file a PR if you like to!


Temporarily made PathAccessControl constructor public

Resolves https://github.com/Azure/azure-sdk-for-net/issues/8548

Another option is I could just implement https://github.com/Azure/azure-sdk-for-net/issues/8414.  Either way, we need to address this before the preview release, because PathClient.SetAccessControl() isn't currently usable.


playground: improvements

Fix token method
Allow editing config

Here's a screenshot of the error from Vercel


i18n(ko-KR): update streaming-improve-page-performance.mdx

Description (required)

update streaming-improve-page-performance.mdx
#9979

Related issues & labels (optional)

Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

ko
recipes/streaming-improve-page-performance.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Change Theme Feature

Feature to change themes for user experience.
I would like to work on this issue, please assign me the same

I

Feature to change themes for user experience.
I would like to work on this issue, please assign me the same

Hey, @riyakushwaha could you elaborate on what exactly you want to add?

@X-TRON404 I want to add a feature to change modes i.e. dark theme mode and light theme mode.


Support animating tests

As we build more complicated UIs, it's sometimes hard to tell why a test it failing. It would be very nice to be able to watch a test execute visually. Things like "tap" and "move" events could generate a visual representation.

@Hixie has a patch in progress to support watching tests on the phone.  I don't know if it addresses this exact bug or not?


scala steward job does not work

Scala Steward job is getting very confused. It thinks the PRs in https://github.com/apache/incubator-pekko (another repo) relate to this repo. It does not raise PRs for this repo as a result.
https://github.com/apache/incubator-pekko-http/actions/runs/7235045256/job/19712045431
fyi @mdedetrich
example confusion
  2023-12-17 00:14:03,022 INFO  Process update org.scala-sbt:sbt : 1.9.7 -> 1.9.8
  2023-12-17 00:14:03,243 INFO  Found PR https://github.com/apache/incubator-pekko/pull/845
  2023-12-17 00:14:03,271 INFO  PR update strategy is set to always
  2023-12-17 00:14:03,271 INFO  Reset update/sbt-1.9.8 to main and apply again
  2023-12-17 00:14:05,449 INFO  Push 1 commit(s)

Is it possible that the secrets are actually set up only to support the incubator-pekko repo?
https://github.com/apache/incubator-pekko-http/blob/main/.github/workflows/scala-steward.yml#L15-L17

@mdedetrich could you review this?

Upstream issue created at https://issues.apache.org/jira/browse/INFRA-25323

Upstream issue created at https://github.com/scala-steward-org/scala-steward/issues/3257

@mdedetrich the job failed again last night. Different issue - a permissions issue with the job accessing this GitHub repo (presumably when trying to create PRs).
https://github.com/apache/incubator-pekko-http/actions/runs/7434747347/job/20229260334#step:3:291

  2024-01-07 00:12:58,676 INFO  Found 13 updates:
    com.dwijnand:sbt-dynver : 4.1.1 -> 5.0.1
    com.github.pjfanning:sbt-pekko-build : 0.2.0 -> 0.2.1
    com.github.sbt:sbt-license-report : 1.5.0 -> 1.6.1
    com.google.code.gson:gson : 2.9.0 -> 2.9.1
    com.lightbend.paradox:sbt-paradox : 0.9.2 -> 0.10.5
    com.lightbend.paradox:sbt-paradox-apidoc : 0.10.1 -> 1.0.0
    de.heikoseeberger:sbt-header : 5.9.0 -> 5.10.0
    org.kohsuke:github-api : 1.306 -> 1.318
    org.parboiled:(parboiled, parboiled_2.12, parboiled_2.13, parboiled_3) : 2.5.0 -> 2.5.1
    org.scala-sbt:sbt : 1.9.7 -> 1.9.8
    org.scalameta:sbt-scalafmt : 2.4.6 -> 2.5.2
    org.scalameta:(scalafmt-core, scalafmt-core_2.13) : 3.7.11 -> 3.7.17
    pl.project13.scala:sbt-jmh : 0.4.3 -> 0.4.7

Yes I know, the core INFRA ticket has already been updated with relevant info

@pjfanning With the permission issue fixed scala steward is now working (see https://github.com/apache/incubator-pekko-http/actions/runs/7434747347/job/20243280422 and as an example PR https://github.com/apache/incubator-pekko-http/pull/399)
Closing ticket


1.x linux casing fix

Changed all references in code to correct casing in order to run the scripts and develop under Linux which is also case sensitive when parsing TS in Node.

Hi @cesarParra , I was experimenting a bit with your ApexDocs code and the first thing I noticed that the program didn't build for me on Linux. I am not sure if you accept pull requests but here you go.

Changes look good. Sorry for such a late review of this, I was out on vacation.
I'll be uploading a new version with these changes shortly

@cesarParra cool, I will see if I can contribute more upstream


Add support for compressed keys

would like more input from @decentralgabe wrt this comment https://github.com/TBD54566975/web5-kt/pull/262#discussion_r1540333190

DID DHT advocates for using compressed key representations when possible. Here's some more information on compression of elliptic curve keys also here.
Notably compression only matters with binary (or non-JWK) representations of keys, as JWKs do not support compressed key representations.
As a reference the ssi-sdk supports an open during conversion to/from public/private keys and their byte representations for compression and there's common library support for compressed key representations.


Support windows and make the tests pass

Hello potential contributor,
I am currently working on making MeiliSearch compile on Windows. The only remaining dependency to update seems to be heed.
In this pull request I use a fork of the lmdb-sys crate that seems to compile on Windows. The issue is that even with this fork I am not able to find where I am wrong and why I get this error message. I don't have a Windows computer at hand and would be glad if someone could help me tackle this :)
Will be fixed when https://github.com/mozilla/lmdb-rs/pull/74 is merged.
Closes #24.

I'm willing to help debug this issue.

Ho! Thank you @maroider !
I wanted to make heed work on Windows, I added the support of windows file descriptors in lmdb-sys (on linux its an int, on Windows its a pointer). I tried to make the tests pass but its hard to debug when you don't have the Windows machine at hand.
So, here you are, helping me tackle this issue with your Windows machine I presume? 😃
Would it be possible to clone the repository, checkout the support-windows branch and try to understand where I "miss typed" a file name, please?
Thank you very much!

I'd like to help too. @maroider please let me know if you need some assistance

Thank you @gentoid for your help :)

The issue originates in EnvOpenOptions::open.
Removing path.cannonicalize()?; and adding path.to_path_buf(); makes the test suite pass.
The offending line was introduced in bab25b727b85bc7369222a031d9e704d185dcabf. Could you perhaps shed some light on why the path is cannonicalized here, @Kerollmops?

Thank you for this great debug.
I originally canonicalized the path to make sure that a environment is correctly identified by its path and not by a relative path (i.e. ../folder1/../folder1/db must be equal to ../folder1/db).
This way I can be sure that not to different types of data are read from the same environment.
I originally thought that LMDB prohibited opening the same environment multiple times with the same program but it seems like mozilla/lmdb-rkv doesn't handle this issue.
So, I think that it is still needed to ensure a same environment is not opened with different database types, if we are not able to create canonicalized paths on Windows, we will make it work on unix systems at least.

Ok, so thanks to you I search in the codebase of the mozilla/rkv database based on LMDB and found out how they work around the Windows Path problem.
https://github.com/mozilla/rkv/blob/7da5bd021decb82e163b3cbd1e5b8d84ec354aa2/src/manager.rs#L46-L58
I will rebase this PR on master and make the required changes.
Thank you for your help @maroider and @gentoid !

Awesome, it compiles thanks to you and this workaround!
The only remaining thing is that my other PR is merged and I will be able to release a new heed version that works on Windows!


Signing for larger inputs is causing errors

When requesting a signature for inputs longer than 223 characters, the current implementation errors out. We need this functionality for arbitrary message signing.

Fix submitted as PR:
https://github.com/CityOfZion/neon-js/pull/433


Strenghen Crystal break on level up 👎

I did miss the confirm window when you level up...

In my eyes it was kind of an intended feature, as the player would not level up the crystal, but instead just strengthen it. If we add this feature of also leveling up, I'll want to add a variable to let players choose if they want to level it up or not inside the config.sh. Maybe something like allowCrystalLevelUp.

I would really like this feature. Great idea!


Build RuneLite with Gradle

Using Gradle instead of Maven to build RuneLite reduces project build times and add more flexibilty for customizing the build process. It also offers a better user-experience than Maven since it has a more modern, discoverable CLI, and it ditches XML for its build files and uses a Groovy-based DSL instead.
A longer explanation of the benefits of using Gradle over Maven can be found in the Gradle vs Maven comparison section of the Gradle docs.
Results
Below is a comparison of build times using both Gradle and Maven. Results were obtained from a clean build and from an incremental build, where only one source file was changed.
Tests were skipped in all cases.
Clean build

Build system
Time (minutes )

Maven
1:27

Gradle
1:32

Incremental build

Build system
Time (minutes )

Maven
1:03

Gradle
0:18

Although build times are approximately the same for clean builds, incremental builds are significantly faster with Gradle. 🚀
Change summary

Remove pom.xml from all projects
Add build.gradle to all projects
Add package name to antlr grammer
Remove cache test dependency on itself
Remove cache project dependency from CacheClientTest.java
Upgrade mapstruct to 1.3 (Needed to work with jdk8 and the current version is deprecated)
Moved Checkstyle files to the checkstyle directory to work with gradle defaults
Change path to suppressions.xml in checkstyle.xml
Using palantir:git-version plugin to get git info (http-api)
Changed some property names since Gradle interprets names separated by . to be accessing an object
The User-Agent header string in the http-api library (RuneLiteAPI.java) was altered slightly since we can no longer use the Maven plugin for retrieving git information. It still includes all the same information as before (the commit hash and an indicator for whether the git tree is dirty), but it's formatted slightly differently. If the header needs to remain exactly the same it'll require a bit more effort, but if the header is just being logged for reproducing issues it should be fine.

hey man nice work, runeliteplus could use this. our client is less closed source so you can access our injector and make then necessary changes that you cannot do to runelite.
https://github.com/runelite-extended/runelite/
also come hang out in our discord with other devs!
https://discord.gg/jDCBh5J


various test fixes

(:
This is for SERVER-2304 which is implemented in 2d12e97. In addition I did a couple small test clean ups and SERVER-2303 since it was a two line change. Happy to move those into their own PRs if folks prefer.

addressed comments

Manually tested this by attempting an agent run with no server, then used the generate command. The CA and master cert were generated correctly with no error messaging.


[DOCU-2771] Konnect OIDC config

Summary

OIDC is now supported in Konnect. We need to update our SSO documentation for Okta and create a new document for Azure (work currently blocked) and generic OIDC.
Reason

DOCU-2771
Testing

Questions for reviewers:

Does anything feel missing from the generic OIDC doc?
Does the title work for the generic OIDC doc?
In the Okta doc, I kind of feel like the "Log in through Okta to test the integration" section is mostly a repeat of the "Test and apply the configuration" section. I'm thinking they could be combined but wanted a second opinion.
In the Okta doc, I was thinking that it would be nice (not 100% needed) to break the "Prerequisites and overview of steps" section into "Prerequisites" and "Overview of steps". The overview is nice, but since the doc covers how to complete all those steps, I don't think they're a prerequisite. Thoughts?

Hi @Guaris - I'm curious why this is part of the Gateway 3.0 milestone?

@rosskukulinski  A mistake. This PR is actually just waiting on Hayden's approval.


bin/e2e.sh -hub docker.io/<account> failed

root@pc002:~/go/src/istio.io/pilot# bin/e2e.sh -hub docker.io/gyliu
...
INFO: Running command line: bazel-bin/test/integration/integration --logtostderr -hub docker.io/gyliu -tag root_170828_Aug081503900467
F0828 02:08:20.460295   25100 driver.go:115] the server has asked for the client to provide credentials (post customresourcedefinitions.apiextensions.k8s.io)
ERROR: Non-zero return code '255' from command: Process exited with status 255

Can you provide more information on your  environment (k8s version, alpha flags, etc.) along with the specific istio/pilot SHA tested?

It is working well now, seems my apiserver goes down when running the test, thanks @ayj


Correct spelling of GitHub project wide (CaseSensitive!)

Hi @scott, I've got something annoying: I'd propose to replace all occurrences of the spelling Github with the proper spelling of GitHub (CaseSensitive!). Can you run this or should I issue a PR?

Yes, a PR would be great!


Add deployment customization via deploy_steps

This PR adds support to customize baremetal deployment via Ironic's deploy_steps feature.

Not sure why Travis tests aren't showing up on GitHub :-\

/retest

/assign @stbenjam


Can anyone tell me how do I trigger the month change event?

Can anyone tell me how do I trigger the month change event? That is, the next and previous arrows ...
The reason for this is to load only the events of the month on display ...

Seconded.

I'm interested in this too

I know it's not the best solution but its works for me:
import React, { useEffect, useState } from 'react';
import { Button } from '@material-ui/core';
import { Calendar, DayValue, utils } from 'react-modern-calendar-datepicker';
import 'react-modern-calendar-datepicker/lib/DatePicker.css';

const Index = () => {
  const [selectedDay, setSelectedDay] = useState<DayValue>(null);

  const handleNextMounth = () => {
    if (selectedDay) {
      const nextMounth = selectedDay.month;
      if (nextMounth + 1 <= 12) {
        const nextDate = { ...selectedDay, month: nextMounth + 1 };
        setSelectedDay({ ...nextDate });
      } else {
        const nextDate = { ...selectedDay, month: 1, year: selectedDay.year + 1 };
        setSelectedDay({ ...nextDate });
      }
    }
  };

  const handlePrevMounth = () => {
    if (selectedDay) {
      const nextMounth = selectedDay.month;
      if (nextMounth - 1 > 0) {
        const nextDate = { ...selectedDay, month: nextMounth - 1 };
        setSelectedDay({ ...nextDate });
      } else {
        const nextDate = { ...selectedDay, month: 12, year: selectedDay.year - 1 };
        setSelectedDay({ ...nextDate });
      }
    }
  };

  useEffect(() => {
    setSelectedDay(utils('fa').getToday());
  }, []);
  return (
    <div>
      <Button onClick={handleNextMounth}>Next</Button>
      <Button onClick={handlePrevMounth}>Prev</Button>
      <Calendar value={selectedDay} onChange={setSelectedDay} shouldHighlightWeekends locale={'fa'} />
    </div>
  );
};

export default Index;


⚠ Bofrost.de has degraded performance

In e417d5f, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1380 ms

Resolved: Bofrost.de performance has improved in 8caae75.


update docs to reflect sprite support in v3  #1639

Please send PRs to dev: Contributing Guide

did that, waiting for merge or feedback  https://github.com/GoodBoyDigital/pixi.js/pull/1925


Introduce jhelmfile.

Hey!
As announced in
https://github.com/helmfile/helmfile/discussions/995
here's the introduction of jhelmfile.
Documenation only.
Have a good one!

@paichinger please fix DCO issue.

https://github.com/helmfile/helmfile/pull/1002/checks?check_run_id=16545755904

@paichinger hello

Hey guys!
Sorry, I was very busy the last few weeks. Next week I will probably find some time to work on this again!

ping


No-credentials access to public S3 buckets

Would it be possible to add the equivalent of the --no-sign-request flag used in aws s3 CLI options to the CloudFiles s3 interface? This would be functionally like use_https for gcs, albeit implemented differently.
At the boto client level, it appears like the pattern would be (untested by me):
import boto3
from botocore import UNSIGNED
from botocore.config import Config
s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED))

Hi Casey!
This is a good idea. I've been annoyed by this missing feature too on occasion. Let me think about the right keyword to use. CloudFiles(..., public=True) or unsigned=True?

I would suggest no_sign_request=True. It is clunky, but it aligns with the aws CLI and so is more likely to be discoverable.

Hi Casey,
I added this feature in https://github.com/seung-lab/cloud-files/pull/103
Do you have a nice example file for me to test?
Will


Chrome extension name doesn't contain "DocsGPT" and "documentation" is misspelled

Pull request opened; Changed extension name and fixed spelling

Finxed in #9


Can i add a border to the seekbar only?

If i apply a border as background, then the tick texts and indicator also come inside the border. I want the border to surround the seekbar only and the tick texts and indicator should be outside it? Is this possible??

Sorry for this, it is not support on this library.


Run systemctyl daemon-reload after the service is deleted

Hi,
Changed the SystemD provider to run systemctl daemon-reload after deleting the service file.  Otherwise, tests using inspec (and maybe others) fail because it sees the service as still existing after the delete.

Current coverage is 98.82% (diff: 100%)

Merging #35 into master will increase coverage by <.01%

@@             master        #35   diff @@
==========================================
  Files            14         14
  Lines           509        511     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            503        505     +2
  Misses            6          6
  Partials          0          0

Powered by Codecov. Last update 7f093a9...437eded


Collection of small fixes

This pull request contains several small changes.

A typo was fixed in a doc string by TheAtomicOption
0 size stacks being unlocked was fixed by TheAtomicOption
Placeholder versions being 'unlocked' causing a second unlock popup was fixed by myself (this closes https://github.com/sethrem/bronzeman/issues/4)
All items in a shop getting unlocked before buying them was fixed by myself (this resolves https://github.com/sethrem/bronzeman/issues/2)
A better description was added for the plugin by myself.

I migrated to a new repository where I started anew, to prevent problems with licensing.

Hello, how come this was closed?

Hello there! It is really nice to see you are back! Thank you for making this plugin, it really helped me figure out how plugin development works. Regarding your question: I opened the pull request in November, so after I was unable to reach you for 4 months, I was advised to start the project from scratch so I could put it on the plugin hub. I copied over all the code I had written myself, and wrote the missing code (code originally written by you) from scratch, to prevent licensing issues. There are 3 bronzeman plugins on the plugin hub now, and all the developers share code and credit each other. You are free to use the changes referenced in this pull request, as well as copy any of the newer code from my new repository. I've added some pretty neat features if I may say so myself.


Can't split set features by comma

Describe the bug
In python, while defining set feature (with format='comma'), can't split it by comma.
To Reproduce
import pandas as pd
df=pd.DataFrame({'feat': ['di maio, salvini', 'conte, della loggia'], 'target': [0, 1]})

import ludwig
from ludwig.api import LudwigModel
model_definition={'input_features':[ {'name':'feat','type':'set', 'format':'comma'}],
              'output_features':[{'name':'target','type':'binary'}],
              'training':{'learning_rate':0.01,
                              'batch_size': 10,
                              'epochs': 1000,
                              'early_stop': 5,
                          'validation_measure':'loss','validation_field':'target'}}

model = LudwigModel(model_definition)

train_stats = model.train(df)

Obtained training_set_metadata.json is the following:
{
    "feat": {
        "idx2str": [
            "<PAD>",
            "<UNK>",
            "di",
            "maio,",
            "salvini",
            "conte,",
            "della",
            "loggia"
        ],
        "max_set_size": 3,
        "preprocessing": {
            "computed_fill_value": "<UNK>",
            "fill_value": "<UNK>",
            "lowercase": false,
            "missing_value_strategy": "fill_with_const",
            "most_common": 10000,
            "tokenizer": "space"
        },
        "str2freq": {
            "<PAD>": 0,
            "<UNK>": 0,
            "conte,": 1,
            "della": 1,
            "di": 1,
            "loggia": 1,
            "maio,": 1,
            "salvini": 1
        },
        "str2idx": {
            "<PAD>": 0,
            "<UNK>": 1,
            "conte,": 5,
            "della": 6,
            "di": 2,
            "loggia": 7,
            "maio,": 3,
            "salvini": 4
        },
        "vocab_size": 8
    },
    "target": {
        "preprocessing": {
            "computed_fill_value": 0,
            "fill_value": 0,
            "missing_value_strategy": "fill_with_const"
        }
    }
}

Set feature is splitted by space, not by comma.
Expected behavior
Set feature should be splitted by comma, when specified with format parameter.
Environment

OS: Google Colab
Python version: 3.6.9
ludwig version: 0.3.1
pandas version: 1.1.4

I tried to understand why this happen...
COMMA_SPLITTER works properly...

Hey @anakin87, the format param was changed to tokenizer in v0.3.  Apologies that this hasn't been updated in the official docs yet.
Try changing your input features as follows:
'input_features':[ {'name':'feat','type':'set', 'tokenizer':'comma'}]

Updated the website to reflect this.


[question] What is the relation between Tensor and NodeEntry?

Specifically, can NodeEntries be returned from FTVMCompute instead of Tensors (as in FGradient)? It looks like this is possible since both are Nodes, but the conversion between NodeRef and NodePtr isn't obvious.

This is mainly due to the current way NNVM is organized. Currently the high level computational graph in NNVM is independent  from low level TVM dataflow. So they are essentially two different things. Some of this is due to legacy issue that NNVM is designed before TVM.
We are working toward moving more of NNVM's node system to TVM's node system. In the meanwhile, it is still helpful to distinguish between low level tensor operator dataflow and computational graph version. So NodeEntries are computational graph representation  and all graph transformation manipulates NodeEntries instead of Tensors.
The compilation to TVM(FTVMCompute) returns tvm Tensors

Interesting. That implies that creating an FGradient which performs both pre-existing and specialized computation would require building the graph of reused components (e.g. sum) and then making an FTVMCompute for the specific parts (instead of the monolithic CreateGradNode->FTVMCompute). Ideally, the amount (and size) of new FTVMComputes would be minimized to facilitate higher-order autograd.
Thanks for the answer!


[range-v3] Update to 0.11.0

Fix #13606
Update range-v3 to the latest version 3.11.0
Note: No feature need to test

Thanks!


⚠ Bofrost.be has degraded performance

In df68a95, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1085 ms

Resolved: Bofrost.be performance has improved in 494ebf8.


uuid package version bump request to ^4.0.0

Checklist

[X] I made sure that the issue I am raising doesn't already exist

Use case / Problem
Hi, great package - thank you!
The latest uuid package is now out of date.
See:
[nnn] flutter pub get
Resolving dependencies...
Because audioplayers 5.1.0 depends on uuid ^3.0.7 and no versions of audioplayers match >5.1.0 <6.0.0, audioplayers ^5.1.0 requires uuid ^3.0.7.
So, because nnn depends on both audioplayers ^5.1.0 and uuid ^4.0.0, version solving failed.

Proposal / Solution
There do not appear to be any code/API conflcts with the new version of uuid compared to v3.0.7 for audioplayers.
Example Code
In packages/audioplayers/pubspec.yaml, change
Change
 uuid: ^4.0.0

Affected platforms
Android, iOS
Platform details
No response
Audio Files/URLs/Sources
No response
Mockups
No response
Related issues / more information
No response
Working on PR
yeah

We would be glad if you post a PR, be aware to offer compatibility to the old version, too. E.g. like done with files: https://github.com/bluefireteam/audioplayers/blob/b2d192efca5fcdfb7fdb619733a5936366b26080/packages/audioplayers/pubspec.yaml#L30

You can apply the latest changes by adding these overrides:
https://github.com/bluefireteam/audioplayers/blob/main/contributing.md#current-development
Idk how long the next release will take, as there is lot of things to do as this will be a major release.


Use mlflow-skinny

This PR aims to replace the mlflow runtime dependency with it's much more lightweight cousin mlflow-skinny. The mlflow package ships tons of runtime dependencies that are only necessary to run a tracking server (see here). The mlflow-skinny package is more suitable when you are only interested in the MLflow-client capabilities.
Comparions:
mlflow:
$ micromamba create --prefix /tmp/mlflow mlflow=2.14.3
$ du -sh /tmp/mlflow
902M	/tmp/mlflow

$ micromamba create --prefix /tmp/mlflow-skinny mlflow-skinny=2.14.3
$ du -sh /tmp/mlflow-skinny
201M	/tmp/mlflow-skinny

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

Ah, I didn't know that the Python package name for mlflow-skinny is also mlflow-skinny, not mlflow:
https://github.com/mlflow/mlflow/blob/bcc4eceec83270682c27cc24494cb678186cfc71/pyproject.skinny.toml#L6
This will probably require a change in the package source.


update cli wrapper

updated to newest version of powerplatform-cli-wrapper
this required some refactoring to match the current presentation layer of that wrapper, which is now doing more of the heavy lifting in terms of authentication

Looks like the windows test is broken, but it looks unrelated to this PR. Requesting review.


Re-enable PNPM

...once we get an updated version that doesn't misdirect PATs.
https://github.com/microsoft/typescript-error-deltas/blob/a9fc7c7bb587ae1bcce504b20fe5e1d16f6d0949/src/main.ts#L700

Oops, did this a while ago.


Binary Ninja project file association broken on macOS/Windows

We were not able to completely implement every Projects feature we wanted before getting it merged to dev yesterday.
This issue tracks macOS and Windows file associations with Binary Ninja project files (.bnpr and .bnpm). It appears that, in some cases, this either doesn't get added or breaks. We haven't yet been able to figure out the exact circumstances in which it happens, though.

The file associations should be set up for fresh installs, but existing clients updating won't have them

For macOS specifically, you can run the following to re-scan for file associations:
/System/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -f -R -trusted "/Applications/Binary Ninja.app"

This is not currently run automatically on update.

Documentation has been updated to cover manually updating the associations for each OS.


Add Paypal payment gateway

I want to merge this change because I would love to be able to receive Paypal payments.
Follows #3469
I wrote a very basic plugin for the integration of Paypal. It only supports one shot authorize/capture and refund. I hope it can help. I can work further on it if needed.
Thank sooooooooo much to the team for creating and sharing Saleor!
Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Hey @albertojacini, sorry for no response from us here, the team is constantly busy with new features from the roadmap and various bugfixes, and sometimes it's really hard to also handle PRs from the community for us. The code looks very solid at a first glance and I'll try to test it locally first with some Paypal sandbox account. I should have some feedback and decision whether we want to merge PayPal support to master next week ✌.

Thanks a lot @maarcingebala, that would be great :+1: !!.

I'm waiting for paypal integration ...... hurry up guys ! Thanks in advance.

Nice job! Would love to see this also

Thanks for this!

I'll work on this in the weekend.

Hi @maarcingebala, I pushed an updated version of the gateway. It takes in your review points and add support for partial refunds.

Hi @albertojacini, is there code for the storefront to use your feature?

Hi @Anyman552 , you can try to adapt this code: https://gist.github.com/albertojacini/c2461617418adc5f18bf07a464aa5a83 . It works in my private project.

Hi Guys,
@albertojacini thank you so much for the awesome work. We really need this plugin in order to use saleor.
@maarcingebala will this be merged to master any time soon?

🙏🏾 Can we hope to see this feature in the next release? This is the must have for our projects as Braintree and Stripe aren’t available for our clients

🙏🏾 Can we hope to see this feature in the next release? This is the must have for our projects as Braintree and Stripe aren’t available for our clients

What about myPOS? I need plugin for this gateway because my Customer wants to use this for whole UE. I have started to translate myPOS SDK

@albertojacini can you give paypal storefront integration

Hello. What is the status of this? And if any help needed I could participate. Also have problems with country support

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

Wakey wakey

Hey guys, any updates? I would love to help if there is anything I can do :)


Allow "from airtable import Airtable"

A number of users of this library have been confused that they have to do:
from airtable.airtable import Airtable
The less surprising (and more python-idiomatic) way to import would be:
from airtable import Airtable
This pull request enables that.

I am not sure why from airtable.airtable import Airtable is not working for me, says ModuleNotFoundError: No module named 'airtable'


Typo in blog post

The blog post "How much will I make from DriveShare?" Has a typo in it. It says "GB" where it should say "TB":

I am pretty sure 1 + 3*4 TB doesn't equal 13 GB. :P
~Thomas Parker

Want to submit a pull request?

i can will do now.

All good now!

Thanks @nameone

You're welcome. I would have submitted a pull request if the blog was hosted here. Good catch, @EmergentBehavior !
~Thomas Parker


Use of Textfield autofocus

Hi,
Is that possible to use the text field autofocus in the constructor ?
Thanks for the answer

Hi @Shiftane, The TextField autofocus feature is not yet available.

Can add it if I can do a PR
Le 13 avril 2020 à 10:17:38, Ogunye Nathaniel Oluwatobiloba (
<EMAIL_ADDRESS>a écrit:
Hi @Shiftane https://github.com/Shiftane, The TextField autofocus feature
is not yet available.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/natintosh/intl-phone-number-input/issues/30#issuecomment-612802411,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2FABG34F2L7QE3SRFWCP3RMLDCDANCNFSM4MF4VOCA
.

Sure that will be great

I just added the feature thanks. I'll close this now


Add new ActionNode type corresponding to HFLM's loglikelihood_rolling function

This issue is listed under #4.
In HFLM, the loglikelihood_rolling function takes a list of strings and computes probabilities for each string.
There should be a new subclass of ActionNode that wraps an HFLM model and, in its tick method, performs a loglikelihood_rolling call against a list of strings that has been written to the node's blackboard. The resulting list of probabilities should be written back to the blackboard in some standardized way.

Closed by #20.


Display free/used space for encrypted SD cards

Display free/used space for encrypted SD cards
Using unencrypted SD cards the free/used space is displayed on the location selector dialoque. This is a nice feature - the German localized GUI looks like this:

With the release of Sailfish OS 3.0 the support for encrypted SD cards has been integrated. Using encrypted SD cards I am missing the additional info for free/used space. The German localized GUI looks like this:

It would be nice to have the additional information using encrypted SD cards as well.
Greetings,
rebos

Sailfish 3.0 has an in-built way to check the free/used space of the SD Cards. You can access it by going to system Settings > Storage.
It is more reliable so you should use it to check free/used space.
You can read more about that method here: https://jolla.zendesk.com/hc/en-us/articles/201997993-What-kind-of-SD-cards-and-formats-are-supported-Formatting-and-encrypting-a-card


Adding Analyzer functionality

As discussed -- this works already very well in the lab, and since it doesn't change anything else let's merge it.


dial tcp: i/o timeout

The opsmanager host is unavailable for a few second to 1-2 minutes on random occasions. We blame it on "the cloud" right now because there's really nothing pointing to any other problems. We have that problem since we started using OM, at its very initial release.
Our pcf installation pipelines are often failing because OM isn't resilient enough in those situations.
Would it be possible to add an internal retry on those errors? We're working around the problem for apply-changes, where it is very likely to happen because of the long duratinn of the connection but we don't want to generalize that code to all OM usages: https://github.com/pivotal-cf/pcf-a1/blob/terraform2/tasks/scripts/apply-changes.sh
Thanks
Pierre
+ om -k -t https://pcf.dev-1-9-azure-clean.iet.to.cf-app.com -u admin -p jejEebRok9 configure-product --product-name p-rabbitmq --product-properties '{
  ".rabbitmq-server.server_admin_credentials": {
    "type": "simple_credentials",
    "value": {
      "identity": "rabbitAdmin",
      "password": "rabbitPassword"
    }
  }
}' --product-resources '{
  "rabbitmq-server": {
    "internet_connected": false
  },
  "rabbitmq-haproxy": {
    "internet_connected": false
  },
  "rabbitmq-broker": {
    "internet_connected": false
  },
  "broker-registrar": {
    "internet_connected": false
  },
  "broker-deregistrar": {
    "internet_connected": false
  }
}'
configuring product...
setting properties
finished setting properties
applying resource configuration for the following jobs:
	broker-deregistrar
	broker-registrar
	rabbitmq-broker
could not execute "configure-product": could not fetch existing job configuration: could not make api request to resource_config endpoint: token could not be retrieved from target url: Post https://pcf.dev-1-9-azure-clean.iet.to.cf-app.com/uaa/oauth/token: dial tcp: i/o timeout

hey @pdelagrave - I looked at the code path around this and I believe we can add the same sort of Temporary() error retry logic that we have around streaming the logs. We'd add this around the logic where we grab the oauth token.

Hi @zachgersh
It's worth noting that the timeout can happen for any endpoints on the opsmanager host, not just the oauth token one.

I considered this as well. We could move the retry on temporary error logic
into or HTTP client. That would resolve this though it will take some
restructuring.
On Tue, Feb 14, 2017 at 7:31 AM Pierre Delagrave<EMAIL_ADDRESS>wrote:

Hi @zachgersh https://github.com/zachgersh
It's worth noting that the timeout can happen for any endpoints on the
opsmanager host, not just the oauth token one.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pivotal-cf/om/issues/39#issuecomment-279739885, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAqFA2xzUmPr1ZOLbamGEoakGPEEiFLRks5rcci9gaJpZM4L7Wh4
.

We're seeing this on the RMQ tile team too -- would love to know when the issue is resolved.

PEZ Team has started using OM and seeing this too mostly during apply-changes.   For us, a way to reattach to the apply-changes session would great.

@jasper9 that already exists. The command always attempts a reattach if you run it before trying to start a new apply.

@zachgersh right... but if you run apply-changes after it completes it will start a new one right?

@jasper9  - correct. You just have to double-check that one isn't running before triggering again. We could always set a flag so that it won't trigger a new one but will connect if running. Let me know if that is a feature you want and we can add a story to our backlog.
@pdelagrave - we've got code in om master now that will do retries around getting and token and http GET requests. I'd love if we could get some feedback from master pipeline. If you'd like to not rebuild the binary and want to wait for an official release no problem with that either.


IntelliJ plugin UI smoke tests

Description
IntelliJ plugin UI smoke tests using IntelliJ remoterobot library and special Gradle task - intellij:ruIdeForUiTests
Type of Change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Automated Testing

Execute intellij:runIdeForUiTests gradle task
Wait IDE to be opened
Run CreateProjects or all tests in org.utbot.tests package

Checklist (remove irrelevant options):

[ ] The change followed the style guidelines of the UTBot project
[x] Self-review of the code is passed
[x] The change contains enough commentaries, particularly in hard-to-understand areas
[ ] New documentation is provided or existed one is altered
[ ] No new warnings
[x] New tests have been added
[x] All tests pass locally with my changes

@Vassiliy-Kudryashov
It is not good to use such long timeouts in autotests:

a performance bug can be easily missed
a user will wait for a long time until the test fails - if there is a bug in UTBot, robot or autotest
I will try to stabilize the tests in an other way. Check if indexing or build is going on.


Add try-catch around JSON deserialization

Fixes issue #15
The problem was not UTF8 after all. Instead the problem was that uSplit would always treat the experiment description as a json string.
This commit only wraps the deserialization in a try-catch clause and logs the exception.
A better fix would be to only deserialize the description when it contains the description separator. That would be a breaking change, however.

Hello @hakon-knowit, thanks a lot for this excellent contribution that fixes the issue you previosuly run into.
Two things:

It seems like there is nothing to deserialize if the "separator" string is not found, so we don't even have to attempt it. Could you just add an else clause to the separator check and a return statementwith the default value if the separator is not found. I think a try/catch block should stay as well, though I might move it to the calling method so that I can add more context (experiment ID).
Would you mind issuing this PR against develop? I will then merge into master and u7.5.

I am happy to do all this myself this evening, in case you do have time. Let me know what you prefer.
Thanks again!
Ondrej.

Just to clarify - it will not be a breaking change because the first time this form of metadata saving was introduced it already included this separator. It would only break if someone went and deleted the separator from the description manually. :)

Hi @ondrejpialek
I can update the pull request tomorrow morning when I'm back at work, or you can do the changes yourself if you want to. I don't mind either way.
I was hesitant to introduce changes that would break other people's setup, so it's good to hear it won't be a problem.
Thanks for your quick response :)

@ondrejpialek I've changed the base branch to develop and made sure separator is present before parsing settings.
I kept the try-catch block in ParseSettings() since it is called from two locations in the code and I did not want to make too many changes.

Hi @hakon-knowit, thanks again for the great PR and for fixing this issue.
I have accepted it and merged into master (for U7.6+) and u7.5, once these get built on our CI server they should get published to NuGet, shouldn't take more than an hour I'd say.
Many thanks!
Ondrej.


Update auth behavior when MFA is required

The doc says second factor auth is requested if CBA protection level is configured as "single-factor authentication." However, users are actually not prompted to complete second factor. They see following error message.

Message: AADSTS54008: Multi-Factor authentication is required and the credential used (Certificate) is not supported as a First Factor. Contact your administrator for more information.

Vimala Ranganathan says this is the correct behavior. I am updating the doc accordingly.

Docs Build status updates of commit 2540804:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/active-directory/authentication/concept-certificate-based-authentication-technical-deep-dive.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@vimrang
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@vimrang Users still see the following message if CBA protection level is configured as "single-factor authentication" and MFA is required by Conditional Access policy. I would like to update the doc to reduce the customer confusions.

I found the doc was already updated. Closing this PR.


pull request for e2e test at 12/30/2016 22:56:07

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Request configuration experience

While reviewing this PR we kind of started an experience question.
Currently you can configure the request by doing this:
client.users.byUserId("foo").get(x -> x.queryParameters.select = new String[] {"displayName"});

While this works great, this might not feel natural to a Java developer. We've already discussed builder patterns in the past and ruled them out due to the impact they have on the size of the Jar.
An alternative could be the following
var configuration = new RequestConfiguration<GetQueryParameters>();
configuration.queryParameters = new GetQueryParameters();
configuration.queryParameters.select = new String[] {"displayName"};
client.users.byUserId("foo").get(configuration);

which feels like a lot of ceremony, and could be simplified to this without code generation changes, even though this pattern is thrown upon:
client.users.byUserId("foo").get(new RequestConfiguration<GetQueryParameters>()
    {{
         queryParameters = new GetQueryParameters()
         {{
               select = new String[] {"displayName"};
         }};
     }});

@andreaTP mentioned there might be a better alternative than those two, and he'll provide the details
@maisarissi @sebastienlevert any preference here from a developer experience? We should make a decision on that quickly to avoid holding Java's GA.

@baywet I have quickly attempted to sketch out a possible encoding by bubbling the generic <T extends BaseRequestConfiguration> to the class level:
https://github.com/microsoft/kiota-java/compare/main...andreaTP:kiota-java:java-reduce-size?expand=1
toghether with:
https://github.com/microsoft/kiota/compare/main...andreaTP:kiota:java-reduce-size?expand=1
If I haven't missed invariants it might be a possibility, please carefully double check!
Side note: overloading with anonymous classes is very very alien in Java and often mentioned as a bad practice. e.g. new Object {{ is a no go for a Java dev.

Thanks for providing this additional information.
I'm a bit reticent to:

introducing a generic type parameter on the request information class. This would diverge from all other languages
having the request configuration being applied at the request adapter level. This would effectively mean to toXXXRequestInformation methods would only give you a partial representation of the request its about to make, leaving the consumer with having to somehow resolve the final form.

Noted for the object initialization pattern, we realized it introduced anonymous classes during earlier investigations which had significant size impacts (when it's in the generated code). I'm not sure why Java didn't make it a first class concept instead of generating an anonymous class at compile time. (probably to avoid breaking compatibility).
Any preference between option 1 and option 2 in my initial post? Anything we can do with your proposal to alleviate my concerns?

introducing a generic type parameter on the request information class. This would diverge from all other languages

Fair, but in the scope of this optimization I think we have the freedom to change those things. Isn't it?
The only problem would be for GA languages, but we have to go for Kiota 2.X sooner or later 😛

having the request configuration being applied at the request adapter level. This would effectively mean to toXXXRequestInformation methods would only give you a partial representation of the request its about to make, leaving the consumer with having to somehow resolve the final form.

If I understand it correctly, the only missing information would be the queryParametersGetter which can be provided in the constructor as well. With this change configure is going to take 0 arguments and become effectively "the way" to get the full representation of the RequestInformation instance.

Regarding your proposals, I agree 1 is too much ceremony and dramatically impacts the current API (which is extremely convenient).
Option 2 would be viable only combining your proposal with mine ... moving the Generic to the class level and using plain constructors etc.

just to be sure we're on the same page here, option 1 being the callback? and option 2 being passing the object with lot's of initialization code?

I have understood this:
Option 1:
var configuration = new RequestConfiguration<GetQueryParameters>();
configuration.queryParameters = new GetQueryParameters();
configuration.queryParameters.select = new String[] {"displayName"};
client.users.byUserId("foo").get(configuration);

Option 2:
client.users.byUserId("foo").get(new RequestConfiguration<GetQueryParameters>()
    {{
         queryParameters = new GetQueryParameters()
         {{
               select = new String[] {"displayName"};
         }};
     }});

ah sorry, option 1 was leaving things as is in my mind.

Are they really 2 options, or just flavors of basically the same option? The second "flavour" really resonates with me from a developer experience. Any pointers on other libraries and how they provided this kind of fluent approach @andreaTP?

(following the order of my original call)
option 1: what we have today
option 2: a change we could make, but verbose
option 3: same as option 2 from our side, but less verbose, but uses a bad pattern.
option 4: (what Andrea suggested), brings a bunch of concerns on the implementation side, the customer's experience would be similar to 2 as far as I understand

With my proposal we can keep exactly the same API as option 1, but we save lines of code. I think the current experience is the best from a user perspective.

I think we all agree here. Keeping the initial state is the best experience for developers. Are we all aligned? The API would stay as-is:
client.users.byUserId("foo").get(x -> x.queryParameters.select = new String[] {"displayName"});


It can be reproduced on FireFox. I haven't tried other browsers.
It would be great if you could solve this.
Thanks,
Victor

@vklap can you show me some code which reproduces this error?

Hi Tim,
Thank you so much for responding.
The code is part of a bigger project, which unfortunately I can't share.
However, I can send you a problematic image.
The image is also confidential (it's the face of a person).
Maybe I can send it to you by email?
Thanks,
Victor

Yes, let's take this discussion to email. Find mine in my profile.

Actually same as #2 only Firefox throws an error which prevents anything from showing.


[Docs] Download should point to the newest version of our product

File: /docs/quick_start/Deploy.md
Why does it point to v2.4?  Shouldn't it point to a list of versions?

https://github.com/StarRocks/starrocks/releases

fixed


Joomla.org feed can not be added

When I try to subscribe to the feed for Joomla.org, in either rss 2.0 or atom, news gives me the "Feed not found error", however dong curl with the feed url from my server happily goes out and grabs what looks like a correct feed.
The 2 feed urls (rss 2.0 / atom) are:
https://www.joomla.org/announcements.feed?type=rss
https://www.joomla.org/announcements.feed?type=atom
There are the following warnings in the javascript console, but they appear before clicking subscribe. No warnings/errors show up after, other than news' own 'feed not found" error.
Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead jquery.min.js:1:0
mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create es6-shim.min.js:10:20588
Use of getPreventDefault() is deprecated. Use defaultPrevented instead.
Owncloud 8.2
Owncloud News 6.1.1 (when I asked what versionof picofeed it uses I was just told "master")
Firefox 42
This bug was originally filed at:
https://github.com/owncloud/news/issues/900

I can't reproduce the issue. Both feed are working fine for me with miniflux + picofeed head.
The picofeed commandline client is fine as well:
$ ./picofeed feed "https://www.joomla.org/announcements.feed?type=atom"
Feed::id = https://www.joomla.org/announcements.feed
Feed::title = News
Feed::feed_url = https://www.joomla.org/announcements.feed?type=atom
Feed::site_url = https://www.joomla.org/
Feed::language = en-gb
Feed::description = Joomla! - the dynamic portal engine and content management system
Feed::logo =
Feed::date = Tue, 15 Dec 15 17:49:38 +0000
Feed::isRTL() = false
Feed::items = 8 items
----
Item::id = bf2718c011985b109f265cb198e1f004ca70ef5a0a379d25df06826e349b8c17
Item::title = Joomla! 3.4.6 Released
Item::url = https://www.joomla.org/announcements/release-news/5641-joomla-3-4-6-released.html
Item::language = en-gb
Item::author = George Wilson
Item::enclosure_url =
Item::enclosure_type =
Item::date = Mon, 14 Dec 15 20:25:00 +0000
Item::isRTL() = false
Item::content = 2007 bytes
----
Item::id = 26b70ed19746b42c94865ec8f63f2a1d5bfa763ac2185d97686e92d1b272c0f6
Item::title = Timeline update for 3.5
Item::url = https://www.joomla.org/announcements/release-news/5640-timeline-update-for-3-5.html
Item::language = en-gb
Item::author = Jessica Dunbar
Item::enclosure_url =
Item::enclosure_type =
Item::date = Fri, 04 Dec 15 04:16:39 +0000
Item::isRTL() = false
Item::content = 738 bytes
----
Item::id = dc80a3e71301eb92897ee02d4e7ec16388c4807117357d90837fc5341603e844
Item::title = Joomla! 3.5 Beta 1 Released
Item::url = https://www.joomla.org/announcements/release-news/5637-joomla-3-5-beta-1-released.html
Item::language = en-gb
Item::author = George Wilson
Item::enclosure_url =
Item::enclosure_type =
Item::date = Sat, 07 Nov 15 06:00:00 +0000
Item::isRTL() = false
Item::content = 901 bytes
----
Item::id = c4c866b49512bd3052804e2ae879b44894b466155d918b707729316c45aa7637
Item::title = Revista de la Comunidad Joomla! | Noviembre 2015
Item::url = https://www.joomla.org/announcements/general-news/5636-revista-de-la-comunidad-joomla-noviembre-2015.html
Item::language = en-gb
Item::author = Jacques Rentzke
Item::enclosure_url =
Item::enclosure_type =
Item::date = Tue, 03 Nov 15 20:23:31 +0000
Item::isRTL() = false
Item::content = 744 bytes
----
Item::id = 4e2537e4694faf99a55bbe622b8ae34db7fa1b9ab3e4ac4e9de5f1648a09ecbf
Item::title = Joomla Community Magazine | November 2015
Item::url = https://www.joomla.org/announcements/general-news/5635-joomla-community-magazine-november-2015.html
Item::language = en-gb
Item::author = Jacques Rentzke
Item::enclosure_url =
Item::enclosure_type =
Item::date = Tue, 03 Nov 15 19:51:11 +0000
Item::isRTL() = false
Item::content = 625 bytes
----
Item::id = ed9be976671001815c3eaefba312433a212ab6f5ca12fa55acd252396942d379
Item::title = Joomla! 3.4.5 Released
Item::url = https://www.joomla.org/announcements/release-news/5634-joomla-3-4-5-released.html
Item::language = en-gb
Item::author = George Wilson
Item::enclosure_url =
Item::enclosure_type =
Item::date = Thu, 22 Oct 15 19:00:00 +0000
Item::isRTL() = false
Item::content = 1676 bytes
----
Item::id = e459a0e2fa1f333dc1381be8cccd14a11ce70b21014d3e5ac4ae7fde3215975d
Item::title = Important Security Announcement - Patch Available Soon
Item::url = https://www.joomla.org/announcements/release-news/5633-important-security-announcement-pre-release.html
Item::language = en-gb
Item::author = Jessica Dunbar
Item::enclosure_url =
Item::enclosure_type =
Item::date = Fri, 16 Oct 15 21:34:40 +0000
Item::isRTL() = false
Item::content = 606 bytes
----
Item::id = fa83b26947f86b47da46d6b108d3520db8615af031aae43209a97741cf56e0b5
Item::title = Revista de la Comunidad Joomla! | Octubre 2015
Item::url = https://www.joomla.org/announcements/general-news/5632-revista-de-la-comunidad-joomla-octubre-2015.html
Item::language = en-gb
Item::author = Jacques Rentzke
Item::enclosure_url =
Item::enclosure_type =
Item::date = Fri, 02 Oct 15 23:35:49 +0000
Item::isRTL() = false
Item::content = 796 bytes

@BernhardPosselt ^^

Ha, found it :D @mkresin  do you remember the user agent issue?
@Bugsbane basically dup of https://github.com/fguillot/picoFeed/issues/174 which means Joomla admins are retards.

They must've gone full into paranoid security beserk mode because of all the issues lately

Yeah, just another case of snakeoil security...
@Bugsbane There is nothing we can do for you. Would you please close the ticket!


boards/sim: enable nxlooper for alsa config

Summary
Impact
Build nxlooper too
Testing
Pass CI

CI is failing due to several warnings on the NXLooper app.

Yes, fix is here https://github.com/apache/incubator-nuttx-apps/pull/802


Add an api key wrapper

This extraction https://github.com/swapagarwal/JARVIS-on-Messenger/blob/master/modules/src/dictionary.py#L9 would be abstracted out to a util class.

I've started working on this. As it stands, I instantiate the class and then call a class method passing the name of the key or the data file variable name. The method then needs to retrieve the key from the environment, or failing that, from config.

Another way to do it would be to take the key name as a constructor argument and have the constructor store the key as an object variable which could then be retrieved from the object.
Do you have any thoughts on which you would prefer?

Is this still an issue? I would like to work on this.

PR #266 is currently opened to address it. You could comment on that, or even open up your own PR if you want to implement it in a different way.

@edadesd seems like #266 solves the issue, I don't think more action is needed but to fix the test not passing in the code. Thanks for the quick response :)

Hello, I was wondering if you want an Arabic translator? so the project can reach a wider audience.


cannot jit before taking gradient with jaxopt.Bisection

Hello, I'm trying to work with the following snippet,
import numpy as np
import jax.numpy as jnp
import jax
from jaxopt import Bisection

@jax.jit
def _xy_c(r, phi, spin, theta_o):
    lam = spin + r / spin * (r - (2 * (r**2 - 2 * r + spin**2)) / (r - 1))
    eta = r**3 / spin**2 *((4 * (r**2 - 2 * r + spin**2)) / (r - 1)**2 - r)
    alpha = -lam / jnp.sin(theta_o)
    beta = eta + spin**2 * jnp.cos(theta_o)**2 - lam**2 * jnp.tan(theta_o)**(-2)
    beta = jnp.sign(beta) * jnp.sqrt(jnp.abs(beta))
    return alpha, beta

@jax.jit
def _r_c_solve(r, phi, spin, theta_o):
    alpha, beta = _xy_c(r, phi, spin, theta_o)
    return (jnp.arctan2(beta, alpha) * 180. / jnp.pi + 90) % 360 - 90 - phi * 180. / jnp.pi

def r_c_solve(phi, spin, theta_o):
    phi = phi * jnp.pi / 180.
    theta_o = theta_o * jnp.pi / 180.
    theta_o = jnp.clip(theta_o, 1e-5, jnp.pi - 1e-5)
    r_m = 2 * (1 + jnp.cos(2 / 3 * jnp.arccos(-spin)))
    r_p = 2 * (1 + jnp.cos(2 / 3 * jnp.arccos(spin)))
    r_0 = r_m - 0.0001 * (r_p - r_m)
    r_1 = r_p + 0.0001 * (r_p - r_m)
    return Bisection(optimality_fun=_r_c_solve, lower=r_0, upper=r_1,
                     check_bracket=False).run(phi=phi, spin=spin, theta_o=theta_o).params

I think usually it does not matter whether one jit the intermediate functions, i.e. jit(A(B)) is the same as jit(A(jit(B))). However, I find this no longer the case when jaxopt.Bisection is involved. For example, the following g_r_c_solve_0 and g_r_c_solve_1 works well,
g_r_c_solve_0 = jax.grad(r_c_solve)
%time g_r_c_solve_0(10., 0.9375, 163)

g_r_c_solve_1 = jax.jit(jax.grad(r_c_solve))
%time g_r_c_solve_1(10., 0.9375, 163)

But g_r_c_solve_2 and g_r_c_solve_3 will give me an UnexpectedTracerError,
g_r_c_solve_2 = jax.grad(jax.jit(r_c_solve))
%time g_r_c_solve_2(10., 0.9375, 163)

g_r_c_solve_3 = jax.jit(jax.grad(jax.jit(r_c_solve)))
%time g_r_c_solve_3(10., 0.9375, 163)

with the full error message below,
---------------------------------------------------------------------------
JaxStackTraceBeforeTransformation         Traceback (most recent call last)
File <frozen runpy>:198, in _run_module_as_main()

File <frozen runpy>:88, in _run_code()

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel_launcher.py:17
     15 from ipykernel import kernelapp as app
---> 17 app.launch_new_instance()

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/traitlets/config/application.py:1043, in launch_instance()
   1042 app.initialize(argv)
-> 1043 app.start()

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/kernelapp.py:728, in start()
    727 try:
--> 728     self.io_loop.start()
    729 except KeyboardInterrupt:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/tornado/platform/asyncio.py:195, in start()
    194 def start(self) -> None:
--> 195     self.asyncio_loop.run_forever()

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/asyncio/base_events.py:607, in run_forever()
    606 while True:
--> 607     self._run_once()
    608     if self._stopping:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/asyncio/base_events.py:1922, in _run_once()
   1921     else:
-> 1922         handle._run()
   1923 handle = None

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/asyncio/events.py:80, in _run()
     79 try:
---> 80     self._context.run(self._callback, *self._args)
     81 except (SystemExit, KeyboardInterrupt):

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/kernelbase.py:516, in dispatch_queue()
    515 try:
--> 516     await self.process_one()
    517 except Exception:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/kernelbase.py:505, in process_one()
    504         return None
--> 505 await dispatch(*args)

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/kernelbase.py:412, in dispatch_shell()
    411     if inspect.isawaitable(result):
--> 412         await result
    413 except Exception:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/kernelbase.py:740, in execute_request()
    739 if inspect.isawaitable(reply_content):
--> 740     reply_content = await reply_content
    742 # Flush output before sending the reply.

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/ipkernel.py:422, in do_execute()
    421 if with_cell_id:
--> 422     res = shell.run_cell(
    423         code,
    424         store_history=store_history,
    425         silent=silent,
    426         cell_id=cell_id,
    427     )
    428 else:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/ipykernel/zmqshell.py:540, in run_cell()
    539 self._last_traceback = None
--> 540 return super().run_cell(*args, **kwargs)

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/interactiveshell.py:3009, in run_cell()
   3008 try:
-> 3009     result = self._run_cell(
   3010         raw_cell, store_history, silent, shell_futures, cell_id
   3011     )
   3012 finally:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/interactiveshell.py:3064, in _run_cell()
   3063 try:
-> 3064     result = runner(coro)
   3065 except BaseException as e:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/async_helpers.py:129, in _pseudo_sync_runner()
    128 try:
--> 129     coro.send(None)
    130 except StopIteration as exc:

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/interactiveshell.py:3269, in run_cell_async()
   3266 interactivity = "none" if silent else self.ast_node_interactivity
-> 3269 has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
   3270        interactivity=interactivity, compiler=compiler, result=result)
   3272 self.last_execution_succeeded = not has_raised

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/interactiveshell.py:3448, in run_ast_nodes()
   3447     asy = compare(code)
-> 3448 if await self.run_code(code, result, async_=asy):
   3449     return True

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/interactiveshell.py:3508, in run_code()
   3507     else:
-> 3508         exec(code_obj, self.user_global_ns, self.user_ns)
   3509 finally:
   3510     # Reset our crash handler in place

Cell In[10], line 1
----> 1 get_ipython().run_line_magic('time', 'g_r_c_solve_2(10., 0.9375, 163)')

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/interactiveshell.py:2417, in run_line_magic()
   2416 with self.builtin_trap:
-> 2417     result = fn(*args, **kwargs)
   2419 # The code below prevents the output from being displayed
   2420 # when using magics with decodator @output_can_be_silenced
   2421 # when the last Python token in the expression is a ';'.

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/IPython/core/magics/execution.py:1317, in time()
   1316 try:
-> 1317     out = eval(code, glob, local_ns)
   1318 except:

File <timed eval>:1

Cell In[2], line 24, in r_c_solve()
     22 r_1 = r_p + 0.0001 * (r_p - r_m)
     23 return Bisection(optimality_fun=_r_c_solve, lower=r_0, upper=r_1,
---> 24                  check_bracket=False).run(phi=phi, spin=spin, theta_o=theta_o).params

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/jaxopt/_src/bisection.py:158, in run()
    153 def run(self,
    154         init_params: Optional[Any] = None,
    155         *args,
    156         **kwargs) -> base.OptStep:
    157   # We override run in order to set init_params=None by default.
--> 158   return super().run(init_params, *args, **kwargs)

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/jaxopt/_src/base.py:354, in run()
    352   run = decorator(run)
--> 354 return run(init_params, *args, **kwargs)

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/jaxopt/_src/implicit_diff.py:251, in wrapped_solver_fun()
    250 keys, vals = list(kwargs.keys()), list(kwargs.values())
--> 251 return make_custom_vjp_solver_fun(solver_fun, keys)(*args, *vals)

JaxStackTraceBeforeTransformation: jax.errors.UnexpectedTracerError: Encountered an unexpected tracer. A function transformed by JAX had a side effect, allowing for a reference to an intermediate value with type float32[] wrapped in a DynamicJaxprTracer to escape the scope of the transformation.
JAX transformations require that functions explicitly return their outputs, and disallow saving intermediate values to global state.
The function being traced when the value leaked was r_c_solve at /var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/3431507493.py:15 traced for jit.
------------------------------
The leaked intermediate value was created on line /var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/3431507493.py:21:10 (r_c_solve).
------------------------------
When the value was created, the final 5 stack frames (most recent last) excluding JAX-internal frames were:
------------------------------
<frozen runpy>:198:11 (_run_module_as_main)
<frozen runpy>:88:4 (_run_code)
/var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/1728866946.py:1 (<module>)
<timed eval>:1 (<module>)
/var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/3431507493.py:21:10 (r_c_solve)
------------------------------

To catch the leak earlier, try setting the environment variable JAX_CHECK_TRACER_LEAKS or using the `jax.checking_leaks` context manager.
See https://jax.readthedocs.io/en/latest/errors.html#jax.errors.UnexpectedTracerError

The preceding stack trace is the source of the JAX operation that, once transformed by JAX, triggered the following exception.

--------------------

The above exception was the direct cause of the following exception:

UnexpectedTracerError                     Traceback (most recent call last)
File <timed eval>:1

    [... skipping hidden 33 frame]

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/jaxopt/_src/implicit_diff.py:210, in _custom_root.<locals>.make_custom_vjp_solver_fun.<locals>.solver_fun_fwd(*flat_args)
    209 def solver_fun_fwd(*flat_args):
--> 210   res = solver_fun_flat(*flat_args)
    211   return res, (res, flat_args)

    [... skipping hidden 4 frame]

File ~/miniconda3/envs/hejia@mac-2/lib/python3.11/site-packages/jax/_src/interpreters/partial_eval.py:1835, in DynamicJaxprTrace.getvar(self, tracer)
   1833 var = self.frame.tracer_to_var.get(id(tracer))
   1834 if var is None:
-> 1835   raise core.escaped_tracer_error(tracer)
   1836 return var

UnexpectedTracerError: Encountered an unexpected tracer. A function transformed by JAX had a side effect, allowing for a reference to an intermediate value with type float32[] wrapped in a DynamicJaxprTracer to escape the scope of the transformation.
JAX transformations require that functions explicitly return their outputs, and disallow saving intermediate values to global state.
The function being traced when the value leaked was r_c_solve at /var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/3431507493.py:15 traced for jit.
------------------------------
The leaked intermediate value was created on line /var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/3431507493.py:21:10 (r_c_solve).
------------------------------
When the value was created, the final 5 stack frames (most recent last) excluding JAX-internal frames were:
------------------------------
<frozen runpy>:198:11 (_run_module_as_main)
<frozen runpy>:88:4 (_run_code)
/var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/1728866946.py:1 (<module>)
<timed eval>:1 (<module>)
/var/folders/s_/0jqkjq792dj7g4ddvdh4j5_r0000gn/T/ipykernel_89057/3431507493.py:21:10 (r_c_solve)
------------------------------

To catch the leak earlier, try setting the environment variable JAX_CHECK_TRACER_LEAKS or using the `jax.checking_leaks` context manager.
See https://jax.readthedocs.io/en/latest/errors.html#jax.errors.UnexpectedTracerError

It turns out that I cannot take gradients of already jitted functions. Is it possible to fix this issue?
FYI, I'm using jax=0.4.13, jaxlib=0.4.13, jaxopt=0.7 and python=3.11.4.

Hello @hjia,
Thanks for reporting this. The issue is that lower and upper need to be static arguments for making the implicit differentiation compatible with jit (in the solve_2 and solve_3 cases). So a possible workaround is presented below. We could also change the signature of the Bisection method to let lower and upper be taken as parameters. But before changing this, could you give us a bit more context on what you want to do? A priori grad already traces the function such that you would not need to jit it before taking the gradient.
import numpy as np
import jax.numpy as jnp
import numpy as np
import jax
from jaxopt import Bisection
from functools import partial

@jax.jit
def _xy_c(r, phi, spin, theta_o):
    lam = spin + r / spin * (r - (2 * (r**2 - 2 * r + spin**2)) / (r - 1))
    eta = r**3 / spin**2 *((4 * (r**2 - 2 * r + spin**2)) / (r - 1)**2 - r)
    alpha = -lam / jnp.sin(theta_o)
    beta = eta + spin**2 * jnp.cos(theta_o)**2 - lam**2 * jnp.tan(theta_o)**(-2)
    beta = jnp.sign(beta) * jnp.sqrt(jnp.abs(beta))
    return alpha, beta

@jax.jit
def _r_c_solve(r, phi, spin, theta_o):
    alpha, beta = _xy_c(r, phi, spin, theta_o)
    return (jnp.arctan2(beta, alpha) * 180. / jnp.pi + 90) % 360 - 90 - phi * 180. / jnp.pi

def r_c_solve(phi, spin, theta_o):
    phi = phi * jnp.pi / 180.
    theta_o = theta_o * jnp.pi / 180.
    theta_o = jnp.clip(theta_o, 1e-5, jnp.pi - 1e-5)
    r_m = 2 * (1 + np.cos(2 / 3 * np.arccos(-spin)))
    r_p = 2 * (1 + np.cos(2 / 3 * np.arccos(spin)))
    r_0 = r_m - 0.0001 * (r_p - r_m)
    r_1 = r_p + 0.0001 * (r_p - r_m)
    return Bisection(optimality_fun=_r_c_solve, lower=r_0, upper=r_1,
                     check_bracket=False).run(phi=phi, spin=spin, theta_o=theta_o).params

g_r_c_solve_0 = jax.grad(r_c_solve)
g_r_c_solve_0(10., spin=0.9375, theta_o=163)

g_r_c_solve_1 = jax.jit(jax.grad(r_c_solve), static_argnames='spin')
g_r_c_solve_1(10., spin=0.9375, theta_o=163)

g_r_c_solve_2 = jax.grad(jax.jit(r_c_solve, static_argnames='spin'))
g_r_c_solve_2(10., spin=0.9375, theta_o=163)

g_r_c_solve_3 = jax.jit(jax.grad(jax.jit(r_c_solve, static_argnames='spin')))
g_r_c_solve_2(10., spin=0.9375, theta_o=163)

We could want to make the Bisection method differentiable with respect to its lower and upper values. The following code fails for example. But so it would be nice to have a use case for us to rethink the implementation of Bisection.
import numpy as np
import jax.numpy as jnp
import numpy as np
import jax
from jaxopt import Bisection
from functools import partial

@jax.jit
def _xy_c(r, phi, spin, theta_o):
    lam = spin + r / spin * (r - (2 * (r**2 - 2 * r + spin**2)) / (r - 1))
    eta = r**3 / spin**2 *((4 * (r**2 - 2 * r + spin**2)) / (r - 1)**2 - r)
    alpha = -lam / jnp.sin(theta_o)
    beta = eta + spin**2 * jnp.cos(theta_o)**2 - lam**2 * jnp.tan(theta_o)**(-2)
    beta = jnp.sign(beta) * jnp.sqrt(jnp.abs(beta))
    return alpha, beta

@jax.jit
def _r_c_solve(r, phi, spin, theta_o):
    alpha, beta = _xy_c(r, phi, spin, theta_o)
    return (jnp.arctan2(beta, alpha) * 180. / jnp.pi + 90) % 360 - 90 - phi * 180. / jnp.pi

def r_c_solve(spin, phi, theta_o):
    phi = phi * jnp.pi / 180.
    theta_o = theta_o * jnp.pi / 180.
    theta_o = jnp.clip(theta_o, 1e-5, jnp.pi - 1e-5)
    r_m = 2 * (1 + jnp.cos(2 / 3 * jnp.arccos(-spin)))
    r_p = 2 * (1 + jnp.cos(2 / 3 * jnp.arccos(spin)))
    r_0 = r_m - 0.0001 * (r_p - r_m)
    r_1 = r_p + 0.0001 * (r_p - r_m)
    return Bisection(optimality_fun=_r_c_solve, lower=r_0, upper=r_1,
                     check_bracket=False).run(phi=phi, spin=spin, theta_o=theta_o).params

g_r_c_solve_0 = jax.grad(r_c_solve)
g_r_c_solve_0(0.9375, 10., 63)

We could also change the signature of the Bisection method to let lower and upper be taken as parameters

I don't think we can. lower and upper are arguments of the algorithm, not of the objective, which means they're not part of the optimality conditions. So, we can't use implicit differentiation. Unrolling will likely not work either due to discontinuous operations.
Not sure if it's applicable here but an alternative would be to use stop_gradient (see example here).

If you agree with me, we can relabel this issue as documentation. Adding a short paragraph on this would be helpful.

Yes, this would be good to know. Thanks!

Sorry for the delayed reply. In the example above making spin static in jit is not a good idea for me, since I do need this to work at many different spin's.
The issue here does not really prevent me from computing what I want, but it does make my code ugly. I need to have a jitted version and a unjitted version for each function, rather than just jit everything at definition.
I'm not really an expert on jax.jit, but technically is it possible to get some pointer towards foo from jax.jit(foo)? If yes, then I think there should be a way to make jax.jit(jax.grad(jax.jit(r_c_solve))) work similar to jax.jit(jax.grad(r_c_solve)), i.e. just let it use the underlying unjitted function instead of the jitted one.

@mblondel not sure if I understand your comment regarding stop_gradient. Nothing changes if I do lower=jax.lax.stop_gradient(r_0), upper=jax.lax.stop_gradient(r_1) in my snippet.


Add connect content images

Sorta related: It would be nice to add R 3.3.x and R 4.1.x into the mix.