add version blocks for OS specific files

The background for this is that we compile all D files on one OS to generate the documentation.

Yes, finally!! Sanity!! The lack of generated docs for core.windows.* has been bugging me for a loong time.

Auto-merge toggled on

Just so I can understand, this is so you can compile docs for e.g. FreeBSD on Windows, without having to have Windows process the lower level imports that have no docs?

Great, thanks.

Just so I can understand, this is so you can compile docs for e.g. FreeBSD on Windows, without having to have Windows process the lower level imports that have no docs?

The dpl-docs tool is build around compiling every source file and processing dmd's JSON output.
So we need to able to compile code on different platforms.


Add a LICENSE file

This project has been super useful in helping me to understand how the PIO blocks work. I'd like to use it in other projects, but I'd like to make sure that I don't run afoul of any licensing issues.
Would you mind adding a license to this project? I can create a PR if you've got one in mind.

Hi @xobs, I have added a BSD LICENSE.
I have just replied to the other open issue on what I can remember about what is wrong or incomplete about this implementation.
Which is:

I think there is an error in autopull/autopush where an extra cycle is being used that shouldn't be
Merging the results of multiple state machines to produce the output pin state is not implemented
Combining Fifos together to produce a deeper Fifo is not implemented

There were various aspects of the implementation that I was not very happy with, so I am sure that it can be improved a lot.

Looks good to me. Thanks!


mv sinon.js to allure_combine directory

https://github.com/MihanEntalpo/allure-single-html-file/issues/13

Hi, @MihanEntalpo
please review, thank you very much.
I test it locally.
It works well.

Please, increase version in setup.py and in versions.md, so it would be possible to upload new version to pip after your pull is merged

Please, increase version in setup.py and in versions.md, so it would be possible to upload new version to pip after your pull is merged

OK

OK

Already done by myself, and uploaded new version to pip


update go version and add image magic numbers

The filetypes you added are not supported, only libde265 is compiled. They are magic numbers, but they will not magically work.

To clarify, HEIF is the container, and it can contain any of these:
HEIC: HEVC (H.265) in HEIF
AVCI: AVC (H.264) in HEIF
AVIF: AV1 in HEIF
JPEG: (JPEG, JPEG 2000, JPEG XR, JPEG XS) in HEIF

This library is only for HEIC. Only libde265 is used and not any of the AOM, dav1d, FFmpeg, etc. libraries.


[Bug]: One click binding on select widget does not fetch all Label key options

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When using the One-Click Binding (OCB) option to set the Source Data property for a Select or MultiSelect widget with a MongoDB datasource, the dropdown for the Label key does not display all the available columns from the fetched data. In contrast, the Value key dropdown shows the complete set of columns. This issue does not occur with Google Sheets or Postgres datasources, and once the OCB setup is complete, the dropdown for the Label Key and Value Key properties correctly displays all columns.
Steps To Reproduce

Add a Select or MultiSelect widget to the canvas.
In the property pane, disable JS mode for the Source Data property.
Use One-Click Binding to bind a MongoDB datasource (e.g., the demo movies database).
Select a collection or table to fetch data.
Open the Label dropdown and observe that not all columns are listed.
Open the Value dropdown and observe that all columns are listed.
Complete the OCB setup by selecting any Label and Value options.
After the setup, check the Label Key property in the property pane; all columns are now available.

Public Sample App
No response
Environment
Production
Severity
Medium (Frustrating UX)
Issue video log
No response
Version
Cloud - 1.52

This behaviour is correct and expected from One Click Binding. The only valid columns that can be selected should be shown in the options for Label of the select.


Turtlebot3 realsense r200 loses connection after bringup

Hi everyone,
I am new to the Turtlebot3 and I am finding troubles with the Intel Realsense r200 camera.
When I launch on the robot roslaunch turtlebot3_bringup turtlebot3_realsense.launch or roslaunch realsense_camera r200_nodelet_default.launch the nodes run but unfortunately it just connects to the serial port without going on and then it loses the connection from the Wifi.
This is what is displayed.
Thank you in advance.
started roslaunch server http://<IP_ADDRESS>:42037/
SUMMARY
PARAMETERS

/camera/driver/base_frame_id: camera_link
/camera/driver/camera_type: R200
/camera/driver/color_fps: 30
/camera/driver/color_frame_id: camera_rgb_frame
/camera/driver/color_optical_frame_id: camera_rgb_optica...
/camera/driver/depth_frame_id: camera_depth_frame
/camera/driver/depth_optical_frame_id: camera_depth_opti...
/camera/driver/fisheye_frame_id: camera_fisheye_frame
/camera/driver/fisheye_optical_frame_id: camera_fisheye_op...
/camera/driver/imu_frame_id: camera_imu_frame
/camera/driver/imu_optical_frame_id: camera_imu_optica...
/camera/driver/ir2_frame_id: camera_ir2_frame
/camera/driver/ir2_optical_frame_id: camera_ir2_optica...
/camera/driver/ir_frame_id: camera_ir_frame
/camera/driver/ir_optical_frame_id: camera_ir_optical...
/camera/driver/mode: manual
/camera/driver/serial_no:
/camera/driver/usb_port_id:
/rosdistro: kinetic
/rosversion: 1.12.13

NODES
/camera/
driver (nodelet/nodelet)
nodelet_manager (nodelet/nodelet)
ROS_MASTER_URI=http://<IP_ADDRESS>:11311
process[camera/nodelet_manager-1]: started with pid [10915]
process[camera/driver-2]: started with pid [10916]
[ INFO] [1523953991.263169500]: Initializing nodelet with 4 worker threads.
Intel RealSense F200_camera ; <IP_ADDRESS>
Intel RealSense LR200_camera ; <IP_ADDRESS>
Intel RealSense R200_camera ; <IP_ADDRESS>
Intel RealSense SR300_camera ; <IP_ADDRESS>
Intel RealSense ZR300_adapter ; <IP_ADDRESS>
Intel RealSense ZR300_camera ; <IP_ADDRESS>
Intel RealSense ZR300_motion_module ; <IP_ADDRESS>
[ INFO] [1523953992.400313536]: /camera/driver - Detected the following camera:
- Serial No:<PHONE_NUMBER>, USB Port ID: 4-2, Name: Intel RealSense R200, Camera FW: <IP_ADDRESS>
[ INFO] [1523953992.400609434]: /camera/driver - Connecting to camera with Serial No:<PHONE_NUMBER>, USB Port ID: 4-2

[Please Ignore - RealSense system comment]

Close this issue for lack of activity. Please feel free to reopen if the issue is still relevant.


Hi benjisoft,
You can use Rakefile to configure port number adding this snippet of code:
task :server do
bundle exec rails s -p 8080
end

Don't do that. You'll end up with more issues than it solves.
There is is no official way to change this port number at present. Use a web proxy server to proxy requests from your public port to your internal one.


[web] Failed to load the canvaskit

One user is facing this issue when he opened the Flutter web app. So he is not able to use the app.

Note: I don't have reproducible steps.

@deepak786
Please check this issue and underlying comments and see if they help in your case.

@darshankawar It was the issue in UNPKG and it is fixed already. Also seems to be working fine for our user.


createResource() unusual behaviour with useParams()

const { userId } = useParams();
const [resource, { refetch }] = createResource(userId, fetchUserDetails);

return (

.......user details section.......

        <Outlet />

)

when userId change createResource not call fetchuserDetails . But page like "post" , etc render inside Outlet are calling their fetcher function when userId change.
/profile -------> does not call fetcher on userId change
/profile/posts --------> calling fetcher fn on userId changes
when i try to debug userId using createEffect i found that it do not log the userId when userId is changing.

It's a proxy object to track reactivity similar to props. It should work if you don't destructure. Also to track the first argument to create resource is expecting an accessor function for it to track.
This should work:
const params = useParams();
const [resource, { refetch }] = createResource(() => params.userId, fetchUserDetails);

return (

.......user details section.......

        <Outlet />

)

It's a proxy object to track reactivity similar to props. It should work if you don't destructure. Also to track the first argument to create resource is expecting an accessor function for it to track.
This should work:
const params = useParams();
const [resource, { refetch }] = createResource(() => params.userId, fetchUserDetails);

return (

.......user details section.......

        <Outlet />

)

Still not work.

It's a proxy object to track reactivity similar to props. It should work if you don't destructure. Also to track the first argument to create resource is expecting an accessor function for it to track.
This should work:
const params = useParams();
const [resource, { refetch }] = createResource(() => params.userId, fetchUserDetails);

return (

.......user details section.......

        <Outlet />

)

Still not work.

Other section is working even i destructure the userId .

It might be helpful to share a reproduction. From the provided code and description that is all the help I can give. Reactivity works the way I described so if you are seeing some other behavior something else is going on beyond what you've shared.

<Route path="/:userId" element={}>
<Route path="" element={} />

-------------------------------------------------------
const params = useParams();
const [resource, { refetch }] = createResource(
params.userId,
fetchUserDetails
);
return (
....
..............profile details using resource()..................

....
)
when userId is changing then  component are able to get reactive userId from useParams but  component are not. When i try to debug useParams() in createEffect i got nothing.

In that last code snippet, the first parameter of createResource needs to be a function in order for the resource to reactively track  values and call fetchUserDetails again. As you have it, it will work initially when the component is first rendered and use whatever value is in the userId parameter but keep in mind the component will not re-render between navigating from say /123 to /456, only params.userId will change. This is also why destructuring is problematic - since it takes the current value and creates a local variable which will never change.
Maybe this example will help: https://codesandbox.io/s/solid-app-router-template-forked-jcpmu2

Thanks @rturnq. Now working


Check Enabled Streams on update

Is your feature request related to a problem? Please describe.
Finding streams that are no longer working that are enabled still so when i go into plex i just get errors when trying a stream, i want to limit this
Describe the solution you'd like
I'd like xteve to check that the streams are valid on update and auto disable channels that do longer work and enable channels that may work now, not just new channels

What if they are just temporarily down due to a Provider glitch? I wouldn't want them disabled...

Yes, it doesn't make any sense.
xTeVe does not solve the problems of your provider.
Some providers have load balancing and switch the streams automatically.
I also don't know what a provider does when xTeVe makes several hundred requests to the provider in a second to see if the stream is available.

I am not expecting it to run hundreds all at once I am asking it to check
them all you need is 1 sec on each stream and re-enable/disable them if
they are back online or offline, it solve the issue of adding streams that
dont function and also allows the user to be able to report them to their
provider, my provider is pretty good but I still run into issues random
streams that are no longer valid
On Sat, Mar 28, 2020, 8:38 AM xteve-project<EMAIL_ADDRESS>wrote:

Yes, it doesn't make any sense.
xTeVe does not solve the problems of your provider.
Some providers have load balancing and switch the streams automatically.
I also don't know what a provider does when xTeVe makes several hundred
requests to the provider in a second to see if the stream is available.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/xteve-project/xTeVe/issues/109#issuecomment-605441780,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADXL3ZJY7SDTUV6CV2UOV33RJXVTFANCNFSM4LVLJIBA
.

Waiting for 1 second to check a stream would take 7.5 minutes for 450 streams. Your provider sees that you automatically establish several 100 connections in the shortest possible time and end them again immediately. I could imagine that some suspect this as a DDOS attack and block your account or IP address. If you absolutely need this, write a script what it does and save all available streams in a separate M3U.


[BEAM-10047] Merge the stages 'Gather and Sort' and 'Create Batches'

There is minimal benefit in separating these 2 stages, and significant
benefity in merging them: Gather and Sort encodes incoming
MutationGroups into a List<byte[]> which would contain up to 1GB.
This is then output (copied) to the CreateBatches where it is decoded
back into MutationGroups.
Removing this encode/decode should save up to 2GB of RAM.

This is great niel.  With these changes, there are 3 modes of using SpannerIO write.
a) Use the conventional way(as it was till now) with a grouping factor where data is grouped, sorted, batched and written as per parameters
b) Batching without grouping - Set grouping factor as 1 with a larger batched bytes or cells. This will just ensure data is just batched without sort.
c) No Batching - Set any of the max rows or max mutations or batch bytes to 0 or 1.
Questions:

What mode should our import pipeline use? Should it use option b as data in AVRO seems already sorted?
Where should we document these modes of operation so that some customer can use these?

I'm good with these changes except the questions I had regarding the usages.
LGTM

Hi Niel,
I see a bunch of unit tests failing on this commit.
I am working on a patch on top of this and i noticed this.

@allenpradeep

What mode should our import pipeline use? Should it use option b as data in AVRO seems already sorted?

We can discuss this outside the scope of this PR.

Where should we document these modes of operation so that some customer can use these?

I have added a section to the javadoc explaining these 3 modes of operation, and their pros and cons.

Retest this please

Retest this please

Retest this please

Retest this please

Retest this please

Retest this please

Retest this please

Is this ready to merge?

Run Java PreCommit

[CheckStyle] Attaching ResultAction with ID 'checkstyle' to run 'beam_PreCommit_Java_Commit #11858'.
Setting status of a74866ba56d92d9476006b7e40a0e0ff916748ca to FAILURE with url https://ci-beam.apache.org/job/beam_PreCommit_Java_Commit/11858/ and message: 'Build finished. '
Using context: Java ("Run Java PreCommit")
Finished: ABORTED

Can't tell if tests passed or not, rerunning.

Can we merge this patch? I have a patch to count bytes written to spanner which would be dependent on this.

Retest this please

Run Java PostCommit

Thanks. We can merge if post-commit tests pass.


Local CLI templating for faster dev/test iteration cycles

Summary
Allow for local templating similar to helm template, so that users can iterate on a Workflow or WorkflowTemplate definition locally and with a faster iteration than having to submit to an Argo Server.
Such a feature would definitely help me and my teams iterate and test faster. I'd be willing to contribute this as well!
Use Cases
For quickly testing and debugging Workflow definitions locally and in CI, e.g.:

If I have a bug or typo in my Workflow parameters, currently I won't know until I submit it to a server

For example, when dealing with expressions, particularly more complicated ones (or chained ones), it's relatively easy for the output to be different from expected. As a really quick example, I tried using sprig.toYaml (which doesn't exist?), but wasn't able to tell I couldn't use that or that it didn't format my parameter properly until I submit to a server. This makes for a slow feedback loop, on top of requiring a server and making it harder to test locally or in CI.
If I had a typo, for instance input instead of inputs or parameter instead of parameters or a parameter that I forgot to define and so it doesn't exist, etc. Those are all actual mistakes I've made. This feature would make it easier to detect such a simple mistake
Other kinds of templating issues that can commonly occur when working with multiple different templating systems, both internal to Argo Workflows, as well as external (e.g. users more familiar with Helm/Go templates may not be as familiar with all the nuances of Argo's templating systems)

argo lint does not (and likely cannot) catch all types of issues, particularly not the formatting of a string manifest, for instance, but if I saw some wonky formatting in output similar to helm template, I could quickly figure out the issue.
Snapshot testing of templates with --parameter-file, for instance

helm template <template> --values values-test.yml --> ex. argo submit --template <workflow> --parameter-file parameters-test.yml

Quicker way for users to understand the limitations of Argo's templating
Possibility of a simple online, fully client-side (no server needed) test playground for the templating

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Hi
Are you accepting a PR request for this?
I would very much like to work on this enhancement:)

Jotting another note here: I did try argo submit's --dry-run flag, but that doesn't template out the parameters, it just outputs the Workflow that will be passed to the Argo Server.
Adding --parameter-file just inserts top-level defaults to the template, but doesn't fully template it out.

Discussed yesterday with @agilgur5 - I think this feature makes a lot of sense and is gaining a lot of support just in the last 6 months.
@agilgur5 - would you be open to adapting this issue into a short enhancement proposal PR? We can then ensure other maintainers give feedback on this.

@agilgur5 - would you be open to adapting this issue into a short enhancement proposal PR? We can then ensure other maintainers give feedback on this.

I think you meant a more formal, in-repo documented proposal like #10191? Those haven't seem to have gotten a lot of attention unfortunately 😕 (as you likely know well too)
I was planning to just go straight to PR if I can find an optimal solution that does not really have any trade-offs. i.e. no real decision to be made, just an approval. Haven't had time to dive into this yet though (so haven't assigned myself)


did_propagate test is flaky

Example failure: https://github.com/bevyengine/bevy/actions/runs/3092436459/jobs/5003700386
Output:

failures:
---- systems::test::did_propagate stdout ----
thread 'systems::test::did_propagate' panicked at 'assertion failed: (left == right)
left: 0v0,
right: 2v0: Malformed hierarchy. This probably means that your hierarchy has been improperly maintained, or contains a cycle', crates/bevy_transform/src/systems.rs:69:9
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
failures:
systems::test::did_propagate

This is a recurrence of https://github.com/bevyengine/bevy/issues/4996, caused by the sibling test that panics.

Duplicate of #5285

CI fail https://github.com/bevyengine/bevy/actions/runs/3189837176/jobs/5204126980 likely the same issue.  https://github.com/bevyengine/bevy/commit/2a6b544a0aa3471b0abb185a367cb25b98042912

closing for https://github.com/bevyengine/bevy/issues/5285


ci: add codecov

Contributor Comments
Add a ci_report job to GitHub actions which runs codecov
Pull Request Checklist
Thank you for submitting a contribution to easy_sast!
In order to streamline the review of your contribution we ask that you review and comply with the below requirements:

[X] Ensure that make build completes successfully
[X] Keep our reports up-to-date by committing the output of make report
[X] Rebase your branch against the latest commit of the target branch, which likely should be master
[X] If there is an issue associated with your Pull Request, align your PR title with this documentation

Codecov Report

Merging #8 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master     #8   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           7      7
  Lines         715    715
  Branches      148    148
=====================================
  Hits          715    715

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 d967fb6...b197fcf. Read the comment docs.


fix: PHP 8.1 mb_stripos() deprecated

method quoteValue() in framework/db/Schema.php
mb_stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Fixed issues

Thanks for a pull request. In which cases DSN for an established connection is null?

It was when I connected Yii2 with PostgreSQL.

Thanks for a pull request. In which cases DSN for an established connection is null?

It can be override after connected, although it doesn't make much sense eg. too more security pratice. :)
// working with database...
// prevent dns value in memory from devil applications
Yii::$app->db->dsn = null
// or any type
Yii::$app->db->dsn = ["array :P"]
// call quoteValue() method

If the string type is mandatory then \RuntimeException could be thrown, otherwise string cast is ok.

👍


Event not sent when version is provided

Describe the bug
If a "version" is included in a dta event send deploy call, the event is not sent.
For example:
dta event send deploy --entity-selector "type(PROCESS_GROUP_INSTANCE),tag([Environment]DT_RELEASE_STAGE:staging),tag([Environment]DT_RELEASE_BUILD_VERSION:1.0.0-abc)" --name "simplenodeservice deployment" --remediation-action-link "2" --version "1.0.0"

CLI output doesn't indicate any errors:

fixed by https://github.com/dynatrace-ace/dynatrace-automation-tools/pull/47


Generated Swagger is Empty

#225
#157
This one is still a problem (also on .net 5) if deployed on Azure Function via Azure DevOps..
As I see some fix was placed in code but there is still no new package available..
Publish new package..

Do you still experience the issue with 0.9.0-preview?

This is now fixed in 0.9.0-preview. Works fine both locally ('func host start' command) and on Azure Functions (deployed via DevOps).
Thank you very much.

I am still seeing this issue with 0.9.0-preview.  I don't really know what I can attach to help with repro, but would be happy to reply as needed.  I have a netcoreapp3.1 azure functions v3 project in a solution, it works in debug, but not func start or via devops deployment.  I have tried adding and removing <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput> to the project, removed the deps.json from the referenced projects.  Any help would be appreciated.


Illegal memory access when running tf.sparse_to_dense

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
2.11
Custom code
No
OS platform and distribution
Linux
Mobile device
No response
Python version
3.10
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
This issue seems to suggest that it was fixed in tf-nightly release. But I am somehow not able to find the commit where this was fixed. Can you please point me to the commit so that I can verify it has been fixed on my side
Standalone code to reproduce the issue
-

Relevant log output
No response

Hi @ndeepesh ,
I am not sure of the patch that resolved this bug. Maybe it's possible that its internal fix also and hence difficult to find it out for me. You may try git diff command to know the differences in the file for master branch and v2.11.0.
AFAIK most of the vulnerability fixes happens at C++ backend. You may try the command below to check the changes in code.
!git diff master v2.11.0 -- tensorflow/core/kernels/sparse_to_dense_op.cc
I hope this may be of some help. Thank you!


Support or tutorial for install on windows type environment

Hello BS Team,
I was extremely excited when coming across blockstack.org but was disappointed when I couldn't find a tutorial for installing through a windows environment.
Unfortunately, I'm not familiar with Linux/Ubuntu or VM environment either. I'm sure it's probably an eventual feature but I just thought I'd create an issue for the request.

Hi! pip is a part of python bundle for windows, so you could use pip to install blockstack?

This conversation has moved here: https://github.com/blockstack/blockstack-core/issues/324


SAML Attribute Error 'function' object has no attribute 'urlparse'

I'm trying to get ADFS/SAML working (would be nice if there was a Wiki article on this :)  )
I'm running on RHEL 7.4 using Nginx and gunicorn.
After enabling SAML and click on the SAML logon link on the home page, I get a 500 error the browser and the following error in the logs:
gunicorn: [2018-07-16 10:58:31,739] ERROR in app: Exception on /saml/login [GET]
gunicorn: Traceback (most recent call last):
gunicorn: File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/app.py", line 1982, in wsgi_app
gunicorn: response = self.full_dispatch_request()
gunicorn: File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/app.py", line 1614, in full_dispatch_request
gunicorn: rv = self.handle_user_exception(e)
gunicorn: File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/app.py", line 1517, in handle_user_exception
gunicorn: reraise(exc_type, exc_value, tb)
gunicorn: File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
gunicorn: raise value
gunicorn: File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/app.py", line 1612, in full_dispatch_request
gunicorn: rv = self.dispatch_request()
gunicorn: File "/opt/web/powerdns-admin/flask/lib/python3.4/site-packages/flask/app.py", line 1598, in dispatch_request
gunicorn: return self.view_functions[rule.endpoint](**req.view_args)
gunicorn: File "/opt/web/powerdns-admin/app/views.py", line 191, in saml_login
gunicorn: req = utils.prepare_flask_request(request)
gunicorn: File "/opt/web/powerdns-admin/app/lib/utils.py", line 208, in prepare_flask_request
gunicorn: url_data = urlparse.urlparse(request.url)
gunicorn: AttributeError: 'function' object has no attribute 'urlparse'

It is the issue created when we migrate the code from python2 to python3. Should be fixed in #255 i believe. Can you help to give a try on that PR?

@MaxDiOrio :+1: for a wiki

Sorry... Didn't get notification about the post. I'll test it out when I get back to work Thursday.

@ngoduykhanh the error is gone when pulling PR #255

Nice! I merged the PR to master. Thanks for doing the test.


Link to documentation is incorrect

The link
https://go.microsoft.com/fwlink/?LinkId=201803
is incorrect. It leads to
https://www.msn.com/de-de/?ocid=NEFLS000
Please correct it

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3203ec37-ee2d-b426-7754-99a4460e4395
Version Independent ID: a6d39095-89a5-4ab6-cc56-a424bd14806c
Content: regini
Content Source: WindowsServerDocs/administration/windows-commands/regini.md
Product: windows-server-threshold
GitHub Login: @coreyp-at-msft
Microsoft Alias: coreyp

We'll update the article to link to this KB instead: https://support.microsoft.com/en-us/help/264584/how-to-change-registry-values-or-permissions-from-a-command-line-or-a
Thanks

Thanks for the feedback - I've updated the article.


How to find recall for each class using MeanAveragePrecision

🚀 Feature
How to find the recall of class 0 and class 1 for this code. Sorry the documentation is not clear to me. I can set micro but how to identify overall P and R by class name?
Motivation
class CocoDNN(L.LightningModule):
    def __init__(self):
        super().__init__()
        self.model = models.detection.fasterrcnn_mobilenet_v3_large_fpn(weights="DEFAULT")
        self.metric = MeanAveragePrecision(iou_type="bbox",average="macro",class_metrics = True, iou_thresholds=[0.5, 0.75],extended_summary=True)

    def training_step(self, batch, batch_idx):
      #### Some code here

    def validation_step(self, batch, batch_idx):
        imgs, annot = batch
        targets ,preds = [], []
        for img_b, annot_b in zip(imgs, annot):
            if len(img_b) == 0:
                continue
            if len(annot_b)> 1:
                targets.extend(annot_b)
            else:
                targets.append(annot_b[0])

            #print(f"Annotated : {len(annot_b)} - {annot_b}")
            #print("")
            loss_dict = self.model(img_b, annot_b)

            #print(f"Predicted : {len(loss_dict)} -  {loss_dict}")
            if len(loss_dict)> 1:
                preds.extend(loss_dict)
            else:
                preds.append(loss_dict[0])
            #preds.append(loss_dict)

        self.metric.update(preds, targets)
        map_results = self.metric.compute()
        #self.log_dict('logs',map_results)
        print("RECALL")
        print(map_results['recall'])
        #print(map_results['map_50'].float().item())
        self.log('map_50', map_results['map_50'].float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
        self.log('map_75', map_results['map_75'].float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
        return map_results['map_75']

### Pitch

<!-- A clear and concise description of what you want to happen. -->

### Alternatives

<!-- A clear and concise description of any alternative solutions or features you've considered, if any. -->

### Additional context

<!-- Add any other context or screenshots about the feature request here. -->

I have used the following code
self.log('precision', map_results['precision'].mean().float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
self.log('recall', map_results['recall'].mean().float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)

Its overall score and its in negative, how come its in negative? Also since I'm finetuning the model for binary class therefore I think mean is eventually not suitable for binary class here and I must take mean for 2 classes instead.

@shanalikhan is it the mean average recall you are looking for e.g. the MAR value per class?
I assume so because that is one of the more commonly used metrics within detection tasks. If this is the case then you just need to set class_metrics=True and then look for the map_results["mar_100_per_class"] which is the mean average recall at 100 detections per image (maximum number of detection per class with default settings) per class. Assuming that your classes are simply 0 and 1 then
map_results["mar_100_per_class"][0]  # mar value for class 0
map_results["mar_100_per_class"][1]  # mar value for class 1

@SkafteNicki
Thanks for sharing the details. One quick question:
Why the map_* values are negative sometimes, Is it really possible to have negative MAP. for example:


Gatherling scraper does not cope with a deck with no sideboard

Because Gatherling sends up 'Sideboard' as the last few bytes in the file. We should make a trailing newline optional when splitting by sideboard.

Example:
POSTing to http://gatherling.com/deckdl.php with {'id': '53534'}

4d388377.


Add subsetDescriptor to completion message

If we build just a specific product or target, add a subsetDescriptor to the complete message. This improves the confusing output when plugins are using executables, because we end up with multiple 'Build complete' messages.

@swift-ci please test

Looks like a few tests need updates.

@swift-ci please test

@swift-ci please test windows

Looks like I missed something in IntegrationTests.

@swift-ci please test

@swift-ci please test windows

@swift-ci please test linux


Add a automatic message when a user connects to chat

When a user connect to web socket server, the server should send a event and the front should show a message

Waiting for implementation in Risiverse/risichat-back

Duplicated from #33 ?


Add Hue Welcome outdoor wall profile

Device information

https://www.philips-hue.com/fr-fr/p/hue-white-projecteur-exterieur-welcome/8719514382763
Home Assistant Device information
Hue Welcome outdoor wall (1743630P7)
par Signify Netherlands B.V.
Checklist

[x] I have created a single PR per device. When you have multiple submissions please create separate PR's.
[x] For lights - I have only included the gzipped files (*.gz), not the raw CSV files.
[x] For lights - I have provided a CSV file per supported color mode. Look that up in Developer Tools -> States

Additional info

Hi Paul,
Awesome! thanks for contributing.
And keep up all your awesome work on HA frontend.


arm64 architecture support

Describe the problem/challenge you have
Want to install ytt on arm64 without needing to bridge using Rosetta
Describe the solution you'd like
Multi-architecture build for ytt to support arm64 architecture
Anything else you would like to add:
Would love to install via arm64 homebrew

Sounds like a good thing to have. Accepting the issue

Would love to install via arm64 homebrew

@jmcshane the ytt arm64 binaries should now be available through our homebrew tap.


[ENH] new test case: public fit/predict interface must not be overridden and/or using abc?

Much ado about nothing was caused by a "rotting" update_predict in an unrelated class which should have not been there, in n PR #1401.
This highlights a need for a new test case in my opinion: testing that concrete estimators do not override the non-abstract fit, predict, etc methods (which ones depending on estimator types). Unless there is an explicit step-out in the test config of course, for a good reason.
Some options that test or even outright prevent this involve using abc systematically, though that may be a too substantial change.
Alternatively, it can be added as an estimator class test, and included in the default estimator tests.
E.g., assert method_that_should_not_be_overridden not in MyConcreteClass.__dict__.keys()

so personally I would like to use abc to have proper abstract methods rather than error raising ones. If it also allows final methods, Im for it

we should perhaps plan to do this in a major effort? There's currently too many other cans of worms open we may want to close first...

Agreed


Feat: Functionality to help users migrate data from PGVector to AlloyDB

Will add a migration guide once the code is pushed.

It may be easier to discuss moving forward once we outline the documentation and different user journeys.


Logstash: Got response code 403

[2021-06-11T13:08:31,531][ERROR][logstash.outputs.elasticsearch][syslog][0deb3752933586c4466e8d42233e536d21068013301d21c55f897373187a6c84] Elasticsearch setup did not complete normally, please review previously logged errors {:message=>"Got response code '403' contacting Elasticsearch at URL 'http://elasticsearch.backpack.test:9200/logstash'", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError}

https://www.gitmemory.com/issue/elastic/logstash/10722/486614924:

Apparently logstash tries to check for the "logstash" alias in order to set it up as part of the ILM process.
Since the indices.names in the proposed logstash_writer role is set to "logstash-*" our user logstash_internal doesn't have the privilege to run GET /logstash.
Workarounds: -either disable ILM in the Logstash ES output -or set logstash* as the index name to assign the document's proposed privileges

After changing the index name in privileges to logstash*, another problem occured:
[2021-06-11T13:17:53,386][ERROR][logstash.outputs.elasticsearch][syslog][0deb3752933586c4466e8d42233e536d21068013301d21c55f897373187a6c84] Elasticsearch setup did not complete normally, please review previously logged errors {:message=>"Got response code '403' contacting Elasticsearch at URL 'http://elasticsearch.backpack.test:9200/%253Clogstash-%257Bnow%252Fd%257D-000001%253E'", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError}


[FEATURE] NEW WEBSITE LAYOUT ....

What to do
A new user interface, i suggest faq, what we do, about us and etc... should be one 1 page, then login and sign up should have their different pages
STATUS
working on it now

halfway done


Add transparent_background option and implement it on xlib

This PR adds the transparent_background option to the window and is a first try of implementing it on xlib.
Related issue: #246
I don't have any computer running on Microsoft Windows or MacOS, so I can't work on adding support for these systems, but I will be very happy to see contributions for this.
Code sample:
from pyglet import app, window, shapes

win = window.Window(width=400, height=400,
                    style=window.Window.WINDOW_STYLE_BORDERLESS, transparent_background=True)

@win.event
def on_draw():
    win.clear()

    circle = shapes.Circle(x=200, y=200, radius=200, color=(255, 255, 255))
    circle.draw()

if __name__ == '__main__':
    app.run()

Reviews welcome!
Thanks to @Goutte for the pair-programming session on this.
TODO

[ ] when setting the disc color to (128, 128, 128), the disc appears half-transparent instead of opaque grey;
[ ] ability to define the color alpha channel with color(r, g, b, a).

Thank you for the PR. I had a look, and it does seem like this is quite easy to do in X.
I'll have to do some reading to see if this is possible to achieve in Windows and OSX.
If it's possible, then we can try to find some help implementing it on those platforms.
If it's not possible to achieve on Windows and/or OSX, then we may have to rethink this. We generally don't want to add platform specific features, but it would still be possible to add as a "hidden" feature for Linux. For example, something like a class variable to set before instantiating the Window:
pyglet.window.Window.transparent_background = True

At a first look, it seems possible:

on MacOS;
on Windows

I hope we will implement this cross-platform!
By the way, I suggest an easier way to create transparent-background windows: since we usually don't want to create a transparent-background window with opaque borders, we could add a WINDOW_STYLE_BACKGROUNDLESS instead of passing the transparent_background option to the constructor, ie.:

this: stylewindow.Window(width=400, height=400, style=window.Window.WINDOW_STYLE_BACKGROUNDLESS)
instead of this: stylewindow.Window(width=400, height=400, style=window.Window.WINDOW_STYLE_BORDERLESS, transparent_background=True)

I will work on this PR the next days to fix the problem with the wrong colors.

Sorry for the delay.
I do like the idea of simplifying the API by making it just another style.  Does setting it to transparent automatically hide the border & window controls?

Hello! I was interested for the transparent background for a personal project, but by the meantime I switched to an other programming language for this project, so I don't think I will continue to work on this PR, sorry.
However I hope that my small contribution will encourage you and other contributors to finish the implementation of transparent background support in Pyglet. :)


New version: PerfectWorld.PerfectWorldArena version 1.0.24071112

Created by 🥟 Dumplings in workflow run #6501.

Log
Updated: 1.0.24071111 → 1.0.24071112
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

https://github.com/microsoft/winget-pkgs/issues/142854


Feature request - Open windows support

please add support for open_window field, which is provided by api /homestatus and in room section
rooms:[
0:{
id:"1412979261"
reachable:true
anticipating:false
heating_power_request:0
open_window:false
therm_measured_temperature:22.5
therm_setpoint_temperature:12
therm_setpoint_start_time:1679635022
therm_setpoint_end_time:1679640422
therm_setpoint_mode:"manual"
}]

Please feel free to submit a PR. I don't have any means to test this. I would be happy to review it.


lots of non-code comments in definitions.jl need addressing

In definitions.jl there are lots of comments that seem to be works-in-progress or reminders to do things. I don't know what they all mean, and which are redundant, so I cannot delete them.
If they are comments that explain how to do things they should probably be converted into a proper docstring attached to the related function or moved to documentation.
If they are reminders for things that still need to be done they should be probably be made into an issue here.
The rest can probably be deleted?

some clean-up needed indeed.
Please do not delete for now.
A good number of these now belong to the issue section of the github page.
On Wed, 31 Jul 2019 at 15:06, Louis Kaplan<EMAIL_ADDRESS>wrote:

In definitions.jl there are lots of comments that seem to be
works-in-progress or reminders to do things. I don't know what they all
mean, and which are redundant, so I cannot delete them.
If they are comments that explain how to do things they should probably be
converted into a proper docstring attached to the related function or moved
to documentation.
If they are reminders for things that still need to be done they should be
probably be made into an issue here.
The rest can probably be deleted?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/JuliaRheology/RHEOS.jl/issues/26?email_source=notifications&email_token=AA6B24QKH3H76CXNBHSIWETQCGL5TA5CNFSM4IIHCFWKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCSO2AA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA6B24URU6RSYOZCSBAYCH3QCGL5TANCNFSM4IIHCFWA
.

I hope it is OK but in preparation for testing I did a small amount of 'housekeeping' on definitions.jl, I can revert the commit if you want if you are unhappy with anything.
Main purpose was to organise the functions in a sensible order (as I like to have the testing functions in the same order).  In doing so, I did remove one comment that seems obvious now:
#
#   Function called when a RheoTimeData struct is returned to the REPL
#

for a base.show overload for RheoTimeData.
And also replaced
#
#  Internal functions to regenerate data from a log
#

with a similar header (also used same header style to group the other related functions).
See this commit for more info: be05eb4fb765ef9b7cc0f212da87dd7e7a90b44c

@akabla  are you happy for me to wrap this up? Anything that is a comment about something that needs to be done I will add as a GitHub issue. Anything else I will try and slot in next to relevant bits of code.

Thanks Louis, yes please proceed, I can't handle it right now.
Good idea to place all that as issues on github, this is where it belongs!
On Sat, 21 Sep 2019 at 20:33, Louis Kaplan<EMAIL_ADDRESS>wrote:

@akabla https://github.com/akabla are you happy for me to wrap this up?
Anything that is a comment about something that needs to be done I will add
as a GitHub issue. Anything else I will try and slot in next to relevant
bits of code.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JuliaRheology/RHEOS.jl/issues/26?email_source=notifications&email_token=AA6B24VRUZEHNEJXMILH4T3QKZZHNA5CNFSM4IIHCFWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7IYIII#issuecomment-533824545,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA6B24RFE7YJ3TGZETETRH3QKZZHNANCNFSM4IIHCFWA
.

OK I think this is neat enough now. Closing issue.


Github actions fail for pull requests from forks

Presubmit checks for pull requests from forks don't seem to run properly:
Pull request from fork: https://github.com/puppeteer/puppeteer/pull/6660
Pull request with the same changes from a branch: https://github.com/puppeteer/puppeteer/pull/6817
I suspect this is because of ref: ${{ github.head_ref }} in .github/workflows/main.yml

Yes, this seems to be resolved now!


Consider adding this to hacktoberfest ?

I'm not sure if this is the right place to ask for this, consider adding this to hacktoberfest. Many would like to contribute to this and play around, and college kids in my area who play valorant would be motivated to contribute to open source for the first time :)
Thanks.

Sorry for the late response.
What is Hacktoberfest? What would we have to do and what does this mean for vRY? Do we need to change something in our repo to make our project hacktoberfest friendly?


Unable to get certificate after successful authorization

Submitting answer
Authorization Result: valid
Deleting answer
Deleting web.config
Deleting C:\inetpub\wwwroot\dev.creeksolutions.com\webroot.well-known/acme-challenge/
Deleting C:\inetpub\wwwroot\dev.creeksolutions.com\webroot.well-known
Requesting Certificate: {dnsIdentifier}
Unable to get certificate
Press enter to continue.
Command line:
./letsencrypt --san --accepttos --keepexisting
S and then entering the site id number for this site that I'm trying to add certificate for.

I'm not able to reproduce this issue but I will add some additional logging. It would be helpful if you could post the output of the next beta.

Thanks, I'll forward you the log info if/when it happens again with the next beta. Do I need to use any special settings to generate that log info?

The new --verbose switch might provide some extra insight, but since this would be an exception generating a log message with Error priority it will show regardless.

I got past that problem in the new 1.9.4-beta10 version. Thank you.

Closing issue since latest version corrected the issue.


skeleton-esnext test coverage report shows compiled code, not source code.

From a clean skeleton repo, gulp cover yields coverage report like this.
Is this a known issue?

There's a PR in to address this which we are evaluating as well as a number of other solutions.

Any update on this?

#519 fixed it. Now it looks like this for skeleton-esnext:

I'm not sure how to run the coverage task on the webpack skeleton.

In the webpack skeleton, run the tests - 'npm test' - that should generate the coverage.
It is set up to only generate JSON - you can change the reporter entry in karma.conf.js to get HTML.
coverageReporter: {
  reporters: [
    {
      type: 'json',
      subdir: '.',
      file: 'coverage-final.json'
    },
    {
      type: 'html',
      dir: './coverage'
    }
  ]
},

I see a problem that if you run it twice, some coverage report files get dumped into the src folder.  These files appear to be reports on the non-transpiled source - but html image and css resource file paths are broken, so they don't display nicely.

I have stopped these files getting generated by modifying the test runner script in package.json to delete the coverage directory before running:
  "test": "rimraf test/coverage && cross-env NODE_ENV=test ./node_modules/karma/bin/karma start test/karma.conf.js",

@stevies would you mind copying what you just posted to a new issue? I'm going to close this one as the initial issue has been fixed.


allow Plugin filters to see POST body

Please describe your use case / problem.
I have inherited some legacy routing service that I am trying to migrate into a Plugin Filter inside ambassador.
It uses POST body (JSON payload) to decide where to route some legacy system's traffic
In order to get rid of it and just use ambassador my plugin needs to be able to read the POST body which seems to be a missing feature (or not well documented at least)
Describe the solution you'd like
Something like the include_body configuration that exists for External plugins
    include_body:
      max_bytes: 4096
      allow_partial: true

The challenge with plugin filters is they need to be recompiled with every release so we tend to not recommend them.  That said, if this request comes up again we would welcome community contributions.


Unable to Paste Images in OldTweetDeck Version 3.6.5

When I try to paste an image into the tweet field, nothing happens. This problem occurs consistently across different systems and browsers.

Copy an image to the clipboard.
Activate the tweet field by clicking on it.
Attempt to paste the image using Ctrl+V or the context menu.

The image should be inserted into the tweet as if it were uploaded via the "Add Images Or Video" button but in this case No image is added when attempting to paste it into the tweet field.
Please check this out.

You can also check out this other post: https://github.com/dimdenGD/OldTweetDeck/issues/277

duplicate

hey @dimdenGD I'm not a bot I'm actually going through that issue bro please if you can try and sort it out. thank you for the work you do.

copying and pasting images is impossible you can try it yourself and see.

try using bettertweetdeck

they shut it down

https://github.com/dimdenGD/BetterTweetDeck/releases

THANK YOU SIR.

THANK YOU SIR !

So @dimdenGD appreciate all your help.
I have one final question: since the account I am managing is on X Premium is there a way to extend the character limit for my tweets or is this beyond your control?
Thank you!

They should have you at X as an Engineer you just get what the people want

its not possible

Sorry to bother you again @dimdenGD  but I have one last issue. Direct Messages (DM) column images are not loading. Videos load fine but images don't appear at all. Even when I click on messages with images no preview is shown and the images do not load.
Thanks so much for your help!


Fix sdist build and deployment

Summary
Adds the missing lines to install setuptools_rust (and twine, which somehow got dropped during #7698).
Details and comments
Perhaps the "proper" way to do this is to use a PEP-517 builder (e.g. https://pypi.org/project/build/), but this PR is more about getting things working again before we forget.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.24%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
54062

Relevant Lines:
64176

💛  - Coveralls


ENH: manage sidebars on small screens

That's still a draft so i'll track down all the issues referencing this problem later.
Context
Lot's of people are complaining that the theme is not as responsive as they would expect on small devices. Specifically the sidebars both primary and secondary are a burden for everyone as they are not properly managed in the theme forcing people to discard them most of the time (specifically true for the secondary one).
proposal
In this PR I proposed to improve the design by transforming the 2 sidebars into drawers on small screens. One on the left and one on the right. without changing the interactivity that we already have on bigger screens

TODO

[x] make drawers closable on click outside
[x] add a dark overlay to hide the content while opening a drawer
[x] ensure only 1 of the 3 drawers can be opened at the time
[x] correct scrolling bug in the drawer
[x] tune the hide/show behavior between css and JS

Before I continue working on it I would like to have other feedback to see if this feature is useful or not. (to test it simply go to small screen the rest is behaving funny.
Fix #329 Fix #317

Agreed this one would be quite useful. A few relevant issues where this has been discussed:

https://github.com/pydata/pydata-sphinx-theme/issues/91
https://github.com/pydata/pydata-sphinx-theme/issues/329
https://github.com/pydata/pydata-sphinx-theme/issues/317

In particular, I wrote out a little suggested implementation in the top comment here:

https://github.com/pydata/pydata-sphinx-theme/issues/317#issue-802868926

That is based on the pattern that Furo and the Sphinx Book Theme use. It is also similar to the approach that the sphinx-basic-ng theme takes (cc @pradyunsg).
As an example:

Here's where the input/labels are in the book theme: https://github.com/executablebooks/sphinx-book-theme/blob/af6277a7276112ee915d901984193c49e56d5a76/src/sphinx_book_theme/theme/sphinx_book_theme/layout.html#L9-L17
Here's the SCSS to customize the toggle behavior w/o using JavaScript: https://github.com/executablebooks/sphinx-book-theme/blob/57e6d802521c41bbc25b5945d1e62abc3cfc00c7/src/sphinx_book_theme/assets/styles/sections/_sidebars-toggle.scss

I think this would definitely be useful! Happy to help provide guidance on implementation if you're interested in this route.

New version fully based on css. Could you test it from your side ? I'm pretty sure there are edge cases that I didn't catch

There are still issues with breakpoints as breakpoints-up and breakpoint-down are not behaving the same way. What do you think if I fix these values for both sidebars as layout variables ?

Looking better! A couple other quick comments:

On mobile, the presence of the left button is pushing all of the navigation links to the right:

I think they're slightly too large...I think 1.2em looked a bit better to me. Also would help if they were a more muted color so they don't pop out so much.
The icons should be flipped horizontally I think. We want the arrow of the icon to be pointing in the direction that the draw will fly out.

I'll also note that I'm starting to feel like the header on mobile is quite "busy". It definitely makes it feel less clean now that the logo is no longer right up against the left side. What do you think about trying to put them beneath the header in their own small secondary header? It could resolve some of the above issues as well?

So I reintroduced the toc_width_show parameter to unable different behaviours when the secondary sidebar is missing. I was forced to place it outside of the block elements in the layout.html so that any template have access to it (it's used in header-article, layout itself and secondary-sidebar). Using sass parameters, I can accept any value to this class (toc-show-xs, toc-show-sm….

Same for the primary sidebar. If one day we decide to make it a parameter we can change the variable in _variables.sass and all the relative elements will be modified together.

I realized that the squeezing were not synchronized everywhere. We were mixing breakpoint-up and breakpoint-down that doesn’t use the same limits. I choose to stick to breakpoint-up as it allows to use “xl”. (in breakpoint-down “xl” is equivalent to always). I tweeked all the calls to respect that.

I added a header-article navbar to display the 2 icons so that they don’t increase the number of things to display in the top navbar.  this bar is covered when the top navbar is expanded so that we can't open sidebars and top navbar at the same time.

The primary sidebar button shows up even if there is no sidebar! Can we check for that somehow and not show the button at all if there is no sidebar? (same for secondary sidebar)

The problem is that for both there is always a sidebar, it's just empty (or slightly different when it comes to the primary one).
I tried to find an easy way to work on this, but I'm forced to define many variables in the layout.html which IMO is not the way to go. Displaying or not displaying the sidebars, is discussed in many issues I would say we merge this one and find 1 proper way of hiding both the sidebars and their toggles in another PR.

Want to have a look at https://github.com/pydata/pydata-sphinx-theme/pull/753/files ? That PR makes it so that the sidebars HTML only shows up if there's something to display in them. Should simplify this.
I think that PR is pretty much ready to go if you wanna merge and then move it here to simplify things?

A couple quick thoughts:

If we rebase on main we will probably remove the problem with timeouts in Read the Docs
Thinking about it more, I think it'd be fine if we used a regular 3-bar "hamburger" menu for the left sidebar, and used the "tab arrow" icon only for the right sidebar. I think the left sidebar icon and the "header expand" button look distinct enough that they won't confuse people, and the 3-bar hamburger menu is pretty standard for left-sidebar fly-outs

I'm swamped in other thing for work but that's still on my todo list. I agree that we are close but if you need to release v0.10 I'm happy to wait for v0.11

sounds good @12rambau - if I have a moment I can also try to push something to make it behave as-expected, at least that'll reduce the amount of extra work to do.
Let's leave it in 0.10 for a little bit longer and see if we can get it done, we can bump it to 0.11 if need be later on

If you have the time to play with I won't work on it before thursday, so no risk of colliding push

OK I made a little bit of progress here, just pushed a commit that reworks the sidebar logic a little bit, but I think there is still more to be done. The spacing is a little bit off, and the buttons don't show up at quite the right time, but it is an iterative improvement I hope 😬  (also merged main in)

That's excellent
Correct me if I'm wrong but the offset to leave space for the article-header is never changed even when no header is on the page right ?

Correct me if I'm wrong but the offset to leave space for the article-header is never changed even when no header is on the page right ? That's not a problem to me just want to make sure that it's a feature

I think that's true - I figured that it would look weird if the titles of pages jumped up and down based on whether there were going to be sidebars.

I fixed the test for the new sidebar implementation, I think we cannot test the behaviour in the current tests, that will be something for #585 I'm happy with the curent state, @choldgraf thanks for your help!

Ah thanks for fixing the test!
Hmm, so what do you think we should do about this PR re: the next release? I think it seems in pretty good shape, should we get it into v0.10? Or hold off until that is released before merging this one in?
My feeling is that we'll need to make a release candidate with this release anyway, so that could provide some time for others to provide feedback on the sidebar behavior.
What do you or others think?

I'm timeline agnostic.Although It's a big change but highly requested one (many documentations are playing with their custom css to avoid the primary sidebar to end up on top of the page on small screen). I think it's ready to go. Happy to hear others feelings about it being shiped with v0.10

anybody else have thoughts on https://github.com/pydata/pydata-sphinx-theme/pull/726#issuecomment-1178644134 ?
cc @jorisvandenbossche @jarrodmillman @drammock @bryevdv @tupui

Oh waou this is great! Since it's a major improvement, I would not delay it.
Otherwise it seems intuitive. I am just not sure if it should not stick when you scroll (maybe a floating object like rdt is doing?). In any case it can be continued in another iteration.

I'd say put it in the RC, don't wait until after release.

OK in that case, I think we should merge this in a day or two (ideally after an iteration of comments from somebody :-) )

OK unless anybody objects I'll plan to merge this one later today or tomorrow, and then we can get feedback from folks in new issues etc

OK let's merge this one and iterate a bit!


Removing myself from CODEOWNERS

I don't have enough expertise to review these PRs and the way this file is configured I get added to review all PRs to the repo.
Instead, if there's a PR that I should review, please tag me. This way, I'll know to only react to the ones that are relevant.

/lgtm
thanks Mihai. We can @hanneshapke and some extra folks involved as well

/merge


⚠ File access (beta) has degraded performance

In e15958b, File access (beta) (https://beta.fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 3699 ms

Resolved: File access (beta) performance has improved in 690cff5 after 176 days, 19 hours, 37 minutes.


RHOAIENG-5433: Removing references to TGIS gRPC API for vLLM

Description
Removing references to TGIS gRPC API for vLLM
How Has This Been Tested?
Local Build

lgtm


Fixed #27910 -- Added ChoiceIntEnum and ChoiceStrEnum classes for use in Field.choices

Ticket #27910
Supersedes PR #11223
Improvements over the previous pull request:

Simplified definition by moving everything from ChoiceEnum into ChoiceEnumMeta.
Added additional properties for fetching labels, values, and names.
Used enum.unique() to prevent duplicate values.
Moved all documentation from django.db.models.enums into docs/ref/models/fields.txt.
Improved and expanded documentation in docs/ref/models/fields.txt.
Improved and expanded tests in tests/model_fields/test_choiceenum.py.
Improved messages in exceptions.

Things left to do:

[x] Update documentation in docs/topics/db/models.txt.
[ ] Add documentation for the .validate() method.
[x] Check whether the Functional API works; add tests and documentation.
[ ] Check handling of blank values in choices, e.g. '' or None.

Handling None is potentially problematic as were restricted to int or str.

@shaib: Could you explain the use case for the .validate() method?
@felixxm: This is largely done. The main issue remaining is handling of blank values using None which doesn't work because ChoiceIntEnum subclasses int and ChoiceStrEnum subclasses str. For int, using None blows up, and for str, using None coerces it to 'None'. I've added some expected failure test cases. We have the following options:

See if we can define some sort of composite NullableInt and NullableStr types.

Document that overriding the empty value to use a custom label is not supported.

It would be a shame if #3 were the only option here.

@shaib: Could you explain the use case for the .validate() method?

It was motivated by https://groups.google.com/d/msgid/django-developers/CAL13Cg_KEtgmNzRo%3DC8cnCiNsukr5YOCTv3MF8AybV%3D%3DiUXP0g%40mail.gmail.com

@felixxm: This is largely done. The main issue remaining is handling of blank values using None which doesn't work because ChoiceIntEnum subclasses int and ChoiceStrEnum subclasses str. For int, using None blows up, and for str, using None coerces it to 'None'. I've added some expected failure test cases. We have the following options:
1. See if we can define some sort of composite `NullableInt` and `NullableStr` types.

2.

No, there's no need for these. Take a look at the loop starting at line 14 of enums.py -- it clearly shows that the values assigned to enum members in the source don't need to be valid members of the type (tuples are not ints). We can decide that e.g. if we reach line 26 with value is None then, instead of dict.__setitem__(classdict, key, value) we do dict.__delitem__(classdict, key). The only difference is that the properties will need to use cls._value2label_map_.keys() instead of cls.__members__.values().
I think an even better variation of this idea is, instead of using the None value as sentinel, to use a special member name -- say, __empty__ or __no_choice__; this way, the user doesn't need to repeat None,  doesn't have to invent a name that will never be used, and gets the right clue that this is not going to be a member of the enum.

I've pushed a fixup! which removes validate() and implements __contains__() to make things work as expected according to James' comment:
>>> class Suit(models.ChoiceIntEnum):
...     DIAMOND = 1, _('Diamond')
...     SPADE = 2, _('Spade')
...     HEART = 3, _('Heart')
...     CLUB = 4, _('Club')
...
>>> Suit.DIAMOND in Suit
True
>>> 1 in Suit
True
>>> 0 in Suit
False

I will look into the label for the empty value soon.

@felixxm @shaib I think that last major things have been addressed here and we're ready for review.

Have rebased this again. Is there anything else to do @carltongibson / @felixxm?

@frnhr I'm getting the same error when trying to define a date-based enum with no relation to ChoiceEnum:
>>> from enum import Enum
>>> from datetime import date
>>> class MyEnum(date, Enum):
...   A = date(2014, 1, 1)
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 218, in __new__
    enum_member = __new__(enum_class, *args)
TypeError: an integer is required (got type datetime.date)

So I'm guessing there's little we can do here. I would try something like using the str() of the dates as values, but that would need to be taken care of in ChoiceDateEnum's metaclass.
In my taste, this use-case falls a little out of what Django should actively support.

Fair enough, but we should at least mention this in the docs. I doubt that I will be the only one attempting to use it with a field that is not int or str.
Especially because it looks like it should work, and it is documented right next to the old-style choices which do work for all cases.

Thanks @shaib for posting the info - you got there ahead of me. I'd noticed the same issue.
I had a look if this were a problem due to some order of base classes, but there is a strict order these must be passed in so we are doing things the right way:
>>> import datetime
>>> import enum
>>> class X(enum.Enum, datetime.date):
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 130, in __prepare__
    member_type, first_enum = metacls._get_mixins_(bases)
  File "/usr/lib/python3.7/enum.py", line 467, in _get_mixins_
    raise TypeError("new enumerations should be created as "
TypeError: new enumerations should be created as `EnumName([mixin_type, ...] [data_type,] enum_type)`

I checked with a bunch of other common datatypes that might be used with Django.
The following worked when creating a simple enum:
>>> import decimal
>>> import enum
>>> import ipaddress
>>> class X(bytes, enum.Enum):
...     A = b'raw'
...
>>> class X(float, enum.Enum):
...     A = 1.5
...
>>> class X(dict, enum.Enum):
...     A = {'A': 1}
...
>>> class X(list, enum.Enum):
...     A = [1, 2, 3]
...
>>> class X(set, enum.Enum):
...     A = {1, 2, 3}
...
>>> class X(tuple, enum.Enum):
...     A = (1, 2, 3)
...
>>> class X(decimal.Decimal, enum.Enum):
...     A = decimal.Decimal('1.0')
...
>>> class X(ipaddress.IPv4Address, enum.Enum):
...     A = ipaddress.IPv4Address('<IP_ADDRESS>')
...
>>> class X(ipaddress.IPv6Address, enum.Enum):
...     A = ipaddress.IPv6Address('::1')
...

The following didn't work for varying reasons:
>>> import datetime
>>> import enum
>>> import uuid
>>> class X(bool, enum.Enum):
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 170, in __new__
    enum_class = super().__new__(metacls, cls, bases, classdict)
TypeError: type 'bool' is not an acceptable base type
>>> class X(datetime.date, enum.Enum):
...     A = datetime.date.today()
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 218, in __new__
    enum_member = __new__(enum_class, *args)
TypeError: an integer is required (got type datetime.date)
>>> class X(datetime.datetime, enum.Enum):
...     A = datetime.date.now()
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 218, in __new__
    enum_member = __new__(enum_class, *args)
TypeError: an integer is required (got type datetime.datetime)
>>> class X(datetime.time, enum.Enum):
...     A = datetime.time(1, 2, 3)
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 218, in __new__
    enum_member = __new__(enum_class, *args)
TypeError: an integer is required (got type datetime.time)
>>> class X(datetime.timedelta, enum.Enum):
...     A = datetime.timedelta(1)
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 218, in __new__
    enum_member = __new__(enum_class, *args)
TypeError: unsupported type for timedelta days component: datetime.timedelta
>>> class X(datetime.timezone, enum.Enum):
...     A = datetime.timezone.utc
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 170, in __new__
    enum_class = super().__new__(metacls, cls, bases, classdict)
TypeError: type 'datetime.timezone' is not an acceptable base type
>>> class X(uuid.UUID, enum.Enum):
...     A = uuid.uuid4()
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 216, in __new__
    enum_member._value_ = value
  File "/usr/lib/python3.7/uuid.py", line 262, in __setattr__
    raise TypeError('UUID objects are immutable')
TypeError: UUID objects are immutable

I don't know whether this is a bug in the enum implementation - perhaps a bug should be opened to get this addressed in Python itself. Note that, in theory, we don't need to subclass the data type, but we've done that to try and make sure that things behave as expected when comparing enum members to values of the data type. With that caveat, it is possible to do the following:
>>> import datetime
>>> import enum
>>> from django.db.models.enums import ChoiceEnumMeta
>>> class Date(enum.Enum, metaclass=ChoiceEnumMeta):
...     TODAY = datetime.date.today()
...
>>> Date.TODAY == datetime.date.today()  # Won't work...
False
>>> Date.TODAY.value == datetime.date.today()  # Still works...
True

In light of this, I have made one change that ensures that .label will work when the data type is not provided.
I think providing int and str will cover >95% of use cases, and using an enum is not a requirement.

@shaib, @frnhr So I was reading into this a little more, and realised that our approach was wrong after seeing this example. We shouldn't be using datetime.date(...) as the value of each member, but a tuple of the arguments to it, e.g.
class MoonLandings(datetime.date, enum.Enum, metaclass=ChoiceEnumMeta):
    APOLLO_11 = 1969, 7, 20, _('Apollo 11 (Eagle)')
    APOLLO_12 = 1969, 11, 19, _('Apollo 12 (Intrepid)')
    APOLLO_14 = 1971, 2, 5, _('Apollo 14 (Antares)')
    APOLLO_15 = 1971, 7, 30, _('Apollo 15 (Falcon)')
    APOLLO_16 = 1972, 4, 21, _('Apollo 16 (Orion)')
    APOLLO_17 = 1972, 12, 11, _('Apollo 17 (Challenger)')

So the challenge is making this work properly with the extra label. Am going to work this out and add a bunch of tests for various different types.

Well that was all manner of magic and weird when looking through the internals of Enum. The examples I added using classes from the ipaddress module behaved differently which broke our implementation of .label which I have fixed that properly now.
So, more tests for custom subclasses, various fixes, etc. and we should be good for many more custom implementations :tada:
Thanks @frnhr for the challenge!
I still want to add a few more tests for enums of list, set, dict, tuple, and datetime.datetime. (It may also be interesting to see how things work out with enum.IntFlag, but that shouldn't be considered a blocker for this.)
Any further reviews are welcome - I'd like to get this in for 3.0

Ok. So I have also added tests for datetime.datetime and frozenset.
Currently dict, list, and set are a bit awkward as they are unhashable we are using a dict for looking up labels from values. It also looks as though tuple will need some special handling because we are assuming that the last item in the tuple is the label when it is a (lazy) string. In the tuple case this is very ambiguous.
I don't think this is a deal breaker as I can't imagine that these would be used very often as choice values, and besides, it is possible to fall back to using lists of 2-tuples.

I know that it was I who suggested the name __empty__, but on second thought, I worry that this is a name that might be used by Python itself in the future. Maybe it would be better to use something like _empty_ or __empty.
On the other hand, we do seem to have __html__... So, I don't know.

We also use __all__ :smile:  so I'm fine with __empty__.

__all__ is used in Django for a Django-specific meaning?
It is used by Python, and has been forever.

@shaib As a string constant in forms ALL_FIELDS = '__all__' (I know it's not the same). After reconsideration I agree that we could use the different name e.g. _empty_.

So it seems that enums also define some special _sunder_ names as well as the __dunder__ names that are common, and given the number of them and the sorts of names they have - see here - I feel that _empty_ is at more risk of collision than __empty__. In fact, we're not allowed to define our own _sunder_ names:
>>> import enum
>>> class X(enum.Enum):
...     _empty_ = '(Empty)'
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in X
  File "/usr/lib/python3.7/enum.py", line 84, in __setitem__
    raise ValueError('_names_ are reserved for future Enum use')
ValueError: _names_ are reserved for future Enum use

I tried a few alternatives:
>>> import enum
>>> class X(enum.Enum):
...     _empty = '(Empty)'
...     __empty = '(Empty)'
...     __empty__ = '(Empty)'
...
>>> type(X._empty)
<enum 'X'>
>>> type(X.__empty)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 349, in __getattr__
    raise AttributeError(name) from None
AttributeError: __empty
>>> type(X.__empty__)
<class 'str'>

So we can't use _empty or __empty. We could in theory use _ignore_ to prevent something becoming a member, but that is 3.7+ only and also removes the attribute from the final class. So we're stuck with using __empty__ I think...

>>> import enum
>>> class X(enum.Enum):
...     __empty = '(Empty)'
>>> type(X.__empty)
[...]
AttributeError: __empty

That's just the Python prefix-__-is-mangled-to-fake-private mechanism:
>>> import enum
>>> class X(enum.Enum):
...   __empty = 'Nada'
...
>>> X.__empty
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.7/enum.py", line 349, in __getattr__
    raise AttributeError(name) from None
AttributeError: __empty
>>> X._X__empty
<X._X__empty: 'Nada'>

But I agree, something like this should not be used.

Ah, yes. Indeed.

Ok. I'll look to add the additional documentation and tweak the release notes a bit later.

@shaib Do you have any thoughts on the second paragraph of https://github.com/django/django/pull/11540#discussion_r320260550?

Also, what do we think about a .max_length property (at least for the ChoiceStrEnum)?
class Event(models.Model):
    Medal = models.ChoiceStrEnum('Medal', 'GOLD SILVER BRONZE')

    name = models.CharField(max_length=100)
    date = models.DateField()
    medal = models.CharField(choices=Medal.choices, max_length=Medal.max_length)

If I had a penny for each time I've seen choices change and max_length subsequently being too small... The main challenge would be the removal of the longest string where that value is still in the table - but in that case the migration should fail. Obviously use of this wouldn't be compulsory, but I can see it being really helpful.

Setting the max_length of the field according to choices seems wrong to me. It's fine to do on PG where max_length is only a validation, but on other engines where it actually dictates layout, changing max_length can cause a very painful migration. Additionally, choices are not really enforced, so it is likely that values other than the choices are stored in the field (the way you mentioned, with a removed choice, or otherwise), and when that happens, it is much more likely to happen in production than in dev/test environments.
There should be a check that all choices actually fit in the field, but I don't think Django should promote a practice of letting the choices set the field length.

It's fine to do on PG where max_length is only a validation...

postgres=# create table t (c varchar(5));
CREATE TABLE
Time: 369.761 ms
postgres=# insert into t (c) values ('abcdefghij');
ERROR:  value too long for type character varying(5)
Time: 0.410 ms
postgres=# insert into t (c) values ('abcde');
INSERT 0 1
Time: 62.839 ms
postgres=# alter table t alter column c type varchar(3);
ERROR:  value too long for type character varying(3)
Time: 73.806 ms
postgres=# alter table t alter column c type varchar(3) USING c :: varchar(3);
ALTER TABLE
Time: 120.832 ms
postgres=# select * from t;
  c
─────
 abc
(1 row)

Time: 0.489 ms

Performance-wise in PostgreSQL there is actually no difference between the different text types. I don't believe Django allows not setting max_length, otherwise I probably wouldn't in a lot of cases. Changing the max_length will still cause a migration - am not sure whether PostgreSQL has to rewrite parts of the table or not if just expanding.

There should be a check that all choices actually fit in the field, but I don't think Django should promote a practice of letting the choices set the field length.

OK, agreed. Let's leave it to a system check. Will look to try and add one later in a separate PR because this is always a source of pain.

Just to clarify my PG comment: This was all about the database engines.  The fact that Django forces you to specify a max_length on a CharField is unrelated.
On Postgres, the internal representation of different text types is the same (that's why the performance is the same). So when you change from varchar(5) to varchar(10) all that changes is the validation rules. This is an easy migration on the database side, the only change is in metadata. There can be validations and castings, which can be lengthy, but there can be all kinds of mitigations and the whole thing is generally not very painful.
Oracle, for example (at least in the versions of 6-7 years ago when I was using it) was actually keeping rows together, and allocating the right number of characters in each row for each field. Thus, a similar change implies a change in the layout of the table's storage, which can be very expensive -- and could mean a long downtime for the migration.
SQLite isn't usually discussed much in terms of effects on production systems, but just for good measure -- last I checked, every such change implied a complete recreation of the table.

Ok. Changes made. Thanks Shai.

OK, agreed. Let's leave it to a system check. Will look to try and add one later in a separate PR because this is always a source of pain.

Created PR #11742.

@pope1ni I pushed minor edits, rebased from master, simplified tests, and moved choices tests to a separate directory.
I noticed that these lines are not covered, I don't think that we still need this catch or if we really want to catch ValueError then we should do this in
super().__new__(metacls, classname, bases, classdict)

I'm working on docs.

I noticed that these lines are not covered, I don't think that we still need this catch...

So originally when we only covered int and str, we restricted this to expect value, label and there were some tests for too few or too many items. Because enum values are not an instance of the concrete data type, but a tuple of arguments passed to the constructor of that concrete data type, we changed tack. As such, yes, these lines are obsolete - we rely on the underlying data type to blow up if the arguments are invalid. We're just assuming that the final item in the tuple for the member value is going to be the label if it is a (lazy) string.

@pope1ni OK, we are almost there, I pushed all edits, but I also noticed one issue with migrations that I would try to fix, i.e. default is not evaluated and migrations crashes, e.g.
    field=models.CharField(choices=[('FR', 'Freshman'), ('SO', 'Sophomore'), ('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'), ('XX', 'Xxx')], default=test_one.models.YearInSchool('FR'), max_length=2),
AttributeError: module 'test_one.models' has no attribute 'YearInSchool'

the old-fashioned choices evaluates properly to the default='FR'.

That's not an issue with default per se, it's an issue with defining the choices enum within the model class, and the auto-migration-composer not handling nested classes.

I think that could be handled by overriding __repr__ to use __qualname__? This will also work if default is defined to be YearInSchool.FRESHMAN.value.

@shaib Yes, I was able to fix this quite easily with:
diff --git a/django/db/migrations/serializer.py b/django/db/migrations/serializer.py
index 1f1b3f4f20..c6bfd90621 100644
--- a/django/db/migrations/serializer.py
+++ b/django/db/migrations/serializer.py
@@ -45,6 +45,9 @@ class BaseSimpleSerializer(BaseSerializer):
     def serialize(self):
         return repr(self.value), set()

+class ChoicesSerializer(BaseSerializer):
+    def serialize(self):
+        return repr(self.value.value), set()

 class DateTimeSerializer(BaseSerializer):
     """For datetime.*, except datetime.datetime."""
@@ -279,6 +282,7 @@ class Serializer:
         set: SetSerializer,
         tuple: TupleSerializer,
         dict: DictionarySerializer,
+        models.Choices: ChoicesSerializer,
         enum.Enum: EnumSerializer,
         datetime.datetime: DatetimeDatetimeSerializer,
         (datetime.date, datetime.timedelta, datetime.time): DateTimeSerializer,

after that it evaluates to default='FR'. What do you think?

What do you think?

Good idea. Should seamlessly work for custom choices then too. Can you try with one that subclasses datetime.date or ipaddress.IPv4Address to see if imports are resolved appropriately?

Yes, I'm preparing tests.

I pushed fix.

Thanks y'all :rocket: Many thanks to Nick and Shai :bowing_man:
Now we can celebrate :champagne: :dancer: :rocket: :confetti_ball:

Many thanks, @pope1ni and @felixxm! When I started this, I never thought it would make it to the list of major features of the release... but you have grown it bigger than I expected. It is a reason for celebration indeed.

Thanks both of you!


KAFKA-10028: Implement write path for feature versioning system (KIP-584)

Summary:
In this PR, I have implemented the write path of the feature versioning system (KIP-584).  Here is a summary of what's in this PR:

New APIs in org.apache.kafka.clients.admin.Admin interface, and their client and server implementations. These APIs can be used to describe features and update finalized features. These APIs are: Admin#describeFeatures and Admin#updateFeatures.

The write path is provided by the Admin#updateFeatures API. The corresponding server-side implementation is provided in KafkaApis and KafkaController classes. This can be a good place to start the code review.
The write path is supplemented by Admin#describeFeatures client API. This does not translate 1:1 to a server-side API. Instead, under the hood the API makes an explicit ApiVersionsRequest to the Broker to fetch the supported and finalized features.

Implemented a suite of integration tests in UpdateFeaturesTest.scala that thoroughly exercises the various cases in the write path.

Other changes:

The data type of the FinalizedFeaturesEpoch field in ApiVersionsResponse has been modified from int32 to int64. This change is to conform with the latest changes to the KIP explained in the voting thread (see this link).
Along the way, the class SupportedFeatures has been renamed to be called BrokerFeatures, and, it now holds both supported features as well as default minimum version levels.
For the purpose of testing, both the BrokerFeatures and FinalizedFeatureCache classes have been changed to be no longer singleton in implementation. Instead, these are now instantiated once and maintained in KafkaServer. The singleton instances are passed around to various classes, as needed.

Test plan:

Relying on existing and unit and integration tests added in this PR.

@kowshik I just noticed that you haven't updated the code which creates the ApiVersionsResponse in SaslServerAuthenticator. Is it intentional or something left to be done?

@dajac Thank you for taking a look! IIUC you are referring to these lines:
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/security/authenticator/SaslServerAuthenticator.java#L550-L553
My requirement is that for the newly added API: org.apache.kafka.clients.Admin#describeFeatures, the ApiVersionsResponse returned to the AdminClient needs to contain the features information. It seems to me that the SaslServerAuthenticator does not serve the newly added API, so I can skip including the features information in the above lines.
Is my observation correct?

retest this

retest this

retest this please

retest this please

retest this please

retest this please

retest this please

@junrao Thanks a lot for the review! I've addressed the comments in the recent commit: 06d8b47131f168db88e4f7d5bda3dd025ba9a2a2.

Just looked through the change for firstActiveVersion, which makes sense. The only question I have is that if I'm doing a bold release by removing the deprecated code completely, such that previously I have version range [1, 6] and now the code only supports [4, 6] for a pair [min, max], would my deployment be successful automatically?

@abbccdda The deployment will fail if the feature was finalized at say [1, 6] previously, but the new broker only supports [4, 6]. This is where firstActiveVersion becomes useful. By bumping it up during a release (instead of the supported feature's minVersion), we are able to get past this situation. When firstActiveVersion is advanced in the code, and the cluster is deployed, the controller (and all brokers) know that the advancement acts a request to the controller to act upon the feature deprecation (by writing the advanced value to FeatureZNode).

@junrao Thanks for the review! I've addressed the comments in c31d6b5245c635e659ff0f203bd08bc015a15ffb.

@junrao Thanks for the review comments! I have done the change proposed in https://github.com/apache/kafka/pull/9001#discussion_r498574911 in the most recent commit: 4218f95904989028a469930d0c266362bf173ece .

@junrao Thanks for the review! I've addressed the comments, the PR is ready for another pass.

@junrao Thanks for the review! I've addressed the latest comments in e55358fd1a00f12ef98fc4d2d649a297ddf146da .

@abbccdda : Any more comments from you?

@junrao The test failure in MirrorConnectorsIntegrationTest.testReplication does not seem related. I have rebased the PR now against latest AK trunk, I'd like to see if the failure happens again.

The latest test failures do not seem related to this PR:

JDK 8: org.apache.kafka.connect.integration.ExampleConnectIntegrationTest.testSourceConnector
JDK 11: org.apache.kafka.streams.integration.EosBetaUpgradeIntegrationTest.shouldUpgradeFromEosAlphaToEosBeta

@kowshik : There are 27 system test failures with this PR. http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-10-07--001.1602079476--kowshik--kip584_features_write_path--e1c79cee2/report.html
Are they existing test failures compared with http://confluent-kafka-system-test-results.s3-us-west-2.amazonaws.com/2020-10-07--001.1602079305--apache--trunk--af27c2ddf/report.html ?

@junrao Thanks for the links! I had a look at the links. I found 27 test failures in both links. I compared the individual test failures and found that they have all failed on the same tests. Would that mean we are OK to merge this PR?

@kowshik : Thanks for following up. I will merged this PR as it is since the system test failures are not new.
Also, in Scala, we prefer sealed traits over Enumeration since the former gives you exhaustiveness checking. With Scala enums, you don't get a warning if you add a new value that is not handled in a given pattern match. Maybe you can address that in your followup PR.

@kowshik sorry for bringing trivial comments after this is merged. I just noticed those nits in testing new APIs in 2.7.0.

@chia7712 No worries, thanks for the suggestions! I have opened a separate PR addressing your comments. Would you be able to please review it? https://github.com/apache/kafka/pull/9393


sc.isFinal()

Hi,
Could you provide an example of a JSON statechartModel with a final state?
I tried something like this without success (sc.isFinal() always returned false)
 {     id: 'state2',     isInFinalState: true,     onEntry: function () {         console.log('state2');     },     transitions: [] }
Thanks

Use attribute $type:'final' in the state object. This needs to be better documented.
Thanks.

thank you


[Snyk] Security upgrade mlflow from 1.30.1 to 2.9.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

requirements.txt

⚠ Warning
kedro 0.18.14 has requirement importlib-metadata<5.0,>=3.6; python_version < "3.8", but you have importlib-metadata 6.7.0.

Vulnerabilities that will be fixed
By pinning:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

823/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 8.6
Server-Side Request Forgery (SSRF) SNYK-PYTHON-MLFLOW-6134595
mlflow:  1.30.1 -> 2.9.2
No
Proof of Concept

893/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 10
Improper Access Control SNYK-PYTHON-MLFLOW-6134600
mlflow:  1.30.1 -> 2.9.2
No
Proof of Concept

833/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 8.8
Directory Traversal SNYK-PYTHON-MLFLOW-6134601
mlflow:  1.30.1 -> 2.9.2
No
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Server-Side Request Forgery (SSRF)
🦉 Directory Traversal

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (e0033c5) 99.89% compared to head (d165146) 99.89%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #510   +/-   ##
=======================================
  Coverage   99.89%   99.89%
=======================================
  Files          28       28
  Lines         998      998
=======================================
  Hits          997      997
  Misses          1        1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Official docs are not in sync with latest @ngneat/transloco

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[ ] Feature request
[x] Documentation issue or request
[ ] Support request
[ ] Other... Please describe:

Current behavior
Running:
ng add @ngneat/transloco
doesn't create transloco-root.module.ts as the docs say.
It creates transloco.loader.ts and i18 files.
Also:
export declare type TranslocoConfig = {
    defaultLang: string;
    listenToLangChange?: boolean;
    prodMode?: boolean;
    fallbackLang?: string | string[];
    failedRetries?: number;
};

doesn't have availableLangs and some other properties that are stated in the docs.
It's also unclear how to import transloco into lazy loaded modules.
Expected behavior
Keep official docs in sync with latest @ngneat/transloco
Minimal reproduction of the problem with instructions
Run:
ng add @ngneat/transloco
What is the motivation / use case for changing the behavior?
Avoid confusion.
Environment

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/

Angular CLI: 9.0.1
Node: 13.8.0
OS: darwin x64

Angular: 9.0.0
... animations, cdk, common, compiler, compiler-cli, core, forms
... language-service, material, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.1
@angular-devkit/build-angular     0.900.1
@angular-devkit/build-optimizer   0.900.1
@angular-devkit/build-webpack     0.900.1
@angular-devkit/core              9.0.1
@angular-devkit/schematics        9.0.1
@angular/cli                      9.0.1
@angular/flex-layout              9.0.0-beta.29
@ngtools/webpack                  9.0.1
@schematics/angular               9.0.1
@schematics/update                0.900.1
rxjs                              6.5.4
typescript                        3.7.5
webpack                           4.41.2

@micobarac there seemed to be a problem with your schematics version could you try to reinstall the lib?
(make sure you install the lastest version)

"@ngneat/transloco": "1.1.1"

How do I check my schematics version?

~/workspace/openprovider/openprovider-admin-frontend (master)$ ng add @ngneat/transloco
Installing packages for tooling via yarn.
Installed packages for tooling via yarn.
? 🌍 Which languages do you need? en, hr, sr-Latn
? 🔥 Which loader do you want to use? Webpack or HTTP  Http
? 🚀 Which type of translation files you use? Typescript or JSON JSON
? ✍ Which folder will contain the translation files? src/assets/i18n/
CREATE src/assets/i18n/en.json (66 bytes)
CREATE src/assets/i18n/hr.json (66 bytes)
CREATE src/assets/i18n/sr-Latn.json (71 bytes)
CREATE src/app/transloco.loader.ts (529 bytes)
UPDATE src/app/app.module.ts (854 bytes)
~/workspace/openprovider/openprovider-admin-frontend (master)$

Why is this issue closed anyway???

It looks like that you must add this:
yarn add @ngneat/transloco
before executing:
ng add @ngneat/transloco
If this is the right way to do it, please update the docs.

@itayod How do I check my schematics version?

I meant the schematic's version of Transloco, simply reinstall Transloco using ng add and it should install the latest version for you (should be 2.13.3).

I tried that, as you can see in my comment above. It installed the old version of transloco.

it might be some kind of cache...

Why is this issue closed anyway???
Also, I don't like your tone, it is closed since I released a new version that fixes that

Look, man, we are all creating issues here, as we bump along the problems using your library. The easiest thing is to close the issue. All I am saying is that I tried all the options that you suggested, and they are not working. Please, keep it cool, I mean you no harm.

Anyway, it solved, so install the last version and run ng g @ngneat/transloco:init. That should do the installation process for you


LoginWhen: Optionally Show Screen-Lock and -Unlock Times

When only locking the PC overnight, the session times are missing that "down time".
Accessing  the Screen-Lock and -Unlock events require elevated rights atm. because they are in another log. Needs some investigation how to best do this.

Startup- and Shutdown-Times (Power-On / Power-Off) would be nice, too, if possible.

If called interactively anyway, asking for elevated permissions would be not a problem....