Improve docker image

We have to review the Dockerfile and improve the size of each layers. Some examples of things to improve are:

Remove dumb-init
Remove the addition and elimination of openssl package
Remove test on Dockerfile

We would like to build the verdaccio-gitlab image using as base the verdaccio one, but it will need some refactorings.
We experienced issues when deploying the image to openshift, since in there our admins have setup a policy of not allowing by default to run the container as root (pretty common setup), and openshift on top forces to run as a user with a random uid for security reasons. The openshift guidelines recommend to:

setup a normal user to run under, that works on any environment, more or less what is being done right now
setup permissions for the root group equal to the user permissions on the directories belonging the the app. When running in openshift, the container runs as a random, previously non-existing user that has no groups, and gets assigned the root group. The root group gets by default no special permissions.

You can see that the official postgres images are taking a similar approach to make the image runnable on any environment:
https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh
With these changes, we would be able to base our image on verdaccio's and add the plugin to the APPDIR. Otherwise, when running in openshift, the verdaccio user does not have write access to the APPDIR.
I'm currently experimenting in my own branch under:
https://github.com/dlouzan/verdaccio-gitlab/tree/refactor-docker-random-guid
/cc @bufferoverflow @ercanucan

Another option (not exclusive to this) is to be able to pass a location for the plugins directory and then set that up on the helm chart configuration as volume.
But for users I think it's easier if we can provide images including the appropriate plugins, instead of having to put their plugins on external volumes.

Regarding dumb-init, I think we still need to ensure that an appropriate init system is used. Per node's official documentation, node's handling of kernel signals is far from perfect.
The issue with the native support with docker's --init option (which is based on tini), is that this is only enforced when using the docker cli. I haven't found a way to enforce that on k8s/openshift, so might be in the situation that users are responsible for starting with the right flags when using docker directly, and no way to pass that information when run in k8s. I think a lose/lose situation. Just enforce it on the image itself like it is done now, the init wrapper has no downsides.
We could migrate to tini if you see a clear advantage, but otherwise, I'd stay with dumb-init. One could argue that the native support in docker is based on tini, so we should use it explicitly.

Another option (not exclusive to this) is to be able to pass a location for the plugins directory and then set that up on the helm chart configuration as volume.

I think we are doing that already https://github.com/verdaccio/docker-examples/blob/master/docker-plugin-external/docker-compose.yml or you meant something different?

I had seen a couple of days ago that there was a PR ongoing for that option, but I didn't know it was already merged :-D

Soooo, I think I have a pretty good state right now with the Dockerfile refactoring. I worked at the same time on the verdaccio and verdaccio-gitlab repos, and tested this on my local env and an openshift cluster.
Summary of design / changes:

The build is broken into a multistage setup, with a builder image and a final image in which we copy the generated artifacts. This reduces the size of the image from ~500 MB to ~125 MB (the sizes as reported by the docker hub are wrong)
dumb-init is kept for the reasons outlined above in my comments
Following the same approach as the helm chart, the only volume exposed is the storage, under a /verdaccio/storage/data subdir in the default config, that allows to separate that from data written by other plugins (e.g. htpasswd)
The code is written to /opt/verdaccio; the verdaccio run user cannot modify the compiled resources nor config, only the /verdaccio/storage volume
Follow the recommended OpenShift approach for making a non-user image runnable on vanilla k8s & openshift:

force a specific uid 10001 for the run user, assign the root group to the locations that need to be written by the run user; if running in a normal environment, the specific id is used and permissions are correct; if running on a randomized uid environment like openshift, the non-existent user gets assigned the root group and allowed write access to relevant locations
add an entrypoint that will add the user to /etc/passwd in case the user is running as a random uid (openshift). That way, the typical tools like whoami and so can still work. postgres takes a similar approach using nss_wrapper

I'm not sure about this involving breaking changes (maybe the uid of the user), but I tried to follow the same approach as in the helm chart. I also applied similar ideas as contained on https://github.com/verdaccio/verdaccio/pull/845
You guys please let me know how to proceed, should I open a PR for review, do you want to take a look at the source branches...?
The work is here:
https://github.com/dlouzan/verdaccio/tree/refactor/dockerfile-random-uid-support
https://github.com/dlouzan/verdaccio-gitlab/tree/refactor-docker-random-guid
/cc @ercanucan @bufferoverflow

I forgot to mention: in the other image verdaccio-gitlab created based on this, I'm using the same approach: multistage build with a compile of the sources, then use an image based on verdaccio to copy the artifacts.
The data is stored in /opt/verdaccio-gitlab, and then the plugin is loaded by using the new support for referencing a plugins directory by symlinking /opt/verdaccio-gitlab under /verdaccio/plugins/verdaccio-gitlab.

@dlouzan amazing 💯 ... I'll wait for others feedback. But I like the approach by far.

@dlouzan awesome! Could you create pull requests, so we can discuss within the code?

Created #864

It's actually bigger than that, but so were the previous images. In my computer docker says:
verdaccio/verdaccio          4.x-next        fb5088c9507f        15 hours ago        125MB
verdaccio/verdaccio          3.5.1           bedb9a1f76f3        8 days ago          686MB

I was using Kinetics and I just noticed I cannot modify the other volumes from here and reading the Dockfile ...
VOLUME /verdaccio/storage

I wonder, what's happen with /verdaccio/plugins /verdaccio/conf then? how could overwrite it from such UI tool?

Hello Juan, the idea is that the storage directory is loaded as a named volume, which guarantees write rights plus persistency between restarts. The other two directories are mounted as read-only to user verdaccio on startup, since it's not the idea that you modify them at runtime (why would we?).
I'm not familiar with kinematic, but the idea would be the same as done in kubernetes / helm: in order to modify the configuration, you mount on startup a file or directory with the appropriate configuration, and you either overwrite exactly those paths, or you can even modify the startup command to point to e.g. another configuration file. You don't need a volume, but with volumes it will also work.
I can only imagine that kinematic provides a similar functionality, the capability has existed in docker for a long time.

Thanks @dlouzan for the wide explanation 😃

I'll be working on the improved documentation next week

As a reminder, the doc was moved here => https://github.com/verdaccio/website

I running https://github.com/replicatedhq/dockerfilelint on the 4.x image and I'm getting the following. I'd love your opinion @sergiohgz @dlouzan
Digest: sha256:45951c9f51720b6fcc13258197c3fe74ef782dbe9a9021bccd4a4b8e52728945
Status: Downloaded newer image for replicated/dockerfilelint:latest

File:   Dockerfile
Issues: 2

Line 6: RUN apk --no-cache add openssl ca-certificates wget && \
Issue  Category      Title                 Description
    1  Optimization  Consider `--no-cache  Consider using a `--no-cache` (supported in alpine linux >= 3.3) or
                     or --update with rm   `--update` followed by the command `rm -rf /var/cache/apk/*` when
                     -rf                   `apk` adding packages.  This will result in a smaller image size.
                     /var/cache/apk/*`     For
                                           more information, see [this
                                           link](https://github.com/gliderlabs/docker-alpine/blob/master/docs/
                                           usage.md)

Line 53: EXPOSE $VERDACCIO_PORT
Issue  Category      Title                 Description
    2  Possible Bug  Invalid Port Exposed  Exposing ports should only be valid port numbers.

### FAILED Docker Lint 19:12:03Z (26.435s)

The issue in line 6 can be done, no harm at all, will make the image smaller which is always a good thing.
The one on line 53 is a bit weird, seems the linter cannot resolve references to env variables defined earlier and thus thinks that the port is incorrect (there's in fact an open issue for it https://github.com/replicatedhq/dockerfilelint/issues/86).

@dlouzan when you have time perhaps you can check whether this Docker migration guide is good enough or we should add something else
https://verdaccio.org/blog/2019/02/24/migrating-verdaccio#migrating-from-verdaccio-3x-to-verdaccio-4x

@juanpicado For the moment looks good :-) I would suggest, as we approach v4 release, maybe when you plan to start beta testing, I'd like to perform some migration tests on my end, manually setting up an v3 server and doing the migration to v4, to make sure nothing is left out. In particular, I'd like to test if the existing storage vs docker volumes shows no issues.
Just ping me when we are close and I'd take care of it.

@dlouzan thanks for checking this out :-) I'll merge 4.x today, so, next step is launch beta on 15th April.   That day we will start beta testing and nothing will be added for 1 month until 15th May final release. Let me know if you find something 👍
The tag 4.x-next will remains the same, no changes.

Ok, I'll make a note and try to perform the tests (ideally also automate them somehow in code) before April 15th.

@bufferoverflow FYI, verdaccio 4 beta starts on April 15th

btw, 15th April, is Verdaccio birthday 🍰 🎉  ...


Model Loading (and other suggestions)

Moving the biglama model out of the cache and putting it into a model folder would help for people training their models for different targets(looking into this myself), as well as a way to pause and apply multiple strokes would be helpful.
Something like mask filling/loading and U^2 net salient object masking would be more for a gimp-ml tool but could speed up and make the tool easier to use.

[x] Use LAMA_MODEL to set a torchscript lama model.  convert script: https://github.com/Sanster/lama/blob/add_torchscript_convert_script/bin/to_jit.py
[x] Multi stroke support. Press and hold the cmd/ctrl key to enable multi stroke mode.


cattle: no need to reserve macPrefix for non-managed networks

select * from network;
|  1 | Docker Host Network Mode      |          5 | dockerHost      | 98485f0f-3305-4c3f-b5a9-2541bfe0929c | NULL        | active | 2017-08-23 23:31:36 | NULL    | NULL        | {"fields":{"macPrefix":"02:83:a2"}}                                                                                |           | NULL   |              NULL |
|  2 | Docker None Network Mode      |          5 | dockerNone      | aa049a92-bf91-41b0-ac4d-5c68d48e4d52 | NULL        | active | 2017-08-23 23:31:36 | NULL    | NULL        | {"fields":{"macPrefix":"02:95:b5"}}                                                                                |           | NULL   |              NULL |
|  3 | Docker Container Network Mode |          5 | dockerContainer | 36a05c86-6bc0-4fa3-8e75-e0937d17c978 | NULL        | active | 2017-08-23 23:31:36 | NULL    | NULL        | {"fields":{"macPrefix":"02:87:86"}}                                                                                |           | NULL   |              NULL |
|  4 | Docker Bridge Network Mode    |          5 | dockerBridge    | 4d9e2cb3-2ed9-4693-b5cf-5f07dcc58372 | NULL        | active | 2017-08-23 23:31:36 | NULL    | NULL        | {"fields":{"macPrefix":"02:29:d6"}}

Having no MAC address assigned to a --net=host container wouldn't have caused problems here: https://github.com/rancher/rancher/issues/9678#issuecomment-322538478


Feature request: Add deploy to Heroku button to Readme

It seems like it would be nice for README.md to have a "Deploy to Heroku" button, like this project over here: https://github.com/stripe/pagerbot. We'd (PagerDuty) be happy to add a small bounty on BountySource if anyone else would like to see this added. :)

@dalexj I believe there is a $100 bounty waiting for you... :)

oh yeah. thanks!


added json database

Hello owner (ranbose),
Please review and merge
ranabasu (collab)

Merges newbranch @ranbose


ci: coverall lcov

Pull Request
PR Type

[ ] 🐛 Bug Fix
[ ] ✨ Feature
[ ] 🚀 Performance Optimization
[ ] ♻ Refactoring
[ ] 📚 Documentation Update
[ ] 🔧 Configuration Change
[ ] 🧪 Test Addition/Update
[x] 🔨 CI/CD Change
[ ] Other (please describe):

Description
Fixed coverage output file extension
Related Issues

fixes #34

Testing
Added/Updated Tests

[ ] Yes
[x] No, and here's why:
[ ] I need help writing tests

How Has This Been Tested?

Manually deployed locally. See here
Test Configuration
N/A
Checklist

[x] I have read the contributors guidelines and code of conduct
[x] I have updated the documentation accordingly
[x] I have added/updated tests as appropriate
[x] I have updated the related issue(s) with new insights and changes
[x] I have used a conventional commit type in my PR title
[x] I have run pre-commit hooks and fixed any issues

Additional Notes

coverage: 22.955% (-73.0%) from 95.956%
when pulling 60a4a8cb3245454ea2b8b361a76ae50081583a2c on coverall-lcov
into 6c62f15501011e0d9b7876d4fe60d670aa4069cd on main.


Handle potentially dangerous changes to relations

Problem
Relations are depending on their members and changes that are made to them can cause serious problems. Typical change-operations are deleting, splitting or merging ways. There are a lot of reports and complains about iD in that context. There is a thread in the german forum where relation problems/broken relations are collected that have been created by iD (one example: borders of Vietnam collapsed after a deletion of way). Of course every OSM editor has the potential to break things, but the user should at least be warned, that he's doing something malicious. Of course editing a existing relation does not mean by default you're breaking anything, but there are indicators, that can be used to detect this case (e.g. removed outer member and didn't add a new one etc).
Suggestion
I know big dialog boxes for confirming editing or modals are not welcome. So I'm suggesting two things:
1. show a small nearly transparent bar or tooltip close to the right buttom corner that gives information why this change might be critical e.g. "This way is part of relation 1234. Deleting it could cause trouble | Undo"
So the user will get at least a ordinary hint that this change would break something. It might be important to show it immediately (not only on saving process) because the user know what change affected this and it might be easy to repair/undo as if there were plenty of merging operations s.o.
I was thinking of something like an toast view on Android:

It should be designed unflashy and should be easy to get rid of this message (clicking somewehere)
2. integrate relation errors to the warnings in the save dialog.
There is already a warning dialog on the save process: (here way without any tags)

I would like to see short but meaningful errors regarding errors - e.g. "Broken Multipolygon missing outer"
Discussion
I would like to discuss the current state and potential improvements to warn about errors affecting relations.

Okay, close related to #1461 and  #2014

Thanks for this, I'm closing this one as it's a duplicate of #1461
I agree, it's a high priority issue...

Just as a comment:
A UI element like the proposed transparent bar/Tooltip/Toast (however you may call it), might be useful to indicate that you haven't saved your changes for a long time - like mentioned in  #2378
Potlatch2 editor is making this based on time ("30min since your last save. Please save regulary" or something). Imho a warning based on number of changes in combination of time would  be perfect.
Thanks for attention!


Remove flag command syntax

Since the API in invoked from Slack slash commands, it doesn't feel natural to type in flags. Since there are only two customisation options at the moment (indent and tag) switch from a flag syntax -i 4 -t request [JSON] to a more type friendly syntax 4 request [JSON]. The customisation options can be identified by their types (number and string).

Done 👍


Have a dedicated testing instance to speed up pull requests

instead of creating a new cluster for each pull request, have a dedicated testing instance.
besides the testing instance, run nightly builds with the already existing testing script

travis build now distinguishes between pull requests and (nightly) builds on master.

for master builds a dedicated, new GKE instance is created and a set of tests is performed.
for PR status checks a smaller testing cluster that is up and running is used. the cluster has Istio installed, but keptn with knative is part of the installation for each PR. again a set of tests (right now very limited) is perfomed.


scheduler statefulset doesn't have related headless service

Bug report:
I got error “lookup dragonfly-scheduler-0.scheduler.dragonfly-system.svc.cluster.local on xxxx:53: no such host” in  daemonset
path /var/log/core.log.
but there is no headless service of the scheduler statefulset. Do i using or config dragonfly the wrong way ?
do i need to create headless service myself ?
Expected behavior:

How to reproduce it:

Environment:

Dragonfly version:
OS:
Kernel (e.g. uname -a):
Others:

thank you, pod ip was checked first and context exceed because my mistake.


Cranelift: unable to generate debug info with Unexpected Attribute: Block(123, 0, ...)

We have a wasm module that's been compiled with Rustc on Windows, and enabling debug information generation when running it in wasmtime causes the following error:
failed to emit DWARF debug information -> Unexpected attribute: Block(EndianSlice { slice: [123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], endian: LittleEndian })

I don't know much about DWARF in general, but a quick search in the DWARF 5 specification says 123 == 0x7b is the binary encoding of the DW_AT_call_all_source_calls attribute, which documentation says that:
The DW_AT_call_all_source_calls attribute indicates that every call that occurs in
the code for the subprogram, including every call inlined into it, is described by
either a DW_TAG_call_site entry or a DW_TAG_inlined_subroutine entry;
further, any call that is optimized out is nonetheless also described using a
DW_TAG_call_site entry that has neither a DW_AT_call_pc nor
DW_AT_call_return_pc attribute.
The DW_AT_call_all_source_calls attribute is intended for debugging information
format consumers that analyze call graphs.

If the the DW_AT_call_all_source_calls attribute is present then the
DW_AT_call_all_calls and DW_AT_call_all_tail_calls attributes are also
implicitly present.

(The fact that gimli parses the data as a Block suggests something goes wrong before it even recognizes this is an attribute, but I can't tell for sure.)
I can't reproduce the issue when compiling from the same commit, with the same version of Rustc, on Linux, so I suspect there is some platform-specific DWARF encoding in there.
cc @fitzgen @yurydelendik in case you have any ideas, or hints towards how I could help debug this further.

According to the source it should be parsed as flag: https://github.com/gimli-rs/gimli/blob/ef97809efe9adeda039c5f5397480522d25cebaa/src/read/unit.rs#L1675-L1677

I don't have any particular insight here, sorry.
What does dwarfdump say about it?

What does dwarfdump say about it?

Ah thanks, didn't know this tool. It does generate a 200 MB file for this particular wasm module. Is there something in particular I should look for?

I guess I was curious whether it parsed okay with dwarfdump. Can you see the relevant attribute in the output?
There is also a dwarfdump clone in the gimli repo. You could try running that (if it supports Wasm files, it might not) on this file as well and if the gimli version fails to parse the DWARF but the binutils version doesn't, then that's a strong hint that this is a bug in gimli.
But yeah, this is pretty hard to debug without being able to create a smaller test case. You could try running wasm-tools shrink on it (from https://github.com/bytecodealliance/wasm-tools) but it will just shrink the Wasm bits and not the DWARF bits because we haven't added mutators for custom sections yet.

Don't think we have seen this for a while, so closing.


Demo window bugfix

change the first line of Demo Window.lua from
local ImGui = require(game.ReplicatedStorage.ImGui)

to
if getgenv then
  ImGui = loadstring(game:HttpGet('https://github.com/depthso/Roblox-ImGUI/raw/main/ImGui.lua'))()
else
  ImGui = require(game.ReplicatedStorage.ImGui)
end

RunService's IsStudio would be preferred, but thank you for your suggestion 👍


Entity polyline blinks on position update

In my example above, on position update, the polylines will be updated with some delay (I have more than 1000 entities). I tried to reproduce it on a Sandcastle with one entity and the result is similar. The polyline blinks on update.

Sandcastle example: https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/#c=pVVLb9s4EP4rhC+xYYWSnPoQxTF2kQRtgQIbIMHuIeqBkcY2EYoUSMq2Wvi/71Bvx3WzwOoizuObN4dbpsmWww40uSUSduQODC8y+nfFG18kFXmnpGVcgr6Y3MRyi5hcGW65kgZhL7Ek+P0USkYk9IhgNiKfgoN3xKe9hIYnsvlAOH8vnfXC2YlsgJzND7H83kTIMbKgOZvt+p5Zdg+JYBpQEI9SpCOesTX4KJ3uM+HFo5vadvc12DuuE+FgF4ukPib723gUBvGIJGV70niY499Yrd4AiRKEULuOc7njqd0g/wpZKy4EHqWSgJS/JBdnfD9qWPF95RspsgVtsOzOJw0RiXFLg9TG2jzy/d1uR3dXVOm1PwuCwKXWKkV7weXbL1XD6+trvxI7ZVRx6ZTNv416FuR7JDfA1xvb02g7MjlLXMK5BgN6ixktz6XzVKzqdOLRwkW3PFv0J6u5XKNmX4TpoBnT3toZAw/Sclt+dS2urQxHYNq7QDhOSTXvNGEZaEZXonxW45/HdlMwlkvmpj5qr8kd0xZPTF7RlVbZPaw1gBkHHo6jR+aB+ya9mcOkdoYBWs2SN4yrcQwuWA6GsjRtHbd37CNv3V18Cb5TvBYeOeYwO2kuzStO3atiOiXRu+Sqm0Cid3XzeiWTMAF4ywbJeG2YosTZQeFgfzw2zM+a5RuemGExu+g+SOxPrVk5XoNtjT22wKOUJ5NBmNW0EreGel7GLGjOBOn9KaE0/efL1+eHWu2ATWqaE0sD9plnoAo7XhUycX7GE9IkUOS4OQaRONDBI1eu0RW+hZBzgXemNNhCS/LiCtL1zbXLazk4pmHHdQRx2+1w5OYkoNZ8NWG0rRSO2n+doumUn8wRr+fo5th0nR0dPgb/v6McO9r44Ssyxj1+e9tHQgXINbb4koRdppUq+r4MG9yh/v22keeaWY9219DDyBstjC0FLGvZHzzLlbak0GJMqW8hy7EyYPzXInkDSxNjHA63WwNapHxLeIr78d1j6l4PwYxb36tCiCf+w23OhY/6RzChWIp76i/c/YKVTmUTLr/VTErpwkfyFGWVEq9MDyz+Cw
Browser: Chrome, Firefox, Chromium
Operating System: Windows, Linux

This blinking is actually a feature, not a bug! Entities by default are considered static, and will update asynchronously. You can mark an entity as dynamic by using callback properties. This is a good example on that:
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Drawing on Terrain.html
Notice that it updates immediately while you draw, then it will disappear for a second once you finish drawing (pressing right click) because it switches from dynamic to static.
This forum post goes into a bit more detail about how the sync/async nature of primitives/entities in Cesium works: https://groups.google.com/d/msg/cesium-dev/5N1P_qPmbPo/rbnHNKFoAQAJ

Congratulations on closing the issue! I found these Cesium forum links in the comments above:
https://groups.google.com/d/msg/cesium-dev/5N1P_qPmbPo/rbnHNKFoAQAJ
If this issue affects any of these threads, please post a comment like the following:

The issue at https://github.com/AnalyticalGraphicsInc/cesium/issues/7782 has just been closed and may resolve your issue. Look for the change in the next stable release of Cesium or get it now in the master branch on GitHub https://github.com/AnalyticalGraphicsInc/cesium.

Thank you for your reply, I now understand how drawing lines with callback works. But my issue is a bit different:

How could I move entities if they are by default are considered static?
In my example, circle and line belong to the same entity (I do not have a line collection, I use Entity.Polyline). Are they rendered seperately?

@ihsanergun

How could I move entities if they are by default are considered static?

Callback properties can apply to any property. So you can have a position be a callback property so it can move. Here's a Sandcastle on it:
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Callback Property.html
This one shows you how to get a vehicle entity to move with a callback property, as well as get the wheels to turn:
https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Time Dynamic Wheels.html

In my example, circle and line belong to the same entity (I do not have a line collection, I use Entity.Polyline). Are they rendered seperately?

Can you elaborate a bit on this question? An entity can have several different shapes attached to it, which is a convenience of the Entity layer but I think in general at the low-level primitive layer it's the same as having creating those shapes separately.

but I think in general at the low-level primitive layer it's the same as having creating those shapes separately

This answers my question. Thank you.
But in my Sandcastle example, I have a circle(as image) and line. None of them has any callback property. So why the circle does not blink but line? Because it is an image?

But in my Sandcastle example, I have a circle(as image) and line. None of them has any callback property. So why the circle does not blink but line? Because it is an image?

My best guess is that this is because not all entity types have asynchronous code paths. A lot of geometry construction is moved to web workers, but an image may just be fast enough on the main thread so it updates in a single frame even though it is marked as static.
If you're interested in delving deeper into this I definitely recommend reading the forum discussion I linked to here https://github.com/AnalyticalGraphicsInc/cesium/issues/7782#issuecomment-487066321. It's an area where there's a lot of improvements that can be made (at the very least the community is missing a good tutorial on all this).


Protected instances

If someone wanted to host their own instance but want it totally private, they could require a password to be able to play.

I've changed my mind here. If someone wants to block their instance from being used by the public, they should just do it in their reverse proxy.


Script cleanup and add a logger library

Centralize some functions and load them. Functions are copied all over. Add some logging and report of the generation.

Obsolete.


Update tags and add screenshots for Editcase

Tag the sections for PPP

Pull Request Test Coverage Report for Build 428

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

Totals

Change from base Build 427:
0.0%

Covered Lines:
2689

Relevant Lines:
3248

💛  - Coveralls


added CatchMeIfYouCan

As a hacktoberfest contribution according to your format @thinkswell
Thank You :)

Hii @ammy20019, You did a great job, but It will be more good if you give a screenshot or link of your working project.
Thank You :)


Alacritty deprecated YAML format for TOML

Fixes #204

Hi @MadJlzz , I'm sorry for the delay. Also, we never must change any file in the packages folder manually, we always should make changes in the src/ports folder, then you can rebuild the alacritty port by running:
yarn build only alacritty

please, read the docs to make it properly and also adding yourself as a contributor in the port readme

Sure thing @daltonmenezes ; I will check that today or this weekend

@daltonmenezes done!  Should I rebase or is that okay for you?

It`s okay, thank you so much @MadJlzz 💜


Make BindgenOptions pub(crate)

Fixes https://github.com/rust-lang-nursery/rust-bindgen/issues/958
r? @fitzgen

Thanks for the pull request, and welcome! The Servo team is excited to review your changes, and you should hear from @fitzgen (or someone else) soon.

Looks great, thanks @pepyakin!
@bors-servo r+

:pushpin: Commit e8e6f37 has been approved by fitzgen

:hourglass: Testing commit e8e6f379e50751e7a43168869fa30aef24b60565 with merge da942c43323058024a84af283f2f3de9c596b975...

:sunny: Test successful - status-travis
Approved by: fitzgen
Pushing da942c43323058024a84af283f2f3de9c596b975 to master...


Add cell IDs

Once finished could fix https://github.com/executablebooks/MyST-NB/issues/310
This an draft to demonstrate changes which may be beneficial upstream.
This PR depends on update of myst-parser to 1.0 as it uses new _heading_slugs (depends on https://github.com/executablebooks/MyST-NB/pull/479).

Some tests are failing because random cell id is automatically added when reading a notebook in myst or other text-based formats. The parsers need to be modified to avoid adding cell ids in such case.


range link is commented out

All or most of the stove-top range links and joints are commented out in this .urdf file.

Are you referring to `models/Oven/01909/mobility.urdf? If you want the original URDFs, they are modified from the PartNet-Mobility dataset of articulated objects. I kept multiple versions of the joints in the urdf for testing.


ids4 configured to use external Login page and hosted in an application within iis produces duplicated path in the returnUrl

When using a custom external Login url (options.UserInteraction.LoginUrl) the returnUrl querystring parameter that is passed by identityserver to the Login page contains duplicated base path if identityserver runs in an application within IIS (eg: DefaultWebsite\App).
Looking at the source code, it appears that the duplication comes from setting the HttpContext.Request.PathBase to both, IdentityServerBaseUrl and returnUrl:
(snippet from IdentityServer4.Endpoints.Results.LoginPageResult)
        public Task ExecuteAsync(HttpContext context)
        {
            Init(context);

            var returnUrl = context.Request.PathBase.ToString().EnsureTrailingSlash() + Constants.ProtocolRoutePaths.AuthorizeAfterLogin;
            returnUrl = returnUrl.AddQueryString(_request.Raw.ToQueryString());

            var loginUrl = _options.UserInteraction.LoginUrl;
            if (!loginUrl.IsLocalUrl())
            {
                // this converts the relative redirect path to an absolute one if we're
                // redirecting to a different server
                returnUrl = context.GetIdentityServerBaseUrl().EnsureTrailingSlash() + returnUrl.RemoveLeadingSlash();
            }

            var url = loginUrl.AddQueryString(_options.UserInteraction.LoginReturnUrlParameter, returnUrl);
            context.Response.RedirectToAbsoluteUrl(url);

            return Task.FromResult(0);
        }

Notice in the above snippet that, when initialised, the returnUrl is prepended with the PathBase, and then, after the IsLocalUrl check is made (which is false in my case), it is again prepended with the GetIdentityServerBaseUrl which contains the PathBase and results in the duplication.
I think the GetIdentityServerBaseUrl call should be replaced with GetIdentityServerOrigin.
Thanks,
Radu

fixed, thanks for the report.

I have a similar issue here and my doubt is why the OidcReturnUrlParser accepts only local urls in the verification? Is something related to the oidc specification? Today I'm registering my custom parser to bypass this issue.

@brockallen ?

Correct, as of now it looks like it only allows local URLs: https://github.com/IdentityServer/IdentityServer4/blob/dev/src/IdentityServer4/Services/OidcReturnUrlParser.cs#L51
Originally we deliberately only allowed local, as we planned on providing more formal support for external login pages. Perhaps we don't need formal support, and just want to remove the local restriction for now? I think we need a new issue to explore this.


2254 discriminator + deserialize does not appropriately create objects when used with arrays

Information

Type
Breaking change

fix
No

Closes: #2254
Todos

[x] Tests
[x] Coverage

thank you so much!

:tada: This PR is included in version 7.14.1 :tada:
The release is available on:

v7.14.1
GitHub release

Your semantic-release bot :package::rocket:


[DDIDS-1167] Fix input background color

DDIDS-1167
Changes

AC on the ticket requires to set the background color on the input element but doing so causes some amount of the background color bleeding out of the container. The PR now sets the background color on the goa-input container.
With this approach, the base level line-height seems to be breaking the input styles when leading and trailing content are present. The PR also overrides this line-height style on goa-input

Screenshots

:tada: This PR is included in version 4.0.0-alpha.104 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.144 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0-alpha.12 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.21 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Non-generic SerializeAsync does not take type into account and throws MemoryPackSerializationException

The non-generic SerializeAsync-method does not seem to be using the Type passed into it and throws MemoryPackSerializationException since it seems to be trying to serialize a System.Object even though it is not.
Here is a small example that demonstrates this error:
using MemoryPack;

using var ms = new MemoryStream();

// Generic version works
await MemoryPackSerializer.SerializeAsync(ms, new Item());

// Non generic version throws MemoryPackSerializationException: System.Object is not registered in this provider.
await MemoryPackSerializer.SerializeAsync(typeof(Item), ms, new Item());

[MemoryPackable]
public partial record Item
{
	public string Value { get; init; } = Guid.NewGuid().ToString();
}

Thanks for the issue report. Yes indeed, the type is ignored and value is passed to the generic Serialize method, so it becomes Serialize<object>(...)

I see, that would make it harder to use MemoryPack when generics are not available, for instance in my cache layer and even message bus. I suppose I could call the generic method using reflection, it's slower but should work... not sure how trimming/AOT friendly that would be though.

Thanks!
It is simply bug, I'll fix soon(I should write this method's unit test)


With Rider, when multiple tests fail, only two windows are shown (sequentially) and other tests permanently fail until IDE restart

Minimal repro solution: TestProject.zip

Open a single instance of Rider with the repro solution (do not open other solutions in other windows, to minimize confounders)
Run all tests
One diff window opens. Accept the changes and close.
Another diff window opens. Accept the changes and close.
Bug: Observe that no other diff windows open.
Re-run all the tests
Bug: Observe that two of the tests fail, but no diff windows open.
Close Rider
Bug: Observe that Rider immediately restarts, with the splash screen, and then a diff window shows. Accept the changes and close. It is possible this then repeats for the last "pending" diff window.

Using Rider 2024.1.2.

can u try setting solution opening to "new window"

if that doesnt work, i think u need to rais it with the jetbrains peeps.

Are you sure "Reopen projects on startup" is relevant here? That is only the last bug here. Step 5 and 7 do not have anything to do with the IDE restarting.

for me step 3 does not repro

One diff window opens. Accept the changes and close.

when i run all tests, all diff open.

Are you sure "Reopen projects on startup" is relevant here

no. i am guessing
given i cant repro, i will need you to debug into it to work out what is wrong

or, alternatively, pick a different diff tool. My preference is Beyond Compare

also, a long shot, but i did fix a on process launching in 15.4.4. can u try that version?

also, a long shot, but i did fix a on process launching in 15.4.4. can u try that version?

Not sure how. I use this through the Verify support plugin. So I guess that needs to be updated? Currently on version 2024.1.2 of that plugin, and I don't see an option of updating.

I use this through the Verify Support plugin.

the launching of diffs during a test run is not handled by the plugin. you can get diffengine 15.4.4 by updating to Verify.Xunit 25.0.4

Thank you for the clarification. I tried updating, but there was no change in behavior. I also see that the setting "New window" was already selected.

given DiffEngine is just calling the rider command line i dont think there is much more i can do hear. I suggest you raise it with JetBrains

perhaps @khalidabuhakmeh or @matkoch can help us

Let me bubble this up to the right folks.

This seems to have been fixed in Rider 2024.2 (at least 2024.2.1). Thanks a lot! 😁


Update docs on securing clusters.

renamed & relocated security doc
added instructions on redirecting HTTP to HTTPS with adminrouter
added note about open ports on public agents with CF templates

lgtm. We'll make this automatic in 1.9, but good to document this process until then.

👍


Bumps clj-yaml to newest version to remedy CVE

Snakeyaml had a CVE that they fixed, clj-yaml pulled it in with this newest release.
https://nvd.nist.gov/vuln/detail/CVE-2022-25857

Merged in version 1.28.6


Enhance EPS statistics to include tags for pipeline and feed

See NodeStatusServiceUtil lines 173 & 174
Make the record count service partition the EPS counts by feed and pipeline so that we can record this additional information

It would be good if the duration of a process was recorded  as well as the record counts as this would allow tracking of which pipelines are hogging processor time.


Making student anvil guide borrowable

This PR separates the student guide to RStudio on AnVIL and Galaxy on AnVIL into two separate Rmds, as this will allow for greater flexibility and customization when creating bookdowns for the individual modules.

@avahoffman do you remember how you solved the spelling issue in the first place?

@ehumph this should help!
https://github.com/jhudsl/ottr-reports/pull/27


client_test.go should not require gcloud application default credentials

Cloned knative/pkg.
Ran go test ./...
All tests pass except pkg/test/gke/client_test.go
Ran gcloud auth application-default login
Now all tests pass.
I don't believe unit tests should require 3rd-party software to be configured.
Or if they do, this should be documented in this repo somehow.

cc @adrcunha as he appears to be creator of the file

This was created by @chaodaiG . Seems like a simple fix; we never had any issues with that because credentials are already setup in a Prow job.

From #957:

I'm guessing this uses x.oauth2.google.FindDefaultCredentials, which says:
It looks for credentials in the following places, preferring the first location found:

A JSON file whose path is specified by the
GOOGLE_APPLICATION_CREDENTIALS environment variable.
A JSON file in a location known to the gcloud command-line tool.
On Windows, this is %APPDATA%/gcloud/application_default_credentials.json.
On other systems, $HOME/.config/gcloud/application_default_credentials.json.
On Google App Engine standard first generation runtimes (<= Go 1.9) it uses
the appengine.AccessToken function.
On Google Compute Engine, Google App Engine standard second generation runtimes
(>= Go 1.11), and Google App Engine flexible environment, it fetches
credentials from the metadata server.

We should be able to set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to either an empty file, or a temp file with bogus credentials to make sure there are no GCP dependencies in our tests.

/assign
I'll work on the fix.


[php:5.6] PDOException with message could not find driver mysql

.gitlab-ci.yml
before_script:
- composer -v
- composer install
- mkdir -p data/cache
- COMPOSER_PROCESS_TIMEOUT=0

stages:
  - test

cache:
  key: $CI_COMMIT_REF_NAME
  paths:
    - vendor
    - ~/.composer/cache/files

variables:
  MYSQL_ROOT_PASSWORD: root
  MYSQL_USER: homestead
  MYSQL_PASSWORD: secret
  MYSQL_DATABASE: homestead
  DB_HOST: mysql

test:5.6:
  stage: test
  image: edbizarro/gitlab-ci-pipeline-php:5.6
  services:
    - mysql:5.7
  script:
      - ./vendor/bin/phpunit

coverage:7.1:
  stage: test
  image: edbizarro/gitlab-ci-pipeline-php:7.1
  services:
    - mysql:5.7
  script:
    - phpdbg -qrr ./vendor/phpunit/phpunit/phpunit --coverage-text **--colors=never**

Output for test:5.6 job
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in .../vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 115

The coverage:7.1 job is ok.
The error happen since a week, did you remove intentionally the pdo_mysql driver ?
Thanks in advance

Hi @fezfez,
Turn out that I made a mistake while cleaning the 5.6 image, sorry about that.
I'm already pushed a new image with de pdo_mysql,
As soon as the build finished the image will be available.
Before:

After:

yay, thanks for the fast response and fix !


Add new theme - Inretio

Add new theme called Inretio, along with documentation describing it.
Description
Inretio theme uses inspiration from existing themes: metal and bobby, but adds more details about virtual environment - when Python is available in it, prompt will display that particular Python binary version.
Motivation and Context
Displaying specific Python version is very useful for developers who keep multiple venvs for running their Python code on different runner versions, e.g.: 3.12.x and 3.9.x on the same machine.
How Has This Been Tested?
Tested on usual filesystem folder, Git-tracked folder, in venv without Python and in venv with Python.
Screenshots (if appropriate):
Added in documentation as required: https://github.com/Bash-it/bash-it/pull/2246
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] If my change requires a change to the documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] If I have added a new file, I also added it to clean_files.txt and formatted it using lint_clean_files.sh.
[ ] I have added tests to cover my changes, and all the new and existing tests pass.

It looks like there is an error in linter:

Bash include file themes/inretio/inretio.theme.bash has bad/missing shellcheck header

Because following is indeed the recommended shebang to properly find BASH location:
#!/usr/bin/env bash

Currently have no idea what Linter wants me to fix. Is there a usable documentation to understand and troubleshoot Linter issues?
Current documentation hardly helps 🧐


Design Retract GUI

closing: we'll open that issue as soon as we need retraction a s a user-facing feature


Use the same signature for LinkAddr::addr on all platforms

This should've been done as part of #1675

Doh, good catch.
bors r+

bors retry


Adaptive card not rendering properly

I am trying to render my adaptive card over teams but I cannot see the blue line over it as a border, but it is there when i see adaptive card from other people, is there any specific way to get that? or teams does it on there own. I am attaching images for refrence

this is the line i want, but instead  I am getting

this

You can make use of accentColor which can add a border to your card.
For ex : "accentColor": "#a16073" gives like below card

Also please check these threads for your reference -

https://stackoverflow.com/questions/74129567/how-to-get-microsoft-teams-card-to-display-correctly
https://stackoverflow.com/questions/72873499/adding-a-colored-strip-on-the-top-of-adaptive-card

@aniket0502sharma - You can make use of accentColor which can add a border to your card.
For ex : "accentColor": "#a16073" gives like below card
Also please check these threads for your reference -

https://stackoverflow.com/questions/74129567/how-to-get-microsoft-teams-card-to-display-correctly
https://stackoverflow.com/questions/72873499/adding-a-colored-strip-on-the-top-of-adaptive-card

I have a tried using the ancent property and does not give a border like yours, i got a rather thick line after using it, if i am not wrong you want me to use it with bleed propery se to true right? can i see the exact json of the card u've sent @Meghana-MSFT

 i was getting something like this after using ancent colour and color bleed property

No bleed is another option mentioned on the thread. I used only accentColor property and not bleed.

@Meghana-MSFT  can you provide me with the json for the same? because i am not getting any border

I have not added any border in JSON, I just added accentColor property in the manifest.

Can you please provide the json for the same?

`{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "Welcome to our Adaptive Card!",
"size": "Large",
"weight": "Bolder"
},
{
"type": "Image",
"url": "https://example.com/card-image.jpg",
"size": "Medium"
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Learn More",
"url": "https://example.com"
}
],
"accentColor": "#a16073"
}
i have tried this but it is not giving the resullt you have shown @Meghana-MSFT

You need to accentColor in the app package manifest and not the adaptive card JSON.

okay

Any reasons why it is not showing any colour? so there is no default colour for the same?

No there is no default color available for a card.

@Meghana-MSFT ok cool, thankYou


Multiple bots to joining a single meeting?

I have created an application hosted media bot which could already join a meeting.
I want to know if it is possible for multiple media bots to join a meeting.

Yes it's possible but you will only see one identity in the Teams client, it's comparable to joining teams with desktop, mobile, etc.

Yes it's possible but you will only see one identity in the Teams client, it's comparable to joining teams with desktop, mobile, etc.


[Request]

Place pumps as a user so I do not get pumpjack has no last_user error

Ability to place pumpjacks without pipes, just jacks and poles please.
Thank you.

Hi, can you elaborate when you get that error? I've never seen it before. Could it be related to another mod?
Also, why would you want to skip the pipes? The whole point of P.U.M.P. is to avoid having to place pipes. Can you explain more of how you're playing and why it would make sense to you to support that?

Hi, can you elaborate when you get that error? I've never seen it before. Could it be related to another mod?
Also, why would you want to skip the pipes? The whole point of P.U.M.P. is to avoid having to place pipes. Can you explain more of how you're playing and why it would make sense to you to support that?

Hello,
I'm using auto resource mod  which grabs resources directly without needing pipes. It seems that mod doesnt work if its not placed by "user" but I've solved this issue by using similar mod to yours called Well Planner and it does place jacks as user so that solves my issue.
Thanks for fast reply anyways.

Ok, thanks you for explaining more. I'll have a look at the mod you mentioned later and consider changing P.U.M.P.
Will be a while as I'm on a long holiday right now. But it seems you're set for now, anyway. 🙂

I am going to assume this is fixed. Other changes have been made involving passing the player or their force to the build action. In the meantime Factorio 2.0 also had API changes that mandated some things in this area too.
As I havent tested it with the mod in question, I can't be certain though.


Feature Request: Interactions

Would it be possible to add a way of representing genomic interactions in Biodalliance, e.g. something similar to the arcs connecting two loci in the WashU browser (see Figure 1b in http://www.nature.com/nmeth/journal/v10/n5/full/nmeth.2440.html).
Edit: could this be an extension to Issue #151?

Yes, it would be great to have something like this.  Let's track progress over at #151.


Strip flow types

For alternative build tools like swc that don't support babel's flow-strip-types out of the box, could flow types be removed in the published package? This tool could do the job: https://flow.org/en/docs/tools/flow-remove-types/

FWIW this issue went away when I removed the package from next-transpile-modules, so it may not be necessary.


Cannot communicate with wiimote in build

Hello,
I'm able to build and run the example scene you included. However, when I do so, it is unable to find the wiimote. When I'm working in Unity, I have no troubles finding the wiimote; it's in the build that I'm having troubles. When I run the build, I make sure that the unity editor is closed. I'm stumped as to why this is happening. Any help would be appreciated! Thanks! (:

I'm having the same issue. I tried copying the asset package to numerous places but it simply doesn't communicate with the wiimote.

I‘m having the same issue too. Has anyone solved this problem?

Change the compile settings to x64 or x86 (i forget which, whichever it currently is not) For some reason it doesnt work in one of them


WIP: archive Ginkgo test results

I swapped the Jenkinsfiles so that ginkgo.Jenkinsfile would be used as Jenkinsfile, since that is what the configuration on Jenkins picks up for running PRs. While the build failed, the archive was created: https://jenkins.cilium.io/job/cilium/job/cilium/job/PR-2326/1/ .

I'm surprised this requires janitor review; CODEOWNERS shows test/ as being owned by cilium/ci , and Jenkinsfile as owned by cilium/ci as well. Is there a way to see in GitHub what triggered a CODEOWNER to get added to the review?


setDownloadConcurrentLimit on FetchConfiguration doesn't work

Hi,
I have been using fetch and trying to change setDownloadConcurrentLimit at runtime but it doesn't work. I have set setDownloadConcurrentLimit = 3 and started 2 downloads, then i changed it to 1 but both files were downloading (one file should wait in a queue). Even i closed my application and next time i initialized FetchConfiguration with setDownloadConcurrentLimit = 1 but both files are still downloading. Please help me out with this, thanks :)

i think fetch does not support runtime change of concurrentlimit, but possibly you could create a new fetch instance using the same namespace and set the new concurrent limit

@zubairehman . I think I may have spotted a bug. Testing. Also as Duncanokeyo mention,
you can only set the concurrent limit when you create a new Fetch instance but you can have multiple instances of Fetch that has the same namespace open with different concurrent limits. Make sure you close Fetch instances when no longer needed.

@tonyofrancis  thanks for you feedback, i tried creating new fetch instance with the same namespace but it didn't work :(

its a bug. Just applied a fix. Need to run some tests before pushing out this release. hopefully tomorrow.

@zubairehman Just published Fetch 2.2.0-RC1. This version should have the fix. The changelog is huge so you may want to review it. Looking forward to your feedback.

@tonyofrancis  thanks for the update, will get back to you on this shortly :)

i put 2 files on download and i tired creating new instance with setDownloadConcurrentLimit = 1 but both of them are downloading. I tired closing fetch instance before creating second one but the result is the same :(
My Code
HomeActivity:
FetchHelper.getInstance().getFetchInstance().close();   FetchHelper.getInstance().createFetchConfigInstance(HomeActivity.this);
FetchHelper:
`public class FetchHelper {
//config
private static final String FETCH_NAMESPACE = "DefaultNamespace";

//Declare singleton instance
private FetchConfiguration fetchConfiguration;
private static FetchHelper mInstance;

private FetchHelper(Context context) {

    fetchConfiguration = new FetchConfiguration.Builder(context)
            .enableRetryOnNetworkGain(true)
            .setNamespace(FETCH_NAMESPACE)
            .enableLogging(BuildConfig.DEBUG)
            .setGlobalNetworkType(getGlobalNetworkType(DownloadConfiguration.getInstance().isOnlyWifi()))
            .setDownloadConcurrentLimit(DownloadConfiguration.getInstance().getSimultaneousDownloads())
            .setHttpDownloader(getOkHttpDownloader())
            .build();
    Fetch.Impl.setDefaultInstanceConfiguration(fetchConfiguration);
}

public static synchronized void initializeInstance(Context context) {
    if (mInstance == null) {
        mInstance = new FetchHelper(context);
    }
}

public static synchronized FetchHelper getInstance() {
    if (mInstance == null) {
        throw new IllegalStateException(FetchHelper.class.getSimpleName() +
                " is not initialized, call initializeInstance(..) method first.");
    }
    return mInstance;
}

public Fetch getFetchInstance() {
    return Fetch.Impl.getInstance(fetchConfiguration);
}

public void createFetchConfigInstance(Context context) {
    fetchConfiguration = new FetchConfiguration.Builder(context)
            .enableRetryOnNetworkGain(true)
            .setNamespace(FETCH_NAMESPACE)
            .enableLogging(BuildConfig.DEBUG)
            .setGlobalNetworkType(getGlobalNetworkType(DownloadConfiguration.getInstance().isOnlyWifi()))
            .setDownloadConcurrentLimit(DownloadConfiguration.getInstance().getSimultaneousDownloads())
            .setHttpDownloader(getOkHttpDownloader())
            .build();
    Fetch.Impl.setDefaultInstanceConfiguration(fetchConfiguration);
}

private OkHttpDownloader getOkHttpDownloader() {
    final OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
    return new OkHttpDownloader(okHttpClient,
            Downloader.FileDownloaderType.PARALLEL);
}

private NetworkType getGlobalNetworkType(boolean isWifiOnly) {
    if (isWifiOnly) {
        return NetworkType.WIFI_ONLY;
    } else {
        return NetworkType.ALL;
    }
}

}
`

@zubairehman
Namespace Define: Allows you to create instances of Fetch that reference the same or different databases that store requests/downloads information. Example: You can have a general Fetch downloader and a Fetch downloader for specific purposes like downloading game files.
In conjunction with the above definition of namespaces, each new Fetch instance can maintain a different FetchConfiguration settings. That means if you have two different FetchConfigurations with the same namespace, new instances of Fetch created is allowed to download requests in the shared waiting queue if it is not correctly downloading.
With that said an idea came to me. If you want one instance of Fetch to do the downloading and the other instances with the same namespace to receive updates and modify requests, the fetch  configuration needs to set the download limit to 0. In the current version setting the concurrent limit to zero will throw an exception. What I can do is remove that limit.
A work around right now is to use 1 instance of Fetch with a given namespace.
I would like you feedback on how you understand namespaces and Fetch instances to work so we can improve the library.

@tonyofrancis
Thanks for your feedback and explanation about namespaces. Actually what i am trying to do is to have only one instance of fetch and to use it across my app. I have created a singleton fetch instance in my app but when i am trying to change queue size or GlobalNetworkType either my downloading stops (with status downloading) or my queue doesn't get resized.
i tested it in many ways and i think its a bug, please do check and let me know how can i achieve above mentioned scenario by using fetch :)

@zubairehman closing this ticket as we already have a new one open that shows this issue

Any updates here?!! still facing the same issue
thanks


Add automated quality checks

It is unlikely that we will be able to run these tests on CI (or... perhaps not that unlikely?) but regardless, it would be nice to have automated quality checks about PEP8 (preferably flake8 + black).

What about Github actions? Tools like Miniconda or Anaconda are available, together with code-quality checkers.
These actions can be triggered for particular situations such us new commits in main branch, particular tags... We could start by exploring just the checkers for the moment and see how it performs :thinking:

Yeah, absolutely! GH Actions, Circle CI or Azure Pipelines are all equally valid from my side.

Before closing this: it is possible to trigger the Github actions when a new event takes place in the poliastro's repository (new release, merge into master...). See workflow-dispatch-events.

Ops! Closing this, as CI is already been triggered every time a PR is made or when poliastro merges new code into its main branch.


Add New University

file (2).zip

file (2).zip

@SamnangKhon file I am sorry, I have to close the request without merging, because you made a mistake in a request and did not specify any filepath. Please ensure that you are familiar with this repository rules located at the bottom of this page and make a new correct request. Thank you for your understanding!


refactor twin client to support 3 interfaces (http, rmb and ws)

As #91 it needed to be under one interface that can manage the three types of twin clients.
Rmb message bus

to use and test it see [examples]
dependencies:

Redis server running
RMB server running .e.g. rmb_go read docs
grid3 RMB server .e.g. grid3_client_ts read docs

import freeflowuniverse.crystallib.twinclient as tw

fn main() {
	mut transport := tw.RmbTwinClient{}
	transport.init([143], 5, 5)?
	mut grid := tw.grid_client(transport)?
        // Now you can invoke any function below.
	grid.algorand_list()?
}

Http

to use and test it see examples

import crystallib.twinclient as tw

fn main() {
	mut transport := tw.HttpTwinClient{}
	transport.init("http://localhost:3000")?
	mut grid := tw.grid_client(transport)?
        // Now you can invoke any function below.
        grid.algorand_list()?
}

Web socket

In this case you have to invoke grid functions inside the WebSocket server, so you have to initialize the server first and then pass the client of this server as a parameter, see examples

import crystallib.twinclient as tw
import net.websocket as ws
import term
import json

fn main() {
	mut s := ws.new_server(.ip6, 8081, '/')
	s.on_connect(fn (mut s ws.ServerClient) ?bool {
		if s.resource_name != '/' {
			return false
		}
		println('Client has connected...')
		return true
	})?
	s.on_message(fn (mut ws_client ws.Client, msg &tw.RawMessage) ? {
		handle_events(msg, mut ws_client)?
	})
	s.on_close(fn (mut ws ws.Client, code int, reason string) ? {
		println(term.green('client ($ws.id) closed connection'))
	})
	s.listen() or { println(term.red('error on server listen: $err')) }
	unsafe {
		s.free()
	}
}

fn handle_events(raw_msg &tw.RawMessage, mut ws_client ws.Client)? {
	if raw_msg.payload.len == 0 {
		return
	}

	mut transport := tw.WSTwinClient{}
	transport.init(mut ws_client)?
	mut grid := tw.grid_client(transport)?
	msg := json.decode(tw.Message, raw_msg.payload.bytestr()) or {
		println("cannot decode message")
		return
	}

	if msg.event == "sum_balances" {
		go fn [mut grid]()? {
			// List all algorand accounts.
			grid.algorand_list()?

			// Deploy new machine
			machines := tw.MachinesModel{
				name: 'ms1'
				network: tw.Network{
					ip_range: '<IP_ADDRESS>/16'
					name: 'net'
					add_access: false
					}
				machines: [
					tw.Machine{
						name: 'm1'
						node_id: 2
						public_ip: false
						planetary: true
						cpu: 1
						memory: 1024
						rootfs_size: 1
						flist: 'https://hub.grid.tf/tf-official-apps/base:latest.flist'
						entrypoint: '/sbin/zinit init'
						env: tw.Env{
							ssh_key: 'ADD_YOUR_SSH'
						}
					},
				]
			}
			twin.machines_deploy(machines)?
		}()
	} else {
		println("got a new message: $msg.event")
	}

}

@Mahmoud-Emad  I tried to start reviewing, but noticed that changes are too much. This branch base seems to be another branch (not development), could you please update the base branch correctly not to list others commits?


support ecto v3 on v1.4

#125 added support for Ecto v3 on master, but this has not been released anywhere yet. As far as I can tell, there's no reason this can't also be backported to the current release branch, v1.4.
It would be great if you can merge this and release another v1.4 point release for folks who don't want to run on a beta of absinthe. Thanks!
/cc @mmrobins

Thanks1


Logic improvement

btw i want to modify prime cannon's direction to match with projectile's direction instead of just facing upwards and downwards but it seems not possible to do in vanilla or i missed something perhaps....

There should be a way to do it, though idk right now.

And thank you for the contribution :)


[BUG] - Files need to be pre-formated with the rules from the library

Getting prettier linter errors ("singleAttributePerLine": true,)  for components initialized from the library e.g. video-options.js

Checked and should be fine in 1.2.0


Branding

[ ] Add the MultiNet Logo in the top left corner
[ ] Create a more extensive about page, @alexsb  can provide content if it's set up. We should discuss whether the pop-up is enough or whether that's just version info.
[ ] Add Utah, Kitware, and NSF logo to front page; in a muted color.

Closing in favor of #286, #287, and #288.


Sorry to ask.

Hi Xavier,
Sorry if I have to ask what seems to be a stupid question - what's the best way to find out what went wrong if all of a sudden the plugin stop working?  If I tried to manually match it will return no result almost instantly.  But everything was working great for months and I didn't upgrade Plex recently.
I tried to match with a different agent and it can work, but I want to keep it consistent and stay with JAV.
Can you let me know where I should start troubleshooting?

I seemed recently JAVLibrary enabled cloudflare protection (which protects their site from crawlers and robots and needs visitor to complete challenges before visit the site.). I would look into if there are any workarounds to solve this problem, but I am not sure if it can be solved because of Plex's limited ability to run a python script.
Agencies save for JAVLibrary should work as expected.

Oh I see.  Thank you very much for your reply and explanation.
Now I know why it suddenly stop working.  Please let me know if there's anything I can help or any information you need.
Again, much appreciated your great contribution!

I updated the agent, you can try to make it work again by following the steps in the README. I know it is a bit difficult and the configuration may need to be updated very frequent.
Don't hesitate to ask if you have any questions.

Hi Xavier, I just followed the instructions and everything works beautifully.
Thank you for your help, I almost thought there will be no solution to the problem.
In the future, if JAVLibrary decides to revert back to no cloudflare, we can just leave the agent and CF field empty right?

Yes, you can leave the field empty or even leave it with the last value.


BIGTOP-3600 - Deploy python*-dev deps on Debian images

In https://github.com/apache/bigtop/pull/829 I caused some
failures in gpdb package builds, since python2.7-dev
dependencies are needed.
On Debian 9/10/11 python3-dev and python2.7-dev are available,
so better to be explicit and install both at the same time.

Current image:
docker run --rm  -v `pwd`:/ws --workdir /ws bigtop/slaves:trunk-debian-10 bash -c 'dpkg -S Python.h'
libpython3.7-dev:amd64: /usr/include/python3.7m/Python.h

New image:
docker run --rm  -v `pwd`:/ws --workdir /ws bigtop/slaves:trunk-debian-10 bash -c 'dpkg -S Python.h'
libpython3.7-dev:amd64: /usr/include/python3.7m/Python.h
libpython2.7-dev:amd64: /usr/include/python2.7/Python.h

With the new image I am able to build gpdb on Debian 10, should be the same on 11. We probably want to deprecated any usage of Python 2 in the future, maybe after 3.1?


KeyError: 'enable'

I have a windows 10 machine which is pretty locked down. I have to install as admin - im wondering if this is just a me error - because on a regular windows machine Im not seeing this. I dare say this is something to do with the paths that ive just tried to fix.. ill try and figure this out later
Traceback (most recent call last):
  File "grimassist.py", line 57, in <module>
  File "src\task_killer.py", line 35, in start
  File "src\controllers\mouse_controller.py", line 52, in start
KeyError: 'enable'

I think from your commit history you’ve tried to fix this. Let me know if it’s outstanding and if it isn’t have you got a list of priorities to work on that if I get a chance I’ll help out on. Great work.

Let's hope it it's fixed.
I have some stuff planned for the ui so I will create some issues soon. My main priority is support for Linux and Mac.

Great. There must be something I'm missing that PyDirectInput is being used for - but I can't see what it is. Your doing fab work :)

Thank you, I'm giving my best.


updating item data before price calculation

In the modify_item method of the default Order model, data stored in data JSONField are updated before calling get_price on the related product. This way the updated data for the product can be used for lookup, selection or creation of a Price instance.
closes #78

Thank you!

👍


Control which organizations users can refer patients to

Right now, all users can send referrals to any organization except their own, but this doesn't always make sense in practice. For example, only a set list of clinics can refer to Access Now, so CHWs shouldn't refer patients there directly.

recorded in our future development docs


typo fix for colpali_retriever.py

Sorry to my previous commit.
It has a little typo (comma)

No worries, I should have double-checked 😅 I've fixed it on main directly and have just released a fix!


Building issue on mac

I know, what you have to do when you use tModLoader on a mac and i followed all the steps. I was able to build my mod using Xamarin. Yet the last step says "11. Open Terraria and have tModLoader build your mod!" and it does not work. It either gets stuck at:
"Compiling ExampleMod for Windows..."
or it crashes, giving me this error Code:
Error running mcs: Cannot find the specified file
at Mono.CSharp.CSharpCodeCompiler.CompileFromFileBatch (System.CodeDom.Compiler.CompilerParameters options, System.String[] fileNames) [0x00000] in :0
at Mono.CSharp.CSharpCodeCompiler.CompileAssemblyFromFileBatch (System.CodeDom.Compiler.CompilerParameters options, System.String[] fileNames) [0x00000] in :0
at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromFile (System.CodeDom.Compiler.CompilerParameters options, System.String[] fileNames) [0x00000] in :0
at Terraria.ModLoader.ModCompile.CompileMod (Terraria.ModLoader.BuildingMod mod, System.Collections.Generic.List`1 refMods, Boolean forWindows, System.Byte[]& dll, System.Byte[]& pdb) [0x00000] in :0
at Terraria.ModLoader.ModCompile.Build (Terraria.ModLoader.BuildingMod mod, IBuildStatus status) [0x00000] in :0
at Terraria.ModLoader.ModCompile.Build (System.String modFolder, IBuildStatus status) [0x00000] in :0
at Terraria.ModLoader.ModLoader+<>c.b__45_0 (System.Object _) [0x00000] in :0

This looks like you forgot "noCompile = true" in your build.txt.

OOOOOOHHH i had it in my code, i just didnt know the C had to be a capital letter... damn. Thanks tho!


Turbo Streams: Manage element focus

When a <turbo-stream> modifies the document, it has the potential to
affect which element has focus.
For example, consider an element with an [id] that has focus:
<label for="an-input">
<input id="an-input" value="an invalid value"> <!-- this element has focus -->

Next, consider a <turbo-stream> element to replace it:
<turbo-stream action="replace" target="an-input">
  <template>
    <input id="an-input" value="an invalid value" class="invalid-input">
  </template>
</turbo-stream>

Prior to this commit, rendering that <turbo-stream> would remove the
element with focus, and never restore it.
After this commit, the Session will capture the [id] value of the
element with focus (if there is any), then "restore" focus to an element
in the document with a matching [id] attribute after the render.
Similarly, consider a <turbo-stream> that appends an element with
[autofocus]:
<turbo-stream action="append" targets="body">
  <template>
    <input autofocus>
  </template>
</turbo-stream>

Prior to this commit, inserting an [autofocus] into the document with
a <turbo-stream> had no effect.
After this commit, the Session will scan any <turbo-stream> elements
its about to render, extracting the first focusable element that
declares an [autofocus] attribute.
Once the rendering is complete, it will attempt to autofocus that
element. Several scenarios will prevent that, including:

there aren't any [autofocus] elements in the collection of
<turbo-stream> elements
the [autofocus] element does not exist in the document after the
rendering is complete
the document already has an element with focus

@kevinmcconnell if you're available, this is ready for review.

@manuelpuyol @marcoroth if you're available and interested in this feature, I'd really appreciate some review!

+1 from me for this change.
The only thing to consider, which I think is currently not supported, is something like.

<input class="input" value="a value"> <!-- this element has focus -->

and a Turbo Stream like:

<turbo-stream action="replace" targets=".input">

  <template>

    <input class="input" value="a new value">

  </template>

</turbo-stream>

Unless I'm missing something.

I think this accounts for that with the timestamp [id] generation, marking, and teardown.

Re-reading the code, those time stamps only mark autofocus elements. Without some kind of css path matching, tracking focus across anonymous elements isn't supported.

Doesn't the timestamp generation just account for the case in Turbo Streams where you have the autofocus attribute?

Re-reading the code, those time stamps only mark autofocus elements. Without some kind of css path matching, tracking focus across anonymous elements isn't supported.

Okay yeah, that makes sense. I guess it's fine to have the requirement for an id attribute to be present.

Okay yeah, that makes sense. I guess it's fine to have the requirement for an id attribute to be present.

👍
Just to clarify, tracking focus for anonymous elements isn't currently supported either.

Hi, why are you making this exception?

the document already has an element with focus

I imagine a case like the following. A user presses a button, and the focus stays on that button. In that case, as the document has a focused element, the autofocus attribute of the element coming from the Turbo stream would not be respected. Is this the case?
In my opinion, if there is an autofocus attribute, it should be focused even if another element has the current focus.

@afcapel @kevinmcconnell I've rebased this changeset to account for the migration from TypeScript. It's ready for re-review.

Nice one, thanks @seanpdoyle 🙏

Hi @seanpdoyle could happen that the processing of new messages is blocked by this addition?
I'm I diving into the code because we have found an issue when receiving stream messages on tabs that are not visible/inactive, please see this issue:
https://github.com/hotwired/turbo-rails/issues/338


Refactor authentication mechanisms

Motivation
Two authenticate issues were reported by @ewjoachim which both came down to our global authentication policy.
Web UI Authentication and 2FA bypass via API Tokens (Macaroons)
API tokens are advertised as only being valid for uploads, however by setting the appropriate header, Authorization: token pypi-....., requests for arbitrary actions could be made with the equivalent of a standard session.
Thus leaked API tokens regardless of scope may have had a much bigger impact than advertised (uploading rogue releases vs deleting releases/projects or modifying user account components)
Initially resolved in: https://github.com/pypa/warehouse/pull/7184
Web UI 2FA bypass via Basic Auth
Similar to above, constructing and setting the appropriate header, Authorization: Basic <base64>, requests for arbitrary actions could be made with the equivalent of a standard session.
Thus, 2FA bypass was possible if an attacker had the username and password for a user.
Initially resolved in: https://github.com/pypa/warehouse/pull/7186
Initial Discussion
After report, while verifying and implementing the above fixes @dstufft some longer term solutions to avoid these kinds of issues:
A view deriver that can be applied to the view_config that flags it as accepting specific authentication types:
def api_view(view, info):
    if info.options.get("is_api"):
        @functools.wraps(view)
        def wrapped(context, request):
            # Somehow check the authentication mechanism and reject if not Macaroon or Basic Auth
            return view(context, request)
    else:
        @functools.wraps(view)
        def wrapped(context, request):
            # Same as above, but the inverse
            return view(context, request)
    return wrapped

Another suggestion was running API/upload hosts with specific configurations to enable the appropriate methods.
Ultimately this issue is being opened to discuss alternative approaches and decide on a path forward.

Disclaimer: I'm new to Pyramid.
Given that a user visiting a web page with a session cookie, basic auth or macaroon is not the same thing, I wonder if it wouldn't be much more appropriate to describe them as different principals... This way, the Authentication part would say "This is user A with a session" / "This is user B with a macaroon valid for projects C" etc, and then the authorization part would be much closer to doing the job the authorization part should do: answering whether principal has permission on context.
This looks relevant given Authorization recieves request, and authentication doesn't and we have to rely on a "hackish way" to get the request in the authentication part.
Also, this would solve a few concerning problems around authorization and authentication:

Authentication currently doesn't check for macaroon signature
Macaroon Autorization doesn't use Macaroon Authentication's results, meaning we could use a session authentication, and our macaroon would still be examined (but for nothing).

I would be much more at ease if macaroons were read once on the request in Authentication, and then somehow used as principal. And this would easily solve the question of limiting some pages to some auth methods (we would change the __acl__ methods for project and user)
Does that make sense @ewdurbin ?
I'd like to start a proof of concept PR, and this will probably require working on https://github.com/pypa/warehouse/issues/7183 too.

There were projects to handle this cleanly, but they haven’t been active in a long time:

https://github.com/wichert/pyramid_authstack
https://pypi.org/project/pyramid_contextauth/

They may serve as inspiration.


Aliases and identifiers not longer working when containing : and \\ with 2.6.0

After updating from 2.5.3 to 2.6.0 the following query is not longer working:
SELECT Sulu\\Bundle\\Entity\\Category.id FROM Sulu\\Bundle\\Entity\\Category Sulu\\Bundle\\Entity\\Category

also not longer working:
SELECT SuluBundleCategory:Category.id FROM SuluBundleCategory:Category SuluBundleCategory:Category

It produce by use case different errors for joins, select or froms:
Expected Doctrine\\ORM\\Query\\Lexer::T_IDENTIFIER, got  ...

or
Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | \"(\" Subselect \")\" | CaseExpression, got ...

Hmm, aliases were always supposed to be alnum only: never seen such an
example before.
Investigating ASAP
On 20 Dec 2017 17:42, "L91"<EMAIL_ADDRESS>wrote:

After updating from 2.5.3 to 2.6.0 the following query is not longer
working:
SELECT Sulu\Bundle\Entity\Category.id FROM Sulu\Bundle\Entity\Category Sulu\Bundle\Entity\Category
also not longer working:
SELECT SuluBundleCategory:Category.id FROM SuluBundleCategory:Category SuluBundleCategory:Category
It produce by use case different errors for joins, select or froms:
Expected Doctrine\ORM\Query\Lexer::T_IDENTIFIER, got  ...
or
Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/doctrine/doctrine2/issues/6928, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJakLMpvhcpYxMi6qfZr1P7zMOqPL_8ks5tCTjxgaJpZM4RIqJV
.

Possibly related change: b7bd42638dcf8aa049698f01466688ff7762953b, will try to bisect later if @Ocramius isn't faster.

@Majkl578 adding a test case ATM

https://github.com/doctrine/doctrine2/pull/1549#issuecomment-173212939 - hah.

Yeah, this is invalid DQL as per https://github.com/doctrine/doctrine2/blob/b7bd42638dcf8aa049698f01466688ff7762953b/tests/Doctrine/Tests/ORM/Query/LanguageRecognitionTest.php#L98-L99
I think this is an edge case and we shouldn't go back on it - the original fix is more relevant, so I'm more inclined to documenting it as known BC break.

Ok thought that 🙈 . But thank you for investing time to analyse the issue. As its currently for us not possible to fix this without to many BC Breaks in our CMS we need to go back to 2.5.

Hmm, aliases were always supposed to be alnum only: never seen such an
example before.

The queries are built by a service this way in our CMS but also the devs can input condition like SuluBundleCategory:Category.locale = "en:uk" to this service and it seems many projects did it this way and they are now breaking and a str_replace([':', '\\'], '', $query) which I tried in our case I think is to error-prone as also the comparetivy value ("en:uk") content could be replaced by this str_replace.

Bisect done, caused by the commit already mentioned: b7bd42638dcf8aa049698f01466688ff7762953b, likely to be broken by change to cachable patterns: https://github.com/doctrine/doctrine2/commit/b7bd42638dcf8aa049698f01466688ff7762953b#diff-a59574e15d37179f26dc0056f2a6d4b0R131

@aleeeftw these are the scenarios. First two pass, second two crash as per @Majkl578's findings

    /**
     * @group #6928
     */
    public function testStringParameterWithNamespaceSeparator()
    {
        $this->assertSqlGeneration(
            \sprintf('SELECT a FROM %s a WHERE a.username=\'en\\uk\'', CmsUser::class),
            'SELECT c0_.id AS id_0, c0_.status AS status_1, c0_.username AS username_2, c0_.name AS name_3 FROM cms_users c0_ WHERE c0_.username = \'en\\uk\''
        );
    }

    /**
     * @group #6928
     */
    public function testStringParameterWithNamespaceAliasSeparator()
    {
        $this->assertSqlGeneration(
            \sprintf('SELECT a FROM %s a WHERE a.username=\'en:uk\'', CmsUser::class),
            'SELECT c0_.id AS id_0, c0_.status AS status_1, c0_.username AS username_2, c0_.name AS name_3 FROM cms_users c0_ WHERE c0_.username = \'en:uk\''
        );
    }

    /**
     * @group #6928
     */
    public function testClassNameWithNamespaceIsAValidAlias()
    {
        $this->assertSqlGeneration(
            \sprintf('SELECT %s FROM %s %s', CmsUser::class, CmsUser::class, CmsUser::class),
            ''
        );
    }

    /**
     * @group #6928
     */
    public function testAliasedClassNameIsAValidAlias()
    {
        $originalNamespaces = $this->_em->getConfiguration()->getEntityNamespaces();
        $this->_em->getConfiguration()->setEntityNamespaces([
            'Potato' => 'Doctrine\\Tests\\Models\\CMS',
        ]);

        try {
            $this->assertSqlGeneration(
                'SELECT Potato:CmsUser FROM Potato:CmsUser Potato:CmsUser',
                ''
            );
        } finally {
            $this->_em->getConfiguration()->setEntityNamespaces($originalNamespaces);
        }
    }

@Ocramius Hi, I think you tagged me by mistake in this issue? :) Not sure how I broke that?!

Sorry, auto-complete SNAFU


fix: adding more replicas for ingester

Description of the changes
The current distributed Loki deploys a single replica of the ingester component. This can lead to log write interruptions and potential data loss during rollouts and restarts, so I changed the replicas to 3 to avoid data loss.
Breaking change

[ x ] No
[ ] Yes (in the Helm chart(s)): indicate the chart, version & release note link
[ ] Yes (in the module itself): give an explanation of the breaking change

Tests executed on which distribution(s)

[ ] KinD
[ ] AKS (Azure)
[ ] EKS (AWS)
[ ] Scaleway
[ ] SKS (Exoscale)

Since this PR has been closed, can we delete this branch, @omohammed95?


Check for return of stack variable address

We need to throw an error if a function returns the address of a variable on the stack.

This is kind of tricky to do because there are a lot of levels of indirection with this I think?
To elaborate, is this even worth doing? Most of the time you can get around most of the "security" measures put in place anyways. I think GCC/Clang do a very simple implementation of this, but with pointers you can pretty much make this indirect.

Most ordinary cases should be fairly easy to handle, but yes it will end up being quite easy to bypass.


zencoder: support hls outputs

PR #108 doesn't cover this yet. I'll work on a separate pull request for this.

Closed by #129


Push notification error : ORIGINAL EXCEPTION: No provider for Push!

Hi,
I am having an issue implementing push notification on my app : I got the following error while serving :  ORIGINAL EXCEPTION: No provider for Push!
Looking for answers I found former topics mentioning conflict using @viewchild and passing provider in constructor. https://github.com/driftyco/ionic/issues/5543 But I can't figured this out...
Any idea ?
What behavior are you expecting?
Steps to reproduce:

start a sidemenu app
follow the push notification guide https://docs.ionic.io/services/push/
serve

My app.component :
import { Push, PushToken } from '@ionic/cloud-angular';

@Component({
  templateUrl: 'app.html'
})

export class MyApp {
  @ViewChild(Nav) nav: Nav;

  rootPage: any = HomePage;

  pages: Array<{title: string, component: any, icon: string}>;

/* PASS PUSH IN CONSTRUCTOR */
  constructor(public platform: Platform, public wp: ApiWp, public push: Push) {
    this.initializeApp();

    // used for an example of ngFor and navigation
    this.pages = [
      { title: 'Actualite', component: ActualitesPage, icon:'text' },
      { title: 'Réglages', component: SettingsPage, icon:'settings' }
    ];

  }

  initializeApp() {
    this.platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      StatusBar.styleDefault();

          /*BEGINNING  OF PUSH NOTIFICATION CODE */

    this.push.register().then((t: PushToken) => {
        return this.push.saveToken(t);
      }).then((t: PushToken) => {
        console.log('Token saved:', t.token);
      });

      this.push.rx.notification()
  .subscribe((msg) => {
    alert(msg.title + ': ' + msg.text);
  });
  /* END */
    });

  }

Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
Which Ionic Version? 1.x or 2.x
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
ios-deploy version: 1.8.7
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v5.12.0
Xcode version: Xcode 8.0 Build version 8A218a
Thanks :)

solution? having same issue here

any solution

I could not make that work with @ionic/cloud-angular , the only way i could make was:
import { Push } from 'ionic-native';

export class App {

constructor(public app: App,platform: Platform){

  platform.ready().then(() => {
    let push = Push.init({
        android: {
          senderID: 'MYID'
        },
        ios: {
          alert: 'true',
          badge: true,
          sound: 'false'
        },
        windows: {}
      });
    }

     push.on('registration', (data) => {
          console.log("device token ->", data.registrationId);
        });
      push.on('notification', (data) => {
          console.log(data);

        })
  }

}

thanks i will try this

Hi

@dnyaneshwaruttarwar you've saved my life ! thx a lot !!!

I'm facing one issue, The notification is not getting a popup on my mobile device. Is anyone facing the same issue ?


very high latency streaming to WiiM

I'm on Windows, streaming to "WiiM Amp" device.
The delay between audio on speakers connected to the windows computer and speakers on WiiM is 4-6 seconds, which seems extreme.
Do you happen to know if this is a known issue with WiiM Amp? or is something else going on?
I've tried pretty much all combination of settings available from swyh-rs

These are the things that affect latency:

the minimum latency under optimal conditions seems to be around 250 msecs
a good ethernet connection will normally have lower latency than wifi
the buffer size in the receiver determines the minimum latency. The bigger the buffer, the larger the latency, but also the smaller the chance that you'll suffer from stutter or drop-outs in the audio.
the streaming protocol also is responsible for some latency. From best to worst:

lpcm
wav/rf64
flac

finally a higher bit depth (24 bit vs 16) and a higher sampling rate (176/192 khz vs 44/48 khz) will fill the buffer of the receiver much faster resulting in a lower latency.

I did not find any reference to a configurable buffer size for your WiiM Amp in the documentation, so there is probably not much you can do.

Can you point me to the source code of foo_out_upnp? Perhaps it would show me where I can shave off some time.
As an alternative a Wireshark sniffer trace of a foo_out_upnp session with the 2-3 seconds delay could be helpful.

Hello! Thank you for you soft, it works good and offers unique opportunity to stream from Deezer! But I also have that problems that issue's author has. My Hifiman Serenade starts playing only after 2-3 seconds after I push play button in Chrome browser. No stutter and everything - playing is decent, but when you push play and stop button, you have to wait for 2-3 seconds. No problems with foorbar2000 upnp plugin - in foobar everything works fine, without any initial latency.
I have added two wireshark dumps (both are named respectively), from upnp plugin and swyh-rs. Maybe it helps to inspect that problem a little more)
swyh-rs dump.zip

Thanks for the dumps.
Unfortunately your swyh-rs dump.pcapng file contains no relevant information. The start/stop play sequences are not there, only frames with music samples interspersed with foo_upnp TransportState requests.
The foo upnp dump.pcapng however is complete, and it shows that foobar2000 is streaming WAV format.
Are you by any chance streaming FLAC with swyh-rs? The FLAC compression causes a certain delay at both sides (buffer => compress => buffer => decompress). How bad that is depends on the music, the bitdepth and the sample rate.

can't make WAV works properly, but now I adjusted it via config file in cli.

When selecting WAV output you may have to experiment with the Streamsize parameter to make it work.

It seems everything is work fine with RF64 and NoneChunked streamsize! Thank you so much for your tip about foobar's WAV output! And for this software, it's very convenient to use!

Thanks for the kind words!


fix: change type generator.config.output to never as it is a dedicated field.

During some tests at arthurfiorette/prisma-json-types-generator#7 I discovered that the output configuration field never is defined into generator.config and it is the correct behavior, but some kind of warning would be great.
Take the below example:
generator A {
  name = "A"
  output = "specified"
  opt = "test"
}

generator B {
  name = "B"
  opt = "test"
}

// generator A & B source file

generatorHandler({
  async onGenerate(options) {
    console.log(options.generator)
  }
})

outputOfA = {
  // ...
  output: {
    value: '~/prisma/specified',
    fromEnvVar: null
  },
  config: {
    // note that output is not here.
    opt: 'test'
  }
};

outputOfB = {
  // ...
  output: {
    value: '~/prisma/specified',
    fromEnvVar: null
  },
  config: {
    opt: 'test'
  }
};

This PR just add a warn for those who try to access output from config.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @Jolg42, @SevInf & @aqrln, any updates here??

Hey @arthurfiorette.
I apologize for the huge delay. The change makes sense to me, but I think we'll need to go a step further -  output is not only the property that can not exist in config: provider, binaryTargets and previewFeatures are also on this list (link).
Would you mind adding them to the PR as well? Totally ok if not, I'll do it myself and merge the PR by the end of the week then.
Once more, apologies for delay.

Hey @arthurfiorette.
I am sorry again, but this test failure looks related to the change. Could you take a look? The code for the test is here.

Nevermind, fixed it myself, ready to merge after CI is green


Add testing for additional aspects of the library

Add additional testing with such frameworks:

GTest different operating systems
OpenMP multiple systems
OpenSSF Best Practices
etc

Add compile time testing for constexpr functionality

Running GTest workflow on Windows with MSVC


Return job-specific EventEmitter from enqueue

It would be nice if the job could send back asynchronous progress or logging messages as it goes about its job.  Idea:  enqueue could return an EventEmitter specific to that job, and the worker could have an API for sending async events to it.

I really need this, did you solve @rfk?

I did not ever cycle back around to trying out an implementation of this, sorry

Thanks :(


Bridge: Implement OIDC flow

User Story
As a User, I would like to login in Bridge via my SSO
Technical details
The discovery URL is set via the OAUTH_DISCOVERY env var.  The scope should be set to openid.
The token will be stored TBD.
DoD

[ ] Unit tests
[ ] Integration tests
[ ] The Bridge stores the access and id tokens

Dependencies

https://github.com/keptn/keptn/issues/6073

Some technical details to help the implementation.
OAuth discovery is standardized through RFC8415. This will help us with supportability on different identity providers.
With regards to endpoints, I see following are essential to be exposed from the discovery,

issuer
authorization_endpoint
token_endpoint
jwks_uri

To authenticate the end user, I would propose to utilize ID Token [1] and its validity . OpenID Connect specification already contain the validations [2] and following are some extracts from that,

iss of the token to match the provider we expect token from
aud must be the client id belongs to this specific bridge
Token signature against current keys published by issuer (JWS validation) [3]
exp to detect expiration
nonce to defense from replay attacks

Many of the technical details should be covered by libraries. I would proposed to use certified OpenID Connect library [4].
Sample discovery from Microsoft - https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
[1] https://openid.net/specs/openid-connect-core-1_0.html#IDToken
[2] https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation
[3] https://datatracker.ietf.org/doc/html/rfc7515
[4] https://openid.net/developers/certified/


feat: set up macOS builds

Used this to release https://github.com/trunk-io/toolbox/releases/tag/0.0.0-sam.13


Reduce scope of com.sap.cloud.security:java-api to provided

Context

The dependency doesn't necessarily need to be at runtime for all cases.
It's only required IF the SecurityContext class is available at all.
Definition of Done

[x] Functionality scope stated & covered
[ ] E2E tested
[x] ~Error handling created / updated & covered by the tests above~
[x] ~Documentation updated~
[x] ~Release notes updated~

Blocked until E2E test runs again.


Expose utilities

I'm working on a project that analyzes TypeScript sources and creates files in the same directories as the generated .js files. I prefer to use functions from the TypeScript api instead of writing them myself, so can these functions be exported?
Fixes #4320

I'm hesitant to expose many of these functions because it implies a commitment to support in our API. Can @CyrusNajmabadi and @mhegazy weigh in on this?

I agree. Hiding these APIs was intentional to limit the surface area. We will need to do another API review to make sure everyone is comfortable expanding the API. i would file an issue with the needed APIs first though.


Display TX format for unencrypted transactions

We have already been displaying format for encrypted transactions, but not for plain ones.
I moved the field (for encrypted TXs) higher, right next to type, and added the same field for plain transactions, too.
Encrypted TX:

Plain TX:

@donouwens approves.


Utilize SoViT-400m/14 image encoder

Hi, some of Small VLM method like miniCPM-V, tinyLLaVA or bunny utilize SoViT-400m for image encoder. Is it possible to change the Swin image encoder used by RAM with SoViT-400M ? Thanks

We currently do not have this plan.