Create the Review tests and update the models.py

The change were:
1.In models.py I changed the foreign key of student_id
2.I added a tests folder inside which there is a course folder
3.I added the test file to the folder tests\course.
Resolve #57

I have removed 3 functions from the tests.py (they test Django built-ins).

Maybe we can add some more tests here, what about tests for the review manager?

Done, Add two tests in the tests.py to check if the user who wrote the review isn't the teacher of the course and to check the function of get_number_of_review_of_course.

Please squash commits


did-core maintenance remove CBOR

In version control in the main branch there is a change to remove the CBOR production and consumption rules and associated prose. This is a recent change that has been applied to version control but that version has not yet been published to the actual document. The CBOR dependency will be removed from the map.
This will result in the removal of the following non-core elements:

CBOR
CBOR-Tag-Registry
CBOR-Tags-Date
inter-connections to the above entities

published to v1.4.6


New package: JacobiDavidson v0.2.0

Registering package: JacobiDavidson
Repository: https://github.com/haampie/JacobiDavidson.jl
Created by: @haampie
Version: v0.2.0
Commit: abb08cf04401a0097d15fa69256bcfc8df2ee597
Reviewed by: @haampie
Reference: https://github.com/haampie/JacobiDavidson.jl/commit/abb08cf04401a0097d15fa69256bcfc8df2ee597#commitcomment-40997434

Can be closed in favor of #18660


Incorrect good-first-issues hyperlink in the Project Jupyter overlay

Found an incorrect hyperlink being listed in the Project Jupyter overlay. The link is - https://landscape.cncf.io/?item=cnai--data-science--project-jupyter.
Screenshot for reference:

The hyperlink (when hovering over the badge) points to - https://github.com/jupyter/issues?q=is%3Aopen+is%3Aissue+label%3A"good+first+issue"; the /jupyter after jupyter is missing (to point to the repo).
However. such a label does not exist in the repo; found other such tools (in overlays) where this is an issue too. Could not see this (incorrect hyperlink) being listed in the landscape.yml file.
Should I add to this issue to make it more comprehensive in terms of issues relating to these things (overlays having incorrect hyperlinks, outdated badges, etc.)?

Hi @tegioz, Is there anyone working on this? If not, I'd like to give it a try.

Hi @rahulmansharamani14
Not that I'm aware of, please go ahead 🙂

Hi @tegioz,
I've opened a PR to fix this issue and confirmed the change in the preview environment (attaching the screenshot). (PR #4156)

Awesome, thanks!

Ah, didn't see this notification pop up earlier (in my email feed); great that this issue is resolved now. Thanks @rahulmansharamani14, @tegioz

Closed by #4156


CVIProjection with constraints on interfaces

Added flexibility to projection forms in CVI rules
Changes
Enhanced CVIProjection with projection forms control

Added target_out_form parameter to control output edge projection form
Added target_in_forms parameter as a NamedTuple to control input edge projection forms
Forms can be specified using the new ProjectionForm structure which encapsulates:

typeform: The target distribution type
dims: Dimensions of the target distribution
conditioner: Optional conditioner for the projection

Added flexible form selection mechanism

Created get_kth_in_form to safely access input forms by index
Forms are optional - if not specified, the system uses the default form inferred from the marginal
Added smart form matching to maintain optimal performance:

Uses efficient supplementary distribution when forms match or default form is used
Falls back to including logpdf in objective only when forms truly differ

Optimized projection logic

For output edge:

Uses specified form if provided
Falls back to inferred form from marginal if not specified

For input edges:

Allows per-edge form specification through NamedTuple
Maintains optimal performance by detecting form compatibility
Handles form mismatches gracefully by incorporating logpdf in objective

Example Usage
# Specify output form
form_out = ProjectionForm(LogNormal, (), nothing)

# Specify forms for specific input edges
forms_in = (in_2 = ProjectionForm(MvNormalMeanCovariance, (2,), nothing),)

# Create CVIProjection with custom forms
meta = DeltaMeta(
    method = CVIProjection(
        target_out_form = form_out,
        target_in_forms = forms_in,
        marginalsamples = 1000,
    ),
    inverse = nothing
)

Benefits

More control over projection forms without sacrificing performance
Flexible per-edge form specification
Maintains optimal performance where possible
Graceful handling of form mismatches
No breaking changes - all new parameters are optional

Let me know if any parts need clarification or expansion!

It seems to me that ProjectionForm(MvNormalMeanCovariance, (2,), nothing) basically copies the interface of ProjectedTo(MvNormalMeanCovariance, 2, conditioner = nothing). Can we maybe use the ProjectedTo instead of introducing a new structure?

It seems to me that ProjectionForm(MvNormalMeanCovariance, (2,), nothing) basically copies the interface of ProjectedTo(MvNormalMeanCovariance, 2, conditioner = nothing). Can we maybe use the ProjectedTo instead of introducing a new structure? By doing that you can remove the create_project_to_ins and create_project_to entirely.

There are pros and cons to this suggestion.
The challenge arises from our design decisions in ExponentialFamilyProjection.jl, where we've tightly coupled ProjectedTo with parameters. This coupling makes the interface less flexible than ideal. If we were to remove prjparams from CVIProjection and use ProjectedTo only, then directly, we would be forced to specify form even in cases where we only want to specify the parameters and make the form changing during the inference time.
By keeping ProjectionForm separate, we maintain a cleaner separation of concerns:

ProjectionForm handles just the form specification
The projection parameters can be handled independently through prjparams

Or do you mean to have a union for prjparams where it could be ExponentialFamilyProjection.ProjectionParameters or ProjectedTo.

It seems to me that ProjectionForm(MvNormalMeanCovariance, (2,), nothing) basically copies the interface of ProjectedTo(MvNormalMeanCovariance, 2, conditioner = nothing). Can we maybe use the ProjectedTo instead of introducing a new structure? By doing that you can remove the create_project_to_ins and create_project_to entirely.

There are pros and cons.
The problem arises from our design decisions in ExponentialFamilyProjection.jl, where we've tightly coupled ProjectedTo with parameters. This coupling makes the interface less flexible than ideal. If we were to remove prjparams from CVIProjection and use ProjectedTo exclusively, we would be forced to specify the form even in cases where we only want to specify the parameters and allow the form to change dynamically during inference time.

This coupling makes the interface less flexible than ideal.

I don't agree with this, lets discuss in person. Having ability to pass parameters is even better.

we would be forced to specify the form even in cases where we only want to specify the parameters

Not really, you can always do ProjectedTo(ExponentialFamilyDistribution, parameters = ...) or simply dispatch on ExponentialFamilyProjection.ProjectionParameters. That's why I suggested you to simply reuse the prjparams field because its exactly what you want here. You duplicate structures that already exists and is supposed to solve the problem. Again lets better discuss in person.

@bvdmitri codecoverage is working now! I see coverage for the project fails however is good for the patch. However the project codecoverage report is not informative for me.

Yeah afaik project coverage in Julia is stochastic, so it can fluctuate a bit, no worries. I approved the PR, you can merge, good job!


Re-implement Stream.skip to have reasonable parallel behavior

Currently, something like StreamEx.ofLines(...).skip(1).parallel().... doesn't do anything reasonable or useful. Instead of skipping the file's header, it skips a random line in the file. I think it should be possible to change its behavior to actually skip the first item if the source stream is ordered.

As you can see, in this case StreamEx behavior is the same as the underlying Java Stream API behavior. However for your particular task there's a hackish alternative:
StreamEx.ofLines(...).pairMap((a, b) -> b).parallel()...

Try to test it.

By the way I cannot reproduce your problem. I committed a testcase which works correctly both with skip and with hackish pairMap: it actually skips the first line. The documentation clearly states that the first stream element is skipped unless the stream is unordered. Please provide the code example where you experience this problem.

Well, it's also possible that you are using an unordered collector as the terminal operation. For example, this test fails:
assertEquals(IntStreamEx.range(1, 5000).mapToObj(String::valueOf).toSet(),
        StreamEx.ofLines(new StringReader(input)).skip(1).parallel().toSet());

That's because Collectors.toSet() which is used internally is an unordered collector, thus it switches the stream to an unordered state, and in this state skip is allowed to skip any element. That's an interesting case which could be considered as a Stream API bug. You can fix this by using alternative ordered collector like this:
assertEquals(IntStreamEx.range(1, 5000).mapToObj(String::valueOf).toSet(),
        StreamEx.ofLines(new StringReader(input)).skip(1).parallel().toCollection(HashSet::new));

Or you can define your own collector which removes the UNORDERED characteristic. By the way the pairMap hack works well even with unordered collector. Though it's capable to skip single line only.

I've created a separate branch and committed a new .recreate() method there:
StreamEx.ofLines(new StringReader(input)).parallel().skip(1).recreate().toSet();

This method starts a new pipeline at given point while keeping the whole procedure lazy. The thing is that parallel and unordered characteristics are not shared between the pipelines, so even if toSet() is unordered, this makes only the last pipeline unordered, but the first pipeline remains ordered. This should work nicely with any unordered terminal operation like findAny or forEach as well. I did not check yet how this would affect the performance. So you are free to checkout this branch and try this method. If it proves to be useful, I will include it to some later release (probably 0.3.2). The name recreate() maybe not the very best one, so I'm considering the alternatives as well.
Please note that I'm not going to "fix" the existing skip method for a reason. The idea of my library is to extend the Stream API, which means that at every point where standard Stream is already used, it can be replaced with StreamEx with no visible changes (see Liskov substitution principle). So if standard stream API has weird behavior or even bugs, then it should be the same when using StreamEx.

The recreate() method looks to be useful and has very small performance impact, thus it's likely to be added to StreamEx 0.3.2.

After additional testing and rethinking I decided to replace the recreate() with skipOrdered(n) which combines skip and recreate steps, turning the stream into sequential mode and pack to parallel if necessary. Seems that skip is the only problematic operation and problems appear only with non-sized sources, thus skipOrdered would be more clear for the users. I thought that there's similar problem with limit, but seems that limit always works fine and leaves the first entries even if terminal operation is unordered.

skipOrdered added to the 0.3.2 version.

Brian Goetz approved that such skip() behavior is a bug. They posted a bug-report to OpenJDK bug tracker.

Seems that the original Stream.skip is fixed for JDK 9 and backported to JDK 8u60. So my skipOrdered will become unnecessary.


Gallery would like to integrate Google Feedback

Google Feedback is a great way to capture user feedback from apps in the wild. Eventually, we'd like the Gallery to add a way for users to provide feedback, directly from the app.

This should be straightforward using the internal feedback plugin.  customer:fast is already doing this and @collinjackson would know more.

Not required for our initial push (hence, not August) but yeah, would be great in a future version!

Looks straightforward, happy to take this

If we do this, it will be internal-only, so I don't think we need a public bug to track.


JSONPath help

Hi I have a webhook agent receiving post but the payload is blank. I think it has to do with the payload_path not being correct. Below is the raw data that is being posted, can someone help me with the path I need to put to get the payload. I am trying to get the title, description, location and date.
{"name":"Hill","count":69,"frequency":"Daily","version":12,"newdata":true,"lastrunstatus":"partial","lastsuccess":"Sun Mar 29 2015 19:10:48 GMT+0000 (UTC)","thisversionstatus":"partial","nextrun":"Mon Mar 30 2015 19:10:48 GMT+0000 (UTC)","thisversionrun":"Sun Mar 29 2015 19:10:48 GMT+0000 (UTC)","results":{"collection1":[{"title":{"text"some title"","href"http:// link""},"description":"1 2 3 4 5 6 7 8 9","location":"1 2 3 4 5 6 7 8 9","date":{"text":"1 2 3 4 5 6 7 8 9","href":"javascript:__doPostBack('DataGrid1$_ctl1$_ctl1','')"},"url":"http://ng.com"},{"title":{"text"some title 2015"","href"http://2.com""},"description"descriptionsome"Job Type","location":"Location","date":{"text":"Post Date*","href":"javascript:__doPostBack('DataGrid1$_ctl2$_ctl0','')"},"url":"http://nn.com"},{"title":{"text":"APB","href":"http://n.com"},"description":"Temporary","location":"IN - Indiana","date":{"text":"03/27/2015","href":""},"url":"http://jcom"}

Which part are you interested in?

The data I want is starting from collection1. So each payload should have title,description, location, date.
If that's not possible then title is what I want.
{"collection1":[{"title":{"text"some title"","href"http:// link""},"description":"1 2 3 4 5 6 7 8 9","location":"1 2 3 4 5 6 7 8 9","date":{"text":"1 2 3 4 5 6 7 8 9","href":"javascript:__doPostBack('DataGrid1$_ctl1$_ctl1','')"},"url":"http://ng.com"}
I have webhook posting to huginn and http://requestb.in/. Huginn gets post but payload is empty while the other website gets what I posted above. I'm sorry I'm confusing you.

So you want it to loop over the results, not just return the first one with something like collection1[0].title?

Yes I think.

I read some examples online and came up with this.
$..collection1[*]
The problem is Huginn is only showing the first payload and ignoring the rest. However, when I goto http://jsonpath.curiousconcept.com/ the same query on same raw data shows each payload with Title, description, date location etc.
Is there something wrong with the above Jsonpath?
Here is the raw data
{
"name": "Raw Data",
"count": 58,
"frequency": "1 day",
"version": 1665,
"newdata": true,
"lastrunstatus": "success",
"lastsuccess": "Fri Apr 03 2015 17:09:54 GMT+0000 (UTC)",
"thisversionstatus": "success",
"nextrun": "Fri Apr 04 2015 17:24:54 GMT+0000 (UTC)",
"thisversionrun": "Fri Apr 03 2015 17:09:54 GMT+0000 (UTC)",
"results": {
"collection1": [
{
"title": {
"text": "Title Text 1",
"href": "http://URL1.com"
},
"date": "April 2, 2015",
"description": "Description 1",
"url": "http://URL1.com"
},
{
"title": {
"text": "Title Text 2",
"href": "http://URL2.com"
},
"date": "April 2, 2015",
"description": "Description 2",
"url": "http://URL2.com"
},
{
"title": {
"text": "Title Text 3",
"href": "http://url3.com"
},
"date": "April 2, 2015",
"description": "Description 3",
"url": "http://url3.com"
},
]
},
"endpoint": "/api/addfd"
}
}

I need to look and see if this type of Agent can loop and produce more than one event from a payload.  If not, we'd need to add that feature.

Perhaps you could modify the WebhookAgent and change the create_event(:payload => payload_for(params)) line to something like this (untested):
if boolify(options['multiple_payloads'])
  Array(payload_for(params)).each do |payload|
    create_event(payload: payload)
  end
else
  create_event(payload: payload_for(params))
end

Then set the multiple_payloads option to true and set the payload_path to the root array that you're trying to emit events for.  If that works, you could add a spec and send a PR! :)

Wow thank you for this opportunity. I have forked, changed the agent code and created my PR. I will create a new huginn instance from my PR and test it. I will update you.
Thank you again for allowing me to help.

Couple of questions
"Then set the multiple_payloads option to true"
Do I do that in the agent like below or is that done in if boolify(options['multiple_payloads']).
{
"secret": "secret",
"expected_receive_period_in_days": "6",
"multiple_payloads": "true",
"payload_path": "$..collection1[*]"
}
"you could add a spec"
What does spec mean and how do I add that?

Maybe Rails 4 updates the session cookie on every request to avoid replay attacks?  I seem to remember that.  Is it causing you a problem to have to resend the updated cookie each time?

(Sorry, that previous comment was for a different thread.)

I think the payload_path would be $..collection1 and the multiple_payloads you have is correct, once the new code is added.  We'd also update the file in spec/models/agents/webhook_agent_spec.rb.  Would you like me to do it?

I will do it. This is my first time doing this that's why I'm asking. I want to learn.
I will update and test again.

Great!  Glad to get your help :)

Ok the updated webhook agent is working I can confirm. but
I have to apologize. I have never written a code before on any language, and dont work in IT either. From reading helpful websites and youtube vids I see spec is used to test ruby code. I also installed rspec gem. but I am on windows and I think it does not work well with it.
I think I see where I need to update the spec file below but I don't know what the code i should put.
describe 'receive_web_request' do
it 'should create event if secret matches' do
out = nil
expect {
out = agent.receive_web_request({ 'secret' => 'foobar', 'payload' => payload }, "post", "text/html")
}.to change { Event.count }.by(1)
expect(out).to eq(['Event Created', 201])
expect(Event.last.payload).to eq(payload)
end
I am sorry.

No need to apologize @signallhill!  I'm glad it's working for you, I'll make a pull request that you can try out and we'll merge it if it works.

Mind trying out https://github.com/cantino/huginn/pull/773 @signallhill?

@cantino Yes it is working confirmed. Thank you very much.
I have followed this project for almost a year now. This is absolutely amazing.

Hi, I'm having trouble with a web hook agent and the payload_path. Could you give me a hand. I have this Json from a Kerberos installation but I can buil just one event for it.
{
"regionCoordinates": [
388,
308,
535,
599
],
"numberOfChanges": 4442,
"incoming": 1,
"outgoing": 0,
"timestamp": "1476391523",
"microseconds": "6-438745",
"token": 736,
"pathToImage": "1476391523_6-438745_frontdoor_388-308-535-599_4442_736.jpg",
"instanceName": "frontdoor",
"web_request": {
"regionCoordinates": [
388,
308,
535,
599
],
"numberOfChanges": 4442,
"incoming": 1,
"outgoing": 0,
"timestamp": "1476391523",
"microseconds": "6-438745",
"token": 736,
"pathToImage": "1476391523_6-438745_frontdoor_388-308-535-599_4442_736.jpg",
"instanceName": "frontdoor"
}
}

If you have a question @nachiarg, please post on a new issue.


Ensure that the entire PDF document is loaded before we begin saving it

When I started looking at PR #16938 it occurred to me that some of the new structTree-methods are synchronously accessing certain dictionary-data (not used during "normal" structTree-parsing), which may not be generally safe since everything in a dictionary could be a reference (and the relevant data may not have been loaded yet).
Rather than suggesting that we make all those new methods even more asynchronous, to me the overall simplest and safest solution is to ensure that the entire PDF document has been loaded before we begin saving it. In practice this shouldn't really affect "performance" of saving noticeably, since it's always depended on the entire PDF document being downloaded.
Finally note that with the exception of the PDF document possibly not having been fully downloaded when saving is triggered, all other "global" document properties are pretty much guaranteed to already be available at this point.

/botio test


[nanobind] New port

This is a WIP until upstream makes a new release with the necessary changes to support packaging. After this happens, I will change the version to match upstream (instead of using date).
Nanobind distributes its source files to build on-demand, so I have added a CI port to make sure this continues to work with the provided upstream example by the author of nanobind.
After testing, cross-compilation for a different architecture (arm64-windows in CI) is not supported due to the execution of the Python executable to figure out the Python module extension.
Closes: #33401
Supersedes: #31323

[x] Changes comply with the maintainer guide
[x] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
[x] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx
[ ] The versioning scheme in vcpkg.json matches what upstream says.
[x] The license declaration in vcpkg.json matches what upstream says.
[x] The installed as the "copyright" file matches what upstream says.
[x] The source code of the component installed comes from an authoritative source.
[x] The generated "usage text" is accurate. See adding-usage for context.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is in the new port's versions file.
[x] Only one version is added to each modified port's versions file.

I'm very confused about what's happening. Why is python311.lib being listed for the Debug builds? And why does this only happen on Windows dynamic triplets? It's not listed in the link command (python311_d.lib is).
Snippet:
[13/13] cmd.exe /C "cd . && D:\downloads\tools\cmake-3.27.1-windows\cmake-3.27.1-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=CMakeFiles\nanobind_example_ext.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1437~1.328\bin\Hostx64\x64\link.exe  CMakeFiles\nanobind_example_ext.dir\src\nanobind_example_ext.cpp.obj  /out:nanobind_example_ext.cp311-win_amd64.pyd /implib:nanobind_example_ext.lib /pdb:nanobind_example_ext.pdb /dll /version:0.0 /machine:x64 /nologo    /debug /INCREMENTAL  nanobind-static.lib  D:\installed\x64-windows\debug\lib\python311_d.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib  && cd ."
FAILED: nanobind_example_ext.cp311-win_amd64.pyd
cmd.exe /C "cd . && D:\downloads\tools\cmake-3.27.1-windows\cmake-3.27.1-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=CMakeFiles\nanobind_example_ext.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1437~1.328\bin\Hostx64\x64\link.exe  CMakeFiles\nanobind_example_ext.dir\src\nanobind_example_ext.cpp.obj  /out:nanobind_example_ext.cp311-win_amd64.pyd /implib:nanobind_example_ext.lib /pdb:nanobind_example_ext.pdb /dll /version:0.0 /machine:x64 /nologo    /debug /INCREMENTAL  nanobind-static.lib  D:\installed\x64-windows\debug\lib\python311_d.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib  && cd ."
LINK Pass 1: command "C:\PROGRA~1\MICROS~1\2022\ENTERP~1\VC\Tools\MSVC\1437~1.328\bin\Hostx64\x64\link.exe CMakeFiles\nanobind_example_ext.dir\src\nanobind_example_ext.cpp.obj /out:nanobind_example_ext.cp311-win_amd64.pyd /implib:nanobind_example_ext.lib /pdb:nanobind_example_ext.pdb /dll /version:0.0 /machine:x64 /nologo /debug /INCREMENTAL nanobind-static.lib D:\installed\x64-windows\debug\lib\python311_d.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\nanobind_example_ext.dir/intermediate.manifest CMakeFiles\nanobind_example_ext.dir/manifest.res" failed (exit code 1104) with the following output:
LINK : fatal error LNK1104: cannot open file 'python311.lib'

After running the link.exe command locally with /VERBOSE, I see python311.lib mentioned at the top of the output and then not again until it fails to find it:
Starting pass 1
Processed /DEFAULTLIB:msvcprtd
Processed /DEFAULTLIB:python311.lib
Processed /DEFAULTLIB:MSVCRTD
Processed /DEFAULTLIB:OLDNAMES

Searching for DEFAULTLIB doesn't yield any obvious locations that would cause python311.lib to appear here. I searched the source code of nanobind, CMake, vcpkg, and nanobind_example.
After some searching, I think this same issue (https://github.com/microsoft/vcpkg/issues/23052#issuecomment-1345600775) is present in nanobind: https://github.com/wjakob/nanobind/blob/eb308de0e3099e5abd8e2e9b60a8e0af81ee93db/include/nanobind/nb_python.h#L11-L19

This likely would have worked if the debug headers were not removed because pyconfig.h sets Py_DEBUG 1 for debug builds, and nanobind respects that variable.

Convert this PR to draft since there are errors on CI pipeline need to fix. Please ping us if this PR is ready for review again.

CI is now passing. I am waiting for upstream to make a new release that includes the changes that make packaging easier.
I will leave this PR as a draft until nanobind makes a new release, but if there are any other comments on the content of this PR, I am happy to address them!

@ekilmer   When do you expect nano bind to release a version with the expected changes for vcpkg compatibility?

Great news. Thanks.

CI failures don't look related to this PR

This needs to depend on the python3 port, IMO.

Note. The following notes do not apply to your port, but to the implementation of the nanobind itself.
"nanobind" does not provide any CMake export targets. As a result, in many cases it is not useful.

I can't create a library using my own CMake functions without the nanobind_add_module helper function. I would like to use ninobind, for example, like other binding libraries:target_link_libraries(mylib
  PRIVATE
    nanobind::link_options
    nanobind::lto
    nanobind::extension_abi3
  PUBLIC
    nanobind::nonobind-abi3
)

I cannot export and install targets for mylib correctly with public dependency to the shared nanobind lib:export(TARGETS mylib
    FILE "${PROJECT_BINARY_DIR}/${export_name}.cmake"
)
export(PACKAGE ${package_name})
install(TARGETS mylib
    EXPORT ${export_name}
    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
    PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)

@yurybura I agree with your concerns, but it looks like a PR was closed that tries to provide what you say---https://github.com/wjakob/nanobind/pull/201.
There are still cases where this port is useful, like building and packaging a Python native module, where the installation is only expected to be used/loaded by the Python interpreter (and not other CMake projects).

@Hoikas

This needs to depend on the python3 port, IMO.

I can make that change if that's required for getting this merged, but I would argue the primary use case would be for building Python native modules where the majority of users would want Python to come from the system to build against a specific version of Python for their module.
Sure, people could create an empty overlay port for Python, but I feel like that is a bit advanced (but maybe I'm wrong). Maybe we could add some info to the usage file? But users would still have to build Python before seeing that text. I'm not sure of the best solution.

@Hoikas I don't see why this port would need to depend on the Python port. I am using pybind11 to wrap a  C++ api via the vcpkg port, I would just like the same support for nanobind. I am not interested in building Python 3 and I don't really want to maintain my own fork of the vcpkg repo with this PR merged.

I don't see why this port would need to depend on the Python port. I am using pybind11 to wrap a C++ api via the vcpkg port, I would just like the same support for nanobind. I am not interested in building Python 3 and I don't really want to maintain my own fork of the vcpkg repo with this PR merged.

Your use case is outside the scope of vcpkg. vcpkg intends to control its own ecosystem and not pull from system libraries. It sounds like you're interested in FetchContent to include nanbind, IMO. If you really what to build nanobind with vcpkg, you can use an overlay port that doesn't depend on python3. Just copy and paste this port into your project and delete the python3 dependency from the manifest. For the main catalog, however, we should provide a solution that just works.

@Hoikas The Python3 dependency is redundant for the nanobond port since it only copies the source files to the installation directory.

I don't see why this port would need to depend on the Python port. I am using pybind11 to wrap a C++ api via the vcpkg port, I would just like the same support for nanobind. I am not interested in building Python 3 and I don't really want to maintain my own fork of the vcpkg repo with this PR merged.

Your use case is outside the scope of vcpkg. vcpkg intends to control its own ecosystem and not pull from system libraries. It sounds like you're interested in FetchContent to include nanbind, IMO. If you really what to build nanobind with vcpkg, you can use an overlay port that doesn't depend on python3. Just copy and paste this port into your project and delete the python3 dependency from the manifest. For the main catalog, however, we should provide a solution that just works.

I don't see how my use case is outside the scope of vcpkg. I have a project with a dependency on pybind11, I use vcpkg to consume that dependency without using an overlay port. It just works when I add pybind11 to my vcpkg.json manifest. I would like to be able to switch to nanobind by just changing my manifest to point to nanobind instead of pybind11.   I am not interested in creating an overlay port or building Python 3 from source.  Nor am I interested in using this particular library with another CMake project. The reason I am using nanobind or pybind11 is to provide access to native C++ code from Python.

The binary results must not depend on installation order, or ABI tracking and caching would be broken. Using nanobind after installing port python3 must not behave different from installing just nanobind. Installation order is enforced by ... dependencies.

@ekilmer can you re-mark this PR as 'ready' by cycling to draft and back once more to catch the maintainers attention

I apologize for the delayed review. I have some questions regarding this new port, so I'm changing the status of this PR to draft.

Thanks for the new port!


Maw Mounts not called during Shadowlands Intro

Unsurprisingly (🤣) Blizzard's code thinks that The Maw is flyable during the Shadowlands intro questline

Turns out I didn't fix this until 447e0fd

Turns out I didn't fix this until 447e0fd

Turns out I hadn't fixed this until 447e0fd

Turns out I hadn't fixed this until 447e0fd


consider github suggestions api

might be nice to place the document() and friend results as suggestions

also inspired by the limitations of #262

uh, this suggests there isn't an API yet: https://github.community/t5/GitHub-API-Development-and/Accessing-the-new-quot-GitHub-Suggestions-quot-via-API-public/td-p/13922


[BUG] Deleting a deleted model causes a 500 illegal_state_exception

What is the bug?
Attempting to delete a model that has just been deleted causes illegal_state_exception.
Use models.yaml test from https://github.com/opensearch-project/opensearch-api-specification/pull/453. It creates a model. Then delete the model twice quickly. The first one succeeds with 200, the second is a 500.
[INFO] => DELETE /_plugins/_ml/models/ZVP1CJEBQj8N2F2ZqulZ ({}) [application/json] | undefined
[INFO] <= 200 (application/json; charset=UTF-8) | {
  "_index": ".plugins-ml-model",
  "_id": "ZVP1CJEBQj8N2F2ZqulZ",
  "_version": 3,
  "result": "deleted",
  "forced_refresh": true,
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 58,
  "_primary_term": 1
}

[INFO] => DELETE /_plugins/_ml/models/ZVP1CJEBQj8N2F2ZqulZ ({}) [application/json] | undefined
[INFO] <= 500 (application/json) | {
  "root_cause": [
    {
      "type": "illegal_state_exception",
      "reason": "Model is not all cleaned up, please try again. Model ID: ZVP1CJEBQj8N2F2ZqulZ"
    }
  ],
  "type": "illegal_state_exception",
  "reason": "Model is not all cleaned up, please try again. Model ID: ZVP1CJEBQj8N2F2ZqulZ",
  "caused_by": {
    "type": "status_exception",
    "reason": "Failed to delete all model chunks, Bulk failure while deleting model of ZVP1CJEBQj8N2F2ZqulZ"
  }
}

What is the expected behavior?
The second call should either return a 404 that the model no longer exists, or a 200 that it has been deleted.
What is your host/environment?

OS: M1 OSX
Version OpenSearch 2.15

This is caused by not adding refresh policy when deleting model chunks, fix PR above.

This is fixed by the PR above, closing this now.


Bigram distribution over strings

Once we have addressed #3, we will want to add a simple distribution over string-valued data.
I suggest the following setup:

We assume an alphabet $\Sigma$ of $V$ allowed characters for the strings. This could be fixed, or an input to the distribution's constructor, as $k$ is in Emily's implementation of Dirichlet-Categorical (#1).
The likelihood is parameterized by a transition matrix $T \in \mathbb{R}^{(V+1) \times (V+1)}$, where $T_{i,j}$ is the probability of transitioning from letter $i$ to letter $j$, and we interpret $i=V+1$ as a special 'start symbol' and $j=V+1$ as a special 'end symbol'. Note that each row of the matrix should sum to 1. Then the likelihood of a string $x_1, \dots, x_n$ is the product $T_{V+1, x_1} \cdot \left(\prod_{1 \leq i \leq n-1}T_{x_i,x_{i+1}}\right) \cdot T_{x_n, V+1}$.
The prior over $T$ is given by a product of $V+1$ Dirichlet distributions, one for each row of the transition matrix. For now, they could all be symmetric Dirichlet distributions with the same $\alpha$ parameter.

The state we track would be a matrix of observed transition counts -- how often did we transition from letter i to letter j, for each letter?
Actually, I think it should be possible to implement this internally in terms of a vector of Dirichlet-Categorical distributions.

This could be fixed, or an input to the distribution's constructor, as k is in Emily's implementation of Dirichlet-Categorical
I like the latter option---would give us more flexibility to bridge between ascii, unicode, token vocabularies etc

$i=V+1$ as a special 'start symbol' and $j=V+1$ as a special 'end symbol'.
maybe a typo and you mean i=0, or i=V?

Actually, I think it should be possible to implement this internally in terms of a vector of Dirichlet-Categorical distributions.
sounds good to me!

maybe a typo and you mean i=0, or i=V?

Ah, I was thinking with 1-indexed subscripts. So $i=1, \dots, V$ for the actual vocabulary, and $i=V+1$ for the special symbol. But maybe we should 0-index to keep closer to the code.


Handle ctx.Done properly

@fabxc Does the following make any sense? I checked the Read method of the Body implementation. It is apparently meant to handle a concurrent Close() gracefully.
For a scrape, we use ctxhttp.Do, which handles ctx.Done for
us. However, once it has returned, we are out of luck, and cancelation
and time-outs of the context are ignored. For HTTP responses that are
already done when returned by ctxhttp.Do, that's no big deal. However,
large responses are chunked, and reading from the Body implies ongoing
reading from the network, which can take very long or even stall
completely.
This problem explains why we didn't see timeout errors in the past
where we should have.
It might explain some of the hangs we have seen.

The background goroutine is actually not terminated if the context is canceled and the work is done either way. The general contraption partially brings us back to what we had before the refactoring and may cause cascading failure as the goroutines accumulate in the background.
This is not true for ctxhttp, where this code's inspiration comes from, as it uses the request's Cancel property to signal background processing to terminate. It also takes care of cleaning up it's other goroutines and channels.
https://github.com/golang/net/blob/master/context/ctxhttp/ctxhttp.go#L76-L85
Note that the .Cancel set on the request is respected all the way down to the lifetime of the request (here in the read loop of the underlying transport).
As Do() returns immediately after the headers are received, it would be pretty useless otherwise.
So the reader should actually error here at decoding time as soon as the context expires.
I suppose there's an investigation story behind this. Please correct me if I misinterpreted anything along the way.

I think your thoughts are in line with mine. I believe the response object is doing some cancelation work when the body is closed before EOF is reached, but I didn't investigate fully.
This was more to test the grounds if I'm doing something completely wrong (you are way more familiar with the context package).
My plan was to pull out the logic from ctxhttp.Do (instead of just replicating it as I have done so far), so that we have access to the Cancel channel while reading from the response.
However, should closing of the Body also close the Cancel channel, we would see a panic when we close Cancel again... it's worth a try, I guess...

I think I got it now:
The HEAD of the ctxhttp package is properly dealing with everything, while the version we have vendored creates the problem we have observed.
So we don't need my PR here, we only need to updated the vendoring.
Just compare the two versions, and I think you'll come to the same conclusion.


No way to specify wildcard Origin on resumable upload initiate session

Following what was described in issue #2755. I would like to be able to add a wildcard to UploadObjectOptions.Origin; Just to describe, I don't know if it is a bug or a feature request.
Environment details

.NET Core version: 3.1.200
Google.Cloud.Storage.V1 - 2.5.0 and 3.0.0-beta03

My situations is that:

I have an API deployed on GAE. This API is used to process files that has a huge size (around 4GB each);
I have an app also deployed on GAE. This app consumes the API.
When the App needs to upload a file, it gets from API a resumable upload URI;
Due to the XmlHttpRequest filesize limitation (around 80MB), it uploads in chunks of 8MB (similar from what Google Cloud Storage does when uploading directly to it).

What is happening, is, on the last chunk, when the status received is 200, I am getting the following error:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://storage.googleapis.com/upload/storage/v1/b/… (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

On the API, I am creating the URI like this:
var options = new UploadObjectOptions {
     PredefinedAcl = PredefinedObjectAcl.PublicRead,
     Origin = "*"
};

// Create a temporary uploader so the upload session can be manually initiated without actually uploading.
var tempUploader = storageClient.CreateObjectUploader(
    bucketName,
    filePath,
    contentType,
    new MemoryStream(),
    options);

Uri uri = await tempUploader.InitiateSessionAsync();

This is the response headers when the status is 308:
HTTP/2 308 Permanent Redirect
content-type: text/plain; charset=utf-8
x-guploader-uploadid: [OMITTED]
range: bytes=0-41943039
x-range-md5: aec2f597fb80999005874b9e79b39ea3
access-control-allow-origin: http://localhost:8080
access-control-allow-credentials: true
access-control-expose-headers: Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Access-Control-Expose-Headers, Content-Length, Content-Type, Date, Range, Server, Transfer-Encoding, X-GUploader-UploadID, X-Google-Trace, X-Range-MD5
content-length: 0
date: Thu, 23 Apr 2020 08:24:08 GMT
server: UploadServer
alt-svc: h3-Q050=":443"; ma=2592000, h3-Q049=":443"; ma=2592000, h3-Q048=":443"; ma=2592000, h3-Q046=":443"; ma=2592000, h3-Q043=":443"; ma=2592000, h3-T050=":443"; ma=2592000
X-Firefox-Spdy: h2

This is the last response that I get when the status is 200, and the error happens:
HTTP/2 200 OK
x-guploader-uploadid: [OMITTED]
etag: CIe+pMmP/ugCEAE=
content-type: application/json; charset=UTF-8
date: Thu, 23 Apr 2020 08:24:11 GMT
vary: Origin
vary: X-Origin
cache-control: no-cache, no-store, max-age=0, must-revalidate
expires: Mon, 01 Jan 1990 00:00:00 GMT
pragma: no-cache
content-length: 2745
server: UploadServer
alt-svc: h3-Q050=":443"; ma=2592000, h3-Q049=":443"; ma=2592000, h3-Q048=":443"; ma=2592000, h3-Q046=":443"; ma=2592000, h3-Q043=":443"; ma=2592000, h3-T050=":443"; ma=2592000
X-Firefox-Spdy: h2

Take a look that the last response doesn't come with the header: access-control-allow-origin
This is the same behaviour if I don't set anything on UploadObjectOptions.Origin. However, if I set directly http://localhost:8080 it works fine.
This is my JavaScript code:
const xhr = new XMLHttpRequest();
xhr.open("PUT", uploadUri, true);
xhr.setRequestHeader('Content-Type', `${contentType}`);
xhr.setRequestHeader('Content-Range', `bytes ${startBytes}-${(endBytes - 1)}/${totalBytes}`);
xhr.send(slicedFile);

My problem is, I don't have only a single origin, I have multiple origins. Now, my workaround is sending the origin to the API in order to add the Origin. This is ugly.
I would like to be able to accept any Origin using wildcards, as I defined on Set Bucket CORS.
If you need any further information, let me know.

I'll have a closer look at this when I get a chance, but it's not clear to me whether this is a client library issue or a Storage service issue. Are you able to capture the requests (from .NET) as well as the responses to see if we're sending the headers you expect to send? If the library is behaving as expected, we'll need to pass this over to the Storage team - I'm afraid the engineers working in this repo don't have in-depth knowledge of every API represented. But obviously if it is a client library issue, we should be able to fix that :)

Okay, I'm still not entirely sure that I follow, but I'm reasonably sure this is a Storage feature request.
I suspect the bucket-level CORS config and the origin specified on one particular upload are very different things - and that while a wildcard for the former makes sense, a wildcard for the latter may not currently be an option.
It's not quite clear to me why for a given upload you'll have multiple origins though. It's also not clear to me what you mean by "sending the origin to the API" - do you mean that the browser sends its current origin to your API, so that your code can request an appropriate resumable upload to be started? To be honest, that feels entirely appropriate to me - not ugly at all.

Well, I might have been a bit aggressive when I said ugly, I apologise for that.
In my understanding, it seems a bit counterintuitive the fact that a wildcard isn't allowed. I understand that it promotes a way to hard specify an origin and maintain that, without the upload URI "wandering away".
However, even if the wildcard isn't allowed, it still allows the upload. The error occurs after the upload is finished. It is the same that happens here

do you mean that the browser sends its current origin to your API, so that your code can request an appropriate resumable upload to be started?

Yes, you are right.
About my stack, I will simplify as much as possible. In terms of interactions, I have 3 layers:

Google Cloud Storage;
API;
App (any client consuming the API).

To upload any file to be processed, the client consumes the API and get a Upload URI. Thus, the client performs the file upload (resumable and in chunks), avoiding any process overhead.
Thank you for your comment, I appreciate any further instructions if this request must be done in somewhere else.

I can't speak to the failure mode - but I strongly suspect that wildcards are regarded as an anti-pattern from a security perspective.
It does sound like this is a basically a service feature request - I would suggest using one of the avenues listed on the Storage Support page. Having looked at the code, I believe the client library is working correctly, and this is a matter of what's permitted by the service.

Indeed.
Can I request to point out on the documentation that a wildcard isn't allowed?

I would prefer not to do that in the library documentation, as that means it would become inaccurate if the team accepts your feature request. I think it would be better to ask for the service team to update the service documentation if they don't want to implement the feature.

(Closing this now as I believe there's no change required in terms of the library. Best of luck with your communications with the server team.)


installation on Windows

Hi, on windows 10 and 11 I kept getting the error:
Traceback (most recent call last):
  File "<frozen runpy>", line 189, in _run_module_as_main
  File "<frozen runpy>", line 112, in _get_module_details
  File "D:\Development\mcp-discord\src\discord_mcp\__init__.py", line 3, in <module>
    from . import server
  File "D:\Development\mcp-discord\src\discord_mcp\server.py", line 8, in <module>
    import discord
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\__init__.py", line 23, in <module>
    from .client import *
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\client.py", line 51, in <module>
    from .sku import SKU, Entitlement
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\sku.py", line 31, in <module>
    from .app_commands import MissingApplicationID
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\app_commands\__init__.py", line 12, in <module>
    from .commands import *
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\app_commands\commands.py", line 53, in <module>
    from .models import Choice
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\app_commands\models.py", line 44, in <module>
    from ..member import Member
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\member.py", line 33, in <module>
    import discord.abc
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\abc.py", line 59, in <module>
    from .voice_client import VoiceClient, VoiceProtocol
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\voice_client.py", line 35, in <module>
    from .player import AudioPlayer, AudioSource
  File "D:\Development\mcp-discord\.venv\Lib\site-packages\discord\player.py", line 29, in <module>
    import audioop
ModuleNotFoundError: No module named 'audioop'

but fixed it with
uv pip install audioop-lts

and might have to run again
uv pip uninstall discord.py -y && uv pip install discord.py

Thank you, audioop was removed in Python 3.13.  I will add that to the readme and try to get it into the install here shortly.
https://docs.python.org/3/library/audioop.html


Return raw SQL query results in sql-sqlite-node

Type

[ ] Refactor
[x] Feature
[ ] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description

Adds support for #3457 to sql-sqlite-node, so you can find out if a row was inserted etc.
Related

Related Issue #3457
Closes #

Thanks! Just did a bit of maintenance while I was here :)


stdlib: Improve Never documentation

Reopens #38004, with suggested changes applied.

@AnthonyLatsis Hi, could you ask the library folks to look at this? Thanks!

@swift-ci smoke test

Overall, this looks like an improvement because it adds information that was missing before.  However, there are several style issues.  Do you have a preference between me rewriting and committing changes versus suggesting changes in PR comments?  For example, the abstract uses italics and defines new terms, and we usually avoid parenthetical asides.
There's also a question of positioning.  Which information is more important to a developer reading this documentation: The type theory around Never being an uninhabited type, or the use cases like Never being the type you use as the return value for functions that don't return?

@swift-ci Please smoke test.

@swift-ci smoke test macOS platform

@bradleymackey I'd prefer you don't hard-wrap this content back to 80 columns (abf877ada2dde1fa402bf584ac6c2ef60edd0cd4), although if you feel very strongly on this point I'll concede it.  Hard wrapping documentation means each time a change is made, the entire paragraph must be re-wrapped.  That produces noisy diffs, making docs PRs harder to review, and reduces the Git history available in git blame.
To prevent this, several areas in documentation use semantic line breaks — that is, each line contains a meaningful phrase and doesn't need to be rewrapped at each revision.  That approach lets you get more granular Git history and produces much smaller diffs when making changes, which makes documentation PRs easier to review.
I've written some a longer comments about semantic line breaks in the style guide for "The Swift Programming Language" here.

@amartini51 That makes a lot of sense, I'll revert the change. Thanks for explaining!

@swift-ci Please smoke test macOS platform

@swift-ci Please smoke test

@swift-ci Please smoke test macOS


Decouple document content from modern.js

polyfill: 'ua'
Plugins: "Used in Modern.js framework"
more..

We should also update the modern.js document, moving some content to the modern.js doc.


AssertionError with test_cov_matrix_diag function

Hi @Rowansiv,
I found a small error with the test_cov_matrix_diag function when running pytest (screenshot below). I think we might need to add a tolerance to the assert statement for the test to pass. Would you be able to look into this?
Thank you!

I've fixed this now @jennifer-hoang , please let me know if it still doesn't work. Thanks!


Simplify baseline data structures

I'll review this tomorrow. I see something that doesn't fit but I'm not sure what it is (a bit too late for me to think properly). I mean, for sure this is better than before but I think that we could make it even better. If it blocks you dot me is OK, we can rethink it later.

I think that Baseline should have a function contains where you give it an id and it returns true or false if it's contained or not.
Then we can rebase BaselineFacade to BaselineFactory so given a file it provides us the Baseline.
Baseline should have another function that given a list of findings (or just a list of ids) it provides a new Baseline that mantains the Blacklist and changes the whitelist.
What do you think?
As I said, this could be done later. For that reason I approve this PR like it is.

Awesome suggestions. Applied and further simplified, thanks!


Host commands not available to guests

Describe what happened:
I am not sure if that is a bug or the extensions need to do something for that to happen and since there is no "question" issue, I'm filing a bug with apologies :-).
Is it expected that all the commands provided by extensions installed on the host are available on the guests using Ctrl+Shift+P or is it expected that the guests install those extensions themselves? Currently none of the commands we've tried are not available and I was wondering if I was missing something.
What was your system configuration?
Product and Version [VS/VSCode]: VSCode
OS Version[macOS/Windows]: Windows
Live Share Extension Version: v1.0.5892
Target Platform or Language [e.g. Node.js]: PHP
Steps to Reproduce / Scenario:

Press Ctrl+Shift+P on the guest
Search for command that is available on the host

Please attach logs to this issue:
You can access them via the Live Share: Export Logs command from the command palette (ctrl + shift + p) and attach them to this issue
Screenshots
If applicable, add screenshots to help explain your problem.

Thanks for taking the time to file this issue to submit this request. This is by design. Unfortunately, we’re not able to prioritize new features like this over the other current areas of focus on the team. We understand that this may be disappointing. We appreciate your input and comments on this issue till now.


Move hash inside sql

Moves /* HASH ... */ comment inside SQL text to preserve it in the query store.

/azp run


[UI] change UI to show 'Use Multi-Stage Engine' instead of 'Use V2 Engine'

Before:

After:

Codecov Report

Merging #11338 (149a86f) into master (1650085) will decrease coverage by 50.98%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master   #11338       +/-   ##
=============================================
- Coverage     65.56%   14.59%   -50.98%
+ Complexity     6511      494     -6017
=============================================
  Files          2239     2165       -74
  Lines        120475   117318     -3157
  Branches      18230    17784      -446
=============================================
- Hits          78987    17119    -61868
- Misses        35750    98783    +63033
+ Partials       5738     1416     -4322

Flag
Coverage Δ

integration1
?

java-11
?

java-17
14.59% <ø> (-15.22%)
:arrow_down:

java-20
?

temurin
14.59% <ø> (-50.98%)
:arrow_down:

unittests1
?

unittests2
14.59% <ø> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1649 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Dev mar bi 51 bears team logo component

BearsTeam component with lovely green hover which is the same as footer nav menu hoover. :lollipop:

Conflicts due to the run of prettier on divider :angel: :crown:


[Composer] Enhancement: Require and run phpstan/phpstan

This PR

[x] requires and runs phpstan/phpstan with the maximum level with which a run currently passes

💁♂ For reference, see https://github.com/phpstan/phpstan.

Thanks!

Thank you, @greysteil!


[BUG]

Describe the bug
After the CLA has been agreed, the text on the PR's Conversastion page has a confusing bright red warning/error at the end of the comments, saying "All checks have failed".
Apologies inadvance if i've misunderstood something here.
To Reproduce
Enable contributor-assistant/github-action in a github repository as described in documentation.
Create a pull request.
Note that the CLA needs to be agreed.
Add a comment with the required text "I have read the CLA Document and I hereby sign the CLA" as instructed.
We then get these comments on the Conversation page, in this order:

"CLA Assistant Lite bot All contributors have signed the CLA writing_hand white_check_mark"
"I have read the CLA Document and I hereby sign the CLA"
"... has signed the CLA from Pull Request"
"All checks have failed" in red.

And the PR appears to have been created.
But the "All checks have failed" in red is rather confusing, especially as it is the last item in the conversation.
Expected behavior
The Pull request conversation page should show that the CLA has been agreed and the PR is ok without the bright red warning/error "All checks have failed", or at least show that things are ok below this warning/error text.
Ideally it would show things in this order:

"All checks have failed" crossed/greyed out to indicate it is out of date.
"I have read the CLA Document and I hereby sign the CLA"
"... has signed the CLA from Pull Request"
"CLA Assistant Lite bot All contributors have signed the CLA writing_hand white_check_mark"

I appreciate that some or all of this ideal behaviour might not be possible.
Screenshots
If applicable, add screenshots to help explain your problem.

I guess this is similar to the bug I have raised #150


Prompt users to configure special folders during account setup

If the IMAP server doesn't support the Special-Use extension to let clients know which folders to use as special folders (Archive, Drafts, Sent, Spam, Trash), prompt the user to configure special folders when setting up an account.
The UI should be initialized with sensible defaults. If there's a folder called "Drafts" chances are good users will want to use it as their Drafts folder. Ideally, the app correctly guesses which folders to use for what role and the user only has to click an "OK" button.
Currently we default to not using a special folder when the server doesn't support the extension or no folder is tagged with a particular role. But most users don't expect e.g. sent messages not being uploaded automatically, especially if there's a folder called "Sent".

In my case of "users don't expect" I only noticed my folders were all set to "Automatic (None)" after messages I was deleting were not being sent to trash.

This suggestion would also solve an issue i've had which i can trace down to not having set folders for Drafts.
Here was the problem: K9 would never prompt me to save drafts and would just let me choose between abandonning the draft or coming back to it if i chose to not send it right now. I just now went into the parameters and checked if there was anything i could toggle to allow me to save drafts, and setting up folders for them was what unlocked that feature.
If not having set folders prevents some syncing between the app and the server, this should probably be stated somewhere, either in the warning message i got, or when the user sets up a new account with set folders, like @cketti suggested the app should prompt you to.


[5.7] Fix console error when navigating up/down in navigator

Rationale: Fixes a bug where a console error gets thrown and headings are skipped, when navigating up/down in Navigator.
Risk: Low
Risk Detail: Minor JS change to allow focusing across headings in navigator.
Reward: High
Reward Details: Users will not get errors in JS console and skipped items in Navigator
Original PR: https://github.com/apple/swift-docc-render/pull/306
Issue: rdar://93332275
Code Reviewed By: @marinaaisa @hqhhuang
Testing Details: Updated unit tests and manually tested in the browser.

@swift-ci test


Update manual-bind-to-arrow to support function-bind syntax

In the codemod, this.foo = ::this.foo will now be treated the same as this.foo = this.foo.bind(this).

Wouldn't it normally be written as just ::this.foo since that's the same as this.foo = this.foo.bind(this)?

Yeah, but if you write ::this.foo in your render method, it's the same as this.foo.bind(this), which creates a new function every time it's rendered.

In legacy code, we have it in our constructor

Oh, I see. Simply writing ::this.foo creates a new function but does not override the original.
Here's an example using the Babel REPL.

ahh nice find

Did :: ever make it beyond proposal stage?

Did :: ever make it beyond proposal stage?

I don't think so, but that's kind of why I wrote this 😄
We'd adopted :: internally since we were overly confident that the syntax would get accepted. Later we couldn't migrate to create-react-app because of the experimental syntax. This codemod saved me a ton of time, since we had several affected repos.
I figure there must exist at least one other person or team who has painted themselves into the same corner as me 😆

Thanks much for the effort! I'm going to close this PR without merging because we don't want to support experimental syntaxes, but I'll remember it if the need does arise. Thanks again!


Why not read the registry in the workspace's .npmrc File?

Affected Packages
"@changesets/cli": "^2.20.0"

Problem
When I publish to a private registry using pnpm changeset publish, it only read the registry from package.json's publishConfig or process.env.npm_config_registry.
function getCorrectRegistry(packageJson?: PackageJSON): string {
  const registry =
    packageJson?.publishConfig?.registry ?? process.env.npm_config_registry;

  return !registry || registry === "https://registry.yarnpkg.com"
    ? "https://registry.npmjs.org"
    : registry;
}

Proposed solution
Allow setting the registry in the workspace's .npmrc file, or providing a registry option in .changeset/config.json.

Sorry for the late reply. I agree that this doesnt work perfectly now and I’d like to revisit how this is handled. I could use some help though.

@Andarist are there any plans for improvement? I can do some PR for it if needed.

Any update on this?

Would love this to


solution: EtcLogo small icon added

Codecov Report

Merging #19 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
+ Coverage   91.39%   91.45%   +0.06%
==========================================
  Files          83       84       +1
  Lines         279      281       +2
  Branches       35       35
==========================================
+ Hits          255      257       +2
  Misses         14       14
  Partials       10       10

Impacted Files
Coverage Δ

src/icons2/EtcLogo.js
100% <100%> (ø)

Continue to review full report at Codecov.

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


update examples/logging-demo to v1

Note that though I updated the output of kubectl cluster-info in the readme, the output is actually still v1beta3 due to #9611
#9286
@krousey @nikhiljindal @bgrant0607 @satnam6502

Can you get rid of the  creationTimestamp: null in the synth logger pod specs?
Otherwise LGTM!

Updated. Thanks @satnam6502


Deploy to Hex

I'm assuming the environment variables are already set so I'm just triggering the deployment under the specified conditions.

@randycoulman let me know if you want me to change anything ok? I will merge it for now so we can test the release and see if we need further adjustments 👍


Initial functionality

From community roadmap:  https://github.com/Senzing/community-roadmap/issues/18
Plan of attack:

Helm Charts

Update all helm charts to version 3
Test Helm charts with minikube in a manner similar to Get Started with Bitnami Charts using Minikube
Test Helm charts with Azure AKS in a manner similar to Get Started with Bitnami Charts using the Azure Kubernetes Service (AKS)

Bicep templates

Add "Deploy to Azure" button:  https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/deploy-to-azure-button

Pull requests:

https://github.com/Senzing/azure-template-aks-poc-simple/pull/4
https://github.com/Senzing/azure-template-aks-poc-simple/pull/8


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/114013

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/114348

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/114428

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/116916

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/116974

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/117112

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/117552


Struct Implementations

Functions (or methods really) can be attached to a struct allowing you to do something like v.length().
struct vec3 {
   x: f32
   y: f32
   z: f32
}

impl vec3 {
   get x {
      // Calculate x
      result
   }

   fn distance_to(self: vec3, other: vec3) {
      (other - self).length()
   }

   fn length(self: vec3) {
      // ...
   }
}

dec v: vec3;
v.length();

Nice computed values. It's like a function call but in the other side not.
But your get x would shadow the x: f32 in the struct wich we probably don't want as it would make if something like private wich is completely senseless.

the idea is that x just gets factored out of the struct so that its basicly removed, then it just reroute to getter and setter, so x wount actualy be in memmory, and if there is not setter then its read only, the reason that we have you declear it in the struct is so that things are implict to avoid confuistion that was my logic atleast


Too many requests based on custom field as opposed to IP address

Hi
Rather than returning 429 too many requests for the IP address, is it possible we can rather do this based on a custom field for example username or email address.
eg<EMAIL_ADDRESS>rather than a specific email address

Apologies - your complex example explains this!


Update build.gradle

update to support latest gradle plugin versions, that specified in rootProject

Can we merge this please?

It took only 2y


Completely identical changesets do not trigger "duplicate identifier" validation error

Description
Steps To Reproduce
Create a changelog with:
    <changeSet author="Liquibase User" id="1::throwDuplicateIDValidationError">
        <createTable tableName="randomTable">
            <column name="rando_id" type="numeric(4)"/>
        </createTable>
    </changeSet>

    <changeSet author="Liquibase User" id="1::throwDuplicateIDValidationError">
        <createTable tableName="randomTable">
            <column name="rando_id" type="numeric(4)"/>
        </createTable>
    </changeSet>

and run liquibase validate
     1 change sets had duplicate identifiers
          com/example/changelog.demo.xml::1::throwDuplicateIDValidationError::Liquibase User

error
If there are any differences in the content of the changesets, like a different tableName, then it works as expected.

This is still an issue in 4.14.

@nvoxland : Can you try with Liquibase Version: 4.19.1 ?. The validation seems to be working in that version.


Dark Mode override

Thank you for creating this plugin, it works great for macOS in my uses so far!
Wondering if it's possible to manually set the appearance to dark or light based on an application setting (not just the system setting)?
The use case would be a dark mode toggle in an app that allows the user to override and/or differ from the system. Is this something that can be exposed to Rust via this plugin?
If not, I'll gladly close this. Thank you!

I am not a macOS developer so I am not sure if this is possible, but you could try calling apply_vibrancy with the variant you need, and see if it changes it, if not, then you probably need to save the toggle value onto disk and request your users to restart the app, where it will re-read the saved toggle value and applies the appropriate effect.

I did a bit of quick digging on this. It does appear that Electron had this option at one point (https://github.com/electron/electron/pull/7898) that used values such as NSVisualEffectMaterialAppearanceBased, NSVisualEffectMaterialLight and NSVisualEffectMaterialDark. However those have since been deprecated as of macOS 10.14. What I didn't see was a way to specify this for macOS 10.15 and greater. Here's the overall page for NSVisualEffectView: https://developer.apple.com/documentation/appkit/nsvisualeffectview
To be honest I wouldn't be surprised if this is no longer "officially" possible/supported in macOS to change the vibrancy of a window independently from the global OS colour scheme (but I could be wrong on this).

Amr and Lorenzo,
Thank you both for your responses! Yeah, clearly those light/dark materials are deprecated when looking at the macOS docs.
I think my "need" for this was based on experience developing websites, not desktop apps. In the desktop app realm it seems that the system setting controls the application's look and feel in most cases.
Given that, happily closing this issue -- the plugin works great with that case already. People needing a manual toggle will need to create another workaround.
Thank you for looking at it!


Rename "defaultExt"

Just a small thing and it's just a suggestion. I personally prefer variable names especially if they are part of a Standard to be written out completely.
I suggest these names for this option to make it look more simple and elegant:

extension - short and moderately descriptive
default - very short and slightly descriptive
defaultExtension - a bit long and very descriptive

Kind Regards,
Adam

Hey Adam, thanks for your suggestions.. I am used to give very short names when it comes to naming variables with 2 words, but given about your explanation on how descriptive they can be, i come to think that i must make the public names as descriptive and possible, as long as they are not too long
Regards
Oscar Reyes


Allow admins to review and perma-delete user-deleted posts

See, this thread: https://myapnea.org/forum/problems-your-having-with-dental-appliances/2
The user probably double/triple-posted (possible other thing to check out) and now we have a break in the conversation. These comments (not nested / not replied-to) would be useful to remove from the page completely.

This was done in e4e11594380db545cf32ae5a48eeb92f148eb202


Encoding 'text/html; charset="utf-8"' will cause LookupError: unknown encoding: 'b'"utf-8"''

Have you searched if there an existing issue for this?

[X] I have searched the existing issues

Python version (python --version)
Python 3.11
Scrapling version (scrapling.version)
0.2.4
Dependencies version (pip3 freeze)
aiofiles               24.1.0      File support for asyncio.
anyio                  4.6.2.post1 High level compatibility layer for multiple asynchronous event loop implementations
brotli                 1.1.0       Python bindings for the Brotli compression library
browserforge           1.1.2       Intelligent browser header & fingerprint generator
camoufox               0.3.10      Wrapper around Playwright to help launch Camoufox
certifi                2024.8.30   Python package for providing Mozilla's CA Bundle.
charset-normalizer     3.4.0       The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
click                  8.1.7       Composable command line interface toolkit
cssselect              1.2.0       cssselect parses CSS3 Selectors and translates them to XPath 1.0
cython                 3.0.11      The Cython compiler for writing C extensions in the Python language.
filelock               3.16.1      A platform independent file lock.
greenlet               3.1.1       Lightweight in-process concurrent programming
h11                    0.14.0      A pure-Python, bring-your-own-I/O implementation of HTTP/1.1
httpcore               1.0.7       A minimal low-level HTTP client.
httpx                  0.27.2      The next generation HTTP client.
idna                   3.10        Internationalized Domain Names in Applications (IDNA)
language-tags          1.2.0       This project is a Python version of the language-tags Javascript project.
lxml                   5.3.0       Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
markdown-it-py         3.0.0       Python port of markdown-it. Markdown parsing, done right!
mdurl                  0.1.2       Markdown URL utilities
numpy                  2.1.3       Fundamental package for array computing in Python
orjson                 3.10.11     Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
platformdirs           4.3.6       A small Python package for determining appropriate platform-specific dirs, e.g. a user data dir.
playwright             1.48.0      A high-level API to automate web browsers
pyee                   12.0.0      A rough port of Node.js's EventEmitter to Python with a few tricks of its own
pygments               2.18.0      Pygments is a syntax highlighting package written in Python.
pyobjc-core            10.3.1      Python<->ObjC Interoperability Module
pyobjc-framework-cocoa 10.3.1      Wrappers for the Cocoa frameworks on macOS
pysocks                1.7.1       A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information.
pyyaml                 6.0.2       YAML parser and emitter for Python
rebrowser-playwright   1.48.100    A high-level API to automate web browsers
requests               2.32.3      Python HTTP for Humans.
requests-file          2.1.0       File transport adapter for Requests
rich                   13.9.4      Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
scrapling              0.2.4       Scrapling is a powerful, flexible, and high-performance web scraping library for Python. It
screeninfo             0.8.1       Fetch location and size of physical screens.
sniffio                1.3.1       Sniff out which async library your code is running under
tldextract             5.1.3       Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally ...
tqdm                   4.67.0      Fast, Extensible Progress Meter
typing-extensions      4.12.2      Backported and Experimental Type Hints for Python 3.8+
ua-parser              0.18.0      Python port of Browserscope's user agent parser
urllib3                2.2.3       HTTP library with thread-safe connection pooling, file post, and more.
w3lib                  2.2.1       Library of web-related functions
zstandard              0.23.0      Zstandard bindings for Python
What's your operating system?
macOS 15.0 (24A335)
Are you using a separate virtual environment?
Yes
Expected behavior
'utf-8'
Actual behavior (Remember to use debug parameter)
'"utf-8"'
Steps To Reproduce

content_type = 'text/html; charset="utf-8"'
Run scrapling/engines/camo.py, line 109~113

Closed as merged.


Migrated getOcktoKit to template version

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4406  👈
#4405
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @CatChen and the rest of your teammates on  Graphite


[ffigen] Ignore formatting in flutter template test

Closes: https://github.com/dart-lang/native/issues/1072

coverage: 93.733% (+1.7%) from 92.004%
when pulling 8b63fddee9738eb4155fbffa880125cb442dc4e1 on ffigen-flutter-template-format
into 301cf88e63851ec51beabde8dd086313c1b34842 on main.