Creating a DAG operator

Question
How would you go about creating a dynamic DAG (Directed acyclic graph) operator using Kopf?
Checklist
For example Argo uses operators to create DAGs in Kubernetes.
What I'm thinking about is:

Having an in memory mutable version of the dag in the operator. Every time that the dag gets modified or a node in the dag is traversed (a pod finished execution), the state of the dag gets dumped to Kubernetes etcd via a configmap. This is done for persistence in case the operator restarts.

Any help is appreciated.
Thanks.
Keywords
Priority Queue, DAG

Sorry for the late response. I cannot help here much, as I am not familiar with your domain. But your way of solving it seems sufficient and normal — should work. Are there any specific problems why this does not work?

Hi,
Thanks for responding. I decided to use RDBS instead of dumping the state to k8.
Sep

On Mar 6, 2020, at 3:13 AM, Sergey Vasilyev<EMAIL_ADDRESS>wrote:

Sorry for the late response. I cannot help here much, as I am not familiar with your domain. But your way of solving it seems sufficient and normal — should work. Are there any specific problems why this does not work?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.


Wrong interpreter found

How does Pylance find the python interpreter to use?
I activated a virtual environment, started VSCode inside that environment, and Pylance could not find modules I had installed with pip. I turned on trace logging and it has this at the end,

python ~/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
Starting Pylance language server.
Python interpreter path: /usr/bin/python3
conda --version

However, when I run that python command from within a VSCode terminal, it gives,
$ python ~/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
/home/rich/work/viasat/env/mando-labs/bin/python
Why does the trace show the interpreter as /usr/bin/python3? I've checked my settings files and don't have any paths set for Python. I'm not sure what I have set wrong that's causing it to ignore the virtual env.

Pylance does not choose; the core extension does and we accept the interpreter path given to us by the main Python extension (selected at the bottom left).
Which trace logs are you looking at, the Python window, or the "Python Language Server" output? That output above is from the Python extension itself, but Pylance when it asks for the interpreter may not get what's printed there.
Can you enable trace mode and look at the Python Language Server output? https://github.com/microsoft/pylance-release/blob/main/TROUBLESHOOTING.md#filing-an-issue has the setting and where to look listed.

Awesome, thank you! I didn't notice the selector along the bottom, it had the wrong one selected.

Based on the above comments, I shouldn't be seeing this issue anymore, but I do. Anyone want to weigh in or should I open a new issue?


create bouncing dots tokens

This makes available a first draft of the tokens needed to create the bouncing dots loader mixin.
Story: https://phabricator.wikimedia.org/T267010

Ok that sounds good, @tzhelyazkova. I don't think the loader mixin will be implemented any time soon, but this PR is linked to the ticket and I agree that changes could always be introduced later. Thanks for taking a look!

Ok that sounds good, @tzhelyazkova. I don't think the loader mixin will be implemented any time soon, but this PR is linked to the ticket and I agree that changes could always be introduced later. Thanks for taking a look!


Improve RC13 migration instructions in changelog

As discussed on Slack with @arturbosch, this points out that --buildUponDefaultConfig has a counterpart in Gradle: the buildUponDefaultConfig property

Codecov Report

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

@@            Coverage Diff            @@
##             master    #1546   +/-   ##
=========================================
  Coverage     74.72%   74.72%
  Complexity     1737     1737
=========================================
  Files           328      328
  Lines          5281     5281
  Branches        962      962
=========================================
  Hits           3946     3946
  Misses          810      810
  Partials        525      525

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 956fb89...2e997bd. Read the comment docs.

@BoxResin sending mixes messages here :D

@rock3r Sorry. The first one is my mistake!
I can't delete it. I think it's bug of github.

Not a problem at all :) And no, you cannot delete reviews in PRs as far as I know.

Oh, I didn't know that. Thank you!


Multiple containers triggered by one filter

This may be a bit over-engineered but figured id ask:
I have a mixitup filter triggering a filter, however when I trigger that event, I want mixitup to filter a multifilter container placed in a separate grid element.   Technically this seems to work, with elements phasing in and out but the 2 containers seems to be causing a fuss with how its displaying.
In my example -- there is a page separated by a grid
-- left side is GRID_Nav which has the toggle_nav div container in it
-- right side is GRID_Main which has the flex_container in it
The user will interact with GRID_Main (its where the filters are).  If the user selects a button to show more filters it will show GRID_Nav which the multifilters in it.  I want the multifilters to be mixable so that I associate the following class="mix filter_training"  for example so that multifilter will only display if the user selects the Training Filter on the main page (i hope that makes sense)
I imagine I can do this by modifying the below code:
var container = document.querySelector('.flex_container, .toggle_nav');
Is there a way to have 2 separate container elements, 1 and 2 for example ?  So my code would look something like this...
var container1 = document.querySelector('.flex_container);
var container2 = document.querySelector('.toggle_nav');
var inputSearch = document.querySelector('[data-ref="input-search"]');
var keyupTimeout;
               var mixer = mixitup(container1, {
			load: {
					filter: '.WELCOME_OBJECT' //On load show .welcome_object div only
			},
			multifilter: {
				enable: true
			},
			animation: {
				duration: 450
			},
			callbacks: {
				onMixClick: function() {
					if (this.matches('[data-filter]')) {
						inputSearch.value = '';
					}
				}
			}
		});

		var mixer = mixitup(container2, {

			load: {
					filter: '.none'
			},
			multifilter: {
				enable: true
			},
			animation: {
				duration: 0
			},
		});

To be clear, this works to some degree, however -- if the multifilter element is triggered it triggers on itself and hides the elements regardless of the selection.  So the problem is 2 containers, both filtering, but one is independent of multifilter

Never mind -- I am closing this issue.  The correction is to remove multifilter: { enable: true} from the second container.


Policyfile Native API support for chef push

Add support for uploading policies to the "native" API rather than as data bag items
Usage of the native API is configured with policy_document_native_api true in ~/.chef/config.rb (or knife.rb). Defaults to false (for now).
Also updated Chef dependency to ~> 12.0 now that Chef 12.0 is released.
Tested against Chef Zero w/ https://github.com/opscode/chef-zero/pull/111 (also needed some local modifications to chef to make Chef FS happy).
Chef patch (which is needed to make the feature work end-to-end) is forthcoming.

@chef/client-engineers @chef/delivery

:+1: Made some comments, but it turned out that I missed something


Added Unit Test for Motor Cruise Control Toggle Functionality

This PR adds a unit test to check the motor cruise control toggle. It verifies that the cruise control starts off and turns on after simulating a button press with values [0] and [0xFF]. Let me know if any changes are needed.

Very good. Now I think about it, we should also test trying to change the state again to see if the value also changes again, as expected. In other words, either "toggle" one more time or no longer press (for momentary switch) and make sure the values change again in the two test methods.

I added the checks for the OFF state when the array relay is no longer held, and the check for the OFF state when the cruise control is toggled off.

@alexlewis9 @SparshK312 Good job guys.
Some comments:

The motor cruise control check didn't really work, but it was almost good. I fixed it to work.

Some fudging of test configurations was necessary.

I find comments to be ugly in general. I try to avoid it whenever I can.
When setting up, the contexts must be copied (e.g., with dataclasses.replace) as the previous test case may have changed it.

Got it, will keep in mind moving forward. Your changes look good, thank you for the modifications.

Look good. Thanks.


Email enhancement

there have been several updates recently and we've not done a release. we should chat about getting a new build/release.

when is good for you to chat?


[raylib] Simplify custom modules options

Hello!
Doing a new fresh review over the PR https://github.com/conan-io/conan-center-index/pull/24585, I concluded that there is not need for adding those modules headers in res folder, because raudio.h is installed in include folder and it's optional as well.
Plus, some features are only available after specific versions:

rprand generator: https://github.com/raysan5/raylib/commit/fc7dcff4a72e3ce9ea970ad4e03cfabed026fbad
custom frame control: https://github.com/raysan5/raylib/commit/5b4aaf4eb1b848d023b3bac0ce7a8e34faab9ba1
module raudio: https://github.com/raysan5/raylib/commit/e637ad9d2a62fdcc2d4917de63defef5f8fb0591

When available and enabled, they should be copied to the package folder.
On version 3.5.0, camera system's header uses the file camera.h. Same for gestures.
Do not need to validate it in test package as it's an optional feature. Only local build logs in the PR are needed to.
Full Build logs: https://gist.github.com/uilianries/d70e816158a8e9e9cbd7a8a6ce6aebee

[x] I've read the contributing guidelines.
[x] I've used a recent Conan client version close to the currently deployed.
[x] I've tried at least one configuration locally with the conan-center hook activated.

@uilianries Looks very good.
How would I now include these headers from a consuming recipe? The copying seemd to work, but how do I then make them includable?

How would I now include these headers from a consuming recipe? The copying seemd to work, but how do I then make them includable?

@Julianiolo They are included already. Anything in package_folder/include is included automatically by Conan.

How would I now include these headers from a consuming recipe? The copying seemd to work, but how do I then make them includable?

@Julianiolo They are included already. Anything in package_folder/include is included automatically by Conan.

Aaaah, yeah I missed that you now copy them to the include folder. Looks good :) thanks


Implemented heart rate and timers

Timer and heart rate added to stream metadata endpoint. Heart rate is stored as a list in metadata table, timers are stored in their own table.

Coverage for TimeDatabase is quite low. Add tests for that.
Did you consider instead using  adding timers to StreamMetaData?

Coverage for TimeDatabase is quite low. Add tests for that.
Did you consider instead using adding timers to StreamMetaData?

Increased coverage some. I did think about it but to my knowledge, only way to add a list of objects to sql cell is by stringifying the object and that just sounded dirty. I think having timers in their own table is better solution, even if it caused a lot of issues with the database functions and made routing more complex. If for nothing else, this should make it more future proof if some new features come along that utilize the timers


number of waypoints in waypoint indicator

Since we have the new cache descriptions, you get a much better overview of the cache properties. Nevertheless, I sometimes find myself sliding to the waypoints view, just to see it's empty. In contrast to the friends log view we cannot just have it hidden for caches without waypoints because otherwise that button would have to be part of the (already full) options menu.
That's why I suggest to have the number of waypoints in the page title of the waypoints page. That way one can immediately see whether or not sliding into that view makes any sense.
So you would know that sliding is useful here: http://imageshack.us/photo/my-images/267/wp6.png/
but not here: http://imageshack.us/photo/my-images/88/wp0k.png/
Any objections? As you can see at the screenshots the code is already available and eager to be committed. :)

I like the idea very much. I would suggest a small modification 'Waypoints (n)' instead of 'n waypoints', this avoids clashes with singular and plural forms.

+1

@rsudev: I've implemented that with plurals, so it will display "1 Waypoint" without clashes.

I was not aware of this very sophisticated looking resource implementation for plurals in Android. Quite good, especially from an American company. They seem to really have taken the full tool set from the GNU world. In my professional environment I have problems to raise the awareness that such things like the polish plural forms possibly can exist. :)

Why don't we adopt this solution not to all sub-pages with a variable number of entrys ?


When closing a project it takes a period of time for the server to exit, there is no indication on the dashboard

When you close a project the shutdown of the language server takes time. There is no visual indicator on the dashboard that it is still closing.
User cannot delete or rename during this time. Some indication is needed that it is shutting down.

The shutdown delay was introduced to allow for gentle re-connections. But explicit closing of the project could probably just proceed with shutdown immediately with no harm. We should detect this scenario and enforce it.

Re the original problem (rather than discussing shutdown/reconnection ones):
it seems to be a deliberate decision to fail the deletion of the project when project is still running.
Rather than a simple yes/no running, we could add pending shutdown state. Alternatively, we could just try to force shutdown at this point.


fix: Fix a regression with Matomo

This is 1000% my fault, when rebasing #4000, I forgot to remove a line.

Codecov Report

Merging #4326 (efa2eba) into develop (b03f60b) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #4326   +/-   ##
========================================
  Coverage    10.81%   10.81%
========================================
  Files          287      287
  Lines        14223    14222    -1
========================================
  Hits          1538     1538
+ Misses       12685    12684    -1

Impacted Files
Coverage Δ

...kages/smooth_app/lib/helpers/analytics_helper.dart
6.66% <ø> (+0.10%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


How can I add ChartPoints dinamically and refreshing chart

Hi! Your project is awesome! I need to add ChartPoints dinamically by requesting results from an Api and refreshing everytime a new ChartPoint is added... How can I achieve that? I am currently using Cubic Lines Chart! Thanks in advance!

It's not possible to add points dynamically at the moment. The only way to do this is to re-create the chart with the updated state. The performance of this is of course not good if you need a high refresh rate. Pull requests welcome!


CLN: implement setup.cfg, lint cleanup of Plex directory

Implement setup.cfg to hold config for flake8.  Kept that config pretty minimal for the time being.  (If cython wants to put linting in the CI, it might be worth looking at statsmodels's lint.sh since statsmodels is in a similar situation vis-a-vis linting)
Side-note about setup.cfg: it can subsume .coveragerc and tox.ini if desired.  I'm not sure about pylintrc, but wouldn't be surprised.
Cleaned up the Plex directory.  Mostly (but not completely) ignored flake8 complaints about line length and module formatting.  Ignored 2 complaints about methods being too complex and 2 complaints about comparisons in Plex/Regexps.py comparing type(x) = ... instead of isinstance(x, ...) since I don't know if these are intentional.

Will revert line-wrapping and update flake8 config to 120 columns instead of the default 80.
Will revert string formatting edits and update flake8 config to ignore that complaint.

Yep, I think all of these are improvements. Thanks!


[Improvement] getAllOrdersQuery is missing product fields for lineItem variants

When using the getAllOrdersQuery query from the plugin to fetch a customers orders, the returned ProductVariantCheckout on an Order's LineItemOrder doesn't include the related parent product.
Having access to the parent product can be useful when trying to link the customer back to the product page, from viewing an order.
For consistency I'd suggest adding the product fields into the getAllOrdersQuery, so the parent product on the Order's lineItems is available.

The product ID is available now in LineItemOrder
you can access it as
    for(var order in orders) {
        for(var item in order.lineItems.lineItemOrderList){
          print("${item.title} | ${item.productId}");
        }
      }


Upgrade all examples to go module

I am new to kubeedge and I see many examples are governed by dep. Dep is already deprecated and go module does well. Need some help?

@YoshieraHuang  Sure, and now every example have one vendor, we can use one vendor for all the examples.

You can use it go.mod Manage the project and package it. That's what I do

I meet a problem. modules kubeedge/beehive and kubeedge/viaduct with latest version are now replaced as inset modules in kubeedge/kubeedge and cannot be easily accessed in this repository. Although we can go get this two modules with previous version, the previous version is not compatible with 1.3.1. The compatibility cause this error:
# github.com/kubeedge/kubeedge/edge/pkg/devicetwin/dtclient
../../go/pkg/mod/github.com/kubeedge/kubeedge@v1.3.1/edge/pkg/devicetwin/dtclient/sql.go:23:12: module.Enable undefined (type core.Module has no field or method Enable)

when I build kubeedge-traffic-light. Will beehive and viaduct be seperated from main repository?

Now it has been fixed.
/close

Now it has been fixed.
/close


Firebase Auth Handle isnt working

Hello!
I'm trying to log in with Twitter and give all the required details to Firebase Console to the active Twitter Provider. I'm using the twitter_login package. this requires redirectURI to return back accessToken. and I got redirectURI from Firebase Console that is
https://myapp.firebaseapp.com/__/auth/handler.
This auth handler is not working and giving me an error that is
Unable to process the request due to missing initial state. This may happen if browser sessionStorage is inaccessible or accidentally cleared.

Hi @arslanrazacrew, can you take a look at this thread and this comment to see if you get a solution?

Hi!
Yes i have checked with this but still not working

Hi @arslanrazacrew, are you using any flutterfire plugins? If so, what are their versions?
Can you also provide a minimal complete reproducible code sample so that we can investigate this?

Yes, I'm using  twitter_login: ^4.3.2 to login with twitter.
final twitterLogin = TwitterLoginV2(
clientId: "Consumer API keys",
redirectURI: "https://nebulum--.firebaseapp.com/__/auth/handler", /// Registered Callback URLs in TwitterApp
scopes: ["tweet.read","follows.read", "users.read"]
);
final authResult = await twitterLogin.loginV2();

That is unrelated to this repo

Thanks for your help!


Merge from ADSK to LucasFilm 1.38

Update

Texture baking:

Updated for 1.38 + add support for units and preservation of units+colorspace transformed graphs
Handle normalmaps in which reside in definitions
Rendering unit test setup + tests

Addition of optional predicate for flattening
Wedge rendering unit test setup + tests.
Modify unit tests to not render direct lighting by default and add in a quad backdrop for stock OSL rendering to hide env.
Fix namespace issue with import so that namespaces are not applied multiple times.
Utilities:

image file resolving from relative to absolute paths
node category search (replaces fixed "normalmap" search utility.

Python API update.

Test Results
ADSK_ILM_merge_unit_tests_Nov_12_2020.pdf

This looks good to me, thanks @bernardkwok.  There are some minor improvements that I might recommend, but I believe we can deal with these in the broader merge from v1.38 to main.


Calibration issue about calibration.txt

Hi,
Thanks for your nice share first! I am using two kinects and one marker to calibrate, then get the file 'calibration.txt' on the 'Server' computer.I want to know the extrinsics and intrinsics，but I think the file only provides the extrinsics(T,R).I don't know if I understand it wrong. Cloud you tell me the meaning of the parameters inside and how to get the intrinsics?

Hi,
You are correct that the file only provides the extrinsics.
The parameters inside are:

translation vector
rotation matrix
id of the marker used for calibration
a boolean indicated whether calibration was successful
You can also see the code that loads the file on lines 133-151 here.

As for the intrinsics you can obtain them from the Kinect SDK.
Thanks,
Marek

Hi,
Thank you for your reply so quickly.The T,R means the correlation between world coordinates and camera coordinates，right? I have two Kinects that use the same marker to calibrate, but why did I get only one calibration result?

The calibration results are saved by the client app, which receives data from only a single Kienct.


Question - [Generating Traindata]

Hi to everybody,
In the old versions I could use the old bash script called tesstrain.sh that generates the train data with custom fonts, but in this change i can not find a way how to achieve this, is there any similar command exist in new training script to use custom fonts?
here is my old command:
tesstrain.sh --fonts_dir fonts \
        --fontlist 'My Specific font name' \
        --lang eng \
        --linedata_only \
        --langdata_dir langdata_lstm \
        --tessdata_dir tesseract/tessdata \
        --save_box_tiff \
        --maxpages 100 \
        --output_dir train

Use python version of script at
https://github.com/tesseract-ocr/tesstrain/blob/main/src/training/tesstrain.py

Thanks  🚀 🎉


Custom text editors: backups open 2 editors when restoring

Steps to Reproduce:

install hediet.vscode-drawio extension
create a new draw IO diagram
make it dirty
reload window

=> 🐛 you end up with 2 editors open, but you cannot open the second one

@lramos15 assigning you as well because I think this should be looked at in the context of cleaning up how custom editors are handled in backupRestorer.ts

I had a quick look at this and it looks like the issue is with the ensureDirtyFilesAreOpenedWorker in textFileEditorTracker.ts
private readonly ensureDirtyFilesAreOpenedWorker = this._register(new RunOnceWorker<URI>(units => this.ensureDirtyTextFilesAreOpened(units), 50));
Changing the timeout from 50 to 100 seems to resolve the problem. My guess is that it takes longer for a more complicated editor like drawio to draw and enough time passes for the ensureDirtyFilesAreOpenedWorker to fire and re-add the same file/editor as a new tab.
The only problem is I'm not sure what the best length of time for the timeout should be considering other (potentially more complex) editors - it would probably be better to start the ensureDirtyFilesAreOpenedWorker once the initial editorGroup layout has been completely loaded.

I've made a first attempt at fixing this issue, see draft PR above. Does this seem like the right approach? If so, I'll add some tests and put the PR out for review.

@scottyjoe9 I looked closer at your fix and think it is going into the right direction, thanks. However, the more I think about it, the more I see a bigger issue with how certain components seem to await the editors from having fully restored before functioning properly, e.g. this one:
https://github.com/microsoft/vscode/blob/763e089ae54efdc3e6382699e7391c6df8b6f2be/src/vs/workbench/browser/parts/editor/editorsObserver.ts#L72-L72
This one is actually ending up being used here:
https://github.com/microsoft/vscode/blob/c72d7612b412031d8b6003acac58a0554ea1ca09/src/vs/workbench/services/editor/browser/editorService.ts#L957-L957
And since the custom editor has not restored, the check returns false here:
https://github.com/microsoft/vscode/blob/de50318b48f8ad72fa72e1e36635ae5c4bd6e8bf/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.ts#L68-L68
So we end up opening the editor.
I will look into a different fix that tries to tackle the issue at the root: I don't think anyone should be waiting for an actual editor to be restored because that can potentially take a long time.

Ok no problems, thanks for the explanation. It did feel like a bit of a bandaid to some deeper issue but this code base is new to me so I wasn't sure. I'll be interested to see how you solve the problem!

With that setting it works as expected -> verified


RayGuy 3.0

Any chance to have the header? We compile the C library ourselves. Thank you!

Header in pascal?

Any chance to have the header? We compile the C library ourselves. Thank you!

Header in pascal?

Yes it can be done. But I can't compile raylib with rlgui in Linux. If you give me a solution, I will do it.

RayGui cpde was separated from RayLib, continues to depend on RayLib but if someone wants, can be made to use only GLFW library if certain functions are provided.
raygui.h must be renamed to raygui,c then compiled with a specific option to create a standalone library (be it statically or dynamically, it is specified here https://github.com/raysan5/raygui). This must be made by the user. Only then a ray_gui.pas (by header, as is named in C and FreeBasic, I meant unit) can be used.  For now, I reverted to your previous version, as is used by both FreePascal and FreeBasic...

RayGui cpde was separated from RayLib, continues to depend on RayLib but if someone wants, can be made to use only GLFW library if certain functions are provided.
raygui.h must be renamed to raygui,c then compiled with a specific option to create a standalone library (be it statically or dynamically, it is specified here https://github.com/raysan5/raygui). This must be made by the user. Only then a ray_gui.pas (by header, as is named in C and FreeBasic, I meant unit) can be used. For now, I reverted to your previous version, as is used by both FreePascal and FreeBasic...

Yes, thank you, I've already figured it out.
The new version is already in the works.
It'll be ready in an hour or two.

Thank you, man!

Thank you very much, Gunko!


import.meta.env cannot be used??

I am trying to setup some env. variables following this guide: https://vitejs.dev/guide/env-and-mode.html
I get the error: [The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'.ts(1343)](https://stackoverflow.com/questions/69716191/the-import-meta-meta-property-is-only-allowed-when-the-module-option-is-e)
I noticed that if I scaffold a project using npm create vite, it sets the module in tsconfig to ESNext, however vite-express sets it to CommonJS. I get build errors on the server side if I change this back to ESNext.
Is there a recommended way to get vite to inject environment variables into the frontend during the build?

Hi @nyoung697, thanks a lot for pointing out this issue. Have you tried running the app despite the error? I've tested it and it seems that app works correctly and import.meta.env is loaded by Vite as you would expect. The problem occurs only in vscode or other code editor you are using and it is quite easy to fix. I'll include the patch in next version of create-vite-package but you can use the fix right now as you've already scaffolded the project. You need to add a separate tsconfig.json that will have module set to esnext. It's the best idea to put it inside src/client directory as vscode should pick it up automatically.
It can look something like this
{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "module": "ESNext"
  }
}

This example works for the basic configuration create by create-vite-express, you can adjust it to your needs, but the important part is the "module": ESNext" as it makes vscode stop complaining about import.meta
You don't need to change anything else because it breaks the app as you pointed out. The only thing left to remember is that you might have to reload TS Server inside vscode by ussing the command palette or by manually restarting the editor.
If you have any questions feel free to ask, I'll try to answer the best i can!

Great! Thank you for your reply @szymmis.

Should be fixed in create-vite-express v0.0.5.


Fix check functions

Description

Checklist

[ ] Targeted PR against correct branch.
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Wrote unit tests.
[ ] Re-reviewed Files changed in the Github PR explorer.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@6dab582). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #213   +/-   ##
=========================================
  Coverage          ?   66.83%
=========================================
  Files             ?       46
  Lines             ?     1797
  Branches          ?        0
=========================================
  Hits              ?     1201
  Misses            ?      537
  Partials          ?       59

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 6dab582...dfda286. Read the comment docs.


feat(typescript): Allow strict use of supported orientations

The change made in https://github.com/react-native-community/react-native-modal/pull/181 to the typescript allows the user to pass any string values to supportedOrientations.
The example below compiles in typescript:
<Modal supportedOrientations={['as', 'as']} />

This PR fixes the type and only allows orientation strings.

Thank you!


Initial R Support in Grayskull

Motivation
Grayskull presently supports Python packages available on PyPI and GitHub. Given the popularity of R in the conda ecosystem, the next obvious step in Grayskull development would be to add support for R packages available on CRAN. This will be a step forward in making Grayskull more versatile and therefore the de facto recipe generator tool for conda.
Alternatives
A short-term alternative suggested was to add conda-build as an optional dependency in Grayskull. So that grayskull cran <package-name> would run conda-skeleton under the hood and generate the R recipe. This would give a better user experience as the same recipe generator could generate Python and R recipes. But further discussions brought out that adding conda-build as a dependency in Grayskull would defeat the very purpose of creating Grayskull (a stand-alone, conda-build independent application) in the first place. A warning message telling the user that Grayskull doesn't yet support CRAN packages along with a suggestion to use conda-skeleton to generate the R recipe might be the way to go while we work on adding R support to Grayskull.
Specifications

For a Python package, the metadata for generating the conda recipe is extracted from setup.py and setup.cfg files. Similarly, an R package is associated with its 'DESCRIPTION file' which contains important metadata about the package. Upon investigation, it is found that several fields in the conda recipe of an R package can be populated from the DESCRIPTION file itself.

Section in DESCRIPTION file
Section in conda recipe it maps to

imports
requirements: run:

Description
about: summary:

Url
about: home:

License
about: license_family:

A simple R recipe would be one that doesn't include compilers. NeedsCompilation: no.
How conda-skeleton is doing things is; it simply goes to https://cran.r-project.org/src/contrib/ and in a list saves all the packages found here and then in this list looks for the package the user mentioned.
Cannot use https://github.com/ropensci/codemetar because it has a GPL license, also rpy2 doesn't work on windows.
Download the R package tar ball, unzip it, and read the description file, and populate the sections of the recipe (mapped in the above table).

Observations/Yet to implement

Package name in R package recipes has a "r-" prefix. See example.
The 'orig_lines' key in the Description file has a list of items as value. This list contains some metadata about the package. This is added at the bottom of each conda R recipe in the form of comments. See example.
The R packages mentioned in the run, build, host sections of the recipe also have the "r-" suffix before their names. See example.

NOTE:
This issue will be used as the place for community discussion on how to pull this off.
As decisions are made and the development work progresses, this tech spec will be updated.

Closed by #423


Error:Conflict with dependency 'com.google.code.findbugs:jsr305' in project ':app'. Resolved versions for app (3.0.1) and test app (2.0.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

See https://github.com/trello/RxLifecycle/issues/211 for more information about this.


Limited Comp (proof of concept)

Placeholder logic for allowing a comp layer to be created from specific node paths. Currently only supports the world node.

lfgd


Add erizo statistics to nuve.

We need a better way of collecting connection statistics than asking
nuve about each room. This allows us to ask once for each erizo that
nuve knows about.

Thanks for the submission! We're closing old PRs, we've set up a new mechanism to test each PR, and most of these ones have conflicts with master. Feel free to open an issue or submit a new PR again!
Sorry for the inconvenience.


Can't convert with SubRip subtitles

http://kickass.to/vikings-s03e02-the-wanderer-720p-web-dl-dd5-1-h-264-bs-rarbg-t10279424.html
File I used
What came out when trying to convert part of it with subtitles
Arguments: -f nut -i pipe:0   -c:v libvpx -pix_fmt yuv420p -threads 4 -slices 2 -metadata title="Vikings.S03E02.The.Wanderer.720p.WEB-DL.DD5.1.H.264-BS" -ac 2 -c:a libvorbis -minrate:v 900K -b:v 900K -maxrate:v 900K -bufsize 540K -rc_init_occupancy 3600K -qcomp 1 -b:a 64K -f webm -y "none of your beeswax.webm"
--- CREATING AVISYNTH PROXY ---
[nut @<PHONE_NUMBER>aaf680] No main startcode found.
pipe:0: Invalid data found when processing input
[avisynth @ 021d6000] TextSub: Can't open "C:\Users\nuhuh\AppData\Local\Temp\50-58-08-58-3E-BD-76-12-F0-26-32-C2-F3-80-30-C9.attachments\sub2.ass"
--- FFMPEG HAS EXITED ---
(C:\Users\nuh uh\AppData\Local\Temp\tmp9BF6.tmp, line 7)
C:\Users\nuh uh\AppData\Local\Temp\tmp9BF6.tmp: Unknown error occurred
ffmpeg.exe exited with exit code 1. That's usually bad.
I could still make the webm if I didn't enable the CC subtitles

Whoops jumped the gun on that
thanks

Included in v2.17.1.


New EKS attack technique: backdooring the aws-auth configmap

Will likely be able to retrofit much of the code from this PR 😃: https://github.com/DataDog/stratus-red-team/pull/136
Will work on the provider first however


Add component install extra and update others

Follow-up on #587

You can run a pipeline on the local runner with the base installation.
The downside to including more dependencies in the base installation, is that they will be installed inside each component as well.
We could still simplify things by removing the docker extra and including it in both the vertex and kfp extras.

I see, I forgot that docker is only needed for pushing images:

In this case we probably don't need to include them in the requirements.txt of the example notebooks
I would maybe still include then docker with all the runners since it can be used to publish images on all of them
Can we also raise errors to instruct the user to install the component extra if it's not installed (similar to docker and kfp/vertex)


[docs] Demo EnhancedTable crashes

[ ] I have searched for similar issues in this repository and believe that this is not a duplicate.

Steps to Reproduce

Visit https://mui.com/material-ui/react-table/
??
demo EnhancedTable crashes

Your Environment

Tech
Version

MUI
v5.14.10

Netlify deploy
https://6508243538ad4900088eb092--material-ui-docs.netlify.app

Browser
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

Hey @blanca-xu, thanks for the report.
I'm not able to reproduce the crash you report. Which one is the EnhancedTable demo? Could you please provide a CodeSandbox example with the crash? This could be a good starting point for that: https://codesandbox.io/s/material-ui-issue-latest-s2dsx


[bug][nodejs] secure-package-download and secure-attestations-download: Path already exists

Both secure-package-download and secure-attestations-download have a default path of "." but the secure download actions they rely on require the caller to specify a path that doesn't already exist yet in order to prevent overwriting files.
The default path needs to be removed from these actions and they should be marked required: true.

Seems that only secure-attestations-download had a default value and I misunderstood the errors on this run
https://github.com/ianlewis/actions-test/actions/runs/5747145738/job/15577720218


Match up window buttons

It makes sense to match up the window buttons with other applications. This makes it easier to minimize a couple of windows one after another, Brackets being one of them.
As you can see:

That's not currently the case.
That's Windows 10 btw. The buttons probably line up differently on different OS'es, but it's important for usability. The other option is: why theme the windowchrome in the first place? The user has set a certain theme (and colour) that is not respected.

@thany I personally don't see that as a problem. In fact, the smaller menu bar gives more space to code with. :confused:

It's not the smaller title bar, is the horizontal position of the window buttons.
So, if multiple windows are maximized & overlapping, we cannot simply click a bunch of times on the minimize buttons to minimize them all, because the one in Brackets is misaligned.

Question: why was this issue closed? The problem is not solved...

@thany Perhaps the issue already exist in the one in the reference?

Any idea who closed this issue, and why??

AFAICT this issue is still open.
The linked one is closed.

Really? Oh well, sorry then. I looked that way to me.

Also, since 1.10 the window buttons look even more off. Especially when Brackets isn't maximised, they look completely misplaced.

Yeah, release 1.10 was built with a newer compiler which caused https://github.com/adobe/brackets/issues/12430


multi page tiff

Hey man hope you are doing well , you did  really great job in this tool , but i am wondering if this tool support multi page tiff ?? i am struggling in the point of create a multi page tiff,  i tried to play with the IDF but i couldn't make anything   :( , so please can you help me in anyway ??
thank you very much

it would unfortunately require a rewrite to allow "streaming"/adding pages to the container.


TEM2015 Test 02: No portal item for Visibility and Range on test server

There is no portal item for Visibility and Range on [testserver05].... i'm positive this should exist,as it was just updated. see issue below in regards to it being updated.
#1269

@dfoll Please clarify. What is missing? Is it the document link item or application template item?
Application template items for the "Downloads" will not be included in the Ops Server release. As far as document link items I believe that only a document link item for the latest download will be included in the Ops Server release; note this is a document link item for version 4.0.0 of Visibility and Range on the test server. Thanks.

Confirmed with @dfoll it was the template he was referring to and explained that desktop templates won't be released as portal items.  Closing issue.


IzzyOnDroid Banner

Not required, however since I have seen quite a few apps hosting such a banner on their README pages, I thought that you might also be interested in adding one.

I didn't about IzzyOnDroid, I see the app seems to be in their database. But I'm not a fan of banners and I don't think it would add much. Thanks for the suggestion anyway.

No problem.
I thought that you may be interested, since you already have banners for the Play Store and the GitHub releases.

Oh I misunderstood I thought you were talking about badges. But since there's going to be an F-Droid button eventually I don't want it to become too crowded. Isn't IzzyOnDroid only some kind of mirror? Or do they also provide the download?

IzzyOnDroid is an alternative application source to F-Droid, however I believe that Izzy will remove Another Notes once it goes live in F-Droid, since he usually does that to prevent duplication of efforts.


Partial row updates in parallel specs

Specs for showing what parallel saving can do, needs unique indexes and resource_version/timestamp fields in DB

@miq-bot assign @agrare
@miq-bot add_label test

moving to inventory_refresh repo


Run docker commands directly, without docker-compose

Currently we have three CLIs to understand as part of using govuk-docker: docker, docker-compose and govuk-docker itself. This was OK in the beginning, when govuk-docker was a mere 70 line bash script, but since then we've moved to a large Ruby codebase that's more open to development, and several fundamental issues with docker-compose have come to light:

The run command isn't robust when dependencies aren't ready, which means some commands - e.g. rake tasks - sporadically fail the first time they are run
The run (or startup) command doesn't monitor the logs or status of dependencies, which means silent failures or API errors are not visible in the console*

*the startup command does have a abort-on-container-exit option, but I've not yet seen it work; it also provides combined logging output, but only for the top-level container(?!)
I'd like to raise this as an issue, but also suggest a potential way forward: dropping docker-compose. The aim of this PR is to illustrate the relatively small amount of code it takes to drop docker-compose and have a foundation upon which to resolve the above issues. There are some immediate pros and cons to making this change:

Pro: we are free to fix the issues we're experiencing
Pro: we have one less CLI to understand
Con: we're reinventing part of a wheel
Con: we don't benefit from updates to docker-compose

I'd like to gather thoughts on this approach and alternatives, ideally culminating in a decision about what to do next. The challenge is to find an approach that reduces the learning curve, but also provides a means to fix the issues.

Thanks for putting this together Ben, I'm impressed with how much docker wrangling you managed to achieve here 👍. It'd be useful to get some context on how this change would help resolve the problems identified for context.
Some other cons I can think of are:

we'd have lots of docker-compose.yml (or different named files) that are just in a free form syntax of our own that resembles docker-compose but is not necessarily the same
have to maintain and document a port of the docker-compose bits we do use
having to replicate any new docker-compose features we want to use
lose commands I use like: logs, down, ps, run without dependencies, and options like service-ports

Personally having access to the compose command on govuk-docker has been one of my favourite features as I've been able to re-use all of my existing knowledge of compose with govuk-docker without having to add things to the govuk-docker CLI.

I've had a look for all instances of govuk-docker compose in my shell scripts:

govuk-docker compose stop - self-explanatory
govuk-docker compose ps --services | grep "$app" - list stacks for an app
govuk-docker compose run -d --rm -v $archive_path:/replication -v $cfg_path:/usr/share/elasticsearch/config/elasticsearch.yml -p 9200:9200 "elasticsearch${ver}" - elasticsearch data sync

So from my perspective we'd need all those to work (or something equivalent).

A few cons which come to mind are:

On-boarding new people: if someone is familiar with docker from a previous role, they're almost certainly familiar with docker-compose.  It's needlessly confusing if we reimplement a docker-compose feature but with a different name or arguments.

Complexity: I suspect there are a lot of different ways in which people are using govuk-docker compose, and adding support for all of them (and any future uses) increases the amount of code here, and so the potential for bugs.

On the other hand, I quite like Kevin's approach with dockerize.  The most significant pain point in govuk-docker, to me, is that containers don't wait for their dependencies.  I think solving that would be a huge benefit and, if we could do it without reimplementing a significant chunk of docker-compose, even better.

@kevindew thanks for the suggestions. I'm conscious this PR is oriented around the architectural change, rather than solving the compose-specific issues, with the understanding that "anything is possible in code". On it's own, it's a way of reducing the complexity, so could be a change in its own right for that single reason. I do believe the complexity is a problem, so I'm interested in suggestions about how we could reduce it, as well as fix the compose issues.
I agree with the downsides of dropping a popular framework, and ideally we should avoid this. And I also make use of stop and  logs with compose, but not ps (just plan docker ps), so I'm interested to know about the use case for that one. Specifically for the logs command, is the use case to replicate the multi-app logs we used to get with foreman? If so, it seems relevant to the second compose issue I mentioned. I'm wondering if we might remove the need for this if compose could include logs for dependencies when running an app.
I've had a look at wait-for-it and wait-for in the past, but not dockerize, which is annoying because this seems to be the only recommended solution that: supports multiple wait conditions; also works with entrypoint. I'm keen not to diddle with the commands as part of doing this, and I was pleased to find I could achieve the following.
docker-compose -f [...] run --rm --service-ports content-publisher-app
...
Starting govuk-docker_asset-manager-app_1  ... done
Starting govuk-docker_router-api-app_1     ... done
Starting govuk-docker_content-store-app_1  ... done
2019/09/11 16:14:29 Waiting for: http://publishing-api.dev.gov.uk/healthcheck
2019/09/11 16:14:29 Received 502 from http://publishing-api.dev.gov.uk/healthcheck. Sleeping 1s
2019/09/11 16:14:36 Received 200 from http://publishing-api.dev.gov.uk/healthcheck
=> Booting Puma

While I have a concern that we're adding yet more stuff, to solve problems with other stuff, the thing I like about this is that we only need to use it where flakiness is actually a problem, rather than some generic healthcheck mechanism, which would be overkill for the overheads it would introduce.
Self Summary

Can we think of other approaches to reduce the total complexity of govuk-docker?
logs, ps and stop are popular, but could we do better?
dockerize looks good - should we use it to fix https://trello.com/c/YbvBZ4iq/68-build-steps-can-fail-when-services-arent-ready?

@kevindew thanks for the suggestions. I'm conscious this PR is oriented around the architectural change, rather than solving the compose-specific issues, with the understanding that "anything is possible in code". On it's own, it's a way of reducing the complexity, so could be a change in its own right for that single reason. I do believe the complexity is a problem, so I'm interested in suggestions about how we could reduce it, as well as fix the compose issues.

No worries - I think it's hard to consider this outside of the issues it is intended to solve, but I am indeed very impressed how you managed to replicate so much of docker compose so easily 👍
Re complexity: Is that a reference to the amount of ruby code we have for the CLI? One area where I see an opportunity for complexity reduction is the makefiles, which - were they done with Ruby - would be one less universe to understand. Though I don't if it that's realistic or actually offer benefits. And I may be looking at the complexity from a different perspective to you.

I agree with the downsides of dropping a popular framework, and ideally we should avoid this. And I also make use of stop and  logs with compose, but not ps (just plan docker ps), so I'm interested to know about the use case for that one. Specifically for the logs command, is the use case to replicate the multi-app logs we used to get with foreman? If so, it seems relevant to the second compose issue I mentioned. I'm wondering if we might remove the need for this if compose could include logs for dependencies when running an app.

I mostly use compose ps is mostly preference born out of habbit. I like that it by default shows which container exited with the code and it just find it a bit more readable. It's also handy that it's scoped just to the govuk-docker containers.
Mostly I use the logs command to check a single or couple of containers. I'll go for the whole stack on occasion but given there's so much output I don't tend to find it very useful (which was a similar problem I had with the vm bowl command). When I've been keen on monitoring a couple of apps output I've tended to run them both, for example govuk-docker compose up email-alert-frontend-app finder-frontend-app for recent work on comms between these apps.

I've had a look at wait-for-it and wait-for in the past, but not dockerize, which is annoying because this seems to be the only recommended solution that: supports multiple wait conditions; also works with entrypoint. I'm keen not to diddle with the commands as part of doing this, and I was pleased to find I could achieve the following.

Ah ha - that's just luck. I saw the three options on the docker docs and picked dockerize because of it being wrote by jwilder. I hadn't realised those tools had that limitation, though looks like there are forks that add it in. I also found a less popular option that allowed the waits to be configured by an env var which looked a concise way of expressing it https://github.com/ufoscout/docker-compose-wait though doesn't look suitable for an entrypoint.

While I have a concern that we're adding yet more stuff, to solve problems with other stuff, the thing I like about this is that we only need to use it where flakiness is actually a problem, rather than some generic healthcheck mechanism, which would be overkill for the overheads it would introduce.

Sure, may be worth tinkering to see how many changes are needed to get a govuk-docker setup to run successfully.

@barrucadu thanks for giving your take on this. I agree that the dependency waiting issue seems to be the one people have voiced most often, and we could look at adding dockerize to fix those dependencies that are currently creaking.
I agree the definite con of reproducing parts of compose is somewhat unbounded, and we'd have to have strong motivation to go that way. And we'd lose the documentation and prior knowledge benefits that come with it, although prior knowledge seems scarce!

I'm going to close this PR (/bundle of issues). Thanks for everyone who commented with their thoughts - it's been food for my thoughts, and I've also learnt a thing or two out of it!
After some reflection, I'm inclined to agree that dropping docker-compose would not have a net benefit. I'd like to summarise the issues people have raised in the comments:

Dropping the compose CLI would mean our config files no longer follow a well-documented format, making them harder to understand for people unfamiliar with the repo
Replacing the compose CLI is an unbounded task, and arguably gives us excessive freedom to deviate or bikeshed in what we choose to support
One of the 2 functional issues in the original description can be resolved using an existing approach, which I wasn't aware of when writing this PR

That said, the three issues - waiting for dependencies, dependencies exiting, and overall complexity - still exist and we should still think about how best to resolve them.
I think this PR has served its purpose: to determine if one approach would be practical. I'll continue to think about other ways to get the complexity down, as having 3 layers of CLI is a clear barrier for people learning the tool. We also now have a piece of work to look at functional issues, which should hopefully come to address the two listed here (if they really are a problem!).
https://trello.com/c/Cij7BWiD/102-quarterly-survey-prioritisation-and-fixing-of-issues


Optimize the CI to build & push only the changed/affected images

The travis CI currently executes the makefile which is written to build & push nearly every image present in the openebs/test-tools repo, (the dependency for the main target 'build' in-turn runs the build/push of every other image). This can result in long build process & sometimes, failures due to travis timeouts.
This has to be optimized to ensure that the CI builds/pushes only those images in which the artifacts have been changed/updated.

I will try to help on this one.

Thanks for helping out with this @woernfl !


Hide snippet (or $0) in suggestions

Hello,
Is there a way to hide the snippet, or the $0 in suggestions list ? It's not really nice to see the $0 at the end of every line.
E.G

Thank you for your answer,
Peekmo

What provider are you using? Likely an issue on their end.

It's my own provider, that build the snippet and I use $0 for the final tab (https://github.com/Peekmo/atom-autocomplete-php/blob/master/lib/php-abstract-provider.coffee#L15)
Perhaps may I have to use something else for the final tab ?

+1. @benogle Let me give you another example. All of the below cases complete to abs($number) while the first tab selects $number and the second tab places the cursor after the closing parenthesis. But the suggestion is including "snippet code".

snippet: 'abs(${0:$number})$1' - suggests abs($number)$1
snippet: 'abs(${0:$number})${1}' - suggests abs($number)${1}
snippet: 'abs(${0:$number})${1:}' - suggests abs($number)${1:}

Makes sense, and seems reasonable.

@AustP I can confirm that this is not working as expected for you, and am working on a fix that also addresses an issue with escaped right braces (}) inside snippets. This requires a shift in approach, so I'll create a PR and reference back here for your feedback.


GIF Support for ImageMobject

Description of proposed feature
Perhaps this is out of scope for Manim, but it would be nice to have support for GIFs to be embedded as an ImageMobject. Perhaps they can use an internal updater to change each frame in a loop so they are always animating with each frame of the render, including with self.wait().
How can the new feature be used?
Manim was always meant to be a visual aid for presentations with a mathematical, scientific, or LaTex motivation. It already has support for images with ImageMobject, and it would make sense to support GIF, WebM, and small looped video formats. It would also require less video editing after rendering.
I borrowed some code from @Turgibot in https://github.com/3b1b/manim/issues/760#issuecomment-925659697 and wrapped it up in a utility function. I think there's further opportunity to encapsulate this into an ImageMobject or a video variant of it.
Additional comments
from manim import *
import cv2, wget

def animate_gif(scene,
                file_name,
                wait_time=.07,
                repetitions=1,
                modify = lambda img: img):

      for i in range(0,repetitions):
        cap = cv2.VideoCapture(file_name)
        flag = True

        while flag :
          flag, frame = cap.read()
          if flag:
            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            frame_img = ImageMobject(frame)
            modify(frame_img)
            scene.add(frame_img)
            scene.wait(.07)
            scene.remove(frame_img)

        cap.release()

class MyScene(Scene):

    def construct(self):
      wget.download("https://media3.giphy.com/media/VbnUQpnihPSIgIXuZv/giphy.gif")
      animate_gif(self, "giphy.gif",
                  modify = lambda frm: frm.to_corner(UR)
                  )

Does not work with transparent background :(


[Exploit] Able to delete any block with a piston and a box.

 I can't imagine it's useful for anything but you can delete any block from the server, even bedrock. Have not tried it on living entities yet. If I don't return, it deleted me.

Wouldn't work on bedrock regardless as it is hardcoded to be in the blacklist.  The best course of action would be adding the extended piston to the blacklist, too.


Allow people to override user_data and name_prefix.

This PR introduces a few enhancements to make the module more flexible:

user_data can now be specified. Falls back to Docker Hub as before.
name_prefix can now be overridden.
Export information about the autoscaling group.
Remove unused key_path variable.
Re-format all of the .tf files to have correct spacing/indentation.

Oh, and we should add a contributors section, or update authors or something in the README too!

Okay, I think this is ready for another/final review. I believe I've addressed all comments, but let me know if I missed anything. 👍

@joestump LGTM!!  @antonbabenko  if you agree I'll merge and cut a release!

Looks good to me. Good job!

Awesome! 🎉


iOS Support for Safari

Hello,
since we have experimental features for WebXR and Safari since iOS 16, I think we should start looking into it. In general, this needs to be enabled first in the Settings for Safari (Advanced > Experimental Features > check all the WebXR thingies).
However, we weren't able to run our application, which works in "WebXR Viewer".
Any ideas, what is missing? I can't debug it right now, since I don't have a Mac at hand but I'll try later.

WebXR support is very limited for the moment on Safari, I can't wait to test this feature! But we still have to wait.
WebXR Viewer is old and obsolete. Maybe console logs can help you. You can put them here if you want help on this subject.

Do you happen to know the alternative to WebXR Viewer ?


Detect a loop in linked list using python

🚀 Feature
Detecting a loop in linked list
Have you read the Contributing Guidelines on Pull Requests?
yes
Motivation
(Please explain why this feature should be implemented and how it would be used.)
A cycle in a linked list has to be detected to avoid infinite recursion and stack overflow.
Pitch
I will try to implement an algorithm to detect a loop in linked list using python .

/assign


Stop long email addresses from wrapping

Rather than splitting address and email into two columns, show them as a single column. This makes wrapping much less likely and emails addresses can be more easily copy and pasted.
https://trello.com/c/vzPTVOl4/157-fix-display-of-long-email-addresses-in-whitehall-small
https://govuk.zendesk.com/agent/tickets/1133547
Before

After

:+1:

Belated 👍


Offer on-device translation of products using MLKit

Unfortunately, it's a terrible idea, just have a look at the Android doc ;)


prisma -v crashes when using PRISMA_QUERY_ENGINE_BINARY in specific situation

TLDR: When your project is in a state where you have a download cache for a query engine, but no query engine in your node_modules/@prisma/engines because you use PRISMA_QUERY_ENGINE_BINARY, it can crash Prisma as it is trying to hash that non existing file anyway.
This is what it looks like:
λ npx prisma -v
Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS>
λ yarn prisma -v
yarn run v1.22.0
$ C:\Users\Jan\Documents\throwaway\PRISMA_QUERY_ENGINE_BINARY\node_modules\.bin\prisma -v
  prisma:loadEnv project root found at C:\Users\Jan\Documents\throwaway\PRISMA_QUERY_ENGINE_BINARY\package.json +0ms
  prisma:tryLoadEnv Environment variables not found at null +0ms
  prisma:tryLoadEnv Environment variables not found at undefined +1ms
  prisma:tryLoadEnv No Environment variables loaded +1ms
  prisma:engines using NAPI: false +0ms
  prisma:engines binaries to download query-engine, migration-engine, introspection-engine, prisma-fmt +1ms
  prisma:download Using env var PRISMA_QUERY_ENGINE_BINARY for binary query-engine, which points to custom-engines/query-engine-windows.exe +0ms
Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS>  prisma:cli Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS>+0ms
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

The project is in a situation where we 1. use PRISMA_QUERY_ENGINE_BINARY to point to an existing query engine in the project, 2. the cache folder where the CLI stores the binaries (node_modules/.cache/prisma in the case of Windows) includes all 4 binaries and their files, 3. node_modules/@prisma/engines does only include 3 engines, not the query engine.
λ ls node_modules\.cache\prisma\master\c838e79f39885bc8e1611849b1eb28b5bb5bc922\windows\
introspection-engine*           introspection-engine.sha256  migration-engine.gz.sha256  prisma-fmt*           prisma-fmt.sha256  query-engine.gz.sha256
introspection-engine.gz.sha256  migration-engine*            migration-engine.sha256     prisma-fmt.gz.sha256  query-engine*      query-engine.sha256

λ ls node_modules\@prisma\engines
dist/  download/  introspection-engine-windows.exe*  migration-engine-windows.exe*  package.json  prisma-fmt-windows.exe*  README.md

This leads to prisma -v triggering some download logic, which along the way tries to hash a query engine binary that does not exist. I think it is missing a check if we are using PRISMA_QUERY_ENGINE_BINARY, which is available in that context as envVarPath probably already.
Reproduction

Set DEBUG=*
Create folder, go into it, npm init -y, npm install -D prisma, npm install @prisma/client
npx prisma -v - should show all all 4 Engines from node_modules/@prisma/engines
Delete node_modules/@prisma/engines: rm -r node_modules/@prisma/engines
Set PRISMA_QUERY_ENGINE_BINARY to existing file (does not actually have to be a query engine file - package.json also works)
npm install
Run npx prisma -v again
Observe the crash above

PS: Yep, this is quite crazy but I have had this and similar things forever and finally found a reproduction via a test that was putting the project in exactly this situation. (Could be worked around by also emptying the ./node_modules/.cache/prisma folder before running the test)

(On Linux, the path to clean for a workaround is path.join(os.homedir(), '.cache/prisma'))

As of<EMAIL_ADDRESS>this issue is solved thanks to https://github.com/prisma/prisma/pull/14053.


[[ObjectMapper sharedInstance] dictionaryFromObject:object] doesn't work if the object comes from a framework

I know that MESRecipePreviewRecipeIngredientViewModel can be converted into a dictionary normally in a standard iOS app project. The moment I moved it to another private pod framework, I saw this error:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (MESRecipePreviewRecipeIngredientViewModel)'
*** First throw call stack:
(
	0   CoreFoundation                      0x0000000103ccac65 __exceptionPreprocess + 165
	1   libobjc.A.dylib                     0x0000000103963bb7 objc_exception_throw + 45
	2   CoreFoundation                      0x0000000103ccab9d +[NSException raise:format:] + 205
	3   Foundation                          0x00000001035fafd0 _writeJSONValue + 689
	4   Foundation                          0x00000001035ff34d ___writeJSONArray_block_invoke + 130
	5   CoreFoundation                      0x0000000103c14026 __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 70
	6   CoreFoundation                      0x0000000103c13f5c -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 284
	7   Foundation                          0x00000001035ff262 _writeJSONArray + 264
	8   Foundation                          0x00000001035faf3c _writeJSONValue + 541
	9   Foundation                          0x00000001035ff46f ___writeJSONObject_block_invoke + 220
	10  CoreFoundation                      0x0000000103c3ecd5 __65-[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:]_block_invoke + 85
	11  CoreFoundation                      0x0000000103c3ebec -[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:] + 236
	12  Foundation                          0x00000001035ff080 _writeJSONObject + 376
	13  Foundation                          0x00000001035faea6 _writeJSONValue + 391
	14  Foundation                          0x00000001035ff46f ___writeJSONObject_block_invoke + 220
	15  CoreFoundation                      0x0000000103c3ecd5 __65-[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:]_block_invoke + 85
	16  CoreFoundation                      0x0000000103c3ebec -[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:] + 236
	17  Foundation                          0x00000001035ff080 _writeJSONObject + 376
	18  Foundation                          0x00000001035faea6 _writeJSONValue + 391
	19  Foundation                          0x00000001035ff46f ___writeJSONObject_block_invoke + 220
	20  CoreFoundation                      0x0000000103c3ecd5 __65-[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:]_block_invoke + 85
	21  CoreFoundation                      0x0000000103c3ebec -[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:] + 236
	22  Foundation                          0x00000001035ff080 _writeJSONObject + 376
	23  Foundation                          0x00000001035faea6 _writeJSONValue + 391
	24  Foundation                          0x00000001035ff34d ___writeJSONArray_block_invoke + 130
	25  CoreFoundation                      0x0000000103c14026 __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 70
	26  CoreFoundation                      0x0000000103c13f5c -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 284
	27  Foundation                          0x00000001035ff262 _writeJSONArray + 264
	28  Foundation                          0x00000001035faf3c _writeJSONValue + 541
	29  Foundation                          0x00000001035ff34d ___writeJSONArray_block_invoke + 130
	30  CoreFoundation                      0x0000000103c14026 __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 70
	31  CoreFoundation                      0x0000000103c13f5c -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 284
	32  Foundation                          0x00000001035ff262 _writeJSONArray + 264
	33  Foundation                          0x00000001035faf3c _writeJSONValue + 541
	34  Foundation                          0x00000001035ff46f ___writeJSONObject_block_invoke + 220
	35  CoreFoundation                      0x0000000103c3ecd5 __65-[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:]_block_invoke + 85
	36  CoreFoundation                      0x0000000103c3ebec -[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:] + 236
	37  Foundation                          0x00000001035ff080 _writeJSONObject + 376
	38  Foundation                          0x00000001035faea6 _writeJSONValue + 391
	39  Foundation                          0x00000001035ff34d ___writeJSONArray_block_invoke + 130
	40  CoreFoundation                      0x0000000103c14026 __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 70
	41  CoreFoundation                      0x0000000103c13f5c -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 284
	42  Foundation                          0x00000001035ff262 _writeJSONArray + 264
	43  Foundation                          0x00000001035faf3c _writeJSONValue + 541
	44  Foundation                          0x00000001035facea -[_NSJSONWriter dataWithRootObject:options:error:] + 137
	45  Foundation                          0x00000001035fd76b +[NSJSONSerialization dataWithJSONObject:options:error:] + 345
	46  React                               0x0000000101d2b2ee RCTJSONStringify + 94
	47  React                               0x0000000101c99152 __70-[RCTContextExecutor executeJSCall:method

I.e. I was trying to use OCMapper to convert my ViewModel class into a dictionary that React Native can consume. RN is barfing because the object didn't get converted at all

what do you mean by doesn't work? What's the behavior?
Would it work if you update the code according to this PR? https://github.com/aryaxt/OCMapper/pull/34/files

@aryaxt Hi aryaxt, thanks for the super quick reply.
Yes I noticed the cause is definitely the bundle checking.
...
	// For example when we are mapping an array of string, we shouldn't try to map the string objects inside the array
	if ([NSBundle mainBundle] != [NSBundle bundleForClass:object.class] && [object class] != [NSArray class])
	{
		return object;
	}

I think the pull request might go some way to fixing it... I'll need to try that.

@aryaxt I checked out the version from the pull request but it's not helped.
I don't understand why bundle checking is necessary at all.
I'm using AppCode, not Xcode. When I debugged the comparison between mainBundlePath and classBundlePath, I found their values were WILDLY different:
mainBundlePath = {__NSCFString * | 0x7ff013d6eb20} "/Users/myusername/Library/Developer/CoreSimulator/Devices/4CCEBA75-D7CE-408F-8135-97927736A940/data/Containers/Bundle/Application/854F84EA-647C-4B99-A94B-E5E94186714B/MakeEatSeeRNUI_Example.app"
classBundlePath = {__NSCFString * | 0x7ff016005020} "/Users/myusername/Library/Caches/AppCode32/DerivedData/MakeEatSeeRNUI-8ccb4a77/Build/Products/Debug-iphonesimulator/MakeEatSeePresenters.framework"

So yeah, that comparison would definitely fail, and cause -dictionaryFromObject:object to return object. Not very useful at all.

yeah the code to detect project-specific classes need to be reworked.
To understand the reason behind that logic, you can pull my code, comment out the code, and run the unit tests. Fell free to open a PR if you find a solution. I'll look into it myself as well

Hmmm. The relevant test in question is this:
- (void)testShouldMapArrayOfStringFromObjectToDictionary
{
	User *user = [[User alloc] init];
	user.randomKeywords = @[@"keyword1", @2].mutableCopy;

	NSDictionary *dictionary = [self.mapper dictionaryFromObject:user];
	NSArray *array = [dictionary objectForKey:@"randomKeywords"];

	XCTAssertTrue(array.count == 2);
	XCTAssertTrue([array[0] isEqualToString:@"keyword1"]);
	XCTAssertTrue([array[1] isEqualToNumber:@2]);
}

:/ the implementation appears to make quite a lot of assumptions about what classes belong in bundles and which don't. I've got a wild idea: how about check for the NS prefix from the class name instead?

Let me think about the NS prefix, maybe it could be in additions to bundle checking. Bundle checking is very reliable as long as your models are in the main bundle

@aryaxt Yeah I gave just checking for the NS prefix a quick try, but one of the tests still failed.

@fatuhoku Did you manage to find a solution? I haven't had time to look into this

@aryaxt Yes — I just used HRCoder + AutoCoding to serialise the JSON out for React Native consumption instead!  I'm not sure how they solve the cross-bundle issue. Probably worth checking the HRCoder code.


DB correction Facies Description

Set all entries under Quality of Descritption of Facies Description to "NULL"

Danke!


Change append to extend

I think the append will make an array or arrays

You are correct!  Good catch.


Subgraphs

Reference Issues/PRs
#19
What does this implement/fix? Explain your changes.

Adds subgraph selections and tutorial
Bumps to docs
Minor linting

What testing did you do to verify the changes in this PR?

Some tests in place for subgraphs. Remainder WIP.

Codecov Report

Merging #96 (33a2a7e) into master (8123f42) will decrease coverage by 0.23%.
The diff coverage is 43.11%.

:exclamation: Current head 33a2a7e differs from pull request most recent head ada31a0. Consider uploading reports for the commit ada31a0 to get more accurate results

@@            Coverage Diff             @@
##           master      #96      +/-   ##
==========================================
- Coverage   40.27%   40.03%   -0.24%
==========================================
  Files          48       49       +1
  Lines        2811     3020     +209
==========================================
+ Hits         1132     1209      +77
- Misses       1679     1811     +132

Impacted Files
Coverage Δ

graphein/protein/visualisation.py
15.65% <0.00%> (-0.57%)
:arrow_down:

graphein/protein/utils.py
23.77% <15.09%> (-27.45%)
:arrow_down:

graphein/protein/subgraphs.py
73.07% <73.07%> (ø)

graphein/__init__.py
100.00% <100.00%> (ø)

graphein/protein/__init__.py
84.61% <100.00%> (+1.28%)
:arrow_up:

graphein/_version.py
0.00% <0.00%> (-12.91%)
:arrow_down:

graphein/protein/edges/distance.py
93.42% <0.00%> (+11.73%)
:arrow_up:

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 5dd3da9...ada31a0. Read the comment docs.


classDiagram: Add support for typing (python)

Minimal example
classDiagram
  class Foo {
  }

  class Bar {
    Optional[Foo] foo
  }

This fails. Although Optional[Foo] is the correct type.
I could not find a way to quote or escape it.

@rusty-snake Thank you for the issue , I'll try to fix it , it should be able to work without quotes.

This is fixed is v0.7.3


Add ansible-lint

Introduce ansible-lint as proper check in GitHub Actions:

add a simple config to reflect the current state
add an override for a known situation

Sadly currently (ansible-lint v6.22.0) the action does not respect its working_directory for all the steps, failing in its initial setup steps; a potential fix has been proposed [1], so create a local workaround to get the action to run in the meanwhile.
[1] https://github.com/ansible/ansible-lint/pull/3905

This depends on fixing the working_directory of the ansible/ansible-lint action; hence, switching to draft for now.

Workaround added locally, which avoids the need of a fork; hence, going for this for now.


Ideas for supporting HTTP Early Hints server-side

An important customer of ours is very interested in using HTTP 103 Early Hints to lower the perceived latency experienced by their end users. This requires the ability to return more than one response head during the message exchange. The basic example from the RFC is:
   Client request:

     GET / HTTP/1.1
     Host: example.com

   Server response:

     HTTP/1.1 103 Early Hints
     Link: </style.css>; rel=preload; as=style
     Link: </script.js>; rel=preload; as=script

     HTTP/1.1 200 OK
     Date: Fri, 26 May 2017 10:02:11 GMT
     Content-Length: 1234
     Content-Type: text/html; charset=utf-8
     Link: </style.css>; rel=preload; as=style
     Link: </script.js>; rel=preload; as=script

     <!doctype html>
     [... rest of the response body is omitted from the example ...]

With hyper's service function model, we currently only have the chance to return a single response head. Supporting multiple response heads may require some substantial API changes or additions, so I'm hoping we can discuss potential designs before diving into implementation. Please take any type signatures mentioned below to be a bit handwavy; I know things are more complex with the tower types and such.
Channel/stream-based interfaces
These are my preferred approaches from a hyper user's perspective, but I admit I tend to get lost when trying to follow all the types involved with tower services under the hood, so I'm not sure if this is particularly feasible on the implementation side.
Service function channel argument
We could add a variant of hyper::service::service_fn() whose closure takes an additional sender argument, i.e., FnMut(Request<R>, mpsc::Sender<Response<()>>) -> S. The service implementation would be free to send many interim responses, and would return the final response in the same way that existing service functions do. For example:
async fn my_service_fn(
    req: Request<Body>,
    mut interim_sender: mpsc::Sender<Response<()>>,
) -> Result<Response<Body>> {
    let early_hints = Response::builder()
        .status(103)
        .header("Link", "</style.css>; rel=preload; as=style")
        .header("Link", "</script.js>; rel=preload; as=script")
        .body(())?;
    interim_sender.send(early_hints).await?;
    let resp = todo!("build the final response")?;
    Ok(resp)
}

Service function response stream return value
A similar variant is to accept a Stream<Item = Result<Response<Body>>> as the return value from a new service function variant. This would give the flexibility for the service function to use channels internally, or return stream::once() for a basic case with no hints. For example:
async fn my_service_fn(
    req: Request<Body>,
) -> impl Stream<Item = Result<Response<Body>>> {
    let (mut result_sender, result_receiver) = mpsc::channel(1);
    tokio::task::spawn(async move {
        let early_hints = Response::builder()
            .status(103)
            .header("Link", "</style.css>; rel=preload; as=style")
            .header("Link", "</script.js>; rel=preload; as=script")
            .body(Body::empty())?;
        result_sender.send(Ok(early_hints)).await?;
        let resp = todo!("build the final response")?;
        result_sender.send(Ok(resp)).await?;
    });
    result_receiver
}

Error handling gets a bit awkward with this one, as it always does when detaching a task from a service function. Also, we don't enforce that the 103 has no body via the type system as we do when the channel is dedicated only to returning interim responses.
Functional interface
Inspired by hyper::upgrade::on(), we could add a function (strawman name hyper::interim_response()) that allows additional closures to be invoked with the current request, each of which would return an interim or final response. For example:
async fn my_service_fn(req: Request<Body>) -> Result<Response<Body>> {
    tokio::task::spawn(hyper::interim_response(async move {
        let resp = todo!("build the final response")?;
        Ok(resp)
    }));
    Ok(Response::builder()
        .status(103)
        .header("Link", "</style.css>; rel=preload; as=style")
        .header("Link", "</script.js>; rel=preload; as=script")
        .body(())?)
}

Error handling is also awkward with this one, and there's a bit of a continuation-passing style feel, but it's worth considering something that resembles the existing 1xx API. I believe the other approaches would be easier to work with, particularly if multiple 103 responses are sent in a single exchange.
Extension to body types
I could imagine implementing subsequent response heads as something that could be polled from the body like trailers. This would probably run afoul of many of the same problems that motivated #2086, though, so it seems unlikely to be the right choice.

I'm sure I'm missing some ideas here, but regardless of the final design chosen it would be great to figure out a plan forward. Please let me know how we can help.

For the record, this is also somewhat discussed in the issue about enabling Server Push (#1586), where I proposed something similar to hyper::upgrade, and also pondered on whether it should also send 103 links if the version is HTTP/1.1.

Aha, I'd missed that thread because it didn't actually contain "hints". I like the look of that API as well; it would maintain the benefits of the channel approach without having to change the type signature of the service functions :+1: Perhaps it'd look something like this?
async fn my_service_fn(req: Request<Body>) -> Result<Response<Body>> {
    let early_hints = Response::builder()
        .status(103)
        .header("Link", "</style.css>; rel=preload; as=style")
        .header("Link", "</script.js>; rel=preload; as=script")
        .body(())?;
    hyper::interim_response(&mut req).send(early_hints).await?;
    let resp = todo!("build the final response")?;
    Ok(resp)
}

Yea, something like that. I think I favor that style as well, for the reasons you mentioned. Any thoughts on whether sending early hints should be considered combined with server push? I like the name hyper::push more than interim_response, :D.
I could see the argument that perhaps they should be separate, to provide more control (and it's possible Server Push may see less use as browsers deactivate it, with Early Hints as the suggested future even in h2 and h3).

Any thoughts on whether sending early hints should be considered combined with server push?

I don't have strongly held opinions about how the server push API should look, but I'd worry about confusion from exposing a single interface that can both push responses (presumably after sending a push promise elsewhere), and one that can only send 1xx responses with no associated promise. I could also see this confusion spilling over into implementation as you'd have to frame things differently in h2 for the two modes.

I've felt similar. I think it'd be clever if a simpler API degraded gracefully, but probably at hyper's level we shouldn't be too clever. That leaves the cleverness to server frameworks.
In case someone doesn't actually want to use this, we could consider having it a builder option. That way, if you're not going to send early hints, we don't construct a waste channel for each request.
Also, I've been thinking about the name. What about informational?

In case someone doesn't actually want to use this, we could consider having it a builder option. That way, if you're not going to send early hints, we don't construct a waste channel for each request.

That sounds great. I certainly don't imagine it'll be the common case.

Also, I've been thinking about the name. What about informational?

Much better than my strawman :laughing:

I want to suggest a slightly different, fully parameter-based API. It might look something like this:
async fn my_service_fn(req: Request<Body>, mut responder: Responder) -> Result<()> {
    let early_hints = Response::builder()
        .status(103)
        .header("Link", "</style.css>; rel=preload; as=style")
        .header("Link", "</script.js>; rel=preload; as=script")
        .body(())?;
    responder.send_interim(early_hints).await?;
    let resp = todo!("build the final response")?;
    responder.send(resp).await?;
    Ok(())
}

This API provides a more consistent interface than the previous suggested ones (apart from the stream one), since there's just one way through which responses can be sent.
Another advantage is that it would allow request handlers to easily perform work after the response has been sent. Currently in Hyper this can be achieved by spawning a task before returning from the function, but that needs 'static and so isn't always viable. This could potentially reduce latency as destructors and other cleanup work can be run after the time-sensitive window between request and response is over.
Additionally this API could potentially support sending non-'static bodies, which can reduce unnecessary allocation and copying.

Is there still no community consensus on the API surface? I am interested in experimenting with this.

Yep, this still needs an accepted proposal. I think the general leaning is to take the ideas for push and adapt them for informational, and then run through any potential downsides with that design. The more clarity there is in the design proposal, the easier it would be to merge a PR afterwards.

@seanmonstar I am currently drafting a proposal gathering most of the proposed API ideas and evaluating their pros and cons, but the resulting Markdown document seems fairly large. Should I post it here as a comment or maybe open a new issue, PR or create a gist?

In the end, I decided to publish the resulting document as a gist: https://gist.github.com/vikanezrimaya/037101dc7b28de37ef03a47569213236
The gist above gathers most of the current ideas in one place and tries to evaluate them. Please note that while I touched Hyper before, it was merely as a user of the library (and also via the axum framework), not as a contributor, so I might be wrong in some of my evaluations. If so, please do not hesitate to correct me.

Awesome, thanks for writing that up! I'll include some comments here:

Alternate idea: providing a "pusher" as a new argument

This doesn't preserve backwards compatibility. The trait would need to change from call(Req) to call(Req, Pusher).

Alternate idea: Sending a stream of responses

This also doesn't preserve backwards compatibility, since the trait would need to change from call() -> impl Future to call() -> impl Stream.
Async streams are unstable in general, so hyper 1.0 couldn't depend on them. They exist in futures-core, but the proposal to add them to std has the trait changing a fair bit (maybe AsyncIterator, maybe the "keyword generics initiative").

API based on the old Server Push proposal

I do think this is the best option. It's kinda like adding a "pusher" argument, it's just putting it inside the request extensions, and only if enabled. If for completeness sake you wanted to keep the others, I'd put them down in an appendix with a "can't use because X" (though it's also perfectly fine to drop them from the proposal entirely).

hyper::early_hints

I'd suggest a slightly more generic approach, not just Early Hints, but any informational (1xx) response. Could be hyper::informational (or hyper::ext::informational even), or another name that implies those kinds of responses.

Consumes the mutable reference to the request

That should be fine, it's just mutably borrowing the request to "take" the pusher out of the extensions. The request is still owned by the call context.

@seanmonstar I have updated the document with your suggestions. Should we wait for more community feedback or should I potentially start a draft implementation to have some working code to play around with?

@acfoltzer did you want to take a look? This comment has a link to the gist.

Hey folks! Curious if there has been any movement/consensus around @vikanezrimaya proposal?

I am also interested in this. It would be really useful for something like resumable upload protocol: https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-resumable-upload-02

FWIW, I created a rough prototype of 1xx support for HTTP/1 servers: https://github.com/hyperium/hyper/pull/3815


OCPBUGS-21343: [release-4.12] Bump golang.org/x/net to v0.17.0

/retest
Failed cluster creation

docker build -f Dockerfile -t quay.io/operator-framework/rukpak:latest bin/linux
make: docker: Command not found
make: *** [build-container] Error 127
{"component":"entrypoint","error":"wrapped process failed: exit status 2","file":"k8s.io/test-infra/prow/entrypoint/run.go:84","func":"k8s.io/test-infra/prow/entrypoint.Options.internalRun","level":"error","msg":"Error executing test process","severity":"error","time":"2023-10-17T18:05:43Z"}
error: failed to execute wrapped command: exit status 2

That's a new one. Will need to look into this tonight.

@awgreene you can ignore the failure. In the release-4.13 branch, this job "succeeds" because the e2e make target is a no-op.
Will wait for https://github.com/openshift/release/pull/44540 to merge and the configs to be updated so we can run full e2e

Ok, the o/release PR is in 😄

/lgtm

/hold cancel


RabbitMQ service example.

Adds a RabbitMQ service example with readme explaining the basics of how to connect to it.
We've tested this in our local ddev environments and it works fine, though if you need to run multiple ddev sites with this service, you will have to alter the ports so they do not interfere with each-other.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Dion Sune Jensen seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Sorry haven't reviewed yet, very much appreciate the PR, it will get going before too terribly much longer.

Made minor edits, added link in top-level readme. Thanks!


cmd/go: add a way to obtain a package's build ID via list -json

The toolchain computes build IDs of packages from their build input - which I believe includes a package's source code, plus the build IDs of all their dependencies.
This can be seen if one runs go build -x, as compiler invocations contain -buildid $BUILD_ID. Similarly, a package's output file contains such build ID as well, so we can obtain it via these two commands:
$ go list -f {{.Export}} -export os
/home/mvdan/tip/pkg/linux_amd64/os.a
$ go tool buildid $(go list -f {{.Export}} -export os)
WCQPVNh2igTNOQyg4V2a/aDZysAb7fmq4QDTG8hDz

This is rather unfortunate for tools that need to look at thousands of packages at a time, though. One could use the build ID to see if a package hasn't had any changes, and thus avoid extra work. Even if we have thousands of packages, we can load them all at once with one single go list -json call - however, we will need one extra exec call to go tool buildid per package, whose cost can add up quickly.
I propose that we add a new field to go list -json to expose said build ID. For example, BuildID string. It would be fine if populating this field required a flag like -export.
I also realise that build IDs are an internal toolchain detail, which should only matter to compiler and toolchain authors. However, there are plenty of third-party tools out there which are designed to be closely coupled with the toolchain or compiler. For example, tools designed to run via go build -toolexec=mytool can use build IDs to avoid work, or to produce deterministic output based on the input. This is exactly the kind of thing I do for a code obfuscator, only with lots of go tool buildid calls.
I also am not asking for the build ID format to be documented or stabilized. A tool shouldn't interpret the string as more than a hash if it wants to remain compatible with past and future Go versions. Or, if it really wants to parse the hash, it should only do so with very specific versions of the Go tool.
/cc @dominikh

cc @bcmills @matloob

Let's see how invasive the change is, and how clean the workflow ends up (as demonstrated in an integration test).


Swift 2.0

Removed WatchKit support temporarily. A new WatchKit Framework is needed for support Apple Watch.
Syntax for Swift 2.0

Could this be merge, as it has the fix for the _NSURLSessionTaskPriorityDefault bug.

@RuiAAPeres It will be merged to master after Xcode 7 GM released.


[i1] Implement packed_storage layout encoding attribute

make packed_storage as a type of iree_encoding attribute, and make type converters accept it.
i1 tensors with #iree_encoding.packed_storage will be interpreted as packed i1 type, same as specifying --iree-experimental-packed-i1-storage. Other i1 tensors are treated as non-packed datatype, and will be extended.
--iree-experimental-packed-i1-storage are kept for testing purposes.

We can drop this option after frontend enables emitting i1 tensors with attributes.

A small next step is to allow casting from non-attributed tensor to attributed tensor, such as bitcasting: flow.bitcast tensor<?xi1> -> tensor<?xi1, #packed> so that we can completely retire the command line option.

bit casting unpacked i1 <-> packed i1 won't work as they are different storage formats - you could do i8/i16/i32/etc <-> packed i1, though - otherwise you need ext/trunc ops

bit casting unpacked i1 <-> packed i1 won't work as they are different storage formats - you could do i8/i16/i32/etc <-> packed i1, though - otherwise you need ext/trunc ops

@benvanik Sorry I should have said bitcasting only tensor types. Tensor types are virtual.

bit casting unpacked i1 <-> packed i1 won't work as they are different storage formats - you could do i8/i16/i32/etc <-> packed i1, though - otherwise you need ext/trunc ops

On a second thought, I agree with @benvanik that a "bitcast" is actually reinterpretation, we need a simple "cast" in this case, or actual bitcasting such as: "tensor<8xi8> -> tensor<64xi1, #packed>" (notice the bit sizes are the same) which does not alter the underlying storage layout.

There are some changes are not part of the PR. E.g., the changes in EncodingUtils and HALToStream/Patterns. We could easily mis-track what's happening in the PR chain; I can't really follow what is needed and what is not needed in this case. Can you drop such changes from the PR? I think the scope of this PR can be "Introduce packed_storage encoding attribute + Add support for lowering stream.tensor.sizeof with the encoding".
btw, do you have a prototype or a doc to explain how e2e works? I mostly want to prefetch if there is something bad in the design.

The thing is: those parts in EncodingUtils and HALToStream/Patterns make the new attribute support complete. i.e. without those updates in those parts, however small they are, the added attribute wouldn't be handled properly. As you can see changes in those parts are mostly trying to bypass existing checks on encoding attribute. So I feel like this is somewhat the "minimal set" we should have for adding a new attribute.
I can separate those parts and put them into another PR, but I feel that is even more ..... confusing and segregated. But that is only my opinion, please let me know what you think.

As you can see changes in those parts are mostly trying to bypass existing checks on encoding attribute.
I can separate those parts and put them into another PR, but I feel that is even more ..... confusing and segregated. But that is only my opinion, please let me know what you think.

The change of materialization pass is fine. I'm not sure about HAL part, it would be good to add a test.
btw, can those part be landed with an e2e test? Does it sound better?

The change of materialization pass is fine. I'm not sure about HAL part, it would be good to add a test.
btw, can those part be landed with an e2e test? Does it sound better?

I am actually working on that. To enable e2e tests for it I had to build a constant packed tensor (or bitcast from another tensor). I am half way through it so perhaps I can add those parts into this PR (but that will make things more complicated).

I am actually working on that. To enable e2e tests for it I had to build a constant packed tensor (or bitcast from another tensor). I am half way through it so perhaps I can add those parts into this PR (but that will make things more complicated).

I see your point, thanks! My concern was about the change in HALToStream/Patterns.cpp because I'm not familiar with that part. As Ben said, please add a comment to explain why. So the newbie like me can understand it better. The PR looks okay to me, please address Ben's comments.


fix(orchestrator): fix color of status dot icon in workflow viewer and table

FLPATH-1717
root caused to overview API returning status in sonata format, all capital, instead of v2 format, title case
includes update of orchestrator-common package version in orchestrator-backend dist-dynamic

/lgtm


message_filters python API

Why doesn't the python API show in message_filters? It seems to have code in init.py

We have the error:
WARNING: autodoc: failed to import module 'message_filters'; the following exception was raised:
No module named 'message_filters'

This package shows in rosdoc2.yaml:
python_source: 'message_filters'

But it has no python nor that directory. Maybe I should not show python if such is the case?

I also see:
2024-08-22 11:12:39,494 [rosdoc2] [WARNING] python_source specified as message_filters is not a directory

That is an error in rosdoc2.yaml, should be src/message_filters. I will fix this in docs_ex.yaml on my builds.


Drop support for CUDA 10.1 or earlier

Closes #5717.
Blocked by https://github.com/chainer/chainer-test/pull/687

pfnCI, test this please.

Added CUDA 10.2 variant: https://ci.preferred.jp/cupy.win.cuda102/79404/
Please ignore pfn-public-ci/cupy.experimental.win.cuda100 test failure.

Jenkins CI test (for commit 0fa7c608d4a9897500fb9aa5aa6be69c3ff1fdf7, target branch master) failed with status FAILURE.

CUDA 10.2 for Windows test: https://ci.preferred.jp/cupy.win.cuda102/79678/

pfnCI, test this please.

ah, automerge wont work lol

Jenkins CI test (for commit 031c80dd1ff563d415e06def5d172e8ece0cefb9, target branch master) failed with status FAILURE.

Blocked by #5801 ?

I think it's ok to proceed to merge, I'll rerun failing test after all PRs are merged.


setTimeout fails when called without delay

The reason for the error is, that the example uses jquery which calls: "setTimeout(jQuery.ready)" without a second parameter which is accepted by the browsers. On the client we just receive undefined and log an error.

We should support the HTML5 timer API, as described by the W3C:
http://www.w3.org/TR/2011/WD-html5-20110525/timers.html
This includes making the delay optional (defaults to 0), supporting additional argumetns to pass to the callback, and some details regarding the handling of invalid/unsupported parameters.


OCPBUGS-17157: *: filter informers when preconditions are met

*: filter informers when preconditions are met
When we can detect at startup time that all of the objects we're about
to look at have the labels we're expecting, we can filter our informer
factories upfront.
Signed-off-by: Steve Kuznetsov<EMAIL_ADDRESS>
depends on #3020

/retest

I can't get any of the fail-forward e2e tests to fail locally :|


Add KEP template update/verify tool

What type of PR is this?
/kind cleanup

What this PR does / why we need it
Which issue(s) this PR fixes

Fixes #
Special notes for your reviewer
Also update with the latest KEP template.
Does this PR introduce a user-facing change?

None

/lgtm
/approve