Vendor pull regression

Describe the Bug
When there are traverse path in vendor URI atmos vendor pull fail with error
FatalError{Underlying: error while running command: exit status 1; URI cannot contain path traversal sequences}
The regression introduced in version 1.130.0
Expected Behavior
atmos vendor pull should finis successfully
Steps to Reproduce

Use atmos version 1.130.0
Create vendor.yaml with following content

apiVersion: atmos/v1
kind: AtmosVendorConfig
metadata:
  name: fixtures
  description: Atmos vendoring manifest
spec:
  sources:
    - component: "account-map"
      source: github.com/cloudposse/terraform-aws-components.git//modules/account-map?ref={{.Version}}
      version: 1.520.0
      targets:
        - "components/terraform/account-map"
      included_paths:
        - "**/*.tf"
        - "**/*.md"
        - "**/*.tftmpl"
        - "**/modules/**"
      excluded_paths: []

    - component: "vpc"
      source: "../../src"
      targets:
        - "components/terraform/vpc"
      included_paths:
        - "**/*.tf"
        - "**/*.md"
        - "**/*.tftmpl"
        - "**/modules/**"
      excluded_paths: []

Run atmos vendor pull

Screenshots
No response
Environment
No response
Additional Context
No response

I'm having the same issue
looks like this broke the parsing:
Run cd atmos/
Vendoring from 'vendor.yaml'
unsupported URI scheme: git::https
Error: Process completed with exit code 1.

when
sources:
      - source: 'git::https://x-access-token:{{env<EMAIL_ADDRESS>

@jamengual your error is related to the new vendoring, but unrelated to the error above.
@goruha We can remove the check for path traversals. Makes sense in the use-case above.


Duplicated API calls

Player profile:

Leaderboards:

Rankings:

This is related to the useAccio() thingy. For example on player profile it's loaded in onMount()
https://github.com/ScoreSaber/ScoreSaber-Frontend/blob/9cf717531ce9bae671c20667b0b74b307bdc4fce/src/routes/u/[playerId].svelte#L56-L66
https://github.com/ScoreSaber/ScoreSaber-Frontend/blob/9cf717531ce9bae671c20667b0b74b307bdc4fce/src/lib/utils/accio/index.ts#L16-L18
and then the reactive page store comes into play:
https://github.com/ScoreSaber/ScoreSaber-Frontend/blob/9cf717531ce9bae671c20667b0b74b307bdc4fce/src/routes/u/[playerId].svelte#L68-L75
...and the data is loaded again.
One of potential solutions is add new field like loadOnMount : boolean to the AccioOptions
https://github.com/ScoreSaber/ScoreSaber-Frontend/blob/9cf717531ce9bae671c20667b0b74b307bdc4fce/src/lib/utils/accio/index.ts#L163-L170
and setting it only where it is actually needed (/api/user@me endpoint, sth else?).

Oh wow, excellent catch. We didn't have the reactive page store functionality until recently so this kind of slipped through undetected, fixing it right now

Every way I've tried solving this has failed so while I'm fixing up parts of the API I'm going to have to take myself off this issue

I can fix it if @Dannypoke03  doesn't have time/is busy with something else. I had previously done a POC as written earlier and that solved the issue. I didn't make a PR because I didn't know if you want to solve it this way or the other.

Had some time to work on it earlier today, just made it a daft PR now #52, if you've got ideas that I missed happy to discuss them over on that

Your implementation of checking the current request in progress is great.
I have one more idea to further optimize the number of API requests. When a player's profile is accessed, the profile data is retrieved on the server side.
https://github.com/ScoreSaber/ScoreSaber-Frontend/blob/b1b59a8c238568d834cd6f92b503548416300836/src/routes/u/[playerId].svelte#L1-L7
But then it is only used as page metadata:
https://github.com/ScoreSaber/ScoreSaber-Frontend/blob/b1b59a8c238568d834cd6f92b503548416300836/src/routes/u/[playerId].svelte#L158-L172
And it could also be passed as initialData to useAccio() and then the client side could skip the first request altogether. What are your thoughts on this?

I played around with it a bit and yes, it works.

Yeah, I'm not surprised that partial hydration is supported to some extent, and yeah that's a rather smart idea to use the metadata request to hydrate some of the pages as well. I'll have some more free time tomorrow to look at an elegant solution to get some partial hydration working on the profile page, but also on other pages where metadata is being loaded in.

The problem with using metadata do hydrate is the metadata request doesn't contain the users session, which right now would admins and ranking team as they see a different version of the data, but could effect more things going forward

This is solvable and svelte kit can be fully SSR, but I'm not sure if it's worth it in this case


Fxpool oracle decimals

Description
Adds a new property fxOracleDecimals to Token entity, and use this new property (instead of a hardcoded decimal) when computing for latestFXPrice.
Motivation
We are updating support of FXPools in the  balancer-sor and our initial changes has been already merged on balancer/balancer-sor#305. In this update, we are adding improvements on the accuracy of the returned values and fix the bug that was found by the sor development team (see https://github.com/balancer/balancer-sor/tree/fx-pool-debug).
fxOracleDecimals will primarily be used by fxpoolMath to ensure that all values are in wei from when we calculate things in the SOR. This will also include support of using our bb-usd oracles for the next version of our FxPool that we will be calling FxMetaPool.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Dependency changes
[ ] Code refactor / cleanup
[ ] Documentation or wording changes
[ ] Other

How should this be tested?
We've already deployed the changes on our subgraph clone here - https://thegraph.com/hosted-service/subgraph/xave-finance/balancer-v2
Simply select "fxOracleDecimals" from the dropdown and run it to see the results.
Checklist:

[x] I have performed a self-review of my own code
[x] I have requested at least 1 review (If the PR is significant enough, use best judgement here)
[x] I have commented my code where relevant, particularly in hard-to-understand areas

dev -> master

[ ] I have checked that all beta deployments have synced
[ ] I have checked that the earliest block in the polygon pruned deployment is block, date/time

[ ] The earliest block is more than 24 hours old

[ ] I have checked that core metrics are the same in the beta and production deployments

Merges to dev

[ ] I have checked that the graft base is not a pruned deployment

I'm deploying this to staging right now -- let you know once it's synced! 🙏


exportToPlantUml throws "JobCancellationException: ScopeCoroutine has completed normally;"

    @OptIn(ExperimentalCoroutinesApi::class)
    @Test
    fun testUML() = runTest {
        val test = makeUML() // throws "JobCancellationException: ScopeCoroutine has completed normally;"
        assert(test != "")
    }

    suspend fun makeUML() = coroutineScope {
        val m = makeM()
        val uml = m.exportToPlantUml()
        return@coroutineScope uml
    }

    suspend fun makeM() = coroutineScope {
        return@coroutineScope createStateMachine(this) {
            setInitialState(state {  })
        }
    }

The above JUnit5 test testUML will throw JobCancellationException for some reason.
It wouldn't if I put val uml = m.exportToPlantUml() inside makeM though.
I'm corrently using the legacy non-coroutine method as the workaround

I think it because scope created here suspend fun makeM() = coroutineScope { and used in state machine here createStateMachine(this) is already cancelled when you call m.exportToPlantUml().
Check this version, please.

Does the scope used by the factory function have to exist throughout the entire life time of the state machine?
If so, how can I save the machine as a variable?

Yes life time of a scope should be equal or longer then machine lifetime. There is no problem with storing machine as variable. Just create your couroutine scope or use standard one (like GlobalScope). The reason of your problem is that you are using coroutineScope function which is not designed for scope creation, but for parallel decomposition of work.
https://kt.academy/article/cc-constructing-scope here you can find samples of scope creation that I mean.

I see, thanks for the info.


Use owner references instead of createdBy/controlledBy annotations

make controller delete/update pdbs, pdbwatcher  only if they are owned by the app

const finalizerName = "my.finalizer.k8s.io"
func addFinalizerToDeployment(deployment *appsv1.Deployment) {
// Check if the finalizer already exists
for _, f := range deployment.GetFinalizers() {
if f == finalizerName {
return
}
}
// Add the finalizer
deployment.SetFinalizers(append(deployment.GetFinalizers(), finalizerName))

}


Graceful 404 Handling

$ sof https://soundcloud.com/ollyjamesmusic/sets/send-your-beatport-receipts-to
Traceback (most recent call last):
File "/usr/local/bin/soundscrape", line 11, in
sys.exit(main())
File "/usr/local/lib/python2.7/site-packages/soundscrape/soundscrape.py", line 100, in main
process_soundcloud(vargs)
File "/usr/local/lib/python2.7/site-packages/soundscrape/soundscrape.py", line 158, in process_soundcloud
hard_track_url = get_hard_track_url(item_id)
File "/usr/local/lib/python2.7/site-packages/soundscrape/soundscrape.py", line 435, in get_hard_track_url
json_response = response.json()
File "/usr/local/lib/python2.7/site-packages/requests/models.py", line 812, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python2.7/site-packages/simplejson/init.py", line 516, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python2.7/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python2.7/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Fixed in 0.27.2


Request for star when new tests are added

Sometimes tests are added to bonefires and my solution did not take them into account. Sometimes it is still OK, but not always. When I go back (for diff reasons) I see it no longer works. It would be cool to have some indication when new coverage was added to bonefires. So I can go back and see if my solution is working or if I missed sth.

All of the curriculum on the site is undergoing constant improvement.  If you just take a look at the closed pull requests for the last week, you'll be amazed.  The fact of the matter is that there are simply too many changes of varying levels of triviality to reasonably track.  So long as you have passed it once, at some given time, that's good enough for us.
Now, we are considering adding some sort of "Updated" flag when there is a significant rewrite of the content, but that has not been confirmed yet.
I'm going to close this as "won't fix".
Happy Coding!


Introduce autoDestroy config option

This introduces a new autoDestroy config option which allows to automatically call wrapper.destroy() when creating a new wrapper instance or by passing in a custom hook function (such as afterEach).
closes https://github.com/vuejs/vue-test-utils/issues/1236

@eddyerburgh Can you please review?

@winniehell, there's an interesting side-effect to this approach. Since this is coupled to the Component constructor, the last component created will not be destroyed (or the autoDestroy callback will not called).
This might not be a problem, but it's a quirk that's probably worth highlighting in the docs. 🤷♀

but it's a quirk that's probably worth highlighting in the docs

@souldzin Absolutely! Thank you for reminding me! :bowing_man:

I'm not sure how to fix https://github.com/vuejs/vue-test-utils/pull/1240#discussion_r286564435, so I'm going to close this. I have suggested an alternative approach in https://github.com/vuejs/vue-test-utils/issues/1236#issuecomment-494874313.

new attempt at https://github.com/vuejs/vue-test-utils/pull/1245


iOS a11y text entry is incomplete

This is a follow-up for issue https://github.com/flutter/flutter/issues/12786.
As of https://github.com/flutter/engine/pull/4575 we have partial support for a11y text entry on iOS.
What works:

When "tabbed" or "dragged" into

Text fields are announced as "Text field"
The hint "double tap to edit"
Content of text field is announced
It is announced weather a text field is in edit mode
The insert mode (e.g. character mode) is not announced.

Entered characters are echoed back
After inserting space the last word is echoed back
Swiping up or down moves the courser
Selecting text with reverse-pinch

What remains to be done:

[ ] No announcement when a currently edited text field gains focus via the "tap" gesture
[ ] The position of the cursor is not announced
[ ] Copy&paste does not work when rotor is in edit mode
[ ] TextFields for passwords (secureTextEntry = YES) are not announced as "secure text fields"
[ ] TextFields for passwords (secureTextEntry = YES) announce their content (e.g. "5 bullets") instead of the number of characters

/cc @goderbauer

I just noticed that text fields for secure entry (e.g. Passwords) are also not announced correctly on iOS even though we set secureTextEntry = YES on the UITextInput. Added two points for this to the bullet list above.

Issue replicable on latest stable (1.20.3)

flutter doctor -v
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.20.3, on Mac OS X 10.15.2 19C57, locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 3.6)
[✓] Connected device (1 available)

@chunhtai Is this old issue on your radar for accessibility?

No, I am not aware of this issue, The voice over is interacting with the text inputplugin, not sure why it is not working, needs more investigations.

What remains to be done:

[ ]  No announcement when a currently edited text field gains focus via the "tap" gesture
[ ]  The position of the cursor is not announced
[ ]  Copy&paste does not work when rotor is in edit mode
[ ]  TextFields for passwords (secureTextEntry = YES) are not announced as "secure text fields"
[ ]  TextFields for passwords (secureTextEntry = YES) announce their content (e.g. "5 bullets") instead of the number of characters

Verified above features using latest stable and code sample as provided earlier, below is the latest behavior of each:

No announcement when a currently edited text field gains focus via the "tap" gesture

This sometimes work and sometimes doesn't. When it works, it reads textfield is editing, character mode, insertion point on end. If we move the cursor to the start of the editing text, it reads textfield is editing, character mode, insertion point at start.

The position of the cursor is not announced

Currently it reads, insertion point at start or insertion point at end depending on the cursor position.

Copy&paste does not work when rotor is in edit mode

This still persists.

TextFields for passwords (secureTextEntry = YES) are not announced as "secure text fields"
[ ]  TextFields for passwords (secureTextEntry = YES) announce their content (e.g. "5 bullets") instead of the number of characters

These still persists as mentioned.
Based on the verification and indifferent behavior observed, I'll keep the issue open and update labels to reflect current and correct status of this issue.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.19.6, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.19.6 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 54e66469a9 (6 days ago), 2024-04-17 13:08:03 -0700
    • Engine revision c4cd48e186
    • Dart version 3.3.4
    • DevTools version 2.31.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.22.0-14.0.pre.67, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.22.0-14.0.pre.67 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 1a905d508d (20 hours ago), 2024-04-21 06:44:23 -0400
    • Engine revision 75ca2195c9
    • Dart version 3.5.0 (build 3.5.0-83.0.dev)
    • DevTools version 2.35.0-dev.8
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.


fix(avoidance): support right hand traffic

Description
~:arrow_down: This must be merged before this PR.~
~https://github.com/autowarefoundation/autoware_launch/pull/223~
For now, part of the avoidance module's target filtering logic depends on left-hand traffic, so there is a issue that the ego could not avoid right side parked-vehicles in right-hand traffic environment.
In this PR, the avoidance module supports right-hand traffic, and it is able to avoid right side parked-vehicles.
Test perform
detect the left side stopped vehicle as parked car

detect the right side stopped vehicle as parked car

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@zulfaqar-azmi-t4 @mitsudome-r I fixed following issue, so could you review this PR? Thanks in advance :pray:
https://github.com/autowarefoundation/autoware.universe/issues/2896

NOTE: :arrow_down: This PR is no longer needed.
https://github.com/autowarefoundation/autoware_launch/pull/223

Evaluator result
[TIER IV INTERNAL LINK] Baseline 875/877
[TIER IV INTERNAL LINK] This PR 875/877

Tested with two map with difference lane width. It works nicely!


monocle-law holding us back

The most recently published version of monocle-law (1.2.2) is built against discipline 0.4, which in turn is built against specs2-core 3.6 and scalacheck 1.12.4, both of which are binary incompatible with everything recent.
discipline 0.5 (the version seen at the repository head) jumps to 3.7.3/1.13.1, but an even better target would be the current discipline 0.7, which is specs2 3.8.5 and scalacheck 1.13.2.
New artifacts would be greatly appreciated - thanks.

Oh, I should also mention that specs2 3.8.5 is built against scalaz 7.2.6, but the monocle repository currently has scalaz at 7.3.0-M3. So if you do build new artifacts it would be great if the scalaz version were consistent with the dependencies.

Sure, I started to prepare a PR to release 1.3.0 with the requested dependency upgrade. I was hoping to wait for scalaz 7.3 before breaking binary compatibility but we can very well release 1.4.0 once scalaz is available.
Could you please check the PR to see if you're happy with the dependencies?

@paulp 1.3.0 is on its way to maven central, please tell me if you encounter any issue

@julien-truffaut Thanks a lot. Unfortunately as an ecosystem we seem to really enjoy busywork. It turns out scalaz-scalacheck-binding 7.2.6 is built against scalacheck 1.12.5. This takes the number of workable version combinations for the matryoshka dependencies down to zero. We will have to break some dependencies to make progress.

Arf I should have released an RC to check that.
Yesterday when I tried to upgrade argonaut to monocle 1.3.0, it seems that the scalaz tests passed (but not the cats ones), maybe you could exclude scalacheck from scalaz-scalacheck-binding, see:
https://github.com/argonaut-io/argonaut/pull/249
https://github.com/argonaut-io/argonaut/blob/57851043c86869c7ae11ed498f6dbc7b2015f405/project/build.scala#L21
Otherwise, it is worth to ask scalaz to release a scalaz-scalacheck-binding for scalacheck 1.13.x

@julien-truffaut See my comment there - I find it improbable this problem can be overcome with exclusions. The die is cast by how the dependencies were built.

it makes sense, so I guess we have to wait for scalaz 7.3 or I can release a monocle 1.4.0-M1 against scalaz 7.3.0-M5 ...

@paulp @xuwei-k cross released scalaz 7.2.7 with scalacheck 1.12 and 1.13. This should fix your issues in matryoshka

@julien-truffaut Thanks a lot.


Search Modal Updates

Accessibility Report
Search Modal has the following issues which affect accessibility:
Aria Role & Labels Missing

Aria role is missing (lets the screenreader know that it is interacting with a modal): The element that serves as the dialog container should have a role of dialog.

Aria labels missing for screenreader to announce that the user is interacting with a modal. The dialog should have either:
- A value set for the aria-labelledby property that refers to a visible dialog title.
- A label specified by aria-label.

- Optionally:
 aria-describedby enables screen readers to announce the description along with the dialog title and initially  focused element when the dialog opens, which is typically helpful only when the descriptive content is simple and can easily
be understood without structural information.

Screenreader Issues

Inconsistent tabbing behaviour whilst interacting with modal

Screenreader jumps back onto page 'behind' modal after reference input. (While the modal dialog is active, the contents obscured by the modal dialog should be inaccessible to all users. This means that the TAB key, and a screen reader’s virtual cursor (arrow keys) should not be allowed to leave the modal dialog and traverse the content outside of the dialog)

Related Articles / Potential Fixes:
The dialog container element gets aria-modal set to true.

https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal/
https://www.tpgi.com/the-current-state-of-modal-dialog-accessibility/
https://developer.yoast.com/blog/the-a11y-monthly-making-modals-accessible/
https://www.youtube.com/watch?v=JS68faEUduk

Thanks Carina.
As with some of the other issues this should be addressed by PR https://github.com/substrate-developer-hub/substrate-docs/pull/1210


Outdated credential information + version

Hello,
With the current fine-grained controls, I cannot seem to setup a proper credential for this to run. I can only do it if I allow complete access, but the old "devices" settings is now "devices:core" and it no longer works with just that.
Also, for some reason, if not specified, the action uses a version 1.42 instead of the most updated one. Shouldn't it use the latest available version via default?
Thanks!

Same issue here

Hi! You don't need devices:core, you need auth_keys.


Instead of opening application directly, Branch.io takes me to the App Store

Hi, I've been using branch.io for almost 2 years. There was a requirement from client that the app should directly open instead of taking the user to the App Store.
I updated the plugin and Android started working. But IOS do not.
In xcode I can see all the configurations in my info.plist. Also I have configured everything in the branch dashboard.
Note: I'm using branch.io old url i.e. bnc.lt.

Hello,
Unfortunately, the bnc.lt link domain has been and will continue to be fazed out. It is a legacy link domain which has been replaced by app.link. There is a good chance that your AASA entry for bnc.lt has been removed which will break your app's ability to deep link directly into the app using Universal Linking. Branch has emailed all of our partners last year regarding this change. I apologize for any inconvenience it has caused.
The good news is you can switch to an app.link link domain on your Branch Dashboard. Whenever you configure you config.xml for Branch, you will need to include both your new app.link link domain as wells as your bnc.lt link domain.
Thanks,

Thanks @ethanneff.
I'm confused about one thing, if I change my link domain from bnc.lt to app.link, will this break all my existing links that are based on bnc.lt? My application is already published on app store, and we've many customers who are using this.
What will happen if:

I change my link domain from bnc.lt to ___app.link
I update the cordova plugin to the latest version and also update its code accordingly

Hello again,
Since your URI Scheme is not changing in your migration from bnc.lt to app.link, your old links will continue to work. Depending on how you created the bnc.lt links, they might navigate to your fallback_url or default_url you have set on your Branch Dashboard. The good news is as soon as the user opens the app, then the deep link data will pass through.
Besides switching to app.link, you will also need to update your Branch SDK as well. This will enable Universal Linking for your app (clicking will open the app directly instead of first redirecting to a browser).
I would recommend the following:

update your Branch SDK
configure your config.xml for Branch to include both bnc.lt and app.link
[switch] to app.linkon your Branch Dashboard (https://dashboard.branch.io/link-settings)
test universal linking with an app.link from your Branch Dashboard
submit your app to the App Store/Google Play Store
create app.link links for all your new campaigns on the Branch Dashboard

Thanks,

So this means the data will still pass through using bnc.lt domain after switching to app.link domain and will also take me to the app store (my app page). I'll get back to you soon once I'm done with it tomorrow.
Thanks a lot @ethanneff...

Hi,
@ethanneff when I tried to switch to .app.link domain, it warned me that the links created with bnc.lt domain, will no longer work. Please see the attached image.
Thanks

Hello again,
I have just spoken with my infra team and this error message on the dashboard is incorrect. Your old bnc.lt links will continue to navigate to (URI Scheme) and pass data into your app (Deferred Deep Linking).
I am not too sure if you will be able to change from bnc.lt to app.link on the dashboard due to some UI constraints (related to the incorrect dashboard error message). If this is the case, can you please email<EMAIL_ADDRESS>with your Branch Key (https://dashboard.branch.io/account-settings/app) and the app.link link domain you want to change to? We will make the migration for you.
Thanks,

Nice. I'll try to change from bnc.lt to app.link, if it does not allow me to change, I'll email at support email address.
Should I mention something related to my problem in that email or only the branch_key is sufficient?
I'll try it in the morning and will get back to you on this.
Thanks,

Hello @ethanneff ,
As you mentioned that I will not be able to change the link domain, so when I tried it wasn't really changing. I emailed at support email address, and they updated.
Now the serious problem with me is my links with new domain and old domain, both are not working on old android application which is already published on play store. Its critical, please let me know what I'm missing?
Although they are taking me to the app store, but when I open my application, it do not pass data.
Thanks,

Branch.io API is returning 400 error with this response:
{
"error": {
"has_nfc": "wrong field type",
"screen_height": "wrong field type",
"has_telephone": "wrong field type",
"screen_width": "wrong field type",
"screen_dpi": "wrong field type",
"bluetooth": "wrong field type",
"update": "not a valid option"
}
}
Please also have a look at attached image.

Hi @ethanneff ,
Thanks for your support and help. My both old and new link domains are now working absolutely fine as you told me.
Thanks


transifex: Sort dirs and files alphabetically

This is to ensure that the resulting .tx/config file will have files in alphabetical order. Right now it seems to be kinda random.

Thanks a lot!


[similarity] Ignore scheduled posts and convert to LateTask

First of all, apologies for the messy PR. Most changes were due to black formatting. I didn't see any guidelines on linter or a contributor manifest but wanted to make sure it's PEP8 compliant.
Main changes:

make similarity respect scheduled posts in similarity.py in line 49 or 52 respectively using post.publish_later.
Change Task to LateTask to have it run after all the posts are rendered (and the folders are created) line 35, 39 in similarity.py and 6 in similarity.plugin

@Kwpolska hey, here's the PR. The checks failing seems outside of my control for now, but happy to work on it when the checks don't error out during setup.

Thanks for fixing this!

First of all, apologies for the messy PR. Most changes were due to black formatting. I didn't see any guidelines on linter or a contributor manifest but wanted to make sure it's PEP8 compliant.

FYI, we use flake8 for our linter, balck is sometimes not compatible with flake8 — I fixed one such thing. Quite frankly, black did a terrible job at formatting this file, mainly due to the line length limit — we’re more liberal than that, and in my experience, black becomes readable past 100 and even better around 120 characters per line.

Ah that's fair. Thanks for the fix!


Store all attributes changes when a feature is edited until it is saved

It will fix https://github.com/CartoDB/cartodb/issues/11010.
STR

Create a map of lines|points|polygons (take a dataset with several columns with data please).
Try to edit a feature.
Change the geometry (move the point, or any vertex of the line|polygon).
Edit any field of the feature form.
Save the changes.
Map should be refreshed.

cc @matallo

👏 👏 👏

Don't remove the branch when it is done.


Confusion about events, and possible payloads

I'm having a little trouble wrapping my head around how events are used in the visualizer and code editor. If I needed an event with a payload, for example passing a value that needs to be used by the next state, how could I accomplish that? I see that transitions can have actions, but I'm not sure how to get the event to hold something that the state can then read.
I likely am completely misunderstanding UML state machines, so please forgive me for the rookie question, and thanks in advance for your patience.

@digiexchris thanks for looking into webhme-hfsm! I hope you found the info you needed in how to pass data with events. I'm sorry the documentation isn't fully up to date, I should go through and update it sometime 😅

I did, thank you! I had to play with it a bit, I saw that after generating the code, there are event data objects I can add things to.


withdraw popup update

Is your feature request related to a problem? Please describe.
on the withdraw popup, we would like to remove the initial value and only show the claimable amount for the user.
current bug:
we display claimable value under the "fully protected value"/
design update:
https://www.figma.com/file/3yED7o7TgoLwoEjV2EkRLL/Bancor-V2?node-id=2228%3A0
Describe the solution you'd like
following updates:

remove the "initial stake" amount and only keep the "claimable" amount
make sure we use the "claimable value" and not initial/fully protected value for the position

@Velua please see if we can fix bug part first thing

current bug:
we display claimable value under the "fully protected value"/

Are we sure? They look correct on my end. Can you send a screen shot?
The Figma link doesn't appear to work, just goes to a withdraw page instead.
I've removed the column and brought the pool logos over, available to check out in the linked PR.

this is the data from the protection table.

this is where the error is, on the withdraw popup. you can see that the text says "fully protected value" but shows the claimable one instead.

this is the updated mockup.  display only claimable value on the top part.

Ohhh my bad, completely misunderstood. We'll keep initial stake on the protected table then?

yes, only updating the information on the withdraw popup

seems you have removed the "initial value" from the protection table.
this is not the task. protection table should stay as is.

New branch is up for this one, though investigating an discrepancy between the table amount version and the withdraw page one.

flow seems fine.
i was able to see the issue you have mentioned with diff values on the protection table and withdraw popup.

@Velua the diff is the rewards on the position.
values are fine.

on the withdraw popup, please add an info icon with this:
tool tip text: Claimable value does not include earned liquidity mining rewards. You can withdraw or re-stake rewards from the Protection screen, by clicking “Withdraw” in the rewards widget.


Add index to select

The mapper used by select should receive as argument the index of the element that is being mapped, in addition to the actual element being mapped.

Thanks for bringing this up @mstykow 🙏  great point, I'll release a fix with this today.

This is now available in v10.3.0 🎉

Awesome! Thanks for adding that so quickly @rayepps.


Rectify Missing Dataloader Preparation Call in PaddingFree Plugin Method

Description
This PR fixes a missing dataloader preparation call in the PaddingFree Plugin that will cause num optimization steps in distributed experiments to be computed wrongly.
With this fix, the relative performance improvement between padded vs padding-free approximately matches for

FMS-Acceleration PaddingFree plugin, 24%
Natively supported padding free in Transformers, 26%

ORCA Math 20K Subset - 1 Epoch
Transformers

Model
DataProcess
Grad Accum
Per Device Batch Size
Num Devices
Time
Throughput (token/s) / device

Mistral-7B
Transformers Padded
2
4
8
812
1216

Mistral-7B
Transformers Native PaddingFree
2
4
8
596
1658

FMS-Acceleration Padding-Free Plugin

Model
DataProcess
Grad Accum
Per Device Batch Size
Num Devices
Time
Throughput (token/s) / device

Mistral-7B
Padded-Longest
2
4
8
818
1208

Mistral-7B
PaddingFree Plugin
2
4
8
621
1568

Whats the difference between "Padded-Longest" and "Transformers Padded"?


How can I close Modal by clicking overlay?

Just a question :)

Hi!
You should set shouldCloseOnOverlayClick attribute of your Modal to true.
<Modal
         closeTimeoutMS={0}
         isOpen={....}
         onRequestClose={....}
         shouldCloseOnOverlayClick={true}  // that's it!
         style={....} >
                  ...your content
</Modal>

Heh it mentions this in the testing section for some reason (I wasn't looking there cause I'm not running tests) but it says By default the modal is closed when clicking outside of it (the overlay area). If you want to prevent this behavior you can pass the 'shouldCloseOnOverlayClick' prop with 'false' value. so isn't this a bug then? I'm certainly not setting it to false.

nm onRequestClose needs to be defined as well!

PS: Obviously my brain was fried yesterday and I didn't RTFM well - sorry!


Speaker icon

For text to speech scenarios, an icon would be great, such as this:

We have Codicon.unmute, which needs an alias, but should work for this case.

Works great.


Add an option to disable default styles

Hi. Once again thanks for creating this editor. Its very cool!
I would like to disable tailwind styling. Is it possible? Can prop like disableStyling can be added?
Thanks!

https://novel.sh/docs/quickstart#anatomy we no longer ship with styling


Event tracking based on date

If date == X add d parameter with generated code. Similar to badge tracking.

Implemented as part of https://github.com/josephrkramer/batuu-scanner2/issues/111


[Bug]: Colour picker field adds unnecessary brackets when switching from non-JS to JS mode

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Colour picker field of a nested entity like a column on a table widget appears with extra brackets when toggled from non-JS to JS mode
Steps To Reproduce

Add a button widget and set store value function like: {{storeValue('colour','#4338ca')}}
Drop a table widget and change table background using appsmith.store.colour
On the vanilla table widget, modify one of the columns to a different type, like change text to checkbox or text to button
Now toggle the background field as seen in the video attached and observe the extra bracket appear

Public Sample App
No response
Issue video log
https://www.loom.com/share/670a99b24b764eae8d55b74473f95a14
Version
Cloud

This looks like a table widget bug for me, @aswathkk can you check once just to make sure it's not something on the property pane


Very long output string as filename of screenshot output

Capybara-Screenshot is giving me a very long (>220 000) string of random characters in the terminal output:
[Screenshot]: tmp/screenshots/failures_r_spec_example_groupsspec_name270.png
]1337;File=name=ZmFpbHVyZXNfcl9[+ 200 000 additional characters...]
I tried squelching it by adding the following to

before(:each type: :system) in my support/system.rb

Capybara::Screenshot::RSpec.add_link_to_screenshot_for_failed_examples = false
But I am still getting it in my test output.  Is this expected behaviour?

resolved this by replacing:
gem 'chromedriver-helper'
with
gem 'webdrivers', '~> 3.0'


SRA file format support

@mshukla1 wanted me to throw a ticket up here for @levinas to record the support request from @ARWattam
The idea is to auto-convert SRA formatted files into a PATRIC fastq/reads object to reduce the overhead required of the user.
This would be a post-upload triggered conversion to fastq using SRA format files.
This would be especially handy when/if we get URL based uploads working.
We can use this tool for the conversion http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=toolkit_doc&f=fastq-dump

@ARWattam @mshukla1 @ARWattam
Are there SRA formatted files that are not in SRA?
If not, should we just let users enter SRA ID rather than re-upload their own downloaded .sra files? The backend can download the files directly from SRA using fastq-dump.

Not that I'm aware of. Sounds like a good solution to me. That would bring
it into the realm of a URL driven uploader. Which we also need/want.
On Mon, Nov 30, 2015 at 8:31 PM, Fangfang Xia<EMAIL_ADDRESS>wrote:

@ARWattam https://github.com/ARWattam @mshukla1
https://github.com/mshukla1 @ARWattam https://github.com/ARWattam
Are there SRA formatted files that are not in SRA?
If not, should we just let users enter SRA ID rather than re-upload their
own downloaded .sra files? The backend can download the files directly from
SRA using fastq-dump.
—
Reply to this email directly or view it on GitHub
https://github.com/PATRIC3/patric3_website/issues/554#issuecomment-160817970
.

Assembly service now allows users to just provide an SRA run accession as input. The service gets relevant read files from SRA and does the assembly.


Image upload front end + back end

A UI to allow users to upload a weedcoco bundle.
Should involve validating the uploaded data/info to make sure that it is a valid weedcoco.
Upon upload trigger the elastic indexing and thumbnailing?

I think the depositing/indexing needs the user to click "submit" or "deposit" after everything is validated.


Only try parent for NotFound errors

This should fix  #24, if this behavior is what we want.
I'm not sure if this is the cleanest way to implement it, but it should work with the error-chain errors.
I was also thinking of doing it like
Err(e) => {
    if let Error(ErrorKind::Io(inner), _) = e {
        if let std::io::ErrorKind::NotFound = inner.kind() {
            return try_parent(parent, filename);
        }
    }
    Err(e)
}

if that would be better.

Yes, I think this is the behaviour we want.
I'm wondering if it would be possible to have from_filename call try_parent directly, instead of calling from_path and then try_parent? That way, we can have the error handling logic in just one place.
Feel free to merge with or without that, though.

That sounds like a good idea! Would it make sense to then rename try_parent to try_dir_with_parents maybe?

Ok, I guess I will merge this now! Should work the same as before the last commit, just with the reduced logic duplication and reusing one allocation for the "dir" path in try_dir_with_parents.


fixed regex boundary escaping

this fixes issues with emails that have special characters in them that collide with regex special characters.

Hi @jschoch, I'm a bit confused. Could you provide examples of the issue you are mentioning ? I also don't understand why the test files where changed. Could you provide additional tests targeting your specific issue ?

if the boundary has a "?" in it it crashes
boundary="NextPart+5?29\786cba680f4cda8c47a92f2d7e09d"
the string is not escaped so it parses the ? as a regex special character.
example:
iex(1)> boundary="_NextPart_+5?29\786cba680f4cda8c47a92f2d7e09d"
"_NextPart_+5?29786cba680f4cda8c47a92f2d7e09d"

iex(2) body = "foo  --_NextPart_+5?29\786cba680f4cda8c47a92f2d7e09d  bar baz --_NextPart_+5?29\786cba680f4cda8c47a92f2d7e09d"
"foo  --_NextPart_+5?29786cba680f4cda8c47a92f2d7e09d  bar baz --_NextPart_+5?29786cba680f4cda8c47a92f2d7e09d"

#   this is not split
iex(3)> body |> String.split(~r"\s*--#{boundary}\s*")
["foo  --_NextPart_+5?29786cba680f4cda8c47a92f2d7e09d  bar baz --_NextPart_+5?29786cba680f4cda8c47a92f2d7e09d"]

iex(4)> escaped_bound = Regex.escape(boundary)
"_NextPart_\\+5\\?29786cba680f4cda8c47a92f2d7e09d"

# this is properly split
iex(5)> body |> String.split(~r"\s*--#{escaped_bound}\s*")
["foo", "bar baz", ""]

Alright, that's small enough for me to accept it as is. I want to deal with the codepagex dependency update before publishing though.


Refactor Upload-Metadata extract

Related to https://github.com/ankitpokhrel/tus-php/pull/82
This PR addresses the issue when Upload-Metadata has multiple metadata separated with commas as per Tus Protocol for Upload-Metadata

Thanks @samundra, I like it.  I had to solve for myself what tus-php was trying to do asap, this is a nice expansion of the idea.

Thanks @samundra and @drastik !


Potentially harmful cookie usage

After this commit, there is no more verification whether a cookie is public in com/google/refine/extension/gdata/GDataImportingController.java, line 198.
This would allow someone with access to user browser to access user spreadsheets without proper authorization.

@wetneb Do you have thoughts on this ?  or do we close this as a "won't fix" citing "such and such reasoning" ?

This issue is not clear to me. Yes, if someone can access a user's cookies, then they will be able to steal the authentication and access user spreadsheets. This is true for most services which use cookie-based authentication (which is the default).
The issue mentions a verification whether a cookie is public, but I am not sure what they mean, since there is no notion of visibility on cookies as far as I am aware (all cookies are private to the website that issued them). The commit linked to deals with changes of visibility for spreadsheets, which is a different thing.
So as far as I am aware this issue does not make sense.


Use a new slugify function

TL;DR
Replace github-slugger with lodash.kebabcase

Sometimes you need to create tags with emojis like "🌱-my-tag" as shown in the screenshot below. With github-slugger the emoji will be removed from the tag and will be shown as -my-tag instead. github-slugger docs

Live example of this change: https://www.alejandro.dev/posts/building-the-wrong-thing/

LGTM
Thanks for your contribution.


Typo

ints was there which will make confusion

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the master branch of freeCodeCamp.
[ ] None of my changes are plagiarized from another source without proper attribution.
[ ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Trivial, but LGTM.

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.


onUse doc

(https://discordapp.com/channels/507304429255393322/523251999899385875/662295823899557899)

I suggest moving description on success/consume/pass/fail to action result and just state a successful result simply prevents the item's use call.

Now that #1086 is merged, are these docs still necesssary?

Moved to AbstractBlock.

Fudge if you're still alive blink twice

Gonna close this given sheer amount of changes requested, lack of update, and that ActionResult already have docs.


[BUG] Bugfix PE-dry run. See issues attached

Codecov Report

Merging #207 (456d2f0) into master (1ca9eb4) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #207   +/-   ##
=========================================
  Coverage     68.50%   68.50%
  Complexity      747      747
=========================================
  Files           116      116
  Lines          2375     2375
  Branches        278      278
=========================================
  Hits           1627     1627
  Misses          634      634
  Partials        114      114

Impacted Files
Coverage Δ

...java/seedu/address/logic/commands/FindCommand.java
100.00% <ø> (ø)

Continue to review full report at Codecov.

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


Openbsd unbreak

unbreak openbsd after #1128
unbreak openbsd after #1151
while here, add KERN_CPUSTATS and increment KERN_MAXID for openbsd

@bors: r+

:pushpin: Commit a1fb747270b7abdb42c4bb5898d0ae368854ac80 has been approved by gnzlbg

:hourglass: Testing commit a1fb747270b7abdb42c4bb5898d0ae368854ac80 with merge af6e4fd2d258c23a33d78262784ff6f2248057f1...

:sunny: Test successful - status-appveyor, status-travis
Approved by: gnzlbg
Pushing af6e4fd2d258c23a33d78262784ff6f2248057f1 to master...


SPICE password

Is there a way to dictate what password is used for the SPICE connection? Or possibly a way to prevent the use of a password altogether?

SPICE password is generated randomly on each VM startup:
https://github.com/Seitanas/kvm-vdi/blob/c9da3c02a1717e3cb5aa5af990ef84714872c31c/KVM/hypervisors/vdi-wrapper#L15
Currently KVM-VDI does not support password-less sessions for security reasons.

I tried replacing that line with 'password,' however, it keeps generating a random password.
I am attempting to get it so I can script out the thin client connecting to the VM. The easiest way to do that is by using a preset password vice a randomly generated one.

It should not generate random if you will put spice_password='password' instead of code above.
Also, you should be able to get password from database if needed.  After VM is up, its SPICE password is stored in vms.spice_password table entry.


[Bug]: on video page two video components are showing

Describe the bug

To Reproduce
No response
Expected Behavior
it should show only one video component
Screenshot/ Video
No response
Desktop (please complete the following information)
No response
Additional context
No response

hey @mnnkhndlwl , I want to work on this issue under jwoc. can you assign it to me?

@Laxmankohar assigned

https://user-images.githubusercontent.com/73365025/224271762-7d81146a-62ff-4c95-b8dd-bb7b399ff42b.mp4
@mnnkhndlwl bro, can you please check it and confirm


Getting Error ExpressionChangedAfterItHasBeenCheckedError

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request
[x] question

Hi,
I was checking one example
https://stackblitz.com/edit/angular-kzci2z?file=app%2Fmultiselect-dropdown-type.component.ts

I have made few changes to this example
https://stackblitz.com/edit/angular-bgy1fc?file=app%2Fmultiselect-dropdown-type.component.ts

If you go to inspect elements under console you will see an error saying

"Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked."

what is the cause of this issue? can you please help me to resolve this?

* **Angular version:** 5.0

for a workaround use setTimeout also in you  example, I noticed you have used two way binding which not recommended instead rely on formControl.
@Component({
  selector: 'app-form-multiselect-dropdown-type',
  template: `
    <angular2-multiselect
      [data]="to.items"
      [settings]="settings"
--      [(ngModel)]="selectedItems"
      [formControl]="formControl"
      [formlyAttributes]="field">
    </angular2-multiselect>
  `,
})
export class MultiSelectDropdownTypeComponent extends FieldType {
  selectedItems;
   ngOnInit() {
--     this.selectedItems = [{"id":1,"itemName":"India"},
--                           {"id":2,"itemName":"Singapore"}]
++   this.formControl.setValue([
++     {"id":1,"itemName":"India"},
++     {"id":2,"itemName":"Singapore"},
++   ]);
   }
}

The proper way is to pass the model value from the root component: https://stackblitz.com/edit/angular-xwmtjr?file=app%2Fapp.component.ts.

Thank you for helping..


Chrome killing speech after 15 seconds for long questions

Describe the bug
A clear and concise description of what the bug is.
Chrome kills the speech api after 15 seconds of running
To Reproduce
Play a question that goes beyond 15 seconds
Desktop (please complete the following information):

OS: Windows / Linux
Browser Chrome

Additional Information
Looks like Chrome is set to kill "long running" processes.  Looks like a solution is to create a function to simply pause/resume the speech synthesis every 14 seconds or so that is started when a speech utterance begins and then terminates when the speech utterance ends.

Fixed in 1.2


Added queueing/throttle system

Added throttle system to remove the possibility to get your request dropped, this system is disabled by default and can be set by SetThrottle. A fix for issue #220

Nice. One thing you could add to that is per account queue. Assuming people won't spam requests too much, doing it per access token should work.

The queue is for each instance so every account has its own queue

Yeah, my bad. I miss understood it because the way I use the API is logging accounts in before every heartbeat.
I was doing this because a few days ago, the throttle was not affecting this way, since the last request time was not persistent between sessions.
Now I should consider keeping accounts logged in since there's no benefit in re-logging anymore. This queue will work just fine.

Is there a particular reason why this hasn't been merged yet?


Update reader.go

Added 3 labels to work with GoPro 7

Thanks, without adding those labels, I had this kind of issue though so I think it's good to add them:
./gopro2gpx -i GOPR0001.bin -o tmp.gpx
Error reading telemetry file Could not find label in list: UNIF (554e4946)


Register plugin in Karma?

I'm trying out plugin inject-properties, which needs to register a hook with the framework. I'm already doing a custom bootstrap for the live environment, so it was easy to call
aurelia.use.plugin("aurelia-inject-properties");

But I can't figure out how to do the same in Karma. The setup file only calls initialize() from aurelia-pal-browser. Is there some way to register the plugin for unit tests?

import {Container} from 'aurelia-dependency-injection';
import {Config} from 'aurelia-myplugin';

let noop = () => {};

function getContainer() {
  let container = new Container();
  let config    = container.get(Config);

  config. /*.....*/

  return container;
}

The plugin exposes a configure function, not an injectable object (which matches the skeleton plugin).

I would just import your module and manually call its configure method. You can instantiate a new Aurelia instance of mock it out if you like. It's hard to advise further without knowing some more details.


deduplication of code in the testbase classes

Thanks for your pull request! Unfortunately you forgot to submit the change to Tests.csproj (new file Utils.cs), but I've fixed that already.

Thanks, and sorry!
Still a bit unexperienced with git, next time I will do a complete test with the the master and the pull-request only.


Relative links not resolving properly

The article: AFv1/how-to-migrate-an-application.md, the following links:

Enable AppFog in the Control Portal
Setup Custom Domain for Application
Both links are adding "afv1" when resolving, as in:
https://www.ctl.io/knowledge-base/afv1/AppFog/getting-started-with-appfog.md/
https://www.ctl.io/knowledge-base/afv1/AppFog/setup-custom-domain-for-appfog-app.md/

Trailing / was causing the issue


Add rosdep key 'python3-osrf-pycommon'

Please add the following dependency to the rosdep database.
Package name:
python3-osrf-pycommon
Package Upstream Source:
https://github.com/osrf/osrf_pycommon
Purpose of using this:
This package is used by rosdep2, catkin_tools, ros2cli, etc.
Links to Distribution Packages

Debian: https://packages.debian.org/

https://packages.debian.org/bookworm/python3-osrf-pycommon

Ubuntu: https://packages.ubuntu.com/

https://packages.ubuntu.com/noble/python3-osrf-pycommon

Fedora: https://packages.fedoraproject.org/

https://packages.fedoraproject.org/pkgs/python-osrf-pycommon

Arch: https://www.archlinux.org/packages/

NOT AVAILABLE

Gentoo: https://packages.gentoo.org/

NOT AVAILABLE

macOS: https://formulae.brew.sh/

NOT AVAILABLE

Alpine: https://pkgs.alpinelinux.org/packages

NOT AVAILABLE

NixOS/nixpkgs: https://search.nixos.org/packages

NOT AVAILABLE

openSUSE: https://software.opensuse.org/package/

NOT AVAILABLE

rhel: https://rhel.pkgs.org/

https://packages.fedoraproject.org/

This package is also part of the ros_bootstrap repository: http://repos.ros.org/repos/ros_bootstrap/pool/main/p/python-osrf-pycommon/
Part of osrf/osrf_pycommon#80

I would suggest that we either host this in our bootstrap repository for all of Ubuntu, Debian, EPEL, and Fedora.

We currently carry NO packages in bootstrap for EPEL and Fedora because I'm able to keep those packages up-to-date with minimal latency.
We carry all ros-infrastructure packages in bootstrap regardless of availability in Ubuntu and Debian upstream because we may need to ship bugfix releases and can't currently do that without filing tickets and hoping the package maintainers prioritize our releases.
This package hasn't been updated in bootstrap for a minute, but I plan to remedy that once we get the package in a better state. Once it's up-to-date in bootstrap, it will be in exactly the same situation we see all other critical ros-infrastructure Python packages in.

This package hasn't been updated in bootstrap for a minute, but I plan to remedy that once we get the package in a better state. Once it's up-to-date in bootstrap, it will be in exactly the same situation we see all other critical ros-infrastructure Python packages in.

OK, got it.  So you are asserting that once we do the next release of osrf_pycommon, we should be able to quickly have updated packages for Ubuntu (via the bootstrap repository), Fedora (via the normal Fedora package updates), RHEL (via the normal EPEL package updates), and Windows (via pypi/pip).
In that case, I'm happy with this, and I'll go ahead and approve and merge.


RF predict() returns empty

The RandomForest predict() method currently returns empty DataVectors, and thus appears broken.

This also goes for test_random_forest.cpp, which presumably was working earlier. Assuming that, some recent change has broken RandomForest.predict().

DecisionTree.predict() still seems to work correctly.

Now a compile error on Windows from line 541 in datasets.cpp. Add #include <algorithm> at the top to resolve.


Add common fields

Hello, I have the following problem.
I have type which follows the discriminator pattern. But the type has additional common fields id, title
type ModuleBase ={
  id: string,
  title: string,
  type: ModulType,
};

type ChapterHeadingModule = ModuleBase & {
  type: ModulType.CHAPTER_HEADING,
  heading: string,
};

Now I thought I can combine the two schemas with assign like so:
const moduleBaseSchema: Describe<Omit<ModuleBase, 'type'>> = object({
  id: string(),
  title: string(),
});

const moduleDiscriminatorSchema = discriminator('type', {
  CHAPTER_HEADING: object({
    heading: string(),
  }),
});

const postModuleInputSchema = assign(moduleBaseSchema, moduleDiscriminatorSchema);

But the discriminator schema doesn't have the right shape. If I call validate is an error occurring: TypeError: struct.validator is not a function or its return value is not iterable.
Any ideas hot solve this :)?

Hi!
Thanks for the issue report. I tried to reproduce it but I couldn't quite understand the desired effect.
Perhaps you need to use assign inside the discriminator branch something like the following?
import * as s from 'superstruct';
import { discriminator } from '@birchill/discriminator';

type ModulType = 'CHAPTER_HEADING' | 'OTHER';

type ModuleBase ={
  id: string,
  title: string,
  type: ModulType,
};

type ChapterHeadingModule = ModuleBase & {
  type: 'CHAPTER_HEADING',
  heading: string,
};

const moduleBaseSchema: s.Describe<Omit<ModuleBase, 'type'>> = s.object({
  id: s.string(),
  title: s.string(),
});

const moduleDiscriminatorSchema = discriminator('type', {
  CHAPTER_HEADING: s.assign(moduleBaseSchema, s.object({
    heading: s.string(),
  })),
  OTHER: moduleBaseSchema
});

For my reference, here is a sandbox of the above: https://codesandbox.io/s/elated-moser-1eyxrw?file=/src/index.ts

Hey thank you for your fast reply, I appreciate it a lot. I tried to make the example less complex and watered it down too much in the process.
The Type I actually want to validate looks more or less like this, just more types in the union (the types in the union are modeled after the discriminator pattern:
*** typescript
type Module = (
ChapterHeadingModule |
EditorialModule |
PlaceholderModule
) & ModuleBase;

I love your solution for the fact that it works.
In general I just would love to know, if there is a way that I don't have to write assign(moduleBaseSchema into every discriminator case.
Also is there a way to use Describe with the discriminator() function or how are you solving the type safety issue :)?

Hey thank you for your fast reply, I appreciate it a lot. I tried to make the example less complex and watered it down too much in the process.

Not at all! Thanks for trying out the discriminator utility.

The Type I actually want to validate looks more or less like this, just more types in the union (the types in the union are modeled after the discriminator pattern:
type Module = (
  ChapterHeadingModule |
  EditorialModule |
  PlaceholderModule
) & ModuleBase;

I love your solution for the fact that it works. Just to have asked, is there a way that I don't have to write assign(moduleBaseSchema into every discriminator case?

I see, that makes sense. I'm not sure, but I think it might not currently be possible to have assign() accept a discriminator object since it always produces either a type or an object: https://github.com/ianstormtaylor/superstruct/blob/41d7fdd09a0c0f0291b03357e487420d4ece6b56/src/structs/utilities.ts#L55-L60
Ian suggested I make a PR to add this to superstruct over in https://github.com/ianstormtaylor/superstruct/issues/897#issuecomment-915449301 so once I do that, maybe we can make assign work with discriminator.
For what it's worth, I have often found that Describe doesn't work properly for many complicated cases. As a result, I often use Infer instead. As long as you are not exporting the types as part of a library interface, it might work for you.
For example:

import * as s from 'superstruct';
import { discriminator } from '@birchill/discriminator';

const moduleBaseSchema = s.object({
  id: s.string(),
  title: s.string(),
});

const moduleDiscriminatorSchema = discriminator('type', {
  'CHAPTER_HEADING': s.assign(moduleBaseSchema, s.object({
    heading: s.string(),
  })),
  'EDITORIAL': s.assign(moduleBaseSchema, s.object({
    // editorial-specific fields go here
  })),
  'PLACEHOLDER': s.assign(moduleBaseSchema, s.object({
    // placeholder-specific fields go here
  }))
});

type Module = s.Infer<typeof moduleDiscriminatorSchema>;
type ModuleType = Module['type'];
type ChaperHeadingModule = Extract<Module, { type: 'CHAPTER_HEADING' }>;
type EditorialModule = Extract<Module, { type: 'EDITORIAL' }>;
type PlaceholderModule = Extract<Module, { type: 'PLACEHOLDER' }>;

Alternatively, I often find that I don't need the type field in the different type definitions and so the following is easier:
import * as s from 'superstruct';
import { discriminator } from '@birchill/discriminator';

const moduleBaseSchema = s.object({
  id: s.string(),
  title: s.string(),
});

const chapterHeadingSchema = s.assign(moduleBaseSchema, s.object({
  heading: s.string(),
}));

const editorialSchema = s.assign(moduleBaseSchema, s.object({
  // editorial-specific fields go here
}));

const placeholderSchema = s.assign(moduleBaseSchema, s.object({
  // placeholder-specific fields go here
}));

const moduleDiscriminatorSchema = discriminator('type', {
  'CHAPTER_HEADING': chapterHeadingSchema,
  'EDITORIAL': editorialSchema,
  'PLACEHOLDER': placeholderSchema
});

type Module = s.Infer<typeof moduleDiscriminatorSchema>;
type ModuleType = Module['type'];

type ChaperHeadingModule = s.Infer<typeof chapterHeadingSchema>;
type EditorialModule = s.Infer<typeof editorialSchema>;
type PlaceholderModule = s.Infer<typeof placeholderSchema>;

Thank you so much. Your library literally saved us so much time over here at our company.
I deleted the validation question again, as I found the inferred type which automatically comes with the discriminator function plenty useful. Thank you you nevertheless for your detailed answer.
I think once this discriminator library gains more traction, it would actually be useful to do add the issue to superstruct  but for now I can happily report that I tested the validation and everything works perfectly with the multiple assign approach. Again thank you so much for your insights :heart:

Thank you so much! That's really great to hear!


Version 2.12.0 pushed to Helm repository with CRLF endings

The 2.12.0 Helm chart update seems to be pushed with CRLF endings.
Git repository seems okay.
Expected Behavior
LF line terminators when pushing the Chart to the Helm Repository.
Actual Behavior
CRLF, LF line terminators according to file

Using Helm template

In a repository that pulls the chart via Carvel vendir

This breaks consistency with tooling that monitors Chart updates.

Git warns of changes on every single file e.g

warning: in the working copy of 'charts/keda/templates/cert-manager/keda-tls-certificate.yaml', CRLF will be replaced by LF the next time Git touches it

Steps to Reproduce the Problem

helm template kedacore/keda --version 2.11.0 -n keda > keda.2.11.0.yaml
helm template kedacore/keda --version 2.12.0 -n keda > keda.2.12.0.yaml
file keda.2.11.0.yaml keda.2.12.0.yaml

keda.2.11.0.yaml: ASCII text
keda.2.12.0.yaml: ASCII text, with CRLF, LF line terminators

Specifications

KEDA Version: 2.12.0
Platform & Version: Linux and BSD
Kubernetes Version: N/A
Scaler(s): N/A

I would wait for next releases and make sure to use a proper OS for it ;)

Maybe we can take this issue as a good reason for deploying somehow the charts in a more automated way, WDYT?

Agree, let's track this somewhere


Adding UserAgent

Move logic to options

Object.assign means merging with options which is almost the same thing with moving to options here.


ExoPlayer signals Player.STATE_ENDED with MPD transition from dynamic to static

Version
Media3 main branch
More version details
Main@1ffeafecc374ed82d94ce16fb57c23f99cb78765
Devices that reproduce the issue
Any
Devices that do not reproduce the issue
None
Reproducible in the demo app?
Yes
Use Case Background
Start Over / Catch Up (SoCu) is a use case where live playback is stored by the origin in a rolling buffer that the clients can address within a time window in order to perform a "Start Over", that is re-start live playback of an in-progress linear at the start of the program bounded to the end. This is typically done with a "start-over URL" is a SoCu URL where start_time is in the past and end_time is in the future. The origin will play this as live (dynamic MPD) until the end_time is reached then transition to VOD (static MPD). The VOD is accessible (the "Catch Up" case) for some time after the end_time, always starting as a simple static MPD.
Issue Steps
The steps to recreate the use-case are:

Create a "start-over URL", start playing it.  Player starts live as expected
Seek back in the window to build some buffer back from live.
Wait until program ends (end_time is in the past)

It is expected that once end_time is in the past the MPD becomes static (see background notes below on "Transitioning Live to Static").  Playback should continue and play all the way to the end of the show, with ExoPlayer it transitons to Player.STATE_ENDED as soon as the current buffered media is exausted.
Transitioning Live to Static (On-Demand)
The DASH-IF IOP Working Group on updating the description of how to do this properly in a working group that is updating the IOP "Section 4 Liver Services".   This is in the DASH-IF Interoperability WG, I am a reviewer for this and am looking at how ExoPlayer handles it.
The origin that reproduces this bug is following these guidelines (as currently written).   The basic transiton to static does the following

Period@duration to the on-demand content duration
Period@startTime to 0.
removes all dynamic attributes from the MPD
adjusts SegmentTemplate@presentationTimeOffsetto map the existing segments time to the new period start at 0.

Analysis
Note that the working group has put a "fix" for this in dash.js,  see issue Dash.js issue #3311, this "fix" is far from perfect as the fix does not appear to update the HTMLMediaElement's view of time correctly so seeks are not possible.   For ExoPlayer a much more robust fix is possible as the mapping from Timeline to Period position is completely in control of ExoPlayer code.
My analysis of the ExoPlayer code shows it is handling the update of the period to a fixed duration correctly (setting the duration) but not reseting the mapping to render time correctly (so the current Period Position does not update)
Background
This background material is for readers that are not familure with how ExoPlayer handles position internally.
Positions In ExoPlayer
ExoPlayer maintains position in three coordinate spaces:

Timeline — The Timeline abstracts one or more media items, the current playing Timeline is available to the client to determine a User Facing Position
Window Position — The position relative to the current playing Window, this is the position returned by getCurrentPosition(), as long as an ad is not playing.
Period Position — Stored internally asPlaybackInfo.positionUs,  this is position relative to the current playing Period@startTime for DASH  (note for HLS this is 0 as HLS is "single period".  Most of ExoPlayer internally maintains position in the Period Time coordinate space.   Window Position maps to Period Position via the Period.positionInWindowUs.

As ExoPlayer loads segments and extracts samples from them the actual queued timestamps are adjusted to Period Position as they are, for DASH the position on the sample timeline, actual EPT of the samples is adjusted to Period Position using the presentationTimeOffset when the MediaChunk is queued for loading.   For HLS there is a single Period that starts at time 0, and sample PTS/EPT time is normalized to this time by the timestamp master (selected by the TimestampAdjuster)
User Facing Position
ExoPlayer exposes getCurrentPosition() to the client (UI).  For non-ad playback this is the position relative to the start of the current playing Window.  If the window is "live" (Window.isLive()), then the Window.windowStartTimeMs will be the time since the epoch of the start of the window.  For HLS windowStartTimeMs  comes from the EXT-X-PROGRAM-DATE-TIME, and for DASH it is the availability window
Period Position
ExoPlayer maintains multiple Periods in a set of MediaPeriodHolder objects, these match up with DASH Periods.  The methods toPeriodTime() and fromPeriodTime() map between render position (the Sample Timeline) and Period Position
Suggested Fix
Looking at the code in ExoPlayerImplInternal.handleMediaSourceListInfoRefreshed() IMO the solution is to recoginze the Period Position has changed and update PlaybackInfo.positionUs to match this, note the renderPositionUs would not change and it would be best not to stop and/or flush the renderers as only the mapping has changed not the actual samples and segments.
Logging shows the update is seem (the change to positionInWindow after the new DashTimeline is copied) but this is after the position discontinuity check, here is the change to dynamic is false:
06-10 14:31:01.818 20849 21140 D ExoPlayerImplInternal: window became static
06-10 14:31:01.822 20849 21140 D ExoPlayerImplInternal: call handlePositionDiscontinuity() - periodPositionChanged: false requestedPositionChanged: true
06-10 14:31:01.825 20849 21140 D ExoPlayerImplInternal: before playbackInfo: PlaybackInfo - bufferedPosition: 537398862 position: 537363466 period: [ id: id_PT1717517582S duration: -9223372036854775807 positionInWindow: -537074566] window: [ dynamic: true placehold: false duration: 324296 positionInFirstPeriod: 537074566 windowStartTime:<PHONE_NUMBER>500]
06-10 14:31:01.827 20849 21140 D ExoPlayerImplInternal: after playbackInfo: PlaybackInfo - bufferedPosition: 537398862 position: 537363466 period: [ id: id_PT1717517582S duration: -9223372036854775807 positionInWindow: -537074566] window: [ dynamic: true placehold: false duration: 324296 positionInFirstPeriod: 537074566 windowStartTime:<PHONE_NUMBER>500]
06-10 14:31:01.827 20849 21140 D ExoPlayerImplInternal: renderPosition: 537363466 renderPosition.toPeriodTime: 537363466
06-10 14:31:01.828 20849 21140 D ExoPlayerImplInternal: before copyWithTimeline: PlaybackInfo - bufferedPosition: 537398862 position: 537363466 period: [ id: id_PT1717517582S duration: -9223372036854775807 positionInWindow: -537074566] window: [ dynamic: true placehold: false duration: 324296 positionInFirstPeriod: 537074566 windowStartTime:<PHONE_NUMBER>500]
06-10 14:31:01.828 20849 21140 D ExoPlayerImplInternal: after copyWithTimeline: PlaybackInfo - bufferedPosition: 537398862 position: 537363466 period: [ id: id_PT1717517582S duration: 361000 positionInWindow: -28] window: [ dynamic: false placehold: false duration: 354326 positionInFirstPeriod: 28 windowStartTime: -9223372036854775807]
06-10 14:31:01.829 20849 21140 D ExoPlayerImplInternal: renderPosition: 537363466 renderPosition.toPeriodTime: 537363466
06-10 14:31:02.599 20849 20849 D EventLogger: timeline [eventTime=105.82, mediaPos=537363.44, buffered=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
06-10 14:31:02.600 20849 20849 D EventLogger:   period [361.00]
06-10 14:31:02.600 20849 20849 D EventLogger:   window [354.33, seekable=true, dynamic=false]
06-10 14:31:02.600 20849 20849 D EventLogger: ]

Note this is proved out pretty simply by issuing a seek right after the source update,
06-10 14:52:10.242 20849 20849 D EventLogger: positionDiscontinuity [eventTime=121.31, mediaPos=254.00, buffered=0.00, window=0, period=0, reason=SEEK, PositionInfo:old [window=0, period=0, pos=538644269], PositionInfo:new [window=0, period=0, pos=254000]]
06-10 14:52:10.245 20849 20849 I EventLogger: state [eventTime=121.31, mediaPos=254.00, buffered=0.00, window=0, period=0, BUFFERING]
06-10 14:52:10.274 20849 20849 D EventLogger: isPlaying [eventTime=121.34, mediaPos=254.00, buffered=0.00, window=0, period=0, false]

The pull request pull #1451 basically does this.
Expected result
Media plays to the end.
Actual result
It is expected that once end_time is in the past the MPD becomes static (see background notes below on "Transitioning Live to Static").  Playback should continue and play all the way to the end of the show, with ExoPlayer it transitons to Player.STATE_ENDED as soon as the current buffered media is exausted.
Media
I can send a sample URL with instructions how to set start/end time.
Bug Report

[X] You will email the zip file produced by adb bugreport to<EMAIL_ADDRESS>after filing this issue.

Thanks for the detailed explanation :) I'm still not fully sure I understand everything correctly. Let me rephrase what I understand and maybe you can point out where I got this wrong if needed:

The live MPD keeps updating as usual. It has a period starting at a fixed point in time, but the live window only allows to play the last N seconds or keeps growing to allow 'catch-up'. Notably, the available live window has an offset in the period (which I think is often corresponding to UTC timestamps, but can be arbitrary).
The switch to a static MPD keeps the same period(s), but changes the availability window to cover all the content. Now for the interesting part:

Generally, the assumption is that timestamps in the periods always match to the same content. This I think is the reason the IOP lists "SegmentTemplate@presentationTimeOffset does not change" as a requirement for MPD updates, which is also mentioned in the main ISO 23009-1 (although there is just says "any Representation shall provide functionally identical Segments with the same indices in the corresponding Representation", no mention of presentationTimeOffset).
Contrary to that, you described above that SegmentTemplate@presentationTimeOffset does change and this is also what I can see in your logs (changing positionInWindow despite the same window.durationUs). So I think this also means the same period timestamp no longer corresponds to the same content?
The IOP rules also say that "In a static MPD, the first period starts at the time zero of the MPD timeline.". This is interesting because as soon as you change the type to 'static' it becomes impossible to both start the period at time zero and keep the SegmentTemplate@presentationTimeOffset unchanged.
The new Workgroup proposal tries to fix this conundrum by allowing an update to SegmentTemplate@presentationTimeOffset to let the period start at zero (I think, don't have access to the linked WG document).

ExoPlayer's playback is likely broken by the fact that it keeps its assumption of "same timestamp in period" == "same content". And the proposed fix PR tries to change that by updating the playback position at the point where this specific transition is detected.

If all of that makes sense, I think the fix needs to be in the DashManifestParser or maybe rather in the logic that handles the update in DashMediaSource.

We should definitely not violate the assumption of "same timestamp in period" == "same content". Doing that opens a whole can of worms of potential pitfalls and special cases we might need to add in the future. Your PR for example may cause problems for other non-DASH streams that see a similar dynamic->static update.
Instead, we should be able to keep the old timing model intact and consistent with what ExoPlayer already published. That is, keep the Period.positionInWindow as it was before and only update the duration of the period/window as needed. This still needs some thought to cover cases like re-preparing the player after an error (which likely needs to keep this offset that is no longer in the MPD at all).

Could you confirm this matches your understanding? And if you agree on the proposed fix, we are happy to look into another PR to implement that.

Sorry @tonihei I missed seeing your comment (I think you need to @stevemayhew to make GitHub notify me)
Let me work on getting you access to the DASH-IF working group on this.  Perhaps we can direct the solution not to alter presentationTimeOffset (which is the source of the issue).
We have this code in our ExoPlayer version to deal with origin vendors that match the original DASH-IF guidelines (which encourage zeroing the Period start)
It is less than ideal as it forces a vacuous seek, as only the period position changes.  This causes needless rebuffing

Thanks, please let me know if you discover anything new.

@tonihei  Here's the document that DASH-IF is working on:  https://github.com/Dash-Industry-Forum/DASH-IF-IOP/blob/master/specs/live2vod/01-live2vod.inc.md
We are not voting members anymore, but this is completely the wrong approach if we want to avoid what this pull request "fixes".   I've started working on a pull request to re-write this document, but  not sure I will have much weight.
Here's the link to my changes (WIP):  https://github.com/stevemayhew/DASH-IF-IOP/tree/update-transition-options
Feel free to add whatever you can.

I would say, for now, keep this pull request "DRAFT".   We have this work-around in our code base, but it would be far better if origin vendors would get in-line behind the better approach to the live2vod transiton

Okay, thanks! Please let us know if you find out something new and we can see how to incorporate that into our code.


Updating for V2 APIs

Updated to use the V2 APIs plus simplifying how to authorize API usage programmatically.

Looks good, I was able to run it end to end with no issues.
A few thoughts/recommendations:

There's an extra space in "Getting Started .ipynb"
Might be worth adding "!pip install httpx httpx-auth" to the start of the first notebook. It wasn't clear there were additional dependencies.
I think a README that explains what the notebooks are doing, and the intended order is user data testing vs synthetic data.

Also, just something to keep track of but the Admin button is not visible on any of the prod accounts I checked. I don't know if that's an error or a deliberate choice while something's being worked on.


Run multiple simultaneous tunnels that have stable public ports

If I need to expose a set of ports that need to work together, let's say ports 3000 and 4000 it would be nice to be able to configure it somehow, e.g.
tunnels:
  frontend:
    local_addr: localhost:3000
    remote_addr: mysrv.localtunnel.me:3000
  backend:
    local_addr: localhost:4000
    remote_addr: mysrv.localtunnel.me:4000

Also, would be any conflicts with fixed ports numbers? what if another user wants to use ports 3000 and 4000? even though it sets a different subdomain, if all resolve to the same IP and network interface there will be collisions right?

I don't understand this request.

I updated it, so the idea is that
elgalu.localtunnel.me:3000 => FWDs to => localhost:3000
elgalu.localtunnel.me:4000 => FWDs to => localhost:4000
Instead of random ports on random domains.

Wont work because of the way localtunnel server is deployed. elgalu.localtunnel.me:3000 won't be a valid url because the server itself is only listening on port 80 and 443 (standard http/s ports).
Not sure what issue you are specifically trying to solve/accomplish here but the local-host localtunnel CLI option might help you out. Without knowing why you want to do this I can't provide alternatives.

Thanks!


Fix pixelation of foreground circle

Moved bgrCircle() inside animate() so that clearRect()` prevents distortion/pixelation of the foreground circle [Fixes #62]

Before

After


rewrite in configuration-snippet annotation not working

I am using 0.9.0-beta.11 and have the following annotation to rewrite the path by removing "/api" from root:
    ingress.kubernetes.io/configuration-snippet: |       rewrite ^/api/(.*)$ /$1 break;
however, nginx is not reflected at all. I also tried "permanent", "last" instead of "break"; no good too. Please help. Tomorrow I will check nginx conf

me too

I found the issue. The fix is to put "/api" into the rule path like this:
  paths:
  - backend:
      serviceName: api-service
      servicePort: 8000
    path: /api/service


Update grpc dependency to 1.0.0

Current coverage is 89.30% (diff: 100%)

Merging #38 into master will not change coverage

@@             master        #38   diff @@
==========================================
  Files            16         16
  Lines          1113       1113
  Methods         120        120
  Messages          0          0
  Branches          0          0
==========================================
  Hits            994        994
  Misses          119        119
  Partials          0          0

Powered by Codecov. Last update ea9fcbb...01a52f1

LGTM


Additions to the LSP module for workspace/didChangeWatchedFiles

We can then use this functionality to allow a BuildSystem to watch
files (e.g. via the client or even in-process file watching),
which would allow us to do things like detect new files and provide
accurate build settings for them.

@swift-ci please test

There aren't that many of these - is there a reason not to just make encodeToLSPAny a protocol requirement and implement it concretely for each concrete type that implements the protocol?

We could but then we'd probably want to implement it for all of the transitive types embedded there, also note that at the moment these really would only ever be encoded, not decoded since only the server sends them over.

We could but then we'd probably want to implement it for all of the transitive types embedded there, also note that at the moment these really would only ever be encoded, not decoded since only the server sends them over.

This is fine for now as long as we don't have a use case, but we generally expect to be able to write both client and server using this code.

We could but then we'd probably want to implement it for all of the transitive types embedded there

Is there something I'm missing? The ones added so far seem straightforward/shallow in terms of object graph.

We could but then we'd probably want to implement it for all of the transitive types embedded there, also note that at the moment these really would only ever be encoded, not decoded since only the server sends them over.

This is fine for now as long as we don't have a use case, but we generally expect to be able to write both client and server using this code.

We could but then we'd probably want to implement it for all of the transitive types embedded there

Is there something I'm missing? The ones added so far seem straightforward/shallow in terms of object graph.

Do we intend to keep LSPAny like it currently is? If so I wonder if it would be more useful to have a generalized encoder/decoder for it. Although that will be a bit more work it would save manually implementing all of these encoders/decoders

Do we intend to keep LSPAny like it currently is?

Is there a good alternative?  We're using it for places where the spec allows any.  It would be nice if this was builtin to Foundation so that we could transparently encode/decode between string and LSPAny and between LSPAny and Codable types.

Do we intend to keep LSPAny like it currently is?

Is there a good alternative? We're using it for places where the spec allows any. It would be nice if this was builtin to Foundation so that we could transparently encode/decode between string and LSPAny and between LSPAny and Codable types.

Right, if we had a proper JSON type that had  Encoder/Decoder we could use that instead of LSPAny and LSPAnyCodable, I guess I was asking if we planned to keep LSPAnyCodable. The simplest thing to do here would be to add an LSPAnyEncodable with the encodeToLSPAny requirement like you said, but a general fix would be proper coders

I guess I was asking if we planned to keep LSPAnyCodable

LSPAnyCodable is a workaround for the lack of proper encoders/decoders, so from that perspective I'd be fine with getting rid of it if we had proper support. That being said, I'm not sure how big or complex the proper encoders/decoders would be to implement.  If proper support reduced the number of lines of code by letting us throw out the LSPAnyCodable implementations, it would probably be an obvious win, but if it ends up being bigger than what we have it's harder to justify the maintenance.

LSPAnyCodable is a workaround for the lack of proper encoders/decoders, so from that perspective I'd be fine with getting rid of it if we had proper support. That being said, I'm not sure how big or complex the proper encoders/decoders would be to implement. If proper support reduced the number of lines of code by letting us throw out the LSPAnyCodable implementations, it would probably be an obvious win, but if it ends up being bigger than what we have it's harder to justify the maintenance.

After looking into the stdlib's JSONEncoder/JSONDecoder which is quite large and complicated, I agree that we should stick with LSPAnyCodable for now, I'll swap it over.

@swift-ci please test

@swift-ci please test

@swift-ci please test

This broke the Windows bootstrap :-(

Is there any CI or pre-merge hooks for windows support? Or a script to run to update the CMake files or do you have to do it manually?

There're nightly builds at https://dev.azure.com/compnerd/swift-build
The CMake files need to be updated manually.


Template Feature

Is your feature request related to a problem? Please describe.
No it is not.
Describe the solution you'd like
I like to give the application a paramter so it outputs a .desktop file wich has no information just the default tags.
Describe alternatives you've considered
Additional context
If you just need a template of a .desktop file. You can create it with this application.

feature only available for CLI mode not for guided mode.