chore(deps): update terraform github.com/terraform-ibm-modules/terraform-ibm-cos to v6.3.1

This PR contains the following updates:

Package
Type
Update
Change

github.com/terraform-ibm-modules/terraform-ibm-cos
module
minor
v6.2.0 -> v6.3.1

Release Notes

terraform-ibm-modules/terraform-ibm-cos
v6.3.1
Compare Source
Bug Fixes

ensure auth policy is created before attempting to create bucket in FSCloud profile submodule (#381) (1566c45)

v6.3.0
Compare Source
Features

add direct endpoint output (#368) (3f630ba)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Override flash functionality: Fix options not copied when copying buttons

As described in the forum post the copying of the buttons was not implemented correctly.
I added the copying of the options to the copyfrom method.

coverage: 28.089% (+0.003%) from 28.086%
when pulling c38c66e06e9544b0d07f7df5953af987fe9124dd on Wazzledi:master
into db56a331d42dbb75e638a39afb833c88f6d7f179 on mcallegari:master.


Small enhancements to World Bank - World Development Indicators bulk update

Adds a few small enhancements to the World Bank - World Development Indicators (worldbank_wdi) bulk update:

Adds a handful of owid-maintained metrics to the garden step; and
Moves variable meta creation from grapher step to garden step.

closes #329 , owid/owid-issues#409
@Marigold is this sufficient to close #329 ? I've only added a small kludge in sdg.py to retrieve metadata from garden (instead of backport) for world bank WDI specifically.

Hey @bnjmacdonald , just saw the grapher step accessing MySQL now, which breaks an important design contract for the system. Raised an issue for it now: https://github.com/owid/etl/issues/442
If the connection is to get some once-off metadata from grapher, then the best approach would be to make and check in a JSON file with the metadata from a manual query.


Unknown operator: ncdump

Where is ncdump?
Please correct me if I'm wrong.
ncdump is the first troubleshooting command on the documentation and apparently it is not there in the nco class.
Best,
Michele

I just made (I think) the necessary changes to the documentation so this doesn't bite anyone else.


Rainbow crayon + color-selectable crayons

About the PR
Adds the rainbow crayon - which, in turn, adds the ability to have color selectable crayons. The rainbow crayon comes with 30 charges, instead of the regular 5 found in regular crayons.
Screenshots

Changelog

:cl:

add: Adds the rainbow crayon. Honk!

empty file on client Content.Client/Crayon/CrayonDecalVisualizer.cs
god the colorfield on crayoncomp should just be typed color, suppose i'll go fix that soon

already deleted in this PR, and yeah, i was wondering why the color field on crayons was a string

already deleted in this PR

its still there

yeah, i was wondering why the color field on crayons was a string

previous crimes against humanity

already deleted in this PR

its still there

yeah, i was wondering why the color field on crayons was a string

previous crimes against humanity

buh


This is not an issue just an request/query

Referring file: petstore-expanded.yaml
It is possible to deprecated entire API object, API parameters or Schema object but is it possible to mark an field as deprecated?
e.g.
   ...
components:
    schemas:
        NewPet:
            required:
            - name
            properties:
            name:
            type: string
            deprecated: true
            tag:
            type: string
  ...

A property/field definition is also a Schema Object, so your example with deprecated: true as a property attribute is correct.

cool, got it, thanks!


Ability to support Multi-Step Inspections

Here is an example of a muti-step inspection state logic for one of the STIG inspections i've created.  Essentially, step 1 is to get a list of files that meet some criteria, then to check the contents of each of those files for some pattern.
{% set timestamp = salt['cmd.run']("date +'%Y%m%d %T'") %}
{% set log_file = pillar["hardening"]["log_filename"] %}
{% set apply_name = "check_Rsh_trust_in" %}
{% set stig_id = "V-38491" %}

# Create list of any rpmrc files within the filesystem
{% set file_list = salt['cmd.run']('find / -type f -name rpmrc').split('\n') %}

# make sure list has something to do
{% if file_list|length >= 1 and file_list|first != "" %}

# loop through each file in the list
{% for tgt_file in file_list %}

# check to see if the tgt_file contains the pattern nosignature
{{ apply_name }}_{{ tgt_file }}:
  cmd.run:
    - name: egrep nosignature {{ tgt_file }}

# log compliance/non-compliance
# if compliant with the rule:
log_CR_{{ apply_name }}_{{ tgt_file }}_compliant:
  file.append:
    - name: {{ log_file }}
    - text: "{{ timestamp }} [SUCCESS] Compliant with {{ stig_id }}. {{ tgt_file }} does not contatin nosignature."
    - onfail:
      - cmd: {{ apply_name }}_{{ tgt_file }}

# if not_compliant with the rule
log_CR_{{ apply_name }}_{{ tgt_file }}_finding:
  file.append:
    - name: {{ log_file }}
    - text: "{{ timestamp }} [FINDING] NOT compliant with {{ stig_id }} {{ tgt_file }} contains refereneces to nosignature."
    - require:
      - cmd: {{ apply_name }}_{{ tgt_file }}

{% endfor %}
{% else %}

# List was empty, nothing to do
log_{{ apply_name }}_no_files_success:
  file.append:
    - name: {{ log_file }}
    - text: "{{ timestamp }} [SUCCESS] Compliant with {{ stig_id }}. No active references to rpmrc."

{% endif %}

maybe a mutli-step module, would allow you to define the file criteria in the yaml, then allow you to specify a state file to execute against the list of files?  maybe something like this:
    muti-step-name:
      data:
        Red Hat Enterprise Linux Server-6:
          - file_list: 'find / -type f -name rpmrc'
             state: base.state.file.to.run
             tag: 'stig-1.2.3'

These types of checks have been on my mind a lot. There are even a few of them in the CIS docs, though usually they only consist of a command or two, searching for things in the output, etc.
I still haven't come up with a good solution for general-use YAML syntax for these types of checks, but I do want to come back to it after I make the core platform changes being discussed in #68 and #69 and the like.

Added in https://github.com/HubbleStack/Nova/pull/141


style: use gci to deterministically sort imports

low priority!
What is the purpose of the change
gci is a crazy useful, simple, and sensible linter I found today.  It sorts the imports in a repo deterministically.
this pr can be reproduced in full by running golangci-lint run ./... --fix
Testing and Verifying
This PR should pass all current tests, and changes none of the code/logic in osmosis.
Documentation and Release Note

[ ] Does this pull request introduce a new feature or user-facing behavior changes? no
[ ] Changelog entry added to Unreleased section of CHANGELOG.md? no

Where is the change documented?

[ ] Specification (x/{module}/README.md)
[ ] Osmosis documentation site
[ ] Code comments?
[x] N/A

odd.... I wonder what's up?

I think this was closed due to the force push.  Should be good to go.


[Go Live][June 16]

push to live

Docs Build status updates of commit 319bf37:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Overview.md
:white_check_mark:Succeeded
View

msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/User-Specific-Views.md
:white_check_mark:Succeeded
View

msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Work-with-Universal-Actions-for-Adaptive-Cards.md
:white_check_mark:Succeeded
View

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


Must run "pip install ." twice

setup.py installs Node dependencies which are included in Manifest.in. However, Manifest.in is processed before setup.py is run, therefore $ pip install . must be run twice; once to download the Node dependencies, and a second time to copy node_modules/ into the site-packages directory.

fixed in https://github.com/UserExistsError/webshooter/commit/21c2cc7fb256c442e0ca46f3ddf910730560427b


Is there a simple way to override the automatic primary key detection?

Hi,
I stumbled over your project today and really like it! Good work!
I just got one issue I can't get to work.
I got a nested data structure like: A > B
Both A and B got an attribute called "Oid" as primary key and also a 'name' attribute.
So it is supposed to look like:
/A/{Oid}/B/{Oid}
But since 'Oid' is not in the auto lookup list (https://github.com/BigstickCarpet/swagger-express-middleware/blob/master/docs/middleware/mock.md#how-primary-keys-are-determined) the mock middleware pics 'name'
Is there a simple(!) way to specify the PK of a resource?

Yeah, I've been trying to think of an elegant way to allow people to specify custom "ID" fields for their resources, specifically because of reasons like this.
One idea is to use vendor extensions, which would look something like this:
definitions:
  person:
    type: object
    x-primary-key: Oid       # <---- vendor extension
    properties:
      Oid:
        type: number
      Name:
        type: string

Another idea is to make it an option on the mock middleware, which would look something like this:
app.use(middleware.mock({
  primaryKeyNames: ['Oid', 'SomeOtherId', 'YetAnotherId']
}));

Another option is to use the rel keyword from JSON Hyper-Schema.  This has the advantage of being based on a standard, rather than something I just made-up.  But it has the disadvantage of being very verbose and complicated:
definitions:
  person:
    type: object
    properties:
      Oid:
        type: number
      Name:
        type: string
    links:
      - rel: self                 # <--- Defines this as the identifying href
        href: "/people/{Oid}"     # <--- Defines "Oid" as the identifying property

Of course, I'm open to other ideas/recommendations too.  None of the above really seems very elegant to me, but I agree with you that there needs to be some way of specifying custom ID fields.

Here are some of my thoughts from a user's point of view:
Basically I see two different scenarios that need different solutions.
1) I'm not the author of the swagger schema but some other party.
In that case it simply may not be possible to make the other party update their schema so I can use it with <enter tool here> (in our case swagger server).
Tweaking a foreign schema to my needs and probably having to do the same thing over and over again every time that schema gets changed feels very wrong.
So I need to configure my tool to process the schema as I want it to.
This leads us to your second option, passing some config parameters to the mock middleware.
Which feels fine to me.
2) I am the schema author
In this case I got full control over what I put in my schema and want others to have as less work as possible when using it. So basically it want to make it work out of the box with swagger server.
That's when your options 1 and 3 come in.
But which one?
At first glance 3 seems better since it follows a defined standard.
But I see some serious drawbacks in addition to "very verbose and complicated".
href defines a specific path to the object that has to match my resource path.
If I change the resource path I also have to change the href path. This feels very not-DRY and I know I'll forget it every second time.
And what if my resource is accessible from multiple URLs?
Like:
/category/{id}/items/{item-id}
and
/items/{item-id}
So in my opinion vendor extensions as you described in option 1 are the way to go in this situation.
conclusion
To handle both situations I'd implement both options, "vendor extensioans" AND "middleware config option"

Ran into the same thing today, a couple of (random) thoughts:

In OAS 3.0 compatible version I guess links could be used as one of the determining factors for the primary key determination.
If the swagger defines secondary paths like POST /events/ and GET /events/{eventId} perhaps that can be used to determine primary key (especially if the POST has an eventId in body), although I suspect it'd likely break other things.
As a fallback is there some reason you couldn't allow for defining middleware to "hint" swagger-express-middleware?
The thought here:

app.post('/events/', (req, res, next) => {
  req.swaggerExpressMiddleware = {
    ...req.swaggerExpressMiddleware,
    primaryKey: "eventId"
  };
  next();
});

app.use(middleware.mock());

swagger-express-middleware could then check for the existence of its "config" object and use it to determine the primary route. This approach doesn't require modifying the swagger (for example if you don't own it), and allows for hinting per route/ building multiple hints across multiple pieces of middleware.  Thoughts?


Open workspace or folder in current window if empty

By default, opening a workspace or a folder opens a new window.
When the current window is empty or contains only the "Get Started" page, I want to open it in the current window.

Typical workflows:

Recent

I launch my first vscode which is empty (case of first install or previous clean close)
I open a workspace or a folder from the Recents list
I got a new window loaded with previous context, and the first one is empty

Open

I launch my first vscode which is empty (case of first install or previous clean close)
I open a workspace from a file or a folder from the dialog
I got a new window, and the first one is empty and useless

What is your window.openFoldersInNewWindow setting?

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

@gjsjohnmurray Mine is default.

@bpasero can you remove the Feature Request flag ? With window.openFoldersInNewWindow set to default, I see this as a bug, actually

A search for window.openFoldersInNewWindow shows similar requests being treated as enhancement requests for an additional value for this setting, but never gaining enough upvotes to get onto the Backlog. So I don't think the current behaviour is going to be treated as a bug.

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


3-lane roads outer lane not used

On 3-lane roads, it usually refuses to use the most outer lane. (same thing I see with highways and 6-lane roads).

Version 1.01rc

+1 This is irritating and annoying.

Check in 1.04rc it should be better. Just make sure to wait a little so new pathfinding takes place (or clear traffic for faster effect)

Looks better indeed


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1099 ms

Resolved: Bofrost.be performance has improved in 2e6331c.


extra_vars should update before making modifications to it

It prevents overwriting of variable settings.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1316736

:+1: this seems to fix the issue in my testing.


edl: package includes proprietary vendor binaries, yet is not marked unfree

Describe the bug
The vast majority of loaders in the edl package are of unknown origin, and were not provided "under license" for use for the project.
The package should have been licensed as unfree.
The NixOS cache now is holding hundreds of unlicensed proprietary, binaries. It probably should be cleaned given the number of intellectual property holders involved.
I'm filing the issue as a courtesy.
¯\_(ツ)_/¯
(oh, also, the license of the project changed since back then.)
Notify maintainers
@lorenz @xddxdd
also @SuperSandro2000  who merged in #216708.

License change done in #348934.

Note that the package was also unilaterally relicensed to GPL, yikes.


Crash when loading JXL

Tried to load multiple JXL files on an API29 device, using Coil 3.0.2 - I get a similar crash everytime :
A  Fatal signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0x7210d2c1f8 in tid 734 (DefaultDispatch), pid 32148

Some of the sample files I tried :
https://www.earth.org.uk/img/boiler/boiler-portrait-posterised-interlaced-256w.png.jxl
https://github.com/libjxl/conformance/raw/refs/heads/master/testcases/animation_icos4d/input.jxl
https://github.com/libjxl/conformance/raw/refs/heads/master/testcases/cafe/input.jxl

Thanks for the info.
I can't actually reproduce this one, are you using emulator on x86 device? Or is it real android ARM device?

It's a physical ARM device (hisilicon kirin 710, to be perfectly precise).
My app uses Coil to load a couple other file formats without any problem. I just added JxlDecoder.Factory() at init time just like you wrote on the readme.
Gotta test on an x86 emu to see what happens...

It does the same thing on an emu hosted by a x86 PC.

1/ I just found out that adding .allowHardware(false) to the Coil ImageLoader builder fixes the issue for still (non-animated) JXL images.
Is that mandatory to set .allowHardware(false)? If so , could you update your readme?
2/ I still get that same crash when trying to load animated JXLs.

Could you, please, also confirm that behaviour are reproducible in the sample app here that I just commited or from CI ImageToolbox

1/ I just found out that adding .allowHardware(false) to the Coil ImageLoader builder fixes the issue for still (non-animated) JXL images.
Is that mandatory to set .allowHardware(false)? If so , could you update your readme?
2/ I still get that same crash when trying to load animated JXLs.

Ah, ok. No .allowHardware(false) is not mandatory and should work.
Thanks for the info, I think I know what to check at least.
This is surprising since all HarwareBuffers API that I'm using should be available from 29 API, but on your device looks like it is not available.

Could you, please, also confirm that behaviour are reproducible in the sample app here that I just commited or from CI ImageToolbox

I installed image-toolbox-3.1.0-rc01-foss-arm64-v8a-release-unsigned-signed.apk on my device and tested Tools > JXL Tools > JXL to JPEG
I confirm that trying to load a still or an animated JXL does crash the app.

Also, I'd like to ask run adb shell cat /proc/cpuinfo and paste here output

Processor       : AArch64 Processor rev 4 (aarch64)
processor       : 0
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 4
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd09
CPU revision    : 2

processor       : 5
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd09
CPU revision    : 2

processor       : 6
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd09
CPU revision    : 2

processor       : 7
BogoMIPS        : 3.84
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd09
CPU revision    : 2

Hardware        : Hisilicon Kirin710

Thanks!
I think real issue is here, that fphp ( half precision float conversion ) cpu feature is missed. It is mandatory in android aarch64 specification so NDK always compiles everything like it is exists on CPU.
So I think issue here probably not a hardware buffer but RGBA_F16 type, even I can do checks in my code on fphp if it is exists and do software emulation if it is not, I cannot completely guarantee then that libjxl won’t hit missing instructions.
Even in the very best case that I do all the checks, there are jxl images encoded in ‘half precision float’ as a storage type, and they cannot be ever opened on such devices, because libjxl actually compiled with meaning that fphp is available.

And your crash is actually signaling that not existing CPU instructions is hit to be clear.

Oh yeah, ILL_ILLOPC = illegal operation I guess.
I just ran adb shell cat /proc/cpuinfo on the emu and fphp is also missing from flags.
If fphp  is mandatory in android aarch64, then why does Android Studio's emulator miss that instruction as well?

If fphp is mandatory in android aarch64, then why does Android Studio's emulator miss that instruction as well?

I don't know to be honest, fphp mandatory aarch64 part from 2017. Perhaps no one just worried about it, until AI time has come.
Android emulator just uses qemu, it is possible to launch with any features, and my emulator works with fphp ( what is also strange ).
Anyway, I think I'll do soon all the checks, and software emulation and this perhaps should help.

Thanks for taking the time to investigate this 😄

Yep, thanks for information, this is always surprising to know that something that must exists do not exists.
I’ll try to recompile libjxl with forcing disable on half floats availability but since is libhwy is under the hood I doubt in success, but I’ll let you know.

Please, check <IP_ADDRESS> if it works

I tried to disable fphp in libjxl, looks like it should work, however I'm not completely sure

Thanks for your responsiveness!
Unfortunately, <IP_ADDRESS> doesn't work. Plus activating .allowHardware(false) doesn't prevent crashes anymore.

Sad, I don’t think that is issue is in hardware buffers, libjxl is about 150k lines of platform dependent multithreaded code in c++ and scaling library is about 100k lines hardware dependent Rust code, this is will be quite simple if just hardware buffers is an issuer here:)
I’ll do research what else may go wrong on non standard cpu, probably I’ll find it, however, I can’t promise that it will be fast.
One thing I may also try to ask you is try to force bitmap rgba8888 config and check if it changes something

Thank you. If I can be of any help by tracing or debugging something on my device, don't hesitate to send me pointers.

One thing I may also try to ask you is try to force bitmap rgba8888 config and check if it changes something

Just did that - same crash (Fatal signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0x721bb3aa0c in tid 23587 (DefaultDispatch), pid 22530)

Maybe there is some stack trace or just SIGILL ?

Just SIGILL unfortunately. Probably because I'm using the release library... hence my suggestion.

If you want to try debug this then download jxl-coder itself from master. Open Java_com_awxkee_jxlcoder_JxlCoder_decodeSampledImpl (JniDecoding.cpp) in C++ and just go step by step and somewhere it will fail,
This will be actually huge leap forward to understand what exactly happens.

Great! Let's see what I can find

I have a good and a bad piece of news.
Good one is I've managed to launch and debug jxl-coder.
Bad one is the crash is inside the Rust part, which Android studio can't debug.
Here's the call stack on the C++ side just before the crash (= about to call weave_scale_u8)
RescaleImage(std::__ndk1::vector<…> &, _JNIEnv *, unsigned int *, bool, unsigned int *, unsigned int *, unsigned int, unsigned int, unsigned int, bool, ScaleMode, XSampler, bool) SizeScaler.cpp:146
decodeSampledImageImpl(_JNIEnv *, std::__ndk1::vector<…> &, int, int, int, int, int, int) JniDecoding.cpp:123
Java_com_awxkee_jxlcoder_JxlCoder_decodeSampledImpl(JNIEnv *, jobject, jbyteArray, jint, jint, jint, jint, jint, jint) JniDecoding.cpp:313

Hope this helps~~

Thanks a lot! Actually it is good news, at least clear where to search.
Did you try to use just decode without sampling? Does it work?

Check, please, jxl-coder from latest master since you already have it. Hope this works

Sure. Right now I don't have access to my IDE but I'll get back on it later today.

Works like a charm!! 🥳  All images have been successfuly loaded and displayed ✅
Only problem I can see is the animated picture being not animated, but I guess doing that wasn't the point yet. Any way to test that too now that still images are OK?

Good news!
You can check animated images by JxlAnimatedImage class, see example how to make drawable here.
I’d like to notice that I did animated drawable with @T8RIN for demonstration purposes and it may be a little far away from real production use.
Making a really production ready rendering pipeline is a hard one, and far away from something I want to maintain 🫢 Especially with knowledge that decoding Jxl images still very slow, if compare to Avif(dav1d) at least x5-10 times, this makes writing any pipeline quite tricky since there is very slow decoding and no hardware acceleration.
if bugs are fixed, perhaps, tomorrow I’ll do release

You can check animated images by JxlAnimatedImage class, see example how to make drawable here

Thanks. Can confirm it works too! We should be good to go~

Err... it doesn't crash anymore, but there's still a problem somewhere 😅

With .allowHardware(false), still images are displayed but animated images have only their 1st frame displayed

With .allowHardware(true), the output is garbage

Are you using AnimatedJxlDecoder for animated images?

Yup, I loaded both Decoders during Coil init

Both decoders wont work correctly :) At the moment there is a glitch in an animated factory after coil update, but you have to use only one. Animated factory is configured for still images.

My bad...
Now that AnimatedJxlDecoder has been set alone :

.allowHardware(false) now animates animated images, but :

It's much slower than what I saw yesterday using jxl-coder directly (maybe because hardware is disabled?)

Yep, as I said animated rendering pipeline is a little far away from perfect, but this one I'll probably fix.
It's slower and the moment perhaps by upscaling images to screen size.
For a hardware buffers more hard to say what there goes on, there is no any specific conversion, hardware dependend code for this, there is just copying data to HB, and I'm not recognizing this error pattern in the image, it more looks like to me that HB just filled with random alloc data then it means that data is not copied or copied somewhere in unknown place. I do all the checks on successful acquiring HB copying and others, so at least it all signals about success.
Could you please check that in ReformatBitmap.cpp lane 277
AHardwareBuffer_describe_compat(hardwareBuffer, &bufferDesc);

After call to this method bufferDesc is filled with correct data ( width, height etc )?

You may not check, I'm filling this. So actually about HB I have no idea at the moment what to check.

Do you have in your app any custom decoder that completely custom filling hardware buffers by itself using dynamic linking?
When I did this I not found any library doing so, on so, ly mobile Firefox do so.

Does same behavior with hardware are reproducible on your device in jxl-coder directly ?

I'm gonna check that, plus using Coil instead of Compose to display the pic on the jxl-coder app.

Do you have in your app any custom decoder that completely custom filling hardware buffers by itself using dynamic linking?

I'm not sure how to check that. For image processing, I'm using :

Coil3
APNG4Android (through a Coil Decoder)
A custom OpenGL-powered rendering module to resize images on the fly using GPU rather than CPU

But none of them are used at the same time or in a pipeline. They're activated depending of the type of image to be processed (native Android support or not, animated or not...)

I'm not sure how to check that. For image processing, I'm using :
* Coil3

* APNG4Android (through a Coil Decoder)

* A custom [OpenGL-powered rendering module](https://github.com/avluis/Hentoid/tree/master/app/gles-renderer/src/main/java/me/devsaki/hentoid/gles_renderer) to resize images on the fly using GPU rather than CPU

But none of them are used at the same time or in a pipeline. They're activated separately depending of the type of image to be processed (native Android support or not, animated or not...)

Yup, but none of them actually operates on Hardware Buffers directly.
If it is possible it will be interesting to check if libpag works on your device, they are using same approach as I do. If their code works at least I can copy their flags because everything else looks same to me.

A custom OpenGL-powered rendering module to resize images on the fly using GPU rather than CPU

Little offtop:
Actually for still images using OpenGL/Vulkan is quite ineffective, even if not consider that GPUImage is not correctly designed and quite slow by design and most of processing algorithms there simply incorrect.

Actually I already changed in jxl-coder flags to be the same as in libpag

So far I can't fathom what's going on. I can correctly display any JXL picture on the jxl-coder app, using HARDWARE bitmapConfig, but when I do the same with my app, it comes out garbled.
I'll continue to experiment and keep you informed.

Little offtop:
Actually for still images using OpenGL/Vulkan is quite ineffective, even if not consider that GPUImage is not correctly designed and quite slow by design and most of processing algorithms there simply incorrect.

I'm far from being specialized in the arcane of image processing and simply thought it would be better to leverage the GPU instead of doing everything on CPU. Plus my previous implementation was on RenderScript, and Google recommended to switch to Vulkan.
After testing a few alternatives, I opted for OpenGL for compatibility's sake, and because GLES doesn't require to write C/C++ code. As you saw, the code is heavily inspired by GPUImage but I'm unable to optimize it as I'm not familiar with that domain.
Do you think scaling with aire would perform better?

So far I can't fathom what's going on. I can correctly display any JXL picture on the jxl-coder app, using HARDWARE bitmapConfig, but when I do the same with my app, it comes out garbled.
I'll continue to experiment and keep you informed.

Might be coil, if you using it, is doing something wrong? If there is an processing somewhere for example, HARDWARE bitmaps must be handled differently. Your images looks like something tried to copy data from it ( or into it ?), but it is not allowed in android and there is just a hole.

I'm far from being specialized in the arcane of image processing and simply thought it would be better to leverage the GPU instead of doing everything on CPU. Plus my previous implementation was on RenderScript, and Google recommended to switch to Vulkan.
After testing a few alternatives, I opted for OpenGL for compatibility's sake, and because GLES doesn't require to write C/C++ code. As you saw, the code is heavily inspired by GPUImage but I'm unable to optimize it as I'm not familiar with that domain.
Do you think scaling with aire would perform better?

Here is migration article they clearly stating that in many cases C/C++ solutions is better.
At the moment, writing Vulkan in android app is something horrible, I can't recommend that. While it is in its current state it is not possible to write Vulkan code more performant than OpenGL in android, if you're not highly skilled in GPU processing.
In common, GPU processing worth it only when you're able to write contiguous Rendering pipeline without transferring textures from RAM to GPU on each operation ( and this is exactly what GPUImage is doing ), if you're not able doing so, transferring time in common will be longer than straightforward C++ code, and there are Command Buffer submitting time, shader execution time and other things.
Yup, I'd expect aire to be at least twice as fast in process still images rather than GPUImage for common cases. At least you can try it on since you're already have a sample app.

Might be coil, if you using it, is doing something wrong? If there is an processing somewhere for example, HARDWARE bitmaps must be handled differently. Your images looks like something tried to copy data from it ( or into it ?), but it is not allowed in android and there is just a hole.

Looks like the problem is caused by ImageView dimensions being dynamic (LayoutParams.MATCH_PARENT). Loading succeeds when dimensions are fixed using an absolute value, but fails when they change dynamically. Hardware bitmap must be somehow adjusted when that happens, which causes issues. And I can't circumvent that as my views must be resized dynamically.
=> Consider the issue solved (no crash anymore 🎉). I'm switching to Bitmap.Config.ARGB_8888 for the time being.
Thanks a lot for your patience!

Yup, I'd expect aire to be at least twice as fast in process still images rather than GPUImage for common cases. At least you can try it on since you're already have a sample app.

Sounds promising. I'll let you know soon 😉

Sounds promising. I'll let you know soon 😉

This will interesting to know! Specifically on device with your CPU

Going off-topic for good (but the issue's closed, so...)
I've integrated aire to my benchmark app.
What I measured so far :

Vulkan is still performing best by far, but as you said, it's much more complex to integrate and maintain (plus you can't be sure Vulkan is available on a given device until API29)
Blur (Gaussian) : aire is performing better than OpenGL
**Resize (Lanczos3) ** : aire is performing

Slower than OpenGL when downscaling (and way slower when downscaling much)
Faster than OpenGL when upscaling (and way faster when upscaling much)

Depending on the original image resolution, device resolution and user zoom level, my app may perform as much downscaling as upscaling.
=> Not certain I have a full case for migrating to aire yet, but I'll definitely consider it if I have to add extra transformations.

Going off-topic for good (but the issue's closed, so...)

No worries :)
Thanks for trying!
You're using LINEAR colorspace for downscaling ( what is correct for sure but require do additional processing and will work in full precision ), to make a comparable checks you have to set ColorSpace = SRGB because your shader code always assume SRGB.
It is not possible to check downscaling for Lancos3 properly with your implementation because for downscaling your implementation is highly likely do just affine transformation what is incorrect. You can try out Spline36, it have a little bigger kernel (15%) but this kernel should not do antialiasing.
Here is downsampled image 8 times to understand what antialias does. Downscaled image without antialias almost always same as Nearest what is already cheap enough.

Your code has fixed 6 taps of lanczos3 so it is not really correct for upscaling or scaling to close size ( because it should have 3 taps), but it is exact amount of taps for effectively halving image size with antialias, any other size it is more correct to consider invalid. Actually, shader code looks a little suspicious, might be more errors there, and I'm quite sure they are there, but from skimming it looks so.
Here is how linearization changes results ( brigther is correct one where it is linearized ), open in different windows to see the difference. Those images are from blurring but for rescaling effect the same: dark tones moves towards zero, bright tones completely killed and mid tones slightly shiftes down.

=> Not certain I have a full case for migrating to aire yet, but I'll definitely consider it if I have to add extra transformations.

I wouldn't actually recommend because it already have tons of code that you probably will never need, and as it have a lot of native code it is quite greedy to size in android app. But at least you can try out to improve your implementations if you want to.
P.S. stackBlur is the fastest option in Aire and gaussianBlur if for some reason you want pure gaussian.

As I mentioned before, actual issue of GPUImage incorrect design, and incorrect most of algorithms are incorrect.
Vulkan is hard to compare because it require a lot of manual untrivial code.
Vulkan shaders are correct, blur is fully correct ( without linearization but it is actually optional just for level of effect correctness and image distortion ), resize shader is essentially affine transformation with always fixed taps, so for downscaling it will always very fast and do as nearest interpolation, except lanczos that have some magic coefficients and from the first sight hard to understand what are they actually are.

Also here is short note that if you do parallel image processing in your app Vulkan available instances is limited, as long as OpenGL instances and their performance penalties is grows sharply, so it's better to not allow more than a few simultaneously processing images.

I was curious to try out how at least correct OpenGL implementation will be and this is actually fast enough.
Here is the gist there is GLES2 and GLES3 implementation, actually GLES2 even faster on my device that computing shaders.
It is exactly 2 times slower than Vulkan, and 2 times faster ( and correct ) than GPUImage.
It performs pure gaussian blur.
Class is thread bound so you cannot call if from different threads and to have full advantage of render pass and reuse buffers you should cache it and reuse
    override fun blur(radius: Float, outputIndex: Int): Bitmap {
        if (blurRenderPass == null) {
            blurRenderPass = OpenGLESBlurRenderPass(context)
        }
        return blurRenderPass!!.render(input, radius.toInt())
    }

I was curious to try out how at least correct OpenGL implementation will be and this is actually fast enough. Here is the gist there is GLES2 and GLES3 implementation, actually GLES2 even faster on my device than GL3 computing shaders. It is exactly 2 times slower than Vulkan, and 2 times faster ( and correct ) than GPUImage. It performs pure gaussian blur.
Class is thread bound so you cannot call if from different threads and to have full advantage of render pass and reuse buffers you should cache it and reuse
    override fun blur(radius: Float, outputIndex: Int): Bitmap {
        if (blurRenderPass == null) {
            blurRenderPass = OpenGLESBlurRenderPass(context)
        }
        return blurRenderPass!!.render(input, radius.toInt())
    }

I was curious to try out how at least correct OpenGL implementation will be and this is actually fast enough. Here is the gist there is GLES2 and GLES3 implementation, actually GLES2 even faster on my device than GL3 computing shaders. It is exactly 2 times slower than Vulkan, and 2 times faster ( and correct ) than GPUImage. It performs pure gaussian blur.
Class is thread bound so you cannot call if from different threads and to have full advantage of render pass and reuse buffers you should cache it and reuse
     override fun blur(radius: Float, outputIndex: Int): Bitmap {
        if (blurRenderPass == null) {
             blurRenderPass = OpenGLESBlurRenderPass(context)
      }
        return blurRenderPass!!.render(input, radius.toInt())
     }


🐛(sandbox) move factory_boy from dev to sandbox dependencies

Purpose
The factory-boy module is listed in the dev dependencies, but the sandbox needs it.
Proposal

[x] Fix dependencies in setup.cfg

@madmatah why does the sandbox need it? demo fixtures?

@madmatah why does the sandbox need it? demo fixtures?

There is a dev_tools app that is using factories to create a default LTI consumer / passport.
This app is only installed in dev environment, but the urls.py is importing modules from this app and generates the following error :

File "/app/sandbox/urls.py", line 11, in <module>
  | from dev_tools import urls as dev_urls
  | File "/app/sandbox/dev_tools/urls.py", line 6, in <module>
  | from . import views
  | File "/app/sandbox/dev_tools/views.py", line 12, in <module>
  | from lti_provider.factories import LTIConsumerFactory, LTIPassportFactory
  | File "/usr/local/lib/python3.8/site-packages/lti_provider/factories.py", line 2, in <module>
  | import factory
  | ModuleNotFoundError: No module named 'factory'

Another way of fixing it could be with a conditional import in the sandbox views ? WDYT @sampaccoud  ?

@madmatah ok. I was just asking and suppose it's ok like this.


community: Changes to base_o365 and sharepoint document loaders

Description:
The PR introduces 3 changes:

added recursive property to O365BaseLoader. (To keep the behavior unchanged, by default is set to False). When recursive=True, _load_from_folder() also recursively loads all nested folders.
added folder_id to SharePointLoader.(similar to (this PR)[https://github.com/langchain-ai/langchain/pull/10780] ) This provides an alternative to folder_path that doesn't seem to reliably work.
when none of document_ids, folder_id, folder_path is provided, the loader fetches documets from root folder. Combined with recursive=True this provides an easy way of loading all compatible documents from SharePoint.

The PR contains the same logic as this stale PR by @WaleedAlfaris. I'd like to ask his blessing for moving forward with this one.
Issue:

As described in https://github.com/langchain-ai/langchain/issues/19938 and https://github.com/langchain-ai/langchain/pull/10780 the sharepoint loader often does not seem to work with folder_path.
Recursive loading of subfolders is a missing functionality

Dependecies: None
Twitter handle:
@martintriska1 @WRhetoric
This is my first PR here, please be gentle :-)
Please review @baskaryan

@baskaryan Could you please either review or let me know how can I move this PR forward? Thanks!


[SPARK-48180][SQL] Improve error when UDTF call with TABLE arg forgets parentheses around multiple PARTITION/ORDER BY exprs

What changes were proposed in this pull request?
This PR improves the error message when a table-valued function call has a TABLE argument with a PARTITION BY or ORDER BY clause with more than one associated expression, but forgets parentheses around them.
For example:
SELECT * FROM testUDTF(
  TABLE(SELECT 1 AS device_id, 2 AS data_ds)
  WITH SINGLE PARTITION
  ORDER BY device_id, data_ds)

This query previously returned an obscure, unrelated error:
[UNSUPPORTED_SUBQUERY_EXPRESSION_CATEGORY.UNSUPPORTED_TABLE_ARGUMENT] Unsupported subquery expression: Table arguments are used in a function where they are not supported:
'UnresolvedTableValuedFunction [tvf], [table-argument#338 [], 'data_ds](https://issues.apache.org/jira/browse/SPARK-48180#338%20[],%20'data_ds), false
   +- Project [1 AS device_id#336, 2 AS data_ds#337](https://issues.apache.org/jira/browse/SPARK-48180#336,%202%20AS%20data_ds#337)
      +- OneRowRelation

Now it returns a reasonable error:
The table function call includes a table argument with an invalid partitioning/ordering specification: the ORDER BY clause included multiple expressions without parentheses surrounding them; please add parentheses around these expressions and then retry the query again. (line 4, pos 2)

== SQL ==

SELECT * FROM testUDTF(
  TABLE(SELECT 1 AS device_id, 2 AS data_ds)
  WITH SINGLE PARTITION
--^^^
  ORDER BY device_id, data_ds)

Why are the changes needed?
Here we improve error messages for common SQL syntax mistakes.
Does this PR introduce any user-facing change?
Yes, see above.
How was this patch tested?
This PR adds test coverage.
Was this patch authored or co-authored using generative AI tooling?
No

cc @ueshin

Merged to master.


Cannot create language-specific 404 template

What version of Hugo are you using (hugo version)?

v0.104.3

Does this issue reproduce with the latest release?
yes
Description
It's not possible to use the folder pattern to have a different 404 per each language.
For example, layouts/404.html - layouts/404.zh.html won't work.
The only way I can make it work consists of using the i18n helper in a block:
{{ define "main" }}
{{ i18n "test" }}
{{ end }}

It's not very convenient, especially when your 404 layout needs another base template (usually much lighter than the global baseof).
My question is the following: is it something known and wanted?

It is a known issue. You need to use the i18n folder to translate 404 page (template). But here's to hoping that that will change soon.

@jafaican hi, that would be a nice fix!

This was fixed with v0.123.0.


Make llama.cpp's cache_prompt parameter configurable

This allows the output to be deterministic when setting the same seed and temperature.
Fixes #5321

@jmorganca Could you please take a look into this PR? Having this feature would be helpful to ensure deterministic outputs across different OS (hopefully)
In return, I could update the docs after merge 🙂

Bump!

@jmorganca friendly ping, is stale for 2 months already. this feature is crucial for users wanting to generate a fully deterministic output

I think the right solution is to understand the root cause of why caching is changing the behavior and fix that. In general, caching should result in the same answer.
I agree that having a way to generate deterministic output is important but this should just work without requiring an option (other than temperature and/or seed).
By the way, what hardware are you seeing this on?

I think the right solution is to understand the root cause of why caching is changing the behavior and fix that. In general, caching should result in the same answer.

The root cause of caching affecting the behavior of large language models lies in the non-deterministic nature of how cached values are accessed and updated during parallel execution. Caching is intended to optimize performance by storing intermediate results, but variations in thread scheduling and execution order across different operating systems can lead to inconsistencies. These differences are often due to how different systems handle floating-point arithmetic, parallelism, and library implementations. Ideally, caching should not alter the output, and achieving deterministic behavior should not require additional options beyond setting the temperature and seed. However, due to these underlying computational discrepancies, disabling the cache can sometimes be necessary to ensure consistent results.

I agree that having a way to generate deterministic output is important but this should just work without requiring an option (other than temperature and/or seed).

Relying solely on setting the seed and temperature may not always suffice. The model architecture can influence determinism, especially if it involves complex operations or optimizations like caching and parallel processing. These elements can lead to slight variations in execution across different systems, which may result in non-deterministic outputs despite a fixed seed and temperature. I have also asked the llama.cpp team to incorporate these improvements to make LLM-generated outputs fully deterministic: https://github.com/ggerganov/llama.cpp/discussions/8265

By the way, what hardware are you seeing this on?

You can run the code from there: https://github.com/rasbt/LLMs-from-scratch/blob/main/ch07/03_model-evaluation/llm-instruction-eval-ollama.ipynb
This is the relevant code snippet for the output:
import urllib.request
import json

def query_model(prompt, model="llama3", url="http://localhost:11434/api/chat"):
    # Create the data payload as a dictionary
    data = {
        "model": model,
        "messages": [
            {
                "role": "user",
                "content": prompt
            }
        ],
        "options": {     # Settings below are required for deterministic responses
            "seed": 123,
            "temperature": 0,
            "num_ctx": 2048
        }
    }

    # Convert the dictionary to a JSON formatted string and encode it to bytes
    payload = json.dumps(data).encode("utf-8")

    # Create a request object, setting the method to POST and adding necessary headers
    request = urllib.request.Request(url, data=payload, method="POST")
    request.add_header("Content-Type", "application/json")

    # Send the request and capture the response
    response_data = ""
    with urllib.request.urlopen(request) as response:
        # Read and decode the response
        while True:
            line = response.readline().decode("utf-8")
            if not line:
                break
            response_json = json.loads(line)
            response_data += response_json["message"]["content"]

    return response_data

result = query_model("What do Llamas eat?")
print(result)

I have tested this on Windows and Linux (Ubuntu), others on macOS - the generated output for this code was different across different OS. I have also noticed that the output of the 1st execution was different from the 2nd and following executions (2nd, 3rd, 4th, etc. were all consistent on the same OS).
I am running inference with Ollama using 'cuda' support on a RTX 3080 TI, if that's relevant.

I think the right solution is to understand the root cause of why caching is changing the behavior and fix that. In general, caching should result in the same answer.

The root cause of caching affecting the behavior of large language models lies in the non-deterministic nature of how cached values are accessed and updated during parallel execution. Caching is intended to optimize performance by storing intermediate results, but variations in thread scheduling and execution order across different operating systems can lead to inconsistencies. These differences are often due to how different systems handle floating-point arithmetic, parallelism, and library implementations. Ideally, caching should not alter the output, and achieving deterministic behavior should not require additional options beyond setting the temperature and seed. However, due to these underlying computational discrepancies, disabling the cache can sometimes be necessary to ensure consistent results.

I'm actually not sure that this is correct. The prompt cache is simply the KV cache left over from previous processing. Regardless of this setting caching is used during the generation process so if it was inherently non-deterministic you would have the same result for anything that was processed beyond past conversations.
I also did some testing and with Apple GPUs the results are consistent with and without prompt caching but Nvidia varies (including on the same machine with multiple runs) if caching is on.
To me, this looks like a PRNG is being seeded at the beginning of the process and it is not being updated if you don't go through all of the steps that are skipped when a cache is being restored, so it is not in the same state when you generate a new token. However, that's just a guess, which is why it needs deeper investigation.

I also did some testing and with Apple GPUs the results are consistent with and without prompt caching but Nvidia varies (including on the same machine with multiple runs) if caching is on.
To me, this looks like a PRNG is being seeded at the beginning of the process and it is not being updated if you don't go through all of the steps that are skipped when a cache is being restored, so it is not in the same state when you generate a new token. However, that's just a guess, which is why it needs deeper investigation.

Might be, yeah. At least you can confirm/testify that there is currently no full deterministic output generated from some models, and seed and temperature are not sufficient, and KV caching might be a central factor here at some point (there might be more factors, oc).
If you have idea how to fix that, please let me know/ping me, and I am eager to help.

I also did some testing and with Apple GPUs the results are consistent with and without prompt caching but Nvidia varies (including on the same machine with multiple runs) if caching is on.
To me, this looks like a PRNG is being seeded at the beginning of the process and it is not being updated if you don't go through all of the steps that are skipped when a cache is being restored, so it is not in the same state when you generate a new token. However, that's just a guess, which is why it needs deeper investigation.

Might be, yeah. At least you can confirm/testify that there is currently no full deterministic output generated from some models, and seed and temperature are not sufficient, and KV caching might be a central factor here at some point (there might be more factors, oc).
If you have idea how to fix that, please let me know/ping me, and I am eager to help.

I don't really have specific suggestions at this point, though the fact that is hardware-dependent is a clue. It seems most likely to be in the sampling code, so I would start by looking for anything that is affected by hardware.

@jessegross https://github.com/ggerganov/llama.cpp/issues/2838 might be the culprit

Thanks a lot for digging those up, let me take a look through them to understand it better.

@jessegross Any update?

I apologize for the slow response. We're trying to get 0.4.0 out the door (you may have seen the RCs) so squashing regressions there has been the main focus recently.

@jessegross Would you be so kind to look into this PR now?

Sorry, there have been some issues that need to be worked out after the release of 0.4.0. Still trying to address those but getting closer.

The PR has now been open for over 4 months, and unfortunately, it seems it hasn't been reviewed yet. This feature could be quite valuable for some users, as it enables the generation of 100% reproducible outputs. I’ve followed up a few times to kindly request a review, but I understand everyone’s time is limited, and priorities can shift.
However, as I don’t see any progress being made here, this will be my final comment on this PR. Delays like this can sometimes discourage contributors from engaging with open-source projects like this, which is something I think we’d all prefer to avoid. But I remain grateful for all the efforts that go into maintaining Ollama.


is it possible to load the columns header using a headerrow?

Checklist

[X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
[X] I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise.

What is/are your question(s)?
I have created a grid and i add the columns  not setting the header like this:
peticionColumn = gridPeticion.addColumn(PeticionVDto::cdpetici).setFlexGrow(1).setSortable(true)
Cause i have a HeaderRow to include filters.
 HeaderRow headerRow = gridPeticion.appendHeaderRow();     		headerRow.getCell(peticionColumn).setComponent(    	        createFilterHeader("Petición", peticionFilter::setCdpetici));
I create the exporter like this:
btExportar = new Button("Exportar", VaadinIcon.PRINT.create() ,e -> GridExporter     												.newWithDefaults(this.gridPeticion)     												.withLocalizationConfig(guiaLocalizationConfig())     												.open());
Whith this configuratión, when i click on btExportar and tab General is showed, the header is not labeled. Is it possible to preload them with an header row?
Thanks in advance
Additional information
I'm using vaadin 24.4.6 and 3.2.3-SNAPSHOT of the library vaadin-grid-exporter

Hi,
I think the most simple solution to this is using a different ColumnHeaderResolvingStrategy.
For example you could use ManualColumnHeaderResolvingStrategy like this:
GridExporter.newWithDefaults(this.grExamples)
	.withColumnConfigurationBuilder(new ColumnConfigurationBuilder()
		.withColumnConfigHeaderResolvingStrategyBuilder(b -> b.withManualColumnHeaderStrategy(...)))
	// ...

or write your own custom HeaderResolver.
Hope this helps :)

Hi @AB-xdev ,
Thanks for your reply,
I tried with this:
e -> GridExporter     												.newWithDefaults(this.gridPeticion)     												.withLocalizationConfig(guiaLocalizationConfig())    											     												.withColumnConfigurationBuilder(new ColumnConfigurationBuilder().withColumnConfigHeaderResolvingStrategyBuilder(b -> b.withStrategy(new VaadinColumnHeaderResolvingStrategy()))) 													.open());
with the same problem.
I don't know how to user the solution of manualColumnheaderStrategy. If i code like the example
`e -> GridExporter
.newWithDefaults(this.gridPeticion)
.withLocalizationConfig(guiaLocalizationConfig())
.withColumnConfigurationBuilder(new ColumnConfigurationBuilder().withColumnConfigHeaderResolvingStrategyBuilder(b -> b.withManualColumnHeaderStrategy(col -> col.getKey(),headerTextResolverMap())))
.open());
and
private Map headerTextResolverMap() {

	return  Map.of( "col1", "Column1", "col1", "Column2",.....

}
I get an error at:java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.function.Function (java.lang.String and java.util.function.Function are in module java.base of loader 'bootstrap')
at software.xdev.vaadin.grid_exporter.column.headerresolving.ManualColumnHeaderResolvingStrategy.resolve(ManualColumnHeaderResolvingStrategy.java:56) ~[classes/:na]`
I'm sure it's my fault, headerTextResolverMap returns a Map and not a Function. Im' just trying to follow the sample wrote in ManualColumnHeaderResolvingStrategy class' header
Thanks for you help

@juanmacintas

I tried with this
...
with the same problem.

Yes because this is the default option.

I get an error at: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.function.Function
...
... the sample wrote in ManualColumnHeaderResolvingStrategy class

Unfortunately the example is outdated.
You have to supply a function because support for e.g. translations was added a few releases ago.
Should work like this now:
new ManualColumnHeaderResolvingStrategy(
  col -> col.getKey(),
  Map.of(
    "name", k -> "Username",
    "pw", k -> "Password"))

Also please try to format your code/stacktrace properly in Markdown it's very hard to read. Thank you.

Thanks for your help! with that Map the headers are well loaded.


Schedule losing timezone when serialized with ical

Ruby 2.3.1
Rails 5.0.2
IceCube 0.16.2
schedule = IceCube::Schedule.new(Time.now.in_time_zone(-6))
=> #<IceCube::Schedule:0x005592aed59940 @start_time=Fri, 23 Mar 2018 19:53:42 CST -06:00, @all_recurrence_rules=[], @all_exception_rules=[]>
> schedule.start_time
=> Fri, 23 Mar 2018 19:53:42 CST -06:00
> IceCube::Schedule.from_ical(schedule.to_ical).start_time
=> 2018-03-23 19:53:42 +0000

Notice it goes from 7:53 PM CST to 7:53 PM UTC - losing the accuracy of the time as well as dropping the time zone.

I just noticed this too!


Allow change of project slug

We should make it possible to change the slug of a project. There are valid
reasons for it.
This was reported by @nanuxbe in #327. She wrote:

BitBucket is one example of a name change leading to a slug change.
I can see the need of keeping the slug stable as for search engine and external links but this is also the reason why changing the slug can be important as urls are very important to search-engines. Here's my current situation and why I'm interested in the topic:
I recently had to rename a project because the project's name was a slur word in some language which I was not aware of at time of creation.
Now that the project had been renamed I really don't want that project's read-the-docs pop up as search results for that slur word but in keeping the slug, this is likely to happen.
Also, now that the project has been renamed, people with a new interest in the project might instinctively check https://slug-of-new-name.readthedocs.org
I don't have any insight with RTD name change statistics, but I would guess that people don't change the name of a project that often and that, when they do, they have a good reason to do it and don't want the old name to still be associated with the project (think of name change due to copyright infringement too), which is likely to happen if the project still has its old name as RTD slug.
Now I realize this probably doesn't happen often and should probably not be treated as a high-priority issue but I thought it was still worth raising the question.
Maybe making the slug change optional when someone renames a project would be an acceptable solution. Let the user decide if they want to keep that url stable or if they want to change it?

I have exactly the problem.
My project : https://github.com/PHPOffice/PHPPowerPoint/ has been renamed to https://github.com/PHPOffice/PHPPresentation
I want the same with docs but impossible. Have you a solution ?

Some news ?

@Progi1984 I just did this "rename" for pep8 -> pycodestyle today by making a new project with the new name. I need to figure out how to tell people about it now, but at least I have the new url available and I can start publicizing that one instead.

Is this issue still open.
I am interested in sending a PR on this.

There are still some design decisions here, we were talking about this. And isn't clear how this would affect the commercial site, where we use slugs in a different way.

For now, this will keep being handled by specific requests and the user won't be able to change the slug by themselves until we make some decisions about it.

@humitos
I think this issue can be closed.

Closing. More info at https://github.com/rtfd/readthedocs.org/pull/5403


Failed to submit new namespace

I tried to submit a proper new license namespace request for https://scancode-licensedb.aboutcode.org/

and it failed:

the details are:
Unexpected error, please email the SPDX technical workgroup that the following error has occurred: Traceback (most recent call last):
  File "/spdx/src/app/views.py", line 289, in submitNewLicenseNamespace
    licenseNamespaceRequest.save()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 808, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 838, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 924, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 963, in _do_insert
    using=using, raw=raw)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1079, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1112, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
IntegrityError: null value in column "id" violates not-null constraint
DETAIL:  Failing row contains (null, Philippe Ombredanne, Philippe Ombredanne, scancode, 2021-02-13 11:34:12.682874+00<EMAIL_ADDRESS>, <SPDXLicenseCollection xmlns="http://www.spdx.org/license"><lice..., f, t, This namespace tracks all the ScanCode licenses, scancode, https://scancode-licensedb.aboutcode.org/, https://scancode-licensedb.aboutcode.org/, https://github.com/nexB/scancode-toolkit/tree/develop/src/licens..., f, null, null).

I would guess that an organization is needed. YET the org creation is an admin-only thing that requires a Django admin login which I do not have

Thanks @pombredanne for trying this out and the details.
I missed this in testing since I happened to have DJango admin.
I think the right solution for this is to not require Admin for adding organizations to the list.  Although, I don't remember all the details from the original workflow proposal for adding namespaces. @pombredanne let me know if you agree users should be able to add an organization.

In addition to allowing users to add the appropriate organization, we should validate the user input and provide form validation rather than have the back-end catch the errors.

let me know if you agree users should be able to add an organization.

I think so.
If you do not mind to add an org for me for now as:

nexB inc.
that would be great and I would be able to move on to register my namespace at last ;)

@pombredanne I attempted t add nexB as an organization and got an error.
I'll open a second issue to track the error.
I noticed this was actually adding a DJango managed organization which I do not think is necessary.  I'm wondering if we should just remove the organization field and requirement.

Added issue #293 for the DJango issue.

@pombredanne Do feel free to suggest improvements/pull requests for this feature - I don't think it has had much user testing.  I'll try to help get it working, but Python is not my native language ;)

@pombredanne - @rtgdk and I were able to fix the database upgrade problem and we added NexB to the list of organizations.  Let us know if you run into any further issues.
I'll leave this issue open to track longer term solutions (such as not requiring admin access).

@goneall @rtgdk thank you ++
I tried again and I still get this:

Unexpected error, please email the SPDX technical workgroup that the following error has occurred: Traceback (most recent call last): File "/spdx/src/app/views.py", line 289, in submitNewLicenseNamespace licenseNamespaceRequest.save() File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 808, in save force_update=force_update, update_fields=update_fields) File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 838, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 924, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 963, in _do_insert using=using, raw=raw) File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1079, in _insert return query.get_compiler(using=using).execute_sql(return_id) File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1112, in execute_sql cursor.execute(sql, params) File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in exit six.reraise(dj_exc_type, dj_exc_value, traceback) File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) IntegrityError: null value in column "id" violates not-null constraint DETAIL: Failing row contains (null, Philippe Ombredanne, Philippe Ombredanne, scancode, 2021-04-14 20:54:47.927308+00<EMAIL_ADDRESS>, <lice..., f, t, A set of licenses detected by ScanCode toolkit, scancode, https://scancode-licensedb.aboutcode.org/, https://scancode-licensedb.aboutcode.org/, https://github.com/nexB/scancode-toolkit/tree/develop/src/licens..., f, null, 1).

@pombredanne Thanks for the second attempt and patience.  Looks like the migration problems have not been completely solved.  I'll take a look at the database and see if I can fix it.

@pombredanne I believe I fixed this issue.  I just submitted a test namespace and the request did not show any exceptions.
I did not have time to verify the entire function worked end to end, so there still may be some issues.
Would you mind giving it another try?
BTW - The issues are due to a migration problem with the database when we moved from one AWS instance to another.  I did look through all the tables this time for similar issues and I think we got them all.

@goneall Thank you ++
It works: https://tools.spdx.org/app/license_namespace_requests/2/
awesome!


Compare features btw ShEx and DCTAP?

There are some out-of-date but nice tables for feature comparisons in https://github.com/weso/shaclex/issues/4#issue-177096065 - could be interesting to do something like that with regard to the subset of features in DCTAP supported by rudof?

Indeed, we have a similar issue about ShEx features that are supported in rudof here: #8
About comparing DCTAP and ShEx, maybe I added another issue (#153) to collect what DCTAP features we support.
The comparison between DCTAP and ShEx features in general, should probably be done in either the DCTAP spec repo or the ShEx repo.

@labra I have elaborated on this question in https://github.com/weso/NALShapes_Internal/issues/26#issuecomment-2338352460 .
Basically, I propose adapting DCTAP for our purposes. DCTAP was designed primarily for the use case of Application Profiles for metadata about textual data. We can select features that are more appropriate for tabular data.


flathub/flatpak version is outdated

Expected Behavior
Insomnia's Flatpak releases at Flathub should be up-to-date.
Actual Behavior
As of this writing, the Insomnia flatpak release at https://flathub.org/apps/rest.insomnia.Insomnia is 2023.5.8 (released September 7, 2023), while the latest release available elsewhere is 8.6.1 (released February 6, 2024).
Reproduction Steps
flatpak install flathub rest.insomnia.Insomnia

Is there an existing issue for this?

[X] I have searched the issue tracker for this problem.

Additional Information
No response
Insomnia Version
8.6.1
What operating system are you using?
Other Linux
Operating System Version
Linux Abdull 6.5.0-0.deb12.1-rt-amd64 #1 SMP PREEMPT_RT Debian 6.5.3-1~bpo12+1 (2023-10-08) x86_64 GNU/Linux
Installation method
download from insomnia.rest, as flathub version is too old
Last Known Working Insomnia version
No response

Hi @Abdull, this is not maintained by the Insomnia team at the moment but by the community
https://github.com/flathub/rest.insomnia.Insomnia

@filfreire , thank you for following up and reporting https://github.com/flathub/rest.insomnia.Insomnia/issues/79

Hi @Abdull, this is not maintained by the Insomnia team at the moment but by the community https://github.com/flathub/rest.insomnia.Insomnia

I mistakenly thought the flatpak Insomnia version https://flathub.org/apps/rest.insomnia.Insomnia is maintained by the Insomnia team or Kong, * given the reverse DNS application ID rest.insomnia.Insomnia

the details page says Insomnia by Kong.

So the Insomnia team is currently not the only authorized circle of people that can make changes to the Insomnia app as distributed via Flathub?
Can the Insomnia team trust "the community" to provide releases free of problems under the name "Kong"/"Insomnia"? Does the Insomnia team know the full list of those with authorization to push changes?
Kong/the Insomnia team should consider taking sole exclusive ownership of Insomnia's Flathub representation.


Python Enum support for click.Choice

I can work  around it as described here it would be great if Choice supported Python Enum.
Unless of course I have missed something completely fundamental :-)

What exactly is implied with supporting an enum?

To be able to use Enum instead of tuples for `Choice values, i.e define it as such
from enum import Enum, unique

@unique
class ConfigFormat(Enum):
    yaml = 0
    json = 1
    plist = 2

and then use it in the decorator as follows
from . import const

@dispatch.command()
@click.option('--output', '-o', type=click.Choice(const.ConfigFormat),
                help='Sets default output format for configuration files')
@pass_project
def init(project, output, force):
    """Initialises a managed schema"""
    click.echo(project.schema_home)

enum is only available in Python 3 though (in Python 2 you have to use an external backport).

+1
Screw Python 2.

"Screw Python 2" is absolutely out of the question. If you want support for it, make a PR

I was being facetious, sorry. It would be a neat feature but it's nothing essential by any means. Loving this tool by the way.

I'm using something like this in my code, where I'm using Python 2.7 with enum34==1.1.6:
@click.option(
    '--enum-val', type=click.Choice(MyEnum.__members__),
    callback=lambda c, p, v: getattr(MyEnum, v) if v else None)

The callback provides enum_val as the actual enumeration instance rather than a string, or None if the option wasn't given.
Perhaps this could be wrapped into another decorator, like click.enum_option:
@click.enum_option('--enum-val', enum=MyEnum)

The easiest way I can think of, is to use a custom type:
class EnumType(click.Choice):
    def __init__(self, enum):
        self.__enum = enum
        super().__init__(enum.__members__)

    def convert(self, value, param, ctx):
        return self.__enum[super().convert(value, param, ctx)]

You might overwrite get_metavar to compute the metavar from class name (since the complete choice list might be to long for a cli printout):
...
    def get_metavar(self, param):
        # Gets metavar automatically from enum name
        word = self.__enum.__name__

        # Stolen from jpvanhal/inflection
        word = re.sub(r"([A-Z]+)([A-Z][a-z])", r'\1_\2', word)
        word = re.sub(r"([a-z\d])([A-Z])", r'\1_\2', word)
        word = word.replace("-", "_").lower().split("_")

        if word[-1] == "enum":
            word.pop()

        return ("_".join(word)).upper()
...

Since Enums are sometimes written uppercase, feel free to write a case insensitive version of the above code.

A bit old but I thought I add the nice idea of using str Enums for options (which is also great for old-school str-based settings w.r.t. comparisons).
class ChoiceType(click.Choice):
    def __init__(self, enum):
        super().__init__(map(str, enum))
        self.enum = enum

    def convert(self, value, param, ctx):
        value = super().convert(value, param, ctx)
        return next(v for v in self.enum if str(v) == value)

class Choice(str, Enum):
    def __str__(self):
        return str(self.value)

class MyChoice(Choice):
    OPT_A = 'opt-a'
    OPT_B = 'opt-b'

@click.option('--choices', type=MyChoiceType(MyChoice),
              default=MyChoice.OPT_B)
def func(choices):
    assert choices in ('opt-a', 'opt-b')
    assert choices in (MyChoice.OPT_A, MyChoice.OPT_B)

Here's my take on supporting this:
class EnumChoice(click.Choice):
    def __init__(self, enum, case_sensitive=False, use_value=False):
        self.enum = enum
        self.use_value = use_value
        choices = [str(e.value) if use_value else e.name for e in self.enum]
        super().__init__(choices, case_sensitive)

    def convert(self, value, param, ctx):
        result = super().convert(value, param, ctx)
        # Find the original case in the enum
        if not self.case_sensitive and result not in self.choices:
            result = next(c for c in self.choices if result.lower() == c.lower())
        if self.use_value:
            return next(e for e in self.enum if str(e.value) == result)
        return self.enum[result]

Allows using either the names or values of the enum items based on the use_value parameter. Should work whether values are strings or not.

I don't know if somebody posted it here, but that's how I dealt with it:
Language = Enum("Language", "pl en")

@click.option("--language", type=click.Choice(list(map(lambda x: x.name, Language)), case_sensitive=False))
def main():
...

The recipe above no longer works properly with click 8.
When the help text is generated, an option type's convert() functions is eventually being called converting the string denoting the Enum’s attribute in to the attribute value itself and --my-opt [a|b|c] [default: a] becomes --my-opt [a|b|c] [default: MyEnum.a].
I looked through the code and found no easy way (for library authors) to fix this.

This is an ugly hack, for now I am using a slightly modified version of @allanlewis:
class MyEnum(Enum):
    a = "a"
    b = "b"

@click.option("-m", "--method", type=click.Choice(MyEnum.__members__),
              callback=lambda c, p, v: getattr(MyEnum, v) if v else None, default="a")

Less ugly solution (but not perfect):
from enum import Enum

import click

MyEnum = Enum("my_enum", ("a", "b"))

@click.option("-m", "--method", type=click.Choice(list(map(lambda x: x.name, MyEnum)), case_sensitive=False), default="a")

Remove the (ugly) usage of __members__ and more concise :-)

@yoyonel you could replace the lambda with attrgetter('name') 🙂

This is easy to implement, using custom type
import click
from enum import Enum

class Test(Enum):
    test = "test"
    another_option = "another_option"

class EnumType(click.Choice):
    def __init__(self, enum, case_sensitive=False):
        self.__enum = enum
        super().__init__(choices=[item.value for item in enum], case_sensitive=case_sensitive)

    def convert(self, value, param, ctx):
        converted_str = super().convert(value, param, ctx)
        return self.__enum(converted_str)

@click.option("-m", "--method", type=EnumType(Test), default = "test")
@click.command()
def test(method):
    print(type(method))
    print(method)
    print(method.value)

if __name__ == '__main__':
    test()

Test:
$ python test.py --method wrong
Usage: test.py [OPTIONS]
Try 'test.py --help' for help.

Error: Invalid value for '-m' / '--method': invalid choice: wrong. (choose from test, another_option)

$ py test.py --method test
<enum 'Test'>
Test.test
test

@yashrathi-git a minor change in the code you provided,
from enum import Enum

from click import Choice

class Test(Enum):
    test = "test"
    another_option = "another_option"

    def __str__(self):
        return self.value

class EnumType(Choice):
    def __init__(self, enum: Enum, case_sensitive=False):
        self.__enum = enum
        super().__init__(choices=[item.value for item in enum], case_sensitive=case_sensitive)

    def convert(self, value, param, ctx):
        if isinstance(value, Enum):
            return value

        converted_str = super().convert(value, param, ctx)
        return self.__enum(converted_str)

But I feel this should be done under the hood instead of importing EnumType.
In other words, it would be much more desirable if we could write,
@click.option("-m", "--method", type=Test, default = 'test') # or default = Test.test

I know this thread is pretty old, but I've been using this pattern for str + Enums, which IMO is pretty clean and intuitive:
import click
import enum

class MyEnum(str, enum.Enum):
    A = "a"
    B = "b"
    C = "c"

@click.command("my-cmd")
@click.argument("which_option", type=click.Choice(MyEnum))
def my_cmd(which_option: MyEnum):
    print(which_option)
    print(type(which_option))

if __name__ == "__main__":
    my_cmd()

$ python click_enum.py

Usage: click_enum.py [OPTIONS] [a|b|c]
Try 'click_enum.py --help' for help.

Error: Missing argument '[a|b|c]'.  Choose from:
	a,
	b,
	c.

$ python click_enum.py a

MyEnum.A
<enum 'MyEnum'>

$ python click_enum.py d

Usage: click_enum.py [OPTIONS] [a|b|c]
Try 'click_enum.py --help' for help.

Error: Invalid value for '[a|b|c]': invalid choice: d. (choose from a, b, c)

Hello @jerluc, your pattern works functionally, but it fails type checking

Hello @jerluc, your pattern works functionally, but it fails type checking

Does it @rdbisme? I don't see any issues using latest mypy (0.931) on Python 3.7:
jerluc@ws ~ $ cat click_enum.py
import click
import enum

class MyEnum(str, enum.Enum):
    A = "a"
    B = "b"
    C = "c"

@click.command("my-cmd")
@click.argument("which_option", type=click.Choice(MyEnum))
def my_cmd(which_option: MyEnum):
    print(which_option)
    print(type(which_option))

if __name__ == "__main__":
    my_cmd()
jerluc@ws ~ $ mypy click_enum.py
Success: no issues found in 1 source file
jerluc@ws ~ $ mypy --version
mypy 0.931

Mh, what I get is:
error: Argument 1 to "Choice" has incompatible type "Type[PnlMode]"; expected "Sequence[str]"

where PnlMode is:
class PnlMode(str, Enum):
    night = auto()

and the option:
)
@click.option(
    "--pnl-mode",
    default=PnlMode.night,
    type=click.Choice(PnlMode),
    help="Set pnl mode",
)

but I can't reproduce it on your example. 🤔

Well,
$ cat click_test.py
import click
import enum

class MyEnum(str, enum.Enum):
    A = "a"

@click.command("my-cmd")
@click.option("which_option", type=click.Choice(MyEnum))
def my_cmd(which_option: MyEnum):
    print(which_option)
    print(type(which_option))

    reveal_type(MyEnum)

if __name__ == "__main__":
    my_cmd()

Still Gives:
click_test.py:10: error: Argument 1 to "Choice" has incompatible type "Type[MyEnum]"; expected "Sequence[str]"
click_test.py:15: note: Revealed type is "Overload(def (object: builtins.object =) -> click_test.MyEnum*, def (o: builtins.bytes, encoding: builtins.str =, errors: builtins.str =) -> click_test.MyEnum*)"

I'm at the PyCon sprint now and could work on this

@dzcode thanks, but there's already an open PR for this.

@dzcode thanks, but there's already an open PR for this.

#2210?

Let's try and finally get this in 8.2.0. If anyone has any feedback, I've put up https://github.com/pallets/click/pull/2796. Looking for feedback as I'm going to continue to look through the other open issues / PRs that are on the list to be included in 8.2.0, see the 8.2.0 Release Plan. It might be a better and it might be worse than #2210, let me know which one it is!

Regarding the typecheck of
@click.argument("which_option", type=click.Choice(MyEnum))

this is what works for me and the typecheck passes
@click.argument("which_option", type=click.Choice(list(MyEnum)))


Can't use controls because of comment/reply section on top

In stories, we can't use the media controls because it's behind the reply section. I have attached a video demonstrating the issue.
Maybe moving the media controls a little bit up can solve it.
https://github.com/Arcus92/instagram-video-control/assets/29447722/fe2e2831-b74c-446f-95e2-601dfd82229c

Thanks for reporting.
I already found the cause. I'll need to change the detection method for Stories.

Update the main issue was solved with v1.0.1 - in Desktop mode.
However, when shrinking you browser window to almost mobile size Instagram will apply another layout. This layout breaks my changes. I'll keep working on this issue.

Update: the main issue was solved with v1.0.1 - in Desktop mode. However, when shrinking you browser window to almost mobile size Instagram will apply another layout. This layout breaks my changes. I'll keep working on this issue.

That's great! 😍
Just to clear confusion, the video I posted (in this issue) was not on any resized browsed window, I just cropped it after recording to highlight main issue easily. On top of that, feels weird when a desktop browser extension works for mobile view also lol 😁.
You solved this one pretty quick tbh, Thanks a lot! 💖

Mobile or "small browser window" Story-mode should be fixed by #21 in v1.0.2.


Date picker missing disabled styles in all variants

below are screenshots of the disabled state for each date picker variant. the placeholder text color and icon colors are incorrect. This likely needs changes in the vanilla repo
simple

single with calendar

range with calendar

range with calendar and min/max dates

not stale?


Enhance nativescript.py type hint

Goal

Enhance nativescript module type hint to improve code predictability and maintainability

poetry run flake8 pycardano
poetry run mypy --install-types --non-interactive pycardano
pycardano/nativescript.py:38: error: Value of type "Union[bytes, bytearray, str, int, float, Decimal, bool, None, Tuple[Any, ...], List[Any], IndefiniteList, Dict[Any, Any], defaultdict[Any, Any], OrderedDict[Any, Any], Any, datetime, Pattern[Any], Any, Any, Set[Any], FrozenSet[Any]]" is not indexable  [index]
pycardano/nativescript.py:47: error: "type" has no attribute "_TYPE"  [attr-defined]
pycardano/nativescript.py:48: error: Argument 2 for "super" not an instance of argument 1  [misc]
pycardano/nativescript.py:48: error: Value of type "Union[bytes, bytearray, str, int, float, Decimal, bool, None, Tuple[Any, ...], List[Any], IndefiniteList, Dict[Any, Any], defaultdict[Any, Any], OrderedDict[Any, Any], Any, datetime, Pattern[Any], Any, Any, Set[Any], FrozenSet[Any]]" is not indexable  [index]
pycardano/nativescript.py:55: error: Unsupported operand types for + ("bytes" and "str")  [operator]
pycardano/nativescript.py:55: note: Right operand is of type "Union[str, bytes]"
pycardano/nativescript.py:68: error: "type" has no attribute "json_tag"  [attr-defined]
pycardano/nativescript.py:81: error: Argument 2 for "super" not an instance of argument 1  [misc]
pycardano/nativescript.py:90: error: "type" has no attribute "json_tag"  [attr-defined]
pycardano/nativescript.py:102: error: "type" has no attribute "_TYPE"  [attr-defined]
pycardano/nativescript.py:130: error: Incompatible types in assignment (expression has type "List[Any]", target has type "str")  [assignment]
pycardano/nativescript.py:134: error: Incompatible types in assignment (expression has type "int", target has type "str")  [assignment]
pycardano/nativescript.py:212: error: Incompatible types in assignment (expression has type "None", variable has type "int")  [assignment]
pycardano/nativescript.py:221: error: Incompatible types in assignment (expression has type "None", variable has type "int")  [assignment]
Found 13 errors in 1 file (checked 12 source files)
make: *** [Makefile:65: qa] Error 1

Codecov Report

Merging #129 (74a2501) into main (c5ef3bc) will decrease coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #129      +/-   ##
==========================================
- Coverage   85.95%   85.84%   -0.12%
==========================================
  Files          25       25
  Lines        2698     2677      -21
  Branches      519      515       -4
==========================================
- Hits         2319     2298      -21
  Misses        285      285
  Partials       94       94

Impacted Files
Coverage Δ

pycardano/address.py
76.40% <0.00%> (-1.26%)
:arrow_down:

pycardano/serialization.py
86.66% <0.00%> (-0.24%)
:arrow_down:

pycardano/plutus.py
91.23% <0.00%> (-0.14%)
:arrow_down:

pycardano/transaction.py
94.25% <0.00%> (-0.04%)
:arrow_down:

pycardano/txbuilder.py
91.61% <0.00%> (-0.04%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Due to the dynamic nature of NativeScript class which refers to parent from_primitive() method and locking the return type as its subclass, mypy seems to have trouble inferring variable types.
Updates

Ensure only list/tuples are accepted for from_primitive()
Type ignore statements mypy is having trouble with
Ensure mypy understands to_cbor("bytes") returns a bytes value
Improve to_dict() return type declaration
before and after dataclass attributes is now required fields

I was able to avoid all the # type: ignore by breaking up a for-loop with individual super calls depending on the type.
Also, identified that from_dict() can be simplified further reducing code complexity significantly.


visionOS SDKs missing

Description
The visionOS SDKs seem to have gone missing from the macos14 GitHub action runners. A couple days ago it worked, today I get this error: { platform:visionOS, id:dvtdevice-DVTiOSDevicePlaceholder-xros:placeholder, name:Any visionOS Device, error:visionOS 1.2 is not installed. To use with Xcode, first download and install the platform }
This is with Xcode 15.4, I've also tried updated to 16.0 but get the error that visionOS 2.0 is not installed. You can see that issue here: https://github.com/EmergeTools/SnapshotPreviews-iOS/actions/runs/11056651930/job/30718675120?pr=202
Is there any way to build for visionOS is a GitHub action runner?
Platforms affected

[x] Azure DevOps
[x] GitHub Actions - Standard Runners
[x] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] Ubuntu 24.04
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[X] macOS 14
[x] macOS 14 Arm64
[ ] macOS 15
[ ] macOS 15 Arm64
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
https://github.com/EmergeTools/SnapshotPreviews-iOS/actions/runs/11056651930/job/30718675120?pr=202
Is it regression?
yes https://github.com/EmergeTools/SnapshotPreviews-iOS/actions/runs/10948139766
Expected behavior
It should be installed
Actual behavior
It is not installed
Repro steps
Attempt to build for visionOS SDK

i also have this issue, this is terrible

Hey there!
It's kinda expected behaviour. See details here:

https://github.com/actions/runner-images/issues/10559

We'll keep this issue on board for better informing for some time.

TL;DR:

macOS-14 images do not ship visionOS platform

Possible workarounds:

to use macos-15 image
to install visionOS in runtime with:

            sudo xcodebuild -runFirstLaunch
            sudo xcrun simctl list
            sudo xcodebuild -downloadPlatform visionOS
            sudo xcodebuild -runFirstLaunch

👋
For those tracking these changes or encountering issues for the first time, here’s some context and clarification.
As you may know, we recently faced significant challenges where many users began running out of disk space during tests and builds on macOS-based runners. 😞  This issue was triggered by the inclusion of visionOS simulators in the latest Xcode builds. The root cause, however, lies in our policy of providing nearly all supported minor versions of Xcode on each macOS image, leading to steadily increasing disk usage as Apple’s ecosystem grows.
Here’s how we’ve approached resolving the issue so far:

Immediate action: We temporarily stopped pre-installing visionOS platform tools in Xcode on macOS-14 images.
Strategic adjustment: We introduced a policy to limit the number of major Xcode versions installed per macOS image, alongside reinstating visionOS tools for supported Xcode versions. This aimed to free up significant disk space. https://github.com/actions/runner-images/pull/10876

However, we’ve discovered that some projects rely on multiple major versions of Xcode simultaneously, making these strict measures overly restrictive. This prompted us to refine our strategy, prioritising functionality alongside disk space optimisation.
Current Strategy 📏
Our updated approach balances reducing installed Xcode versions with maintaining runner usability:

macOS-14 images:

Will include all minor releases of Xcode 15 with the full platform tools suite (as before).
Will now also include two minor releases of Xcode 16 (excluding visionOS tools). These will follow a “last two” principle, with the oldest replaced by the newest as updates are released. Beta versions will not be included. https://github.com/actions/runner-images/pull/10962

macOS-15 images:

Will include all minor releases of Xcode 16 with the full platform tools suite (as before).
Will also include the latest available release of Xcode 15 with the full platform tools suite. https://github.com/actions/runner-images/pull/11023

Disk Space and Future Adjustments:

Currently, macOS-14 images have approximately 60 GB of free space. However, this is not a guaranteed figure and may decrease over time.
When free space approaches 30 GB, we will reassess our policies and toolsets to ensure compliance with our promised minimum of 14 GB of free space.
macOS-15 images are not currently impacted by this issue. However, with future Xcode updates, policies may need to be revisited. 🤷♂

Recommendations 🦮

If your workflows depend on visionOS, we recommend switching to macOS-15 images.
If your tasks require significant disk space, consider preparing the runner by removing unnecessary large components before starting your workflows.


[Bug]: Invalid Notion Token error

csv2notion version
0.3.7
What OS are you using?
MacOS
OS Version / Linux distribution
Ventura 13.2.1
Bug description
For quite some time I've been using csv2notion without any issues.
Suddenly (starting May2) I started receiving CRITICAL: Invalid Notion token error message whenever I try to import my file. This started happening with the token that I previously used without any issue.
I've tried generating new tokens, with different browsers and tried running script on different devices - without any success. The package is installed via homebrew, so I tried updating it - also no help at all, just stuck on the same error for few days already.
I use Google login to log in to Notion, so not sure if that affects it somehow, but the way I log in hasn't changed since I started using csv2notion. Tried to find anyone with the issue that I face but I see posts on Reddit over a year old that actually don't apply anymore.
Am I just out of luck or there actually is an issue?
Log excerpt
csv2notion --token **mytokenhere** --url "myurlhere" import.csv

INFO: Validating CSV & Notion DB schema
CRITICAL: Invalid Notion token

This should be fixed now. Please check out the new version.

Homebrew package still not updated but managed to install using poetry. It's working perfectly now.
Thank you for the quick update.

Homebrew tap is updated now.


Analytics Tab in wp-admin not showing when using Adblocker

When using f.e. uBlock Origin the Analytics Tab in wp-admin is empty. if you deactivate it works perfectly.
Any chance we can use a proxy feature to also display this everytime?

That's because it's loaded in an iframe. I'd have to discuss the possibilities of this with @ukutaht.

there's not much we can do about this unfortunately. the best action is to disable the adblock on your own site. in plugin version 2.0 which is out now, we have added a note in case we detect an adblocker to tell you to disable it to view the dashboard within your WP