Updating the helm chart version forces plaintext DB password

Hello there!
So it seems that I've run into a conundrum.
When first installing the helm chart, i.e by simply:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add pact-broker https://pact-foundation.github.io/pact-broker-chart/

helm install pact-broker pact-broker/pact-broker

The postgresql instance is created, a secret is generated and the deployment points to that secret. Perfect!
However, at a later stage, when I try to do a helm diff upgrade pact-broker pact-broker/pact-broker --version 1.1.0 (for example), one gets an error at first:
PASSWORDS ERROR: You must provide your current passwords when upgrading the release.
                 Note that even after reinstallation, old credentials may be needed as they may be kept in persistent volume claims.
                 Further information can be obtained at https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues/#credential-errors-while-upgrading-chart-releases

Makes sense: the password has to be provided.
However, if I do provide the password (either via values file or via --set postgresql.auth.password=$(kubectl get secret --namespace "observability" pact-broker-postgresql -o jsonpath="{.data.user-password}" | base64 -d)), the diff will be something like:
-               valueFrom:
-                 secretKeyRef:
-                   name: pact-broker-postgresql
-                   key: password
+               value: "PLAIN-TEXT-PASSWORD"

meaning that my deployment will be overriden and it will stop looking for the secret and go directly for a plaintext password, which is clearly unintended.
To my understanding this is related to how this part is being run.
That is to say, if one needs to provide the password and then the template will use that value if provided, it seems impossible to maintain the variable set to a secret value when upgrading versions.
Seems like this is a bug?

Well, slight update: if one uses the global.postgresql.auth.password instead it seems like the overriding does not happen and the upgrade will happily go through.
I'm not entirely sure this has other side effects, but did not seem to be the case for the simple case at the very least.
I'll leave the issue open so that clarity can be brought to light. Maybe this was intentional? I'm not fully sure. I'd be happy to help w/ reproducing the issue or even a fix if this is considered to be a bug.

Hi @conilas, the postgres functionality can be quite tricky as there are bits of logic we do in the chart (which you've linked) but there's also some quirks to the way the underlying Postgres sub-chart that we're using. Have you had a look into https://github.com/bitnami/charts/issues/16417 ? As when you upgrade, it tries to generate the password, instead try to get the password and create your own secret with it in, and reference it in the Chart?


Autocompletion should not autocomplete parentheses on import clause

I have the settings
"typescript.useCodeSnippetsOnMethodSuggest": true,

It current autocompletes on import clauses too. Which is not desired.
import { setRoutes(app)} from './Routes/Index';

I also find autocompletion of call expression to be strange when handling of overloads. It seems like it choose the wrong ones for me all the times. Maybe overloads should only be autocompleted with the least arguments?

It would be also awesome if it could autocomplete the arguments. If it finds assignable variables in scope and there exists only one assignable variable it should autocomplete it as an argument in a call expression.
function f(a: string) {
}

let b: string;
f(b) // autocompleted with b as an argument.

Dups https://github.com/Microsoft/vscode/issues/2092


Uncaught (in promise) TypeError: Converting circular structure to JSON

I'm using stripe payment intent api for checkout in Gatsby/React app and for that I'm using stripe CardElement and whenever I call the following code it give me circular json error on JSON.stringify function.
const result = await stripe.confirmCardPayment(data.client_secret,{
            card: elements.getElement(CardElement),
            billing_details: {
                name: 'Zeeshan'
            }
        })

So apparently when we pass  elements.getElement(CardElement) in card property this element has some circular reference and in postMessage of stripe it gives this error
Error:
Uncaught (in promise) TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'HTMLDivElement'
    |     property '__reactInternalInstance$0h4ka4mbvxb' -> object with constructor 'FiberNode'
    --- property 'stateNode' closes the circle
    at JSON.stringify (<anonymous>)
    at Me (v3:1)
    at at.value (v3:1)
    at at.value (v3:1)
    at v3:1
    at new Promise (<anonymous>)
    at er._sendCAReq (v3:1)
    at Object.confirmPaymentIntent (v3:1)
    at v3:1
    at v3:1
    at mc.<anonymous> (v3:1)
    at mc.confirmCardPayment (v3:1)
    at _callee$ (CardSection.js:25)
    at tryCatch (runtime.js:63)
    at Generator.invoke [as _invoke] (runtime.js:293)
    at Generator.next (runtime.js:118)
    at asyncGeneratorStep (asyncToGenerator.js:3)
    at _next (asyncToGenerator.js:25)

I have tried to find solution but no luck there on link on stack overflow which  4 years old, that guy was facing same issue in Angular and says its because of Stripe tries to stringy object which has circular reference.
https://stackoverflow.com/questions/36258252/stripe-json-circular-reference
In my case I'm using React but I'm unable to find right solution on how to avoid this circular reference as it only
Another reference for error which is quite recent: https://github.com/preactjs/preact/issues/2252

It looks like you're missing the payment_method property under which the object in the second argument should be nested. See the docs for confirmCardPayment.
const result = await stripe.confirmCardPayment(data.client_secret, {
            payment_method: {
                card: elements.getElement(CardElement),
                billing_details: {
                    name: 'Zeeshan'
                }
            }
        })

hi, I am facing the same issue, I receive this message error when I click on buy now:
Uncaught (in promise) TypeError: Converting circular structure to JSON
--> starting at object with constructor 'HTMLDivElement'
|     property '__reactInternalInstance$wkbr3nq1tf' -> object with constructor 'FiberNode'
--- property 'stateNode' closes the circle
at JSON.stringify ()
at Me (v3:1)
at at.value (v3:1)
at at.value (v3:1)
at v3:1
at new Promise ()
at er._sendCAReq (v3:1)
at Object.confirmPaymentIntent (v3:1)
at v3:1
at v3:1
at hc. (v3:1)
at hc.confirmCardPayment (v3:1)
at handleSubmit (Payment.js:38)
at HTMLUnknownElement.callCallback (react-dom.development.js:188)
at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
at invokeGuardedCallback (react-dom.development.js:292)
at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:306)
at executeDispatch (react-dom.development.js:389)
at executeDispatchesInOrder (react-dom.development.js:414)
at executeDispatchesAndRelease (react-dom.development.js:3278)
at executeDispatchesAndReleaseTopLevel (react-dom.development.js:3287)
at forEachAccumulated (react-dom.development.js:3259)
at runEventsInBatch (react-dom.development.js:3304)
at runExtractedPluginEventsInBatch (react-dom.development.js:3514)
at handleTopLevel (react-dom.development.js:3558)
at batchedEventUpdates$1 (react-dom.development.js:21871)
at batchedEventUpdates (react-dom.development.js:795)
at dispatchEventForLegacyPluginEventSystem (react-dom.development.js:3568)
at attemptToDispatchEvent (react-dom.development.js:4267)
at dispatchEvent (react-dom.development.js:4189)
at unstable_runWithPriority (scheduler.development.js:653)
at runWithPriority$1 (react-dom.development.js:11039)
at discreteUpdates$1 (react-dom.development.js:21887)
at discreteUpdates (react-dom.development.js:806)
at dispatchDiscreteEvent (react-dom.development.js:4168)
Me @ v3:1
value @ v3:1
value @ v3:1
(anonymous) @ v3:1
_sendCAReq @ v3:1
confirmPaymentIntent @ v3:1
(anonymous) @ v3:1
(anonymous) @ v3:1
(anonymous) @ v3:1
(anonymous) @ v3:1
handleSubmit @ Payment.js:38
callCallback @ react-dom.development.js:188
invokeGuardedCallbackDev @ react-dom.development.js:237
invokeGuardedCallback @ react-dom.development.js:292
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:306
executeDispatch @ react-dom.development.js:389
executeDispatchesInOrder @ react-dom.development.js:414
executeDispatchesAndRelease @ react-dom.development.js:3278
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:3287
forEachAccumulated @ react-dom.development.js:3259
runEventsInBatch @ react-dom.development.js:3304
runExtractedPluginEventsInBatch @ react-dom.development.js:3514
handleTopLevel @ react-dom.development.js:3558
batchedEventUpdates$1 @ react-dom.development.js:21871
batchedEventUpdates @ react-dom.development.js:795
dispatchEventForLegacyPluginEventSystem @ react-dom.development.js:3568
attemptToDispatchEvent @ react-dom.development.js:4267
dispatchEvent @ react-dom.development.js:4189
unstable_runWithPriority @ scheduler.development.js:653
runWithPriority$1 @ react-dom.development.js:11039
discreteUpdates$1 @ react-dom.development.js:21887
discreteUpdates @ react-dom.development.js:806
dispatchDiscreteEvent @ react-dom.development.js:4168
async function (async)
handleSubmit @ Payment.js:38
callCallback @ react-dom.development.js:188
invokeGuardedCallbackDev @ react-dom.development.js:237
invokeGuardedCallback @ react-dom.development.js:292
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:306
executeDispatch @ react-dom.development.js:389
executeDispatchesInOrder @ react-dom.development.js:414
executeDispatchesAndRelease @ react-dom.development.js:3278
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:3287
forEachAccumulated @ react-dom.development.js:3259
runEventsInBatch @ react-dom.development.js:3304
runExtractedPluginEventsInBatch @ react-dom.development.js:3514
handleTopLevel @ react-dom.development.js:3558
batchedEventUpdates$1 @ react-dom.development.js:21871
batchedEventUpdates @ react-dom.development.js:795
dispatchEventForLegacyPluginEventSystem @ react-dom.development.js:3568
attemptToDispatchEvent @ react-dom.development.js:4267
...
Here is a part of code from payment.js where I think I'm getting the error:
const handleSubmit = async (event) =>{
//do all the stripe stuff...
event.preventDefault();
setProcessing(true);
const payload = await stripe.confirmCardPayment(clientSecret, {
payment_methode: {
card: elements.getElement(CardElement),
}
}).then(({ paymentIntent}) => {
// paymentIntent = payment confirmation
setSucceeded(true);
setError(null)
setProcessing(false)
         history.replace("/orders")
         })
}

I am trying to build my first project in React (Amazon clone), and I don't know how to fix this error. so, please, help!?

@wafaaDz I had a similar issue. It looks like there's a typo in your object:
const payload = await stripe.confirmCardPayment(clientSecret, {
  payment_methode: {
    card: elements.getElement(CardElement),
  }
})

drop the e at the end of payment_method :)

oh wow, I can't believe it, thank you so much for your attention, I really though it was something more complicated.

i am getting the same error: this is the code: const handleSubmit = async (ev: React.FormEvent) => {
ev.preventDefault();
setProcessing(true);
// Step 3: Use clientSecret from PaymentIntent and the CardElement
// to confirm payment with stripe.confirmCardPayment()
try {
const payload = await stripe!.confirmCardPayment(
clientSecret!,
{
payment_method: {
card: elements!.getElement(CardElement)!,
billing_details: {
name: ev.currentTarget.name,
},
},
}
);
console.dir(payload)
console.log("[PaymentIntent]", payload.paymentIntent);
if (payload.error) {
setError(Payment failed: ${payload.error.message});
setProcessing(false);
console.log("[error]", payload.error);
} else {
setError(null);
setSucceeded(true);
setProcessing(false);
setMetadata(payload.paymentIntent);
console.log("[PaymentIntent]", payload.paymentIntent);
}
} catch (error) {
console.log(error);
}
};
though I have noticed that on dash board payment_intent was created, it also shows pending payments created

I've experienced Uncaught (in promise) TypeError: Converting circular structure to JSON and the problem was with the payload having excessive field:
        const {error, setupIntent} = await stripe.confirmSepaDebitSetup(
            siClientSecret,
            {
                payment_method: {
                    sepa_debit: iban,
                    billing_details: {
                        name: customerName,
                        email: customerEmail,
                        address: getAddress()    <---- this is the issue
                    },
                },
            },
        );

You should check the value/structure returned from that call to ensure it's a string only. I'd suggest getting & validating it before the confirm call, then passing in a static value.

You should check the value/structure returned from that call to ensure it's a string only. I'd suggest getting & validating it before the confirm call, then passing in a static value.

True. Just double checked and in my case that was a jQuery element. Passing the string (even '') does work. Thanks for the clarification!


setTime() does not set system time

Describe the bug
According to the docs, setTime() will "// set the system time to UTC". However time() still reports uptime seconds.
Steps to Reproduce
In DS323x_Generic/examples/Time/ESP/RTC_ESP/RTC_ESP.ino , call time() function.
Expected behavior
time() should contain the same value as rtc.now()
Actual behavior
time() is unaffected.
Information
Please ensure to specify the following:

Arduino IDE version 1.8.19
ESP8266 Core Version ESP8266 core v3.0.0
Contextual information - set system time from RTC
Call time() function from RTC_ESP example

The setTime() function is one of the TimeLib library and it certainly can't know about every board to set the system time. You can post an issue there to ask for help.
Also check the similar issue in ESP8266 Forum TIMELIB : HOW TO SET TIME(NULLPTR) ?
You can also adapt this NTP-TZ-DST example to use.
It's your responsibility to set the system time yourself, if you'd like to use, when you already have the accurate time from RTC.
As this issue has nothing to do with this library, I'm closing it now.
Good Luck,

Hi @rnsi
I already write a new example RTC_ESP_Complex to serve your purpose.
The terminal output when running on ESP8266_NODEMCU_ESP12E

Start RTC_ESP_Complex on ESP8266_NODEMCU_ESP12E
Timezone_Generic v1.9.1
DS323x_Generic v1.2.2
Connecting to HueNet1
...................
You're connected to the network, IP = <IP_ADDRESS>
Packet received
Seconds since Jan 1 1900 =<PHONE_NUMBER>
Unix time =<PHONE_NUMBER>
The UTC time is 5:08:18
============================
05:08:18 Wed 23 Feb 2022 UTC
00:08:18 Wed 23 Feb 2022 EST
System Time UTC: Wed Feb 23 05:08:18 2022

============================
05:08:27 Wed 23 Feb 2022 UTC
00:08:27 Wed 23 Feb 2022 EST
System Time UTC: Wed Feb 23 05:08:28 2022

============================
05:08:37 Wed 23 Feb 2022 UTC
00:08:37 Wed 23 Feb 2022 EST
System Time UTC: Wed Feb 23 05:08:38 2022

============================
05:08:47 Wed 23 Feb 2022 UTC
00:08:47 Wed 23 Feb 2022 EST
System Time UTC: Wed Feb 23 05:08:48 2022

============================
05:08:57 Wed 23 Feb 2022 UTC
00:08:57 Wed 23 Feb 2022 EST
System Time UTC: Wed Feb 23 05:08:58 2022

Cheers,

That's perfect!
Thank you very much for your quick response and solution. It is very much appreciated.

Hi @rnsi
The new DS323x_Generic releases v1.2.3 has just been published. Your contribution is noted in Contributions and Thanks
Best Regards,

Releases v1.2.3

Optimize code by using passing by reference instead of by value
Add ESP_Complex examples to update system time from RTC time. Check setTime() does not set system time #1
Update Packages' Patches


NavTree: Switching between WorkspaceContents

Can now create multiple WorkspaceContents and switch between them in navtree.

This change is

Fix some copy pasta, then

Review status: 0 of 6 files reviewed at latest revision, 1 unresolved discussion.

src/controller/app_controller.js, line 393 at r1 (raw file):

      isEmpty = name && name.trim() ? false : true;
      if (isDuplicate) {
        errorText = 'This toolbox already exists.\n';

"Toolbox"?  Copy pasta?

Comments from Reviewable

Review status: 0 of 6 files reviewed at latest revision, 1 unresolved discussion.

src/controller/app_controller.js, line 393 at r1 (raw file):
Previously, AnmAtAnm (Andrew n marshall) wrote…
"Toolbox"?  Copy pasta?

Done. :spaghetti:

Comments from Reviewable

Review status: 0 of 6 files reviewed at latest revision, 3 unresolved discussions.

src/controller/app_controller.js, line 393 at r1 (raw file):
Previously, chynu (celine choo) wrote…
Done. :spaghetti:

Mm, pasta.

src/controller/app_controller.js, line 384 at r2 (raw file):

   */
  createWorkspaceContents() {
    // TODO: prompt for name

Remove todo

src/view/workspace_editor_view.js, line 153 at r2 (raw file):

    Blockly.svgResize(this.previewWorkspace);

    // TODO: Make editor show WorkspaceContents when

Remove todo

Comments from Reviewable

Review status: 0 of 6 files reviewed at latest revision, 3 unresolved discussions.

src/controller/app_controller.js, line 384 at r2 (raw file):
Previously, rachel-fenichel (Rachel Fenichel) wrote…
Remove todo

Done.

src/view/workspace_editor_view.js, line 153 at r2 (raw file):
Previously, rachel-fenichel (Rachel Fenichel) wrote…
Remove todo

Done.

Comments from Reviewable

Review status: 0 of 6 files reviewed at latest revision, 3 unresolved discussions.

Comments from Reviewable


Look into the 404 with Next prefetch of json files

We see a lot of 404 of json files when Next.js are prefetching content due to optimisation. This doesn't look good and it pollutes the

I'm not able to reproduce this issue today, at least not to that degree as we saw on Thursday. However, there are a lot of 404s in the logs, but there's different types of issues causing them.
One of them seems to be an issue with Next.js and prefetching. With next/link, Next.js will always prefetch on hover even with prefetch=false. This seems to be causing issues with our localisation switch. Example:
On a Norwegian page, say /no/om-oss, hover the English equivalent. Next.js will then prefetch the content /en/about-us.json but also, for unknown reasons, also prefetch /no/about-us.json. The latter will result in 404 since we use translated URLs.

Decision from today's meeting:

Create a new and isolated issue for the Next.js prefetch with the language switch
When we have Azure Insight up and running we should look more into the different types of 404s and see if we can remove some of them
We are not able to reproduce the original screenshot from the issue. Might have been something with the release and DNS propagation


fix: show scrollbar if applicable

Details

Previously, not all settings pages showed a scrollbar if the content exceeded the window height.
Fixed Issues

$ https://github.com/Expensify/App/issues/26098
PROPOSAL: https://github.com/Expensify/App/issues/26098#issuecomment-1695963668
Tests

Go to Settings
Reduce the window height if necessary to ensure the page overflows (web/desktop)
Verify a scrollbar is visible when scrolling
Go to Workspaces
Reduce the window height if necessary to ensure the page overflows (web/desktop)
Verify a scrollbar is visible when scrolling
Press on the back button
Go to Profile > Status
Reduce the window height if necessary to ensure the page overflows (web/desktop)
Verify a scrollbar is visible when scrolling
Press on the back button twice to go back to Settings
Go to Preferences
Reduce the window height if necessary to ensure the page overflows (web/desktop)
Verify a scrollbar is visible when scrolling
Press on the back button
Go to Security
Reduce the window height if necessary to ensure the page overflows (web/desktop)
Verify a scrollbar is visible when scrolling

[X] Verify that no errors appear in the JS console

Offline tests

Same as specified under Tests.
QA Steps

Same as specified under Tests.

[X] Verify that no errors appear in the JS console

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/137707942/c0ec9958-751f-4e8b-8682-eb954979e104

Mobile Web - Chrome

https://github.com/Expensify/App/assets/137707942/16f29b00-7958-444c-9569-75c1c501fb93

Mobile Web - Safari

https://github.com/Expensify/App/assets/137707942/ac0e89de-977d-4f10-906c-e5c8b318439b

Desktop

https://github.com/Expensify/App/assets/137707942/62a60b63-96c5-4102-9578-03f2433d3785

iOS

https://github.com/Expensify/App/assets/137707942/8e3903cd-834c-4822-af36-02fa24afe6ef

Android

https://github.com/Expensify/App/assets/137707942/b79d78fb-78f9-4b42-8d07-103f58dfaedc

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.78-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.78-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.79-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Update Java Exporter Pages to use autoconfigure

Via https://github.com/open-telemetry/opentelemetry.io/pull/3558#pullrequestreview-1751340802
Java pages about Exporters need to be updated to make use of autoconfigure

Hello @svrnm I would like to work on this issue can you please assign me and guide how changes to be done?

@MeenuyD we do not assign issues (see our guidelines on this topic), but it is noted that you want to take a look into it and provide a PR.
What needs to be changed:

Take a look at how manual instrumentation is making use of auto configure: https://opentelemetry.io/docs/instrumentation/java/manual/#automatic-configuration, the exporter docs should built on top of that
The structure of the document should remain, since we aim for consistency across languages
You can provide updates incrementally, e.g. start with OTLP (or any other of the listed exporters) and provide a PR, after merging, the same should be replicatable for other exporters as well

@open-telemetry/java-approvers any additional comments?

Hi @MeenuyD 👋 , Have you started working on this, Do you need any help or anything let me know.

Hi @svrnm , I have started working on this. Will let you know once it's ready for review.

Thank you!

@nerudadhich Any update?

Hi @theletterf . I have amended the details, But wondering if we should add gradle config as well as RollController instead of referring to dice app example links ?
What do you think ?

But wondering if we should add gradle config as well as RollController instead of referring to dice app example links ?

that's probably a question for the ongoing PR and @open-telemetry/java-approvers

But wondering if we should add gradle config as well as RollController instead of referring to dice app example links ?

hi @nerudadhich!
I see gradle config here already: https://opentelemetry.io/docs/languages/java/exporters/#otlp-dependencies
or are you referring to another place?

RollController instead of referring to dice app example links

i'm not sure what you mean here, can you explain a bit more? thanks

Hi @trask Could you please check the PR here and the Preview here
I have added all the details (Working sample app code) explicitly instead of referring to example link.
I hope this make sense to you ?

we refactored the java docs, so this issue might longer be applicable


Support multiple classes for fenced code blocks

Right now, fenced code blocks can be assigned a class (which is typically used to define the language). But it is impossible to assign more than one class.
You may want to do this, for example, to distinguish input code blocks from output code blocks in a vignette. Right now, if you try to define multiple classes in a markdown fence block, using {.class1 .class2}, the HTML is not parsed correctly as a code block.
For a use case, see: https://github.com/mkdocs/mkdocs/issues/1720
You may want to say: {.python .inputblock} or {.bash .outputblock} to add a second layer of distinguishing code blocks.

I think perhaps the best approach here is to use .class and #id for attributes on the generated HTML elements (with .class .otherclass for more than one class). Then key=value pairs should be reserved for codehilight options only. I don't think it matters what order the various pieces are listed in, but in the docs we probably want to be consistent.
But how do we determine which "class" designates the language? The first .class in the list? Whichever one is prepended with language- (for example .language-python). I think probably we can support both. Perhaps something like this: If a single string (with or without a dot), use that, else if a .language-* class is defined, use that, else if the first item is a dot class, use that, else no language is defined.


Broken "submit a PR" link

The "submit a PR" link at https://github.com/r-spacex/SpaceX-API/blob/master/docs/apps.md links to a nonexistent CONTRIBUTING.md file, resulting in 404 page.

Link is fixed 👍


navigation in sidebar, and image state memory

I would like to be able to use the arrow keys to navigate in the sidebar with the files...
I want to be able to hold the down arrow button and scroll through files selected, selecting the highlighted file.
in the case of images, if there was a sequence of them, I want to by scrolling through the files, as a poor man's preview of a rendering, for programmatically rendering sequences of images, having this featuer in vscode instead of another application is just one more step into pure holistic integration.
In addition to scrolling though files:
another great addition would be the basic feature of image zoom memorization, where zoom value is retained across images, on a toggle/button/menu checkbox, this is useful for debugging tiny details on large programmatically generated images.

One issue per issue please
@isidorn Assigning you since the first part of this looks explorer related

Aye, apologies for the two in one. They just happened to be related in the current project I am working on :)

aye, I was unaware of the space key's function - could it be a feature that the space key, when held down, automatically opens the file to which the arrow navigates?


back background when transparency is enabled in colorscheme (tokyonight in my case)

My colorscheme configuration along with the screenshot of the issue. If I set the configuration option transparent to false it works fine.
How to resolve this issue such that the background of fidget adapts to when neovim background is set to transparent.
return {
  -- Colorscheme
  {
    'folke/tokyonight.nvim',
    lazy = false,
    priority = 1000,
    opts = {
      transparent = true,
    },
    config = function(_, opts)
      local tokyonight = require('tokyonight')
      tokyonight.setup(opts)
      tokyonight.load()
    end,
  },
}

Is your window.blend set to 0 in the fidget.nvim config? @vishytk

Is your window.blend set to 0 in the fidget.nvim config? @vishytk

Setting window = { blend = 0 } solved the interaction with transparent backgrounds, thanks!


Improve docs

What this PR does / why we need it:
This pull request enhances the README.md file to serve as a more comprehensive starting point for individuals unfamiliar with Garden Linux, including non-maintainers and developers. The adjustments aim to streamline the content and provide clear guidance on initiating the build process and accessing releases.
Which issue(s) this PR fixes:

badge showing latest LTS version of Garden Linux
simple quick start sections: build, test, download
remove unecessary license badge. we have LICENSE.md file which is commin practise and Github also displays it in UI
remove toc. README is simple enough.
add reference to bare container
add reference to base container
add reference to nvidia installer
remove details about integration tests. Details are explained in developer docs. User readind README only needs to know how to test locally and that we test automatically

Special notes for your reviewer:
In case you want to read the new README without the diffs: https://github.com/gardenlinux/gardenlinux/blob/3ea7a81fa007f14660f845b3e553d3616002b73f/README.md

Thank you @Vincinator
I think this is a very good change. I've made some small edits. I'll approve the PR but not (yet) merge it so you or other maintainers can still review both of our changes. Anyone else reviewing this will be okay to merge from my perspective.


Add ability to download certificate in API used during self signed setup through API to be able to be used for instructions on how to use kubectl with SSL

Rancher Version:v1.3.0-rc2 using self signed certs.
rancher-server is started with the following command - sudo docker run -d --restart=unless-stopped --name=rancher-server -v :/var/lib/rancher/etc/ssl/ca.crt rancher/server:v1.3.0-rc2
It is hosted behind nginx server that acts as a reverse proxy.
On the host , certs have to be copied to /var/lib/rancher/etc/ssl/ca.crt before running the host registration url which will already include -v /var/lib/rancher:/var/lib/rancher
Able to add hosts successfully to "k8s" environment.
All infrastructure stacks comes up successfully.
Able to create services using Kubectl from UI.
Not able to connect to tis rancher-server setup using the generated config.
we get the following error:
Unable to connect to the server: x509: certificate signed by unknown authority

Setting the configuration in kubeconfig is not fixing the issue. I need to read up and understand if any kubernetes api server changes are required.

The steps to get this working are  -

Download the ca.crt, ca-cert.crt, and ca-key.pem to the local machine that is running kubectl
Set the ca-cert and ca-key to your current config. For eg, If the config name is "Default", then run

kubectl config set-credentials Default --client-certificate=~/.kube/admin.crt --embed-certs=true
kubectl config set-credentials Default --client-key=~/.kube/admin.key

You can now execute kubectl commands from your remote kubectl client using the following command
kubectl --certificate-authority=/path/to/ca $CMD

# for eg. this command will return both client and server version
kubectl --certificate-authority=/path/to/ca version

In my case , environment was "hello" , I used the following commands to set the cert and key(Note I had to use the full path to the cert and key):
 ./kubectl config set-credentials hello --client-certificate=/Users/sangeethahariharan1/.kube/admin.crt --embed-certs=true
./kubectl config set-credentials hello --client-key=/Users/sangeethahariharan1/.kube/admin.key
user "hello" set.

Able to connect using the following command:
$ ./kubectl --certificate-authority=/Users/sangeethahariharan1/.kube/admin.crt version
Client Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.0", GitCommit:"a16c0a7f71a6f93c7e0f222d961f4675cd97a46b", GitTreeState:"clean", BuildDate:"2016-09-26T18:16:57Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"5+", GitVersion:"v1.5.1-rancher1", GitCommit:"24adf52d6f18be9071dc3194b4dca4a0d4e35bb9", GitTreeState:"clean", BuildDate:"2016-12-15T05:28:48Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"

Cert needs to be set for the cluster using the following command before executing any kubectl commands:
./kubectl config set-cluster <env name> --certificate-authority=<path-to-cert>
Other steps mentioned in the previous comments are not needed.

These steps need to be documented in the docs/the UI should be updated to provide the self signed ca as a part of the kubeconfig.

API needs to return what the cert is in order for the UI to include this in the kube config.

I ran into a similar issue when trying to integrate OpenShift with our Kubernetes stack. Cert path validation never worked because we don't configure kubelets with valid certs signed by the Rancher-generated CA. Kubelet actually generates its own self-signed certs in this case (there is no longer an option to expose it over plaintext).
Is it also possible to runtime reconfigure the kubelet(s) self-signed certificates securing its own API (without modifying our k8s stack)?

@wlan0 we can expose it via setting (it should it listed among settings.public here
The setting has to be populated from /var/lib/rancher/etc/ssl/ca.crt - the argument passed on rancher server start. This is the only tricky part.

@alena1108 @wlan0 I need the setting with the cert, or what you want to say about how to get it, and what they're supposed to do with it once they have it.  All I can do with this right now is show

The user need to fetch the certificate authority for her self signed cert (ca.pem), and then save it in a local file called ca.pem
Before executing any kubectl commands, the user needs to set the cert in the current kube context using this command -
./kubectl config set-cluster <env name> --certificate-authority=<path-to-cert>

Ensure that the path to cert is the complete path starting from root

I was able to get the root certificate file, from one of the k8s containers (/etc/kubernetes/ssl/ca.crt), and put it in the .kube/config file under the certificate-authority key but when I access the API via kubectl I get the infamous: Unable to connect to the server: x509: certificate is valid for X, not Y
In my case X is my internal IP, and I access it via Y, which is the public domain name. Trying internally with the same kube config, it works perfectly.
I messed around a bit with various certs, but couldn't really make the API return the cert where my public domain was added as a SAN, nor CATTLE_AGENT_IP had any control over the cert's domain.
Is there a way where I can get Rancher or the Kube API to return my custom certification?


[Chore] Review node version in package.json

What needs to be done
Currently the version is set as >= 12, we might be able to bump this up with v2.
According to:
https://endoflife.date/nodejs
We probably would want to target at least 16 (LTS with no security support soon)

Current LTS is node 20, which is a big jump.
Will target 16 which is just barely in LTS for 1.1.0, then target node 18 for 2.0.0

Closing as this was updated with #64


restinio: fix cross compilation

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;

I thought that doCheck would be force-overwritten anyways if that condition evaluates to false. :thinking:

I think the correct approach here is to skip building the test suite when cross-compiling entirely...

I disagree. Building the tests is a good test in and of itself.

I disagree. Building the tests is a good test in and of itself.

You are right, building the tests is a good idea even when cross-compiling. My concern was actually making it compile without trying to run the executables in buildPhase. Turns out it's pretty easy to do with Catch2.
It's possible to specify whether to run the test executables for discovery after build or before testing: https://github.com/catchorg/Catch2/blob/0321d2fce328b5e2ad106a8230ff20e0d5bf5501/docs/cmake-integration.md?plain=1#L208
diff --git a/pkgs/by-name/re/restinio/package.nix b/pkgs/by-name/re/restinio/package.nix
index 3f4a00491f13..0d267b42cc1f 100644
--- a/pkgs/by-name/re/restinio/package.nix
+++ b/pkgs/by-name/re/restinio/package.nix
@@ -54,12 +54,13 @@ stdenv.mkDerivation (finalAttrs: {
         ]
     );

-  checkInputs = [
+  buildInputs = [
     catch2_3
   ];

   cmakeDir = "../dev";
   cmakeFlags = [
+    "-DCMAKE_CATCH_DISCOVER_TESTS_DISCOVERY_MODE=PRE_TEST"
     "-DRESTINIO_TEST=ON"
     "-DRESTINIO_SAMPLE=OFF"
     "-DRESTINIO_BENCHMARK=OFF"

With this change I can build restinio successfully without binfmt.


test(plugin): reenable compat test

Description:

This PR reenables test for coverage-instrument plugin compat with latest version.
BREAKING CHANGE:

Related issue (if exists):

ugh, created branch in incorrect origin.


Add a home-manager module

This PR adds a simple home-manager module. This should ease the installation and configuration (although it's already easy). I've also added the necessary documentation.

Thanks for your contribution!


Fix first display of items when service is slow (#54)

Fix #54

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update RequiredIfAttribute.cs

By removing the sealed from the class we can override the FormatMessage method to implemented additional features like localization.

For now I've decided not to merge that change because of explanation given here: https://github.com/JaroslawWaliszko/ExpressiveAnnotations/issues/70.


Support for x32

This PR fixes build errors and segfaults when building with the x32 ABI (x86-64 with 4-byte pointers). The test-suite now passes on x32 (and still passes on normal x86-64).
You can test x32 by installing a multilib gcc and passing -mx32 when building. You'll probably have to enable CONFIG_X86_X32 in your kernel as well if you want to run anything.

Automatic CI verification build not done, please verify manually.

Thanks! Looks good to me.

Oops there was a bug in bn_mul.h which travis ci found. I incorrectly removed rdx from the clobber list. I've just pushed the fix.


Create debian package

Generate a debian package, with correct folder names.
Also fixed a compiler warning and linker error on debian

The travis CI build is failing like before due to DEB, can you see why?
https://travis-ci.org/clMathLibraries/clFFT/jobs/307157987

Mmm, the key line seems to be
"CPack Error: Cannot initialize CPack generator: DEB"
I assumed that the .deb generator would be available on other linux systems as well, this might not be the case. I'll go google a bit.

thanks


[WIP] Add cluster-api chart

In future we plan to align with the Rancher Turtles chart, but at this point it's not in a fully supported state which we can consume, so this chart enables just the CAPI components we need for Metal3 which is also currently maintained in this repo.
This is currently WIP but any review feedback is welcome!

I'm abandoning this because it looks difficult to make a single chart release install to multiple namespaces, and also because the chart validation won't allow the pre-install hook to uninstall the Rancher embedded CAPI (because the validation happens in one pass, and detects some resources in the chart are already managed by the Rancher chart, which is not the case with Rancher Turtles as it manages them via the CAPI operator instead)
In future we'll instead investigate adopting the Rancher turtles chart, potentially wrapped in a chart in this repo so we can apply defaults for our Edge use-case.


Create index.d.ts for typescript

Create index.d.ts for typescript

I guess this pr will not be answered. How about sending this to typescript for @types/socket.io-msgpack-paser?
https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html#publish-to-types

@yuhj86 sorry for the delay, thanks :+1:


NoSuchMethodError: Class '_CompileTimeError' has no instance getter 'message'.

Launching lib/main.dart on iPad Pro (10.5-inch) in debug mode...
Running pod install...
Starting Xcode build...
Xcode build done.
vm-service: Error: Unhandled exception:
NoSuchMethodError: Class '_CompileTimeError' has no instance getter 'message'.
Receiver: Instance of '_CompileTimeError'
Tried calling: message
#0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:48:5)
#1      WebSocketClient.onWebSocketMessage (dart:vmservice_io/server.dart:62:39)
#2      new WebSocketClient.<anonymous closure> (dart:vmservice_io/server.dart:25:32)
#3      _RootZone.runUnaryGuarded (dart:async/zone.dart:1314:10)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#5      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#6      _SyncStreamController._sendData (dart:async/stream_controller.dart:763:19)
#7      _StreamController._add (dart:async/stream_controller.dart:639:7)
#8      _StreamController.add (dart:async/stream_controller.dart:585:5)
#9      new _WebSocketImpl._fromSocket.<anonymous closure> (dart:_http/websocket_impl.dart:1128:21)
#10     _RootZone.runUnaryGuarded (dart:async/zone.dar<…>
[VERBOSE-2:dart_isolate.cc(813)] Isolate (575484270) 'vm-service' exited with an error
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following _CompileTimeError was thrown building Localizations(locale: en_US, delegates:
flutter: [_MaterialLocalizationsDelegate[MaterialLocalizations],
flutter: _WidgetsLocalizationsDelegate[WidgetsLocalizations]], dirty, state: _LocalizationsState#66a9d):
flutter: 'dart:_internal/runtime/libinternal_patch.dart': error: line 119 pos 1: native function
flutter: 'Internal_unsafeCast' (1 arguments) cannot be found
flutter: T unsafeCast<T>(Object v) native "Internal_unsafeCast";
flutter: ^

Steps to Reproduce
Run this app on simulator. This error will show up.
FLUTTER Doctor Output
[✓] Flutter (Channel beta, v0.6.0, on Mac OS X 10.13.6 17G65, locale en-IN)
    • Flutter version 0.6.0 at /Users/chetankaushik/Downloads/flutter
    • Framework revision 9299c02cf7 (3 weeks ago), 2018-08-16 00:35:12 +0200
    • Engine revision e3687f70c7
    • Dart version 2.1.0-dev.0.0.flutter-be6309690f

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.0-rc2)
    • Android SDK at /Users/chetankaushik/Downloads/android-sdk-mac_x86-1.6_r1
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.0-rc2
    • ANDROID_HOME = /Users/chetankaushik/Downloads/android-sdk-mac_x86-1.6_r1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2017.3.5)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 27.1.1
    • Dart plugin version 173.4700

[✓] Connected devices (2 available)
    • ONEPLUS A5000        • a92b077a                             • android-arm64 • Android 8.1.0 (API 27)
    • iPad Pro (10.5-inch) • 7E9350D8-BB2B-4A51-B5C7-D7F87DA37B01 • ios           • iOS 11.4 (simulator)

• No issues found!

Is this still an issue?
Can you provide more information about how to reproduce?


Seamless looping

Hi, first of all thanks a lot for this great library and happy new year!
While building a demo app, I've noticed that there's always a small "gap" between loops if I set the ReleaseMode to "loop". Is it possible to fix this?
(I used AudioCache to playback audio from the assets)

Hello @hexrcs can you confirm on which Platform is the problem? Is it android? Android has a problem history with gapless audio looping, and util today there not really a good solution.
The recommendation from google to achieve this is using two audio players and to start the second when the first has ended. We could try to implement this on audioplayers, but right now we don't have time to make that change. So if you need this right now, you could try doing this directly on flutter, having two instances of the audioplayers and playing the second right after the first finished, and repeating this process.

Hi guys,
I have somewhat similar problem, totally related to this one. I'm implementing a feature in my playground application that mimics loud horn: when user taps a button I start to play a sound (start), while user holds it I loop another sample (middle) and when tap is finished/cancelled an ending sound is played (end).
And yeah, there's this gap between start and middle, middle and middle during loops and finally between middle and end. So far, I've attempted to:

use 3 players - one for each sample
cache with fixed player
cache starting new players

I use onPlayerCompletion.listen to find out when start finishes to play middle in a loop and store the reference to player. When tap finishes/cancels I stop the middle player and play single end.
So far without luck. The gap persists in every attempt...

Hey guys, sorry for the delay. I tried to add my workaround to the library a while ago, but realized that the library API needs to be extended and was a bit hesitant how I should proceed.

@erickzanardo @luanpotter
Is it OK to add a new API (eg. a new SeamlessLoopPlayer class) to the library? My specific workaround was to alternate 2 players with the same source, overlapping and cross-fade a few milliseconds. I would like to default that overlap to 10ms but make it adjustable.

@falxcerebri The idea is to start the second clip right before the first one ends. You need to cross-fade the contact surfaces to avoid the gap, try automating the volume. :)

Yeah, SoundPool solves the issue. I've used PlayerMode.LOW_LATENCY . To avoid gap between Sound 1 and Sound 2, use fixed player and do not stop Sound 1, just straight away play Sound 2 after a timer or something. Also while using PlayerMode.LOW_LATENCY you don't receive playback events.

This LOW_LATENCY is awesome! However it took me a day of mangling code and trying to roll my own audio player to realise that this works perfectly for looping audio tightly in Android - perhaps adding that to the README would be really helpful (i.e. LOW_LATENCY mode is not just "better for gaming sounds" :-) )

I'm trying this on iOS and despite LOW_LATENCY mode I have a gap between repetitions playing "endless" wav file.

Seamless looping does not works on this package.
We have created a "sister" library, which is way simpler, but is specialized on that, please it here: https://github.com/fireslime/flutter_gapless_audio_loop
We are still evolving it and there is any feature on audioplayers that you need, that is not present there, feel free to open a feature request there.

Hi there, seeing that both https://github.com/bluefireteam/flutter_gapless_audio_loop and ocarina haven't been updated in a while I was wondering if the seamless playback would be possible with just_audio? In my experience neither using compressed (aac, mp3) or uncompressed audio files (wav) on iOS works to achieve gapless playback.
Sorry for restoring super old topic, but didn't want to create a new one if the answer is still the same.

Sadly it is an inherent issue of the underlying platforms. The best you can try with audioplayers is to use low_latency and an audiopool to preload the same audio in two audio players and control the transition yourself. But there seem to have been recent community effort to fix this kind of issue with flutter_soloud


repro: Add test where Promise.all checks if they can run in parallel

On Android, when there are two promises, second promise will wait for the first one to resolve.
In this example, the resolution should be:

Promise.all(foo(), bar()) called, both functions are running
foo() is pending
bar() is pending
bar gets resolved
2 seconds later
foo() gets resolved
Promise.all gets resolved

Hm, the .Default scope should allow for parallelism - it is a shared pool. https://github.com/mrousavy/nitro/blob/d76d0c02621d4183544d2a8af5b8b334318b4551/packages/react-native-nitro-modules/android/src/main/java/com/margelo/nitro/core/Promise.kt#L57
I'd have to test this more, but in the meantime you can play around with this to see if changing to a different Dispatcher changes things? E.g. a Executors.newFixedThreadPool(4).asCoroutineDispatcher().

Btw.; didn't you talk about a different issue on WhatsApp? You mentioned that resolve just doesn't work anymore, and that it starts to hang in JSPromise, but it worked in Promise.kt and JPromise.hpp...?

Btw.; didn't you talk about a different issue on WhatsApp? You mentioned that resolve just doesn't work anymore, and that it starts to hang in JSPromise, but it worked in Promise.kt and JPromise.hpp...?

Yes, it's still same issue, and this test shows its symptoms! Something stops JS from resolving the promise and my debugger breakpoints reveal that it's not hitting the JSPromise code

The current test is invalid - we cannot test order of that. It's how native threads work, they can race.
We can test however if both promises resolve one after another - as that was the original issue you sent me on WhatsApp

Hm, I am not sure if that was the original issue and whether your updated test does show the real problem.
The issue is not promises running in parallel.
The issue is if there are two promises that run in parallel, one is wait 4, second one is wait 2, the second one will not resolve until first one resolved, so eventually they both resolve after 4 seconds
In practice, second one should resolve earlier, and code that follows after its await should be executed while we're waiting for first promise.
In my code, those promises are run from two different places (not Promise.all) but I did that just to demonstrate the case.
I guess I'll have to send a PR with a different test case to make this explicit

Okay, I run this test on main and issue is gone. this passes. Promises resolve after the right time (4 and 1s respectively). Before, it would be always 4. Potentially related https://github.com/mrousavy/nitro/pull/347
 createTest('twoPromises can run in parallel', async () =>
      (
        await it(async () => {
          const foo = async () => {
            const start = performance.now()
            await testObject.wait(4)
            const end = performance.now()
            return end - start < 4 * 1000 + 10
          }
          const bar = async () => {
            const start = performance.now()
            await testObject.wait(1)
            const end = performance.now()
            return Math.round(end - start) < 1 * 1000 + 10
          }
          const [fooTime, barTime] = await Promise.all([foo(), bar()])
          return [fooTime, barTime]
        })
      )
        .didNotThrow()
        .equals([true, true])
    ),

Yea I might've fixed this in #347 🙈


Check for an undefined type on the destroy callback

...instead of checking for equality to the global undefined value.
Another option would be to not check strict equality (i.e. use == vs. ===), but this form is generally preferred.
This change results in the log entry being made when destroy is called with no arguments.
See this doc

Thanks


Only the first AppRole on the roles list is used for authentication

Please correct me if I'm wrong, but https://github.com/nemosupremo/vault-gatekeeper/blob/4faf5db35af0b3a0c02f4f0ed1d8d21fa421cb29/gatekeeper.go#L487 will always result in using the first item from the roles list, unless the requested role equals task name. Even if there are more AppRoles listed. The loop only checks if requested AppRole is allowed and doesn't overwrite roleName variable. Later it's the roleName not the requestedRoleName that's used in GetRoleId and GetSecretId.
Unit tests also only cover those two cases - single role or role and task name.
So now, if I specify my policy like so:
"roles": [
  "service-sidecar-cache-reader",
  "service-sidecar-cache-writer"
]

and request a token specifying role to be service-sidecar-cache-writer, I'll get a Vault token for the service-sidecar-cache-reader AppRole.

It looks like you are right - when we check if your requested role is valid, me must also update the role name.

Fixed the behavior and updated the tests in v1.1.3


[Question] Can I host the tracking script on a CDN?

Instead of including the script directly from the server i.e., https://myserver.com/umami.js, is it possible to replicate this script and host it on a CDN (like S3+CloudFront) for faster load times?
Will the tracking script still work if I do that?

Yes, the tracking script can be hosted anywhere. Just add a data-host-url attribute pointing to where your umami is hosted.

Thanks, but did you mean data-website-id?
If not, can you please give an example for what it'd look like?

By setting data-host-url attribute in the umami tracker, you can tell umami where to make the API calls. For instance to
a subfolder or another domain.
<script async defer
  data-website-id="83dd64c4-17ad-4e3e-a905-b3d8c867c1a5"
  src="http://mywebsite.com/umami.js"
  data-host-url="http://umami.mywebsite.com">
</script>

This feature  was just released. I will update the docs soon.

Got it, thanks a lot!


Split controller to actions

Changes Unknown when pulling 08deacabe91ceea39990fa3337b01781f5a14f55 on split-controller-to-actions into ** on master**.

Changes Unknown when pulling 10d9ab2042fa6511ca72731907d71b780ea6ab01 on split-controller-to-actions into ** on master**.


[ccapi/nntrainer] Add getters for ml::train::Model states

Hello, I added getters for the ml::train::Model states that I need to know in my project.
According to this section I should add a set of tests for each feature.
Should I add them for such simple getters as well?
What should they specifically check?

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1916. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

To contributor, We have used 'Signed-off-by:' notation by default to handle the license issues, that result from contributors. Note that 'Is there a Signed-off-by line?' is important because lawyers tell us we must have to it to cleanly maintain the open-source license issues even though it has nothing to do with the code itself.

Please write a summary in commit message. It is empty and it makes it hard to maintain codes in the future.

To contributor, We have used 'Signed-off-by:' notation by default to handle the license issues, that result from contributors. Note that 'Is there a Signed-off-by line?' is important because lawyers tell us we must have to it to cleanly maintain the open-source license issues even though it has nothing to do with the code itself.

Thanks for the PR. But PR summary should have more detail and be more formal.
Here is an example you can use,
Dependency of the PR
Commits to be reviewed in this PR
[Network Graph] Split max_exec_order
This patch split max_exec_order to three part.

graph_exec_end: graph execution end
backward_iter_end: end node of backward operation
forward_iter_end: end node of the forward operation

Self evaluation:

Build test: [X]Passed [ ]Failed [ ]Skipped
Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>
[ExecOrder] Add exec order control and fix inference
This patch add exec order control and reduce memory overhead of saving
inference result
exec order cotrol has two part

Additional exec order. This enable graph to add some exec order.
Expose bit. This enables request to be visible after the end of the
execution.

Self evaluation:

Build test: [X]Passed [ ]Failed [ ]Skipped
Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>
[Tensor Pool] Add expose/persist concept
This patch add expose/persist concept to the tensor pool and manager.
When a tensor is exposed, this means that the tensor is gauranteed to
remain valid max_exec where max_exec is the value passed along allocateTensors(max_exec);
Self evaluation:

Build test: [X]Passed [ ]Failed [ ]Skipped
Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee<EMAIL_ADDRESS>
resolves #1832


Add Environmental variables section

Update this to contain a section that prompts the user to add npm installation folder to environmental variables
Description
Replace this paragraph with a description of what this PR is doing. If you're modifying existing behavior, describe the existing behavior, how this PR is changing it, and what motivated the change.
Related Issues
Replace this paragraph with a list of issues related to this PR from the issue database. Indicate, which of these issues are resolved or fixed by this PR. Note that you'll have to prefix the issue numbers with flutter/flutter#.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (melos run analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[x] Yes, this is a breaking change.
[ ] No, this is not a breaking change.

Update this to contain a section that prompts the user to add npm installation folder to environmental variables

Thanks we'll look into this


The output of fmriprep is incomplete

What happened?
I used fmriprep-24.0.0 on slurm to process my MRI data, but the outputs were incomplete.
For example, freesurfer directory was empty and the output of --output-space I specified was not produced in the func and anat directory.
I uploaded the log file. Please check it out
fmriprep-30459_6.json
What command did you use?
#!/bin/bash
#SBATCH --job-name=fmriprep
#SBATCH --nodes=1
#SBATCH --partition=CPU_DreamNeuro
#SBATCH --cpus-per-task=14
#SBATCH --mem-per-cpu=4G
#SBATCH --out=./slurm_log/fmriprep/%x-%A_%a.out
#SBATCH --error=./slurm_log/fmriprep/%x-%A_%a.err
subject=$( sed -n -E "$((${SLURM_ARRAY_TASK_ID} + 1))s/sub-(\S*)\>.*/\1/gp" ${BIDS_DIR}/participants.tsv )
age=$( sed -n -E "$((${SLURM_ARRAY_TASK_ID} + 1))s/sub-(\S*)\s+(\S*)\s+.*/\2/gp" ${BIDS_DIR}/participants.tsv )

echo "Running: $subject"
echo "Suject age: $age"

if (( $(echo "$age >= 7.5 && $age <= 13.5" | bc -l) )); then
  template="MNIPediatricAsym:cohort-4:res-2"
elif (( $(echo "$age >= 13 && $age <= 18.5" | bc -l) )); then
  template="MNIPediatricAsym:cohort-6:res-2"
elif (( $(echo "$age >= 4.5 && $age <= 8.5" | bc -l) )); then
  template="MNIPediatricAsym:cohort-2:res-2"
else
  template=""
  note="Age is not in the range, you need choose another template"
  echo "$note"
fi
echo "Template is $template"

# bind container with host
cmd="singularity run \
    --cleanenv \
    -B $PROJECT:/rootdir \
    -B $BIDS_DIR:/data:ro \
    -B $DERIVS_DIR:/output \
    -B $WORK_DIR:/work \
    -B ${SINGULARITYENV_FS_LICENSE}:/freesurfer_license/ \
    -B ${TEMPLATEFLOW_HOST_HOME}:${SINGULARITYENV_TEMPLATEFLOW_HOME} \
    ${FMRIPREP} /data /output \
    participant --participant_label $subject \
    -w /work \
    -vvv \
    --fs-license-file /freesurfer_license/license.txt \
    --fs-subjects-dir /output/freesurfer \
    --mem-mb 60000 \
    --n-cpus 14 \
    --write-graph \
    --output-spaces $template MNIPediatricAsym:cohort-1:res-2 MNI152NLin2009cAsym:res-2 anat fsnative func \
    --return-all-components \
    --notrack \
    "

echo "Running task: $SLURM_ARRAY_TASK_ID"
echo "Command: $cmd"
eval "$cmd"

What version of fMRIPrep are you running?
24.0.0
How are you running fMRIPrep?
Singularity
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
Please see the log file above.

Additional information / screenshots
There are outputs in func directory

Hi @effigies
I possibly run multiple subjects because I submitted the slurm job using this code sbatch --array=1-$(( $( wc -l ${PROJECT}/BIDS_heudiconv/participants.tsv | cut -f1 -d' ' ) - 1 ))%20 fmriprep.slurm

So what's happening is that you have an fsaverage directory from an older version of FreeSurfer. To keep FreeSurfer working correctly, we delete and replace with the bundled copy. If you have multiple copies of fMRIPrep doing this at the same time, you will get race conditions.
There's no real plausible way to protect against this.

Hi @effigies
It occurs an error later.
ERROR: Label BA1_exvivo does not exist in SUBJECTS_DIR fsaverage! The fsaverage link probably points to an older freesurfer version
This error is very strange. Sometimes I'm running fmriprep and I don't get this error, sometimes I run it and it keeps coming up. Is there any way to fix this? For example, submit a job first. After this job is completed, I submit the parallel array job.

That sounds like a recurrence of the other issue you opened: #3258.

@tsalo
Yes, it's an old problem. I tested it, and if I submit a job array for one subject, fmriprep (version-24.0.1) runs successfully with doing surface reconstruction. But if I submit a job array for multiple subjects, I get the error I mentioned above.
By the way, the --containall was added to the script.
So, I'm ready to try this way:
--fs-subjects-dir /output/freesurfer/$subject
-w /work/$subject
Prepare seperate directories for each subject.
But I'm not sure it's the right thing to do. What do you think? @effigies

So what's happening is that you have an fsaverage directory from an older version of FreeSurfer. To keep FreeSurfer working correctly, we delete and replace with the bundled copy. If you have multiple copies of fMRIPrep doing this at the same time, you will get race conditions.

@effigies So I'm trying to deal with this issue now and receiving the BA1_exvivo error. I am using version 24.1.1 as an Apptainer dispatched as one instance per subject. These are dispatched in parallel with a small time offset.
If I understand you correctly, the directory:
<BIDS_DIR>/derivatives/fmriprep/sourcedata/freesurfer/fsaverage
is remade every time and this operation is always susceptible to a race condition?
I get this error on a 48 core machine but not on my personal 12 core machine with the same setup.
If this is the case, would a solution be to create a temporary directory per-subject to accommodate the fsaverage folder that gets re-made each time? For example:
/tmp/<subject>/freesurfer
And have the --fs-subjects-dir point to it? I believe this is what @WangYunHong98 suggested as well in the comment above. Did it end up working for you?


Create RTL_TCP application for WD NAS devices

This is mainly for my own purposes, and I can really only do the WD EX4100, but having an RTL_TCP application would be a heck of a lot better than SSH-ing into the thing and manually running it.  Maybe it will be of value to others, but again, this is a purely selfish enhancement.

Completed to my satisfaction via https://github.com/djp952/pvr.rtlradio/commit/a62c7d2610c637b94c933eff731dae9dc8f9cc4b
It could use an interface to set the port and be able to access a specific USB device, but I really don't think anyone but me will ever use this.


How can I keep the language culture cookie for some time like 7 days?

When I close webbrowser,$.cookie expired;   reopen webbrowser,luguage culture is still 'en'.
How can I keep the language culture cookie for some time like 7 days?
$.cookie('LanguagePreference', select.val(), { path: Q$Config.applicationPath });

Just change the code like below:
$.cookie('LanguagePreference', select.val(), { path: Q$Config.applicationPath ,expires: 7 });

Thanks, i changed default to 365 days now in Serene too, also for theme selection


[API Request] Iterable LuaCharacter fields

詳細 Details
It would be useful to be able to iterate over all fields in the LuaCharacter class, including custom fields that are unknown to us that other mods may have implemented. For example, we may want to make a clone such that it would be possible to clone a character by copying all fields (with special handlers for position, etc.). The new clone would be indistinguishable from the original character (except for UUID etc).
この機能を持つヴァリアント Variants having the feature
While cloning is just an example, there are some monsters that split themselves in vanilla Elona.

Such API is strongly required, I agree. In the next release, v0.7.6, I am going to re-structure almost everything including struct Character's fields. This proposal will be done after the changes.


Determine pattern for base policy

DO NOT MERGE
This PR currently contains two options for the base policy class.
I am looking for feedback on the two three options. Which should we go with? Is there another option?
See the tests for examples of how they would be used in practice.

@armilam One of the goals that we had for the policy classes is that they would be able to customize the individual checks for permission based on business logic. In option1, if you wanted a straight check for "edit" for example, you would just get #edit? for free based on your list of actions. If you wanted to customize the check for edit based on you business logic, then you could define your own #edit? method to override it in the policy and it would use that method when checking for the edit? permission on that policy. How would we do that with the option2 direction?

@rreinhardt9: https://github.com/lessonly/accesscontrol/pull/9#issuecomment-375366298

If you wanted to customize the check for edit based on you business logic, then you could define your own #edit? method to override it in the policy and it would use that method when checking for the edit? permission on that policy. How would we do that with the option2 direction?

Good point! You are right that we wanted to make customizing super easy to do. I'll put some thought into how we might do that in both scenarios.

@rreinhardt9, again regarding https://github.com/lessonly/accesscontrol/pull/9#issuecomment-375366298

If you wanted to customize the check for edit based on you business logic, then you could define your own #edit? method to override it in the policy and it would use that method when checking for the edit? permission on that policy. How would we do that with the option2 direction?

I added the ability to customize the permission checks in each of option 1 and 2. I didn't like the customization for option 2, so I made an option 3 with the same API as option 2, but with a better customization pattern.
@rreinhardt9 and @ehourigan I would love to get your take on those.

Closing this PR so I can open one for the proposed solution.


fix issue_206: crash when loading plugin on windows

Coverage remained the same at 92.168% when pulling cf837a28ee6f416601447f1580652a402fa7b31c on kkzi:issue_206 into 7d6b6e78744a97943cacadc76a811a37ea528736 on rttrorg:master.


Why does memoizeWith cache different objects as being the same arguments?

I am using ramda 0.28.0.
Code esample is the following:
const { identity, memoizeWith } = require('ramda')
const f = memoizeWith(identity, obj => console.info(obj))

Some output:
> f({test:1})
{ test: 1 }
undefined
> f({})
undefined
> f(2)
2
undefined
> f(2)
undefined
> f(3)
3
undefined

As you can see, {} does not reach console.info, but I expect identity to return a different key.
Why is this?
Thanks

Most like what's happening is that both {test:1} and {} are converted into a string. The default .toString() will return '[object Object]' for both. You can verify this by implementing .toString() on both object to return a different string:
const a = {foo:1};
const b = {};
const c = {foo:1};
const d = {};

c.toString = () => 'key1';
d.toString = () => 'key2';

const f = memoizeWith(identity, obj => console.info(obj));

console.log('f(a)');
f(a)
console.log('f(b)');
f(b)
console.log('f(c)');
f(c)
console.log('f(d)');
f(d)

Output
f(a)
{"foo":1}
f(b)
f(c)
{"foo":1}
f(d)
{}

As you can see both c and d have generated different cache keys so they both went through the console.log.

This is probably something the docs should cover. Related #2314


Expose interface for custom ID provider or make CreateFileAsync of TusDiskStore virtual

I think the title says it all.
This is useful if custom ID's are needed.
I need for example Guid.NewGuid().ToString("D");

The title definitely does not say it all. Why do you need that particular format?

Because in SQL-Server Guid are saved in a uniqueidentifier column and excepts the "D"-Format.
It would be useful to use the idenitifer as id in a table without having an extra path column with some other random identifer.
ItemTable:

ID: uniqueidentifier
Path: varchar
So Path is ID.extension for example
It's just to have a clean ecosystem.
It's not a requirement to use it.

It seems that you could very easily work around this by doing var myDbId = Guid.ParseExact(myFileId, "n") (or possibly var myDbId = Guid.ParseExact(myFileId, "n").ToString("d")) and then pass myDbId to EF/Dapper/whatever?
I like the idea of having a file id generator but I think that the idea needs to be refined more before being implemented. Properly done it would be a great aid and allow developers to create file uploads linked to already existing ids such as db rows, documents in MongoDb or some entry in CRM/SAP/whatever system that isn't easily modified.
I'm thinking that the interface for this must be passed to the TusDiskStore (as it is responsible for creating ids) and must support both creating and validating that an ID is correct. The default implementation probably still needs to be the current one to now cause breaking changes. The id generator would also need to be 100% responsible for not creating duplicate ids as there is no way for TusDiskStore (nor tusdotnet in general) to know if the ids are unique.
Feel free to submit a PR for this change.

@philippk80 Any progress on that PR?

It's just an untested draft but I started a PR so the progress is visible.
I don't think I have the time to work on it the next weeks.

@philippk80 Awesome! :) Take your time, it's no hurries. Just wanted to check in.

But basically it should already work... the change isn't thaaat big.

Maybe the creation of the id should be moved to a new interface-method so the implementation is forced to do so. Otherwise it isn't guaranteed that the id is a new generated one. With the current implementation every third party class is able to control that over the constructor.

Agreed. It's probably a cleaner approach having something like
  public interface ITusFileIdProvider
  {
      Task<string> Create();
      Task<string> Verify(string fileId); // returns the input, basically just for chaining. Return type could probably also be just Task
  }

I'm not a fan of how TusDiskStore uses a generic constraint for the ITusFileIdProvider and would rather see a solution similar to how TusDiskBufferSize works where we can provide one in the constructor, or a default one is used. The reason for this is that we would then allow a custom file id provider to take in additional constructor params, such as db connections or whatever. Just example code thrown together now:
public class ExistingDbFileIdProvider : ITusFileIdProvider
{
    private IDbContext _context;

    public ExistingDbFileIdProvider(IDbContext context)
    {
        _context = context;
    }

    public async Task<string> Create()
    {
        return await _context.SomeTable.GetLatestAvailableId();
    }

    public async Task<string> Verify(string fileId)
    {
        // Do something...
        return fileId;
    }
}

Another idea would be to pass the provided metadata into the Create method which would allow us to let the client decide on the ID, or use something provided by the client as base for the ID.
Great work so far! Thanks for your effort :)

I've done that for simplicity. Another option would be a parameter in the TusDiskStore that describes a Factory for the id. (Action) Then everything would be possible.

I've been thinking about the interface for ITusFileProvider and we should probably not keep instance properties (i.e. FileId) in it just to make it possible to keep a singleton value in the IoC container (if needed for some reason, e.g. DB connections).


Add links to Service guides

Some links to the classes and methods documented in the top-level service guides were not converted to the YARD syntax. This should add those links back to the documentation.

Fantastic, we no longer have any YARD warnings about unresolved links, which is so great. Thank you @blowmage! Amazing to see this all done in a day.

It is a last resort. From what I found the node docs don't link to the guides from their code documentation, so the mechanisms for creating a link to guides from doesn't exist yet. Because of the urgency of a Q1 release we felt it was better to get it working first, and then make better later.
Our links to guides are always problematic. They only ever worked on our generated documentation, and were broken on sites like rubydoc.info.

@jgeewax @blowmage @callmehiphop In order to avoid using ui-sref in our static markdown documents, would it work to add routing logic in the Angular app that would redirect the full URL /#/docs/guides/authentication to /#/docs/{version}/guides/authentication? The problem we have is setting the correct version in a completely static document.

Essentially I'm suggesting: Hide the ugliness of the raw Angular directive usage in these links behind a pretty route.

@quartzmo The only guide we link to in the code comment documentation is the authentication guide. We could leave the links the way they were, and add the ui-sref attribute to the HTML when building the JSON docs.

Actually you can omit the version from the URL, when not supplied it redirects to the latest version, I believe it should inherit it when available - so I think it would be safe to completely omit the version and use a plain path.

But we should keep them on the version they were looking at when they click the link, right?

I haven't tested it, but I think so. If not, I don't think it would be very much work to add that logic in.

If the non-versioned URL will redirect and maintain the version then we'll hardcode the link to that and trust that the angular app will behave correctly.


Version number is out-of-sync with Git code

Hi,
I'm the maintainer of PyFtdi. I had some hard time figuring out why some reported issues with PyFtdi depicting PyUSB traces did not match at all my own installation of PyUSB. Even after reinstalling from scratch, clearing out pip caches, etc, there were obvious discrepancies between packaged 1.0.2 version available from PyPi and the traces I was reading.
PyUSB has resumed development and that's really great.
However the version number has not been updated and is still defined as 1.0.2. Current delta with 1.0.2 is:  30 files changed, 775 insertions(+), 630 deletions(-). This is really huge.
It would be nice to add a -dev or any common suffix to the __init__.py file so that there is no confusion with the active development version and the packaged version on PyPi. I guess PyFtdi will not be the only package which depends on PyUSB and will encounter some maintenance issues to deal with, and confusion is likely to occur.
Note: I used to push PyUSB for the original author (Wander) to PyPi, so if you do not have access yet to PyPi for PyUSB, please contact me.
Thanks.

Hi again,
I'll consider doing this after the 1.1.0 release.
But I haven't seen this work particularly well in my own stuff: it still is a static version number shared by many commits.

Additional note: it seems you have not installed PyUSB from an official package but a development version.
—(from the downstream issue)

Regarding stable vs. development releases, the most common cases (pip install git or --editable) can be handled by asking users to provide the output of pip list.
Nonetheless, I'll give it some (thorough) thought.

Well, I agree it is not perfect, at least it gives an instant clue from the traceback e.g. site-packages\pyusb-1.0.2-dev-py3.6.egg vs. site-packages\pyusb-1.0.2-py3.6.egg., i.e. is it a release or any development version.
To avoid static version, you may add the git distance from the last official tag:
$ git log -1
commit cf88dfcd3b38afd00ec9fc7229213c8e8aa42118 (HEAD -> master, origin/master, origin/HEAD)
Author: root<EMAIL_ADDRESS>Date:   Sun Feb 23 20:06:06 2020 +0800

    Remove non-ASCII dashes from copyright notices (#297)

    In Python 2 source files are treated as encoded in ASCII.
eblot@spey:~/Sources/Git/github.com/pyusb

$ git describe
v1.0.2-38-gcf88dfc
eblot@spey:~/Sources/Git/github.com/pyusb

$ git pull
From github.com:pyusb/pyusb
   cf88dfc..998e1da  master     -> origin/master
Updating cf88dfc..998e1da
Fast-forward
 usb/backend/libusb0.py | 4 ++++
 1 file changed, 4 insertions(+)
eblot@spey:~/Sources/Git/github.com/pyusb

$ git describe
v1.0.2-39-g998e1da

If it would help, I can work on a PR for integrating setuptools_scm which would handle the versioning in an automated way.
@jonasmalacofilho @mcuee Thanks for the work you put into pyusb, it's great to see that it's continued to be developed :smiley:
Cheers,
Andreas

Hi @ap--,
First, I really appreciate you volunteering to do this work!  It took me a while to organize my thoughts on this, but here they are:
I really like your solution (even though it won't be foolproof, because no such thing is possible here),¹ but I see a problem with the extra dependency.
It seems that this may break in systems with old versions of setuptools, one way (toml file) or the other (setup_requires).  This would particularly affect Linux distributions packaging PyUSB.
Can you check that stuff like this bug is no longer an issue on any distro versions that would ship a 1.1.0 PyUSB?  Besides Debian/Ubuntu, RHEL and CentOS are also likely candidates for problems.
In summary: as long as this is packageable in the major Linux distros, I'm fine with it.
(I think the usual avenues for Windows (manual or Conda) and Mac (Homebrew) should be able to handle this without problems).
On my side, this will also require a bump on the minor version number.

_¹ The base version number has some meaning, but the truth is that users may always be running completely random code.  Either intentionally or by accident.
For an extreme example, some time ago a company working with mine on a project was having meritorious issues compiling our project.  Eventually we figured out that, unknown to them, they were running a completely borked standard library (for the particular language we were using), which even included modules from different  major (and totally incompatible) versions of the language!  How do you catch this with a version string?

Hi @jonasmalacofilho,
Great :smiley:
I'll start working on it as soon as i have some free time and will open a PR where we can discuss further.
I have experience with packaging for pypi and conda for all OSes, but so far my experience with packaging deb/rpms/etc. for different Linux distributions is limited to using fpm once. But I'm happy to dive deeper into the topic :+1:
Cheers,
Andreas


(cmake 3.31.1 -> cmake.install 3.31.2) fails to install: Exit code was '1603'

Checklist

[X] I have verified that this is the correct repository, and the package is maintained by the chocolatey-community user.
[X] I have verified that this is happening in the latest available version of the package.

Chocolatey Version
2.4.0
Chocolatey License
None
Package Version
cmake.install 3.31.2
Current Behaviour
The install fails with this error message (logs unavailable since this happens on Github workflow):
cmake.install v3.31.2 [Approved]
cmake.install package files install completed. Performing other installation steps.
Installing 64-bit cmake.install...
WARNING: Generic MSI Error. This is a local environment error, not an issue with a package or the MSI itself - it could mean a pending reboot is necessary prior to install or something else (like the same version is already installed). Please see MSI log if available. If not, try again adding '--install-arguments="'/l*v c:\cmake.install_msi_install.log'"'. Then search the MSI Log for "Return Value 3" and look above that for the error.
ERROR: Running ["C:\Windows\System32\msiexec.exe" /i "C:\ProgramData\chocolatey\lib\cmake.install\tools\cmake-3.31.2-windows-x86_64.msi" /qn /norestart /l*v "C:\Users\runneradmin\AppData\Local\Temp\chocolatey\cmake.install.3.31.2.MsiInstall.log"] was not successful. Exit code was '1603'. Exit code indicates the following: Generic MSI Error. This is a local environment error, not an issue with a package or the MSI itself - it could mean a pending reboot is necessary prior to install or something else (like the same version is already installed). Please see MSI log if available. If not, try again adding '--install-arguments="'/l*v c:\cmake.install_msi_install.log'"'. Then search the MSI Log for "Return Value 3" and look above that for the error..
The install of cmake.install was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\cmake.install\tools\chocolateyInstall.ps1'.
 See log for details.
Failed to install cmake because a previous dependency failed.
Downloading package from source 'https://community.chocolatey.org/api/v2/'

NOTE: Chcolatey tries to install "cmake.install 3.31.2" which causes the failure. The install command is "choco install cmake ninja 7zip".
Expected Behaviour
Installation works. Last known working date is 5.12.2024 . Since then it's broken.
NOTE: Before Chocolatey correctly tried to install "cmake 3.31.1".
Steps To Reproduce

Run command "choco install cmake ninja 7zip"
Chocolatey tries to install "cmake.install 3.31.2" instead of "cmake 3.31.1" which fails.

Environment
- Operating System: Microsoft Windows Server 2022 [10.0.20348] (Github workflow builder)
- PowerShell Version: Unknown (no access to workflow builders)
- Shell: Unknown (no access to workflow builders)

Chocolatey Log
Log file is unavailable (Github workflow builder). Available is only the error message posted above.

Anything else?
Example build failure caused by this bug here: https://github.com/LordOfDragons/dragengine/actions/runs/12218416239/job/34083889618 .
Last working build is here: https://github.com/LordOfDragons/dragengine/actions/runs/12201105644/job/34038771603
Github workflow builder did not change (same operating system and same configuration). But for some reason Chocolatey does now try since two days to install "cmake.install 3.31.2" instead of "cmake 3.31.1" which causes the failure. The install command is "choco install cmake ninja 7zip".

The error message indicates this is a local environment issue for the installer, and not a package issue.

But why does it change package? Before it insalled "cmake". Now it tries to install "cmake.install". The "cmake" one is smaller while the "cmake.install" seems to be a huge package. Why the change? It looks as if this change causes all the problems.

But why does it change package?

It didn't change package. cmake installed cmake.install for the previous version too.

Before it installed "cmake"

It still does.

Now it tries to install "cmake.install"

It always did.

Why install a different package than requested?

It didn't. You asked it to install cmake. cmake.install is a dependency of the cmake package. This has always been the case. Dependencies are a fundamental of package management. If you are going to use them, I would suggest you understand that part. That is said with respect and not sarcasm as it may come across in text.

It looks as if this change causes all the problems.

There has not been a "change". The previous version was the same.

I disagree with "There has not been a "change".". Obviously there has been a change. According to version history of the cmake package (both the "cmake" and "cmake.install" one) there has been a version upgrade 2 days ago. Since then the build fails. So no, there has been a change and it directly caused the breaking. The question is now "why" did it break the build. The only thing I could notice is that a different package is installed. The run log of the working build shows "cmake" being installed and the download is rather small. The run log of the broken build shows "cmake.install" being installed and the download is very large (takes very long to download). So something is inherently different but I don't know the chocolatey system to figure out what causes all these problems.

We're going around in circles.

I disagree with "There has not been a "change".

There has been no change to the package. The software has obviously changed.

Obviously there has been a change.

As I have said, the package has not changed. But if it is obvious, please let me know what the change is.

To make it a bit clearer this is what I see in the working build before the upgrade:

cmake v3.31.1 [Approved]

Now the broken build run:

cmake.install v3.31.2 [Approved]

They are not the same package. cmake.install package for version 3.31.1 is 58.7MB (I just downloaded it) and for version 3.31.2 it is 58.7MB (I just downloaded that too).

Personally I would conclude from this that something is wrong with the package.

Again, respectfully, you've already said you "don't know the chocolatey system". I have also installed the package and provided a screenshot as proof that it works
As I mentioned previously, the error message indicates this is a local environment issue for the installer, and not a package issue.
WARNING: Generic MSI Error. This is a local environment error, not an issue with a package or the MSI itself - it could mean a pending reboot is necessary prior to install or something else (like the same version is already installed). Please see MSI log if available. If not, try again adding '--install-arguments="'/l*v c:\cmake.install_msi_install.log'"'. Then search the MSI Log for "Return Value 3" and look above that for the error.

I want to highlight a section from that error message: This is a local environment error, not an issue with a package or the MSI itself.
To prove the package is fine, I just installed it:

I have:

Provide confirmation that the cmake package and it's dependencies work for both 3.31.1 and 3.31.2.
Highlighted that the error you have clearly states it is not a package issue, but a local environment one.
I have given you the sizes of the packages that are part of the cmake dependency chain.

There is nothing more I can do. I appreciate you will be unhappy with what I've told you, but there is nothing more I can do.
Before responding again, please:

Read the very first comment](https://github.com/chocolatey-community/chocolatey-packages/issues/2591#issuecomment-2525653705) and note the part about it being a community repository, and you are expected to do your part.
Perform the baseline of troubleshooting you would normally do. I don't see that it has been done for this.

Output from the MSI logs:
2024-12-08T20:15:08.2926075Z MSI (s) (34:78) [20:14:43:181]: SOURCEMGMT: Trying source C:\ProgramData\chocolatey\lib\cmake.install\tools\.
2024-12-08T20:15:08.2927196Z MSI (s) (34:78) [20:14:43:181]: Note: 1: 2203 2: C:\ProgramData\chocolatey\lib\cmake.install\tools\cmake-3.31.1-windows-x86_64.msi 3: -2147287038
2024-12-08T20:15:08.2927542Z MSI (s) (34:78) [20:14:43:181]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
2024-12-08T20:15:08.2928000Z MSI (s) (34:78) [20:14:43:181]: Note: 1: 1706 2: -2147483647 3: cmake-3.31.1-windows-x86_64.msi
2024-12-08T20:15:08.2928940Z MSI (s) (34:78) [20:14:43:181]: SOURCEMGMT: Processing net source list.
2024-12-08T20:15:08.2929767Z MSI (s) (34:78) [20:14:43:181]: Note: 1: 1706 2: -2147483647 3: cmake-3.31.1-windows-x86_64.msi
2024-12-08T20:15:08.2930625Z MSI (s) (34:78) [20:14:43:181]: SOURCEMGMT: Processing media source list.
2024-12-08T20:15:08.2931449Z MSI (s) (34:78) [20:14:44:229]: Note: 1: 2203 2:  3: -2147287037
2024-12-08T20:15:08.2932106Z MSI (s) (34:78) [20:14:44:229]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
2024-12-08T20:15:08.2932885Z MSI (s) (34:78) [20:14:44:229]: Note: 1: 1706 2: -2147483647 3: cmake-3.31.1-windows-x86_64.msi
2024-12-08T20:15:08.2933723Z MSI (s) (34:78) [20:14:44:229]: SOURCEMGMT: Processing URL source list.
2024-12-08T20:15:08.2933967Z MSI (s) (34:78) [20:14:44:229]: Note: 1: 1402 2: UNKNOWN\URL 3: 2
2024-12-08T20:15:08.2935153Z MSI (s) (34:78) [20:14:44:229]: Note: 1: 1706 2: -2147483647 3: cmake-3.31.1-windows-x86_64.msi
2024-12-08T20:15:08.2935400Z MSI (s) (34:78) [20:14:44:229]: Note: 1: 1706 2:  3: cmake-3.31.1-windows-x86_64.msi
2024-12-08T20:15:08.2935952Z MSI (s) (34:78) [20:14:44:229]: SOURCEMGMT: Failed to resolve source
2024-12-08T20:15:08.2936806Z MSI (s) (34:C0) [20:14:44:229]: Note: 1: 1714 2: CMake 3: 1612


Rails 5 alias_method_chain deprecated

Hi!
Testing Rails 5 with rails_admin and i got this message when running the app:
DEPRECATION WARNING: alias_method_chain is deprecated. Please, use Module#prepend instead. From module, you can access the original method using super. (called from singleton class at /home/vagrant/.rvm/gems/ruby-2.2.5/bundler/gems/rails_admin-122cbf0b4fdd/lib/rails_admin/adapters/mongoid/extension.rb:14)
If i understood it correctly you have to move around the code to fix this deprecated message.
Would love if this could be fixed.

+1

+1

Any feedback on this? Still getting this.

MongoID already fixed this a year ago

#2864 opened