Add "group.all_*" for more domains

Description:
I kept every group in a separate commit because I felt like it 🙃
If you want me to squash them, let me know.
Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

https://github.com/home-assistant/architecture/issues/14


Readme is out of sync with latest npm version

Based on the readme the host setting is deprecated in favour of the domains setting. The latest version of this package on npm will throw an error if the host is not provided. Ideally changes like this, including to the readme, would be made in feature branches and pulled into master as part of a release to avoid confusion.

Hi @mitchellbutler,
I am sorry about the confusion. I just released v1.2.0. In the future, we'll make sure the GitHub repository and the NPM package is up-to-date.
Feel free to close the issue if v1.2.0 is working fine for you.

Just updated to the latest version and confirmed it's working. Thanks!


Caching images

Hi,
I have a viewer with multiple scenes which each has the same images but different colours.
I was wondering where we do:
"panorama": "image1.jpg", is there a way to cache the images into a sort of data set rather than loading the image from url?
We trying to do this so that it reduces loading times in between scenes.

If your server properly sets expiration and caching headers on your images, the browser should automatically handle this for you.
There's no way to control this explicitly through Pannellum, although you could do so externally by loading the images into Blob objects and using the blob URLs in the Pannellum configuration. I'd recommend leaving it to the browser, however.

If your server properly sets expiration and caching headers on your images, the browser should automatically handle this for you.
There's no way to control this explicitly through Pannellum, although you could do so externally by loading the images into Blob objects and using the blob URLs in the Pannellum configuration. I'd recommend leaving it to the browser, however.

If your server properly sets expiration and caching headers on your images, the browser should automatically handle this for you.
There's no way to control this explicitly through Pannellum, although you could do so externally by loading the images into Blob objects and using the blob URLs in the Pannellum configuration. I'd recommend leaving it to the browser, however.

@mpetroff Hello sir i tried to create a new instance of var image  = new Image(); and then made image.src = "externalImageURL" and gave this variable to the configuration key panomora: image then it gave me the error as a.slice is not a function, i also tried to get blob as a response and used URL.createObjectURL(blob) and passed the result to configuration key panomora then it was displaying the message as WEBGL not supported....
Can you please tell me the correct way of loading image in memory(blob) and passing it to pannellum configuration??
THANKS IN ADVANCE, WAITING FOR YOUR RESPONSE??

Check your browser's developer console for errors; it should give you a more specific error message that the WebGL not supported message. You haven't provided enough information for me to help. However, the a.slice is not a function error suggests that you didn't properly pass the Image object.
Also, please don't use ALL CAPS; I don't appreciate being yelled at.

Check your browser's developer console for errors

As I said before, please post the logged error message.


demote boot2docker or else bad stuff happens

@thieman these should for sure be demoted.  Idk if nginx and VBoxManage matter


Fix typos found by codespell in openssl-3.0 doc

Checklist

[x] documentation is added or updated

This pull request is ready to merge

Superseded by #24950.


uniq's BidirectionalRange behavior is inconsistent with its InputRange behavior

acehreli (@acehreli) reported this on 2016-10-03T23:24:49Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=16588
CC List

andrei (@andralex)
bugzilla (@WalterBright)
dlang-bugzilla (@CyberShadow)
greensunny12
hsteoh

Description
import std.algorithm;

struct S {
    int i;
    string s;
}

void main() {
    auto arr = [ S(1, "a"), S(1, "b"),
                 S(2, "c"), S(2, "d")];

    // Let's consider just the 'i' member for equality
    auto r = arr.uniq!((a, b) => a.i == b.i);

    assert(r.equal([S(1, "a"), S(2, "c")]));    // makes sense

    // Since there are just 2 elements, we expect the following
    assert(r.front == S(1, "a"));               // good, consistent
    assert(r.back == S(2, "c"));                // FAILS

    // Instead, the following passes but it's unexpected
    assert(r.back == S(2, "d"));
}

Bonus: uniq could take a PickStrategy template parameter so that the caller could specify which of the unique elements of each sequence to pick, either the first or the last.

Ali

github-bugzilla commented on 2017-01-07T03:03:08Z
Commits pushed to stable at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/a502b2a254a814aaf68927d07d59baa8ba87dd8f
Fix issue 16588 - uniqs BidirectionalRange behavior is inconsistent with its InputRange behavior

https://github.com/dlang/phobos/commit/428217b31789a0b36fcf776467b077a5f165ef6c
Merge pull request #4961 from edi33416/uniq_consistency

github-bugzilla commented on 2017-01-16T23:25:53Z
Commits pushed to newCTFE at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/a502b2a254a814aaf68927d07d59baa8ba87dd8f
Fix issue 16588 - uniqs BidirectionalRange behavior is inconsistent with its InputRange behavior

https://github.com/dlang/phobos/commit/428217b31789a0b36fcf776467b077a5f165ef6c
Merge pull request #4961 from edi33416/uniq_consistency

andrei (@andralex) commented on 2017-05-11T06:32:01Z
After we undid the pull, what would be an alternative fix to this?

dlang-bugzilla (@CyberShadow) commented on 2017-05-10T23:56:41Z
Reverted by https://github.com/dlang/phobos/pull/5384

edi33416 commented on 2016-12-16T16:07:43Z
https://github.com/dlang/phobos/pull/4961

github-bugzilla commented on 2016-12-19T19:58:56Z
Commits pushed to master at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/a502b2a254a814aaf68927d07d59baa8ba87dd8f
Fix issue 16588 - uniqs BidirectionalRange behavior is inconsistent with its InputRange behavior

https://github.com/dlang/phobos/commit/428217b31789a0b36fcf776467b077a5f165ef6c
Merge pull request #4961 from edi33416/uniq_consistency

Fix issue 16588 - uniqs BidirectionalRange behavior is inconsistent w…

dlang-bugzilla (@CyberShadow) commented on 2017-05-11T10:17:57Z
(In reply to Andrei Alexandrescu from comment #6)
> After we undid the pull, what would be an alternative fix to this?

See the discussion in the revert PR.

bugzilla (@WalterBright) commented on 2019-12-30T10:09:55Z
Oops, sorry. Wanted to point to https://issues.dlang.org/show_bug.cgi?id=12404

bugzilla (@WalterBright) commented on 2019-12-29T10:09:57Z
Note: A similar issue is https://issues.dlang.org/show_bug.cgi?id=16588

acehreli commented on 2019-12-30T09:44:10Z
berni44, your last comment contains a link back to this issue but this issue is not about recursion. ;)


Added extra methods to the Row object

Added two extract methods in the Row object. In some cases, it makes things clearer and code less bloated in a custom Transformer.

Closing. We decided to fork to project and make it evolves in its own way.


Added option for password input

Hello,
I enjoyed working with your module, but I really needed this feature, so I implemented it. Please let me know if further changes are needed in order to merge it.
Thanks,
Bogdan

seems good to me but the source code is in coffee (look inside "./src")


Remove dependence on underscore

Would you be interested in a pull request that removes the dependency on underscore?
We only use:

_.defaults
_.isFunction
_.isString

I found underscore.js dependency trivial, so I removed it and bumped the version here:
https://github.com/noor/node-require-directory/commit/f9a024e1b5142986eb4602dc6ea1aa1262ddb783

Thank you! I'm sorry I didn't get to it--was swamped at work. :(

No worries :)
We all are... aren't we?!

published to npm as 2.1.0


Support for authentication using access tokens?

It would be nice, if you also supported mollie connect access tokens / refresh tokens to authenticate the API in addition to the API key.
Not a high priority issue but a nice to have.

This might be something for a future release but on this point this has no priority for us.


Incorrect Option Name in Demo

In the demo at http://naoxink.hol.es/notifIt/, the last one says you can pass time to control it. That wasn't working for me, so I referred to the GitHub docs and noticed it is timeout. Should probably update that.

Fixed, Thanks :)


ac-go-live

Docs Build status updates of commit 4f173dc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/MoodleInstructions.md
:white_check_mark:Succeeded

msteams-platform/concepts/connectors/connectors-creating.md
:white_check_mark:Succeeded

msteams-platform/concepts/tabs/tabs-requirements.md
:white_check_mark:Succeeded

msteams-platform/concepts/task-modules/task-modules-tabs.md
:white_check_mark:Succeeded

msteams-platform/get-started/app-studio-component-library.md
:white_check_mark:Succeeded

msteams-platform/publishing/apps-publish.md
:white_check_mark:Succeeded

msteams-platform/resources/design/framework/tabs.md
:white_check_mark:Succeeded

msteams-platform/resources/schema/manifest-schema.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add heuristic for choosing the "preferred" provider

The behavior of the heuristic is specified in #7.

Codecov Report

Merging #25 into master will increase coverage by 1.58%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master      #25      +/-   ##
============================================
+ Coverage     65.17%   66.75%   +1.58%
- Complexity      293      315      +22
============================================
  Files            44       44
  Lines          1760     1799      +39
  Branches        208      217       +9
============================================
+ Hits           1147     1201      +54
+ Misses          546      533      -13
+ Partials         67       65       -2

Impacted Files
Coverage Δ
Complexity Δ

api/java/org/openyolo/api/KnownProviders.java
94.28% <100%> (+0.73%)
11 <3> (+2)
:arrow_up:

api/java/org/openyolo/api/CredentialClient.java
65% <100%> (+25%)
29 <12> (+19)
:arrow_up:

...va/org/openyolo/api/ui/ProviderPickerActivity.java
52% <0%> (+1.33%)
7% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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


Is it possible to get Tern work for non-project files?

I want company-tern work in js-comint (JavaScript inferior buffer) too.
But I got error like this:
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  substring(nil 0)
  tern-project-relative-file()
  (cons 'name (tern-project-relative-file))
  (list '(type . "full") (cons 'text (buffer-string)) (cons 'name (tern-project-relative-file)))
  (cons (list '(type . "full") (cons 'text (buffer-string)) (cons 'name (tern-project-relative-file))) files)
  (setq files (cons (list '(type . "full") (cons 'text (buffer-string)) (cons 'name (tern-project-relative-file))) files))
  (cond ((not tern-buffer-is-dirty) (setq file-name (tern-project-relative-file))) ((and (not (eq mode :full-file)) (> (buffer-size) 8000)) (setq files (cons (tern-get-partial-file pos) files)) (setq file-name "#0") (setq pos (- pos (cdr (assq 'offset (car files)))))) (t (setq files (cons (list '(type . "full") (cons 'text (buffer-string)) (cons 'name (tern-project-relative-file))) files)) (setq file-name (tern-project-relative-file))))
  (let ((generation (setq tern-command-generation (1+ tern-command-generation))) (doc (list (cons 'query query))) (files (and (eq mode :full-file) (tern-modified-sibling-buffers))) file-name (pos pos)) (cond ((not tern-buffer-is-dirty) (setq file-name (tern-project-relative-file))) ((and (not (eq mode :full-file)) (> (buffer-size) 8000)) (setq files (cons (tern-get-partial-file pos) files)) (setq file-name "#0") (setq pos (- pos (cdr (assq 'offset (car files)))))) (t (setq files (cons (list '(type . "full") (cons 'text (buffer-string)) (cons 'name (tern-project-relative-file))) files)) (setq file-name (tern-project-relative-file)))) (if files (progn (setq doc (cons (cons 'files (apply #'vector files)) doc)))) (let* ((v (cons 'file file-name)) (v (assq 'query doc))) (setcdr v (cons v (cdr v)))) (let* ((v (cons 'end (1- pos))) (v (assq 'query doc))) (setcdr v (cons v (cdr v)))) (tern-run-request #'(lambda (err data) (if (< tern-activity-since-command generation) (progn (cond (... ... ...) (... ...))))) doc))
  tern-run-query
  company--begin-new()
  company--perform()
  company-auto-begin()
  company-idle-begin(#<buffer *js*> #<window 207 on init-my-prog-tools-container-docker.el> 218 218)
  timer-event-handler([t 22131 30701 536542 nil company-idle-begin (#<buffer *js*> #<window 207 on init-my-prog-tools-container-docker.el> 218 218) nil 586000])

Seems Tern need to check file is in a project.
Why Tern can't support general JS source code completion.

You can put .tern-config in your home directory. It's like a global fallback for .tern-project. Don't know if that helps.

I tried .tern-config in my home directory, but it still does not work.

I bind run-js to global keybinding, it seems will use current buffer's path, not set to home dir by default.
But after I tried to launch run-js in a buffer which is in home directory path, Still does not work.
I even tried to start run-js from a JS project path. still does not work.
WEIRD.

The Emacs mode was written with the assumption that the buffer corresponds to a file, in order to know where to spawn the server and such. It could be changed to remove that assumption, if someone spends the time on that, but I'm probably not going to do that myself.
Attached patch fixes the crash, landing you on the intentional error message "Buffer is not associated with a fle" instead

I see. Thanks.

I found a way to fake current buffer as a file.
Here is an advice for making flycheck work in org babel editing source code.
;; how to correctly enable flycheck in babel source blocks
(defadvice org-edit-src-code (around set-buffer-file-name activate compile)
  (let ((file-name (buffer-file-name)))
    ad-do-it
    (setq buffer-file-name file-name)))

Do you know how to adapt to this case?
If it work, I think it should add into tern.


No option found to logout of the Frank!Framework

Is your feature request related to a problem? Please describe.
I was experimenting with security roles in the Frank!Framework. I created multiple users with different roles. I wanted to logout to be able to login again with another user. I could only do so by clearing the history of my browser.
Describe the solution you'd like
At the top-right, I would like an "Account" link, like you see in other websites. It should have a logout option.
Describe alternatives you've considered
Support for the web address https://:8443/logout.
Additional context
Add any other context or screenshots about the feature request here.

If you are logged in the logout button appears

url should have been
/iaf/gui/#!/logout
Are you sure you logged in because you are working at your local environment

When I created this issue, I was working with the Frank!Runner, but I had edited web.xml to enable security. My way of working is in the Frank!Manual, see https://frank-manual.readthedocs.io/en/latest/deploying/security.html.

I have seen the logout page an login page work in all DTAP environments is this still an issue? @mhdirkse

For me it still does not work. I have this:

Niels can explain when the logout is available and when not so you can document it.


Can you merge latest version of https://github.com/Uncodin/bypass to this branch?

There are issues fixed in the latest version https://github.com/Uncodin/bypass. can you please merge the same?

Hi there, this library was built off of commit SHA b0e33f9b9dce33a128ab6e9ab895ffbea518c878  of Bypass. The only commit since then has been geared toward fixing line breaks on iOS. There have been no commits since then. Do you see something that I do not?


Fix chart legend formats

Having the same static string for many graph series is not
very helpful as you can't tell the source instance when you
spot an anomaly in the graph.
Let's format the legend with instance and device for metrics
that are not dependent on by template parameter.
For metrics that change the grouping based on the by template
parameter we just use empty legend format since the tags that
generate series in the graph vary. With empty legend format,
Grafana includes all the information needed using its default
format.

This MR only changes one of the templates, but we probably need to update all of them. Is that correct?

@martin-sucha I don't mind merging it, but this change is for a specific dashboard for scylla 2.0.
Syclla monitoring latest does not update those dashboards.
Later releases uses a template dashboard system and this issue was resolved.

I updated the 2.0 dashboard as that's the one I've been using and didn't notice the newer ones don't have such problem. I'll try using the newer ones then. If this is a known bug and was already fixed in the newer dashboards, why keep the old dashboards if they are not updated with bugfixes?
It wasn't obvious to me how the dashboards are generated. Could you please update the README so that it's clear how the dashboards are generated and where outside contributors should look first when adding changes?

You need to use the same version as your scylla version, so if you are using Scylla 2.0, use the 2.0 dashboards.
Just to be clear, this is different than the Scylla Monitoring version (current 2.2 and 2.3 will be released soon).
If you are using Scylla version 2.3 or 3.0, you probably upgrade to the latest Scylla Monitoring, we keep on improving it and adding new dashboards and functionality.
There is a wiki page about updating the dashboard here:
https://github.com/scylladb/scylla-grafana-monitoring/wiki/Updating-a-dashboard-for-fun-and-profit
And we are in a process of adding it to the documentation as part of the monitoring docs:
https://docs.scylladb.com/operating-scylla/monitoring/

BTW why not just clear all the legendFormat? I'm not sure it would look when using aggregation

Closing


Missing getTimestamp method in ExaIterator

Background
When testing version 1.0.0 in the exaudfclient we got the following error message during build of the exaudfclient jar.

ExaIteratorImpl.java:484: error: method does not override or implement a method from a supertype

This concerns the following method. It seems to be missing in https://github.com/exasol/udf-api-java/blob/main/src/main/java/com/exasol/ExaIterator.java#L331

@Override
public Timestamp getTimestamp(int column) throws ExaIterationException, ExaDataTypeException {

see following Github Action run https://github.com/exasol/script-languages/actions/runs/3444958299/jobs/5748126388

Closed with #17.


Add LittleFS as a new filesystem option

This brings in initial LittleFS code from the upstream repo, sha 1863dc7883d82bd6ca79faa164b65341064d1c16, and adds full metadata and glue code to use it with the standard fs/fs interface.
Also updated sys/config and apps/slinky to allow it be used as a backend for config.
All fs/fs interfaces were tested on the frdm-k82f BSP with an FS test app that I will submit in another PR after some clean up.
PS: I am aware I left some TODO or XXX in the code, and I'd prefer to leave them there for now.

also, I wonder if when this is merge should we deprecate nffs (and remove it eventually)

also, I wonder if when this is merge should we deprecate nffs (and remove it eventually)

I would not go that far at least for this next release, and thanks for the review btw, I will fix the issues soon.

@sjanc @andrzej-kaczmarek I believe all issues were addressed, just need to merge #2526 go get it passing (as well as all other PRs opened today!).


Fix comment of M_180_PI

I fixed comment of M_180_PI. Should I update CHANGELOG.md?
// calculated using golang
180 * pi :<PHONE_NUMBER>461628
180 / pi : 57.29577951308232

 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.

Thanks for the fix! I don't think a CHANGELOG entry is needed on this one, since it doesn't change anything consumer-facing.

Coverage remained the same at 98.717% when pulling ddb2e0137c61073e9c1a7972f9ae40a230a452c5 on isbang:master into 961ea595db0ac780076e297e997654817c255ff1 on uber:master.

Thanks for the fix! I don't think a CHANGELOG entry is needed on this one, since it doesn't change anything consumer-facing.

That's also what I did in a recent comment and test-only change.


problem on how to get prediction info in dist_test.py

Thanks for your excellent work. I read your code with long time. and maybe my ability of code is not good. i can't not find test data prediction information like heatmap, dim, rot, vel in dist_test.py.  Could you tell me how to get these info if i train model and test my data in dist_test.py.? thanks again.

they are combined into a rotated box here https://github.com/tianweiy/CenterPoint/blob/8fcdc944bbb455bd25943b331aaf961aa0ab32cd/det3d/models/bbox_heads/center_head.py#L451
you can retrieve individual values before this func


LiveStream crash after a certain period (10 sec - several minutes)

I have been experiencing crashes on my Android phone (running in Chrome, tested on 2 seperate devices) whilst running the livestream example on the quaggaJS-site.
If I just leave my phone on the table for about one minute it would crash the page. It seems to crash sooner if the livestream is totally black (camera placed against the table). I suspect that it keeps using up more memory and then eventually crashes.
Black livestream : about 30s
Mixed livestream: up to five minutes

I too experience this occasionally. It's weird how it's triggered, because it works longer the more detections are done. I did some investigating of the memory space and it looks like there might be a leak in the frame buffer. I'm getting hounded to release so I can't dive into profiling it right now, but it definitely causes issues such as crashing to the launcher on Firefox mobile.

hey @gelliott181 , even i experienced the chrome crash after running the scanner continuously for few minutes, looks to me like this is not sporadic. so have you had any break-through on this issue ?

Yeah, I'm aware that the default configuration is not optimal for running on mobile devices. With the next release I'll be reducing the frequency configuration to 5 frames per second, and numOfWorkers to 2 which, both, is still sufficient for the 99% case. Could you try if those settings would also make sense for you?

Hey @serratus , i havent tried with reduced frequecny, but i did try with lesser workers process and the result was still the same.
When i posted my previous comment i was working on prototype which would make use of your barcode scanner, but now that project is suspended, so i dont think i would be able to test with the sample config what your have provided.

Anyone still having issues with this? I don't believe I've seen it, and I've left quagga open for quite a while on my phone.

@ericblade Im getting this on an old android tablet with chrome. If I open scanner with it pointed at a barcode its fine. If I waive it around the room it crashes in 3-5seconds. I paused the debugger at onProcessed and the camera stayed open indefinitely.

@ryanmagits hmm.  how old is old?  i wonder if it's just something that may not be fixable in older chrome implementations .. might try my fork of the lib, https://github.com/ericblade/quagga2 and see if it still does it there?


Update hardware support docs

LGTM

closing this, since source codes have not been cherry-picked to 2.6 branch.


Attack-Parsing leads to empty attacks

[x] Check the string separation

Fixed by only sending attackgroups (attacks separated by "or") for ranged or melee attacks when available and not all the time.


Phython3 compatibility?

Is there any intention of updating this for python3 compatibility fir the new version of Indigo?

No, it's been replaced by https://forums.indigodomo.com/viewforum.php?f=366


use tabs whitespace for output files

Thanks for building this; saving me hours in our project's 1900+ tests
Our project uses tabs for indentation; hence running the codemod command causes tons of linting errors.
Could you point me to what files I should reindent to avoid this? I can add a caveat to the main README too.

@efx you should be able to call jscodeshift with --printOptions as described here, but instead of setting the quote option you use useTabs

awesome, thanks! That resolved most of it but still seeing an indentation error for the newly inserted setupTest. I'll dig into it.


[Bug]: "Add to Steam" removing user's added non-Steam games

Affected Version
1.73.3 Preview
Bug Behavior
If you had some custom non-Steam shortcuts added to Steam, using Collapse's "Add to Steam" will sometimes get rid of your own custom non-Steam shortcuts.
Expected Behavior
It no do that
Steps to reproduce

Add some non-Steam apps/games
Customize the shortcuts with custom icons/artworks (this step may be necessary to replicate the bug)
Close Steam, then start Collapse
Use "Add to Steam" on any of the games
Close Collapse, then start Steam

Related Issues
No response
Screenshot(s)
Here are my Steam's shortcuts.vdf file before and after using Collapse's "Add to Steam"
shortcuts.vdf.zip
Here's the relevant Collapse's log, though I don't see anything of particular interests in it to be honest
log-2024-02-12-pre1.73.3-id1.log
Additional Information
Originally reported in a Discussion https://github.com/orgs/CollapseLauncher/discussions/397, moved over here as it's indeed more appropriate
cc @gablm

I seem to have found the problem.
Assumed the LastPlayTime field always ended with a \x00, which is not actually the case.
(why can't Valve just use a .json file or any well documented file type...)
Would you mind downloading this build and test if it fixes the problem?
https://nightly.link/CollapseLauncher/Collapse/actions/runs/7873277772/collapse_x64-Release_net8.0-windows10.0.22621.0_16378a39f42e3f1fbe52b392405bf7840c8c61e4.zip
You can unzip it anywhere you like and just need the run the CollapseLauncher.exe executable to start Collapse.

@gablm Hi there, just gave that build a spin, unfortunately it still seems to have some issues.
Attached below are 3 different shortcuts.vdf files in separate folders describing their states:
shortcuts.vdf.zip
In shortcuts file no. 2, I can "visually" confirm that my custom non-Steam game shortcuts still exist after using that build's "Add to Steam" (as in I can see mentions of the EXE path and such). But after launching Steam, it seems some of those games are not displayed in Steam app's Library (specifically 7zFM.exe and Notepad3.exe, but also the build's own game shortcuts).
I suspect they became malformed and such, because after adding another non-Steam game to Steam, the shortcuts file gets rebuild with all those non-displaying shortcuts being removed, as can be seen in shortcuts file no. 3.

Hello again!
Can you try this build and let me know if you still encounter any issues?
https://nightly.link/CollapseLauncher/Collapse/actions/runs/7880824759/collapse_x64-Release_net8.0-windows10.0.22621.0_000b89e1883b36f29674eaa7758097426e8a6bdd.zip

@gablm Did quite a bit of testing, with unrelated non-steam shortcuts and categories, and so far I can confirm that build works properly 🎉


Update Integration test AccountLockEnabledTestCase and ChallengeQuestionManagementAdminServiceTestCase

This PR contains updated integration tests of

AccountLockEnabledTestCase
ChallengeQuestionManagementAdminServiceTestCase

Before merge this PR, merge the following PR
:bulb:  https://github.com/wso2/carbon-identity-framework/pull/3634
Related issue - https://github.com/wso2/product-is/issues/12163

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/1116458013

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/1116458013
Status: success


getURI() in EurekaServiceInstance misses custom contextPath.

I have several Spring Boot Apps with REST endpoints with custom server.contextPath's
which use @EnableDiscoveryClient to register themselves in the eureka service registry.
The applications are registered with eureka at startup and later queried
by a management application. I just found out that the URIs returned by
org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient.EurekaServiceInstance.getUri()

only contain scheme,hostname and port but no custom context-path.
The URIs were returned by discoveryClient.getInstances(serviceId) where
discoveryClient is an EurekaDiscoveryClient.
The URI one gets via
public URI getUri() {
  return DefaultServiceInstance.getUri(this);
}

looks like:
http://localhost:8761

The proper URI would be:
http://localhost:8761/mycontextpath/

I fixed tested this by locally shadowing the org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient and replacing the body of the URI getUri() method with:
@Override
public URI getUri() {

  //HACK to get proper URI with context-path back
  //return DefaultServiceInstance.getUri(this);
  return URI.create(this.instance.getHomePageUrl());
}

With that adjustment the org.springframework.cloud.client.ServiceInstance that I got back
returned the proper service URIs.
I think the op of the issue #500 has the same problem.
Another Problem was that I needed to explicitly declare a
@Bean
public EurekaInstanceConfig eurekaConfigBean() {
  return new EurekaInstanceConfigBean();
}

in order to get custom eureka instance settings in an applications.yml file taken into account at
all but I guess that's for another issue ;-)
server:
  port: 9999
  context-path: /admin
...
eureka:
  instance:
    statusPageUrlPath: /admin/manage/info
    homePageUrlPath: /admin/
    healthCheckUrlPath: /admin/manage/health
    non-secure-port: ${server.port:9999}
    ...

Hi,
When will it be available to download?

@ofbizbrazil it hasn't been done, until it has, it won't be available to download.

@spencergibb,
My applications have context-path at uri, is there any workaround until this is done?

https://github.com/spring-cloud/spring-cloud-netflix/issues/737#issue-123043546

Hi @spencergibb, of course i saw that comment, but my doubt is how to apply this 'locally shadowing' mentioned in there.
I guess the spring package was patched to overwrite the class EurekaDiscoveryClient. Do you know how to do it?

Hi @ofbizbrazil,
(as a quick hack) just copy the org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient in your local source folder (e.g. src/main/java) with the same package structure and change the method in question as described.
Your classes take precedence over classes from additional libraries.
Cheers,
Thomas

That's I was afraid of, doing a patch into my project to handle the class EurekaDiscoveryClient.

Yep - same here - I just used this to verify what a potential solution might be... ;-)

What's the use case? Why do you need this?

Nowadays we are limiting an application to only use a root context, and if I want to change the context-path to a different name, EurekaDiscoveryClient simply does work and nobody will know about it.
So, in my opinion that's a critical issue, taking in mind Spring Netflix just works for a specific URI.

I guess I think it's strange that you would change the context of a service and not expect clients to change. This has been marked as Help Wanted . Pull requests are welcome.

My micro-service uses a context-path and the clients which uses it really works fine.
The issue here is EurekaDiscoveryClient does support context-path when the method getUri() builds the URI. There should be the property contextPath in EurekaServiceInstance to allow this resource.

@spencergibb I wanted to do a fix on this fella the other day
When I modified the EurekaDiscoveryClient.getUri to what @thomasdarimont suggested, DiscoveryClientConfigServiceAutoConfigurationTests fails on onWhenRequested because
DiscoveryClientConfigServiceBootstrapConfiguration sets the homePage as follows
private String getHomePage(ServiceInstance server) {
        return server.getUri().toString() + "/";
 }

So, I think if it is decided to change the EurekaDiscoveryClient.getUri, to modify in spring-cloud-config the homePage

Hi,
I ran into the same problem and looks like the current implementation assumes that no two eureka clients  will be deployed in a single web container . For example , you cant have 2 springboot eureka client apps deployed as WAR files in a single tomcat container.

is ther any news about this matter?

is ther any news about this matter?

Is this still the case? I´m running in to this problem at the moment using the default ribbon configuration.

I am curious. Has there been any update to this issue? Thanks!

No update. It's not high on our priorities since it can be done with properties. Pull requests welcome.

Use case for this issue:
We have a java application deployed on Tomcat with a context root. The urls look like '/myapp/url_path_in_the_application.
Now we have also deploy the application in on Docker. Now the urls are the same, but without the context root '/myapp', so only '/url_path_in_the_application'.
We are looking for a way that we can register the old version with context root '/myapp' and the new version with '/' as context root.
For the client the invocation is easy base_url + '/url_path_in_the_application'.
Base_url is created based on the registration in Eureka.

@cbos the exact same problem,any suggestions for now?

We fixed the issue ourselves, as we did register the services ourselves to Eureka. So we added the context path as setting to the metadata.
In this specific situation we did not use the default eureka client, so we were able to read that context path setting and use that in the request as well.
In the default setup it is hard to fix it yourself.

@cbos How did you register your service manually with custom context-path?

We have our own client which registers the service to Eureka. With that we add teh context-path in the metadata.

@cbos could you please provide any code snippet you used in your client to register context path?

Hi @spencergibb,
Thank you for your insights! So i'n my case we are running multiple services in a single weblogic container and they all need different context paths. The port number is also fixed, so that's not an option.
You mentioned that this can be changed with properties? I have looked into the home page url properties and tried every combination I could think of with no luck.

Hi @spencergibb,
I too face the same issue as @slientFred. It would be great if you could provide us some insights on this issue.
I have tried the following as of now and it has failed:

turbine.istance-url-suffix. together with turbine.cluster-config
Setting eureka.instance.metadataMap.management.context-path and eureka.instance.home-page-url-path the same values as the microservices properties.

The context path is not added to the hystrix stream url, it's still http://host:port/hystrix.stream, it isn't http://host:port/context-path/hystrix.stream
As @silentFred addressed, the host and the port are same for all the microservice while the context paths are different.
Note: The microservice, turbine-app are deployed in weblogic 12c and the eureka server is running in tomcat.

@kasibkismath you are the first to mention turbine, so I'm not sure if it's the same issue.

@spencergibb, since I have the context path added to each microservice's weblogic.xml, the hystrix dashboard is accessible through http://host:port/context-path/hystrix.stream, whereas nextflix turbine listens for http://host:port/hystrix.stream - without the context path, by default.
Therefore, I should make netflix turbine listen with the microservices context path or else the microservices should use the root context path, the latter wouldn't be possible with weblogic because all the microservices will be running on the same host and port but the context path is different.
Hope you get my question right.

@kasibkismath I think I understand, it is just different than the current issue.

Agree. In general though, it has proven very difficult to use all the spring cloud components on services that have context roots. We also have yet to figure out how we will get turbine and co. to work

@spencergibb, yes, it's a different issue but the underlying issue is due to the context path not being added. @silentFred hope that the context path issue would be fixed soon, so that all comes together.

looked at @thomasdarimont Hack!!! wondering if that can be included in source code and published as new jar files

...btw. was asked about that a month ago on [twitter] (https://twitter.com/cmptrwizard/status/872443692962992130)
...turns out one also needs to take care about the context-path when using ribbon, a PoC for this can be found here.

Part of the issue is this goes beyond just eureka and would have to be changed in other discovery clients as well.

@spencergibb yep! We ended up abusing the homePageUrl config to cater for contexts in Zuul and other clients that use ribbon. Not all that pretty =(
With some inspiration from @thomasdarimont I managed to put together something that worked for me:
http://webler.co.za/blog/spring-cloud-web-context-root-aware-zuul-eureka-service-calls-code-bit/
http://webler.co.za/blog/spring-cloud-web-context-aware-feign-clients-using-eureka-service-discovery-code-bit/

It's all or nothing and doing "all" is a big effort.

@silentFred when I go to the link I get 403 error.

@silentFred Can you please check for the Autowired block in http://webler.co.za/blog/spring-cloud-web-context-root-aware-zuul-eureka-service-calls-code-bit/ ? I am getting error in that

@rax215 @kasibkismath the pages load fine for me...
`@Bean
@Primary
public RibbonRoutingFilter ribbonRoutingFilter(ProxyRequestHelper helper,
RibbonCommandFactory<?>; ribbonCommandFactory,
LoadBalancerClient loadBalancerClient) {
return new ContextAwareRibbonRoutingFilter(helper, ribbonCommandFactory, loadBalancerClient);

}`

@silentFred Sorry for the confusion, I meant Autowired block of "ContextAwareRibbonRoutingFilter" class.
`public ContextAwareRibbonRoutingFilter(
ProxyRequestHelper helper,
RibbonCommandFactory<?>; ribbonCommandFactory,
LoadBalancerClient loadBalancerClient) {
    super(helper, ribbonCommandFactory);`

The semicolon after RibbonCommandFactory<?>;, is it correct? and the attributes in super() are throwing error for me.

@rax215 It looks like a typo. Remove that semicolon. Not too sure why super() is throwing errors

@kasibkismath for the context-path with Turbine issue you have raised, PFB my finding and the fix worked for me.

The service discovery approach can be plugged-into Turbine with the following property.
InstanceDiscovery.impl=....
https://github.com/Netflix/Turbine/wiki/Plugging-in-your-own-InstanceDiscovery-(1.x)

Spring cloud's implementation for this is based on 'Eureka discovery' and implemented in EurekaInstanceDiscovery class.

So that I have extended the spring EurekaInstanceDiscovery class to provide context-path as well.

Had to use same package as Spring org.springframework.cloud.netflix.turbine for my subclass in order to override a package-private method (i.e. just to avoid overriding entire thing.)

PoC here.

@fahimfarookme it works perfectly as expected.
There are few gotchas as you have mentioned, however, what is the overall impact since we are extending EurekaInstanceDiscovery, which is a class of spring-cloud-netflix-turbine, considering the fact that at a later point of time we will be upgrading netflix-turbine as well.

@kasibkismath This solution is only for the Turbine issue you have raised. This is the standard way of providing custom discovery mechanism for Turbine. Will have upgradability concern only for  Turbine, however safer than extending Eureka server or client related classes - if everything else works fine for you.

Is anyone already working on this issue? I don't want to step on toes.

i have some idea to  avoid this problem
this my code
`@LoadBalanced
@Bean
public RestTemplate getRestTemplate()
{
RestTemplate restTemplate = new RestTemplate();
List interceptors = new ArrayList<>();
interceptors.add(new EurekaContextPathInterceptor());
restTemplate.setInterceptors(interceptors);
return restTemplate;
}
public static class EurekaContextPathInterceptor implements ClientHttpRequestInterceptor
{

    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
        throws IOException
    {
        return execution.execute(new EurekaContextPathHttpRequestWrapper(request), body);
    }

}

public static class EurekaContextPathHttpRequestWrapper extends HttpRequestWrapper
{
    private URI original;

    public EurekaContextPathHttpRequestWrapper(HttpRequest request)
    {
        super(request);
        original = request.getURI();
    }

    @Override
    public URI getURI()
    {
        URI newURI = null;
        try
        {
            String scheme = original.getScheme();

            if(StringUtils.isEmpty(scheme)){
                scheme = "";
            }

            StringBuilder sb = new StringBuilder();
            sb.append(scheme).append("://");
            if (StringUtils.isEmpty(original.getRawUserInfo()))
            {
                sb.append(original.getRawUserInfo()).append("@");
            }
            sb.append(original.getHost()).append("/").append(original.getHost());
            sb.append(original.getRawPath());
            if (StringUtils.isEmpty(original.getRawQuery()))
            {
                sb.append("?").append(original.getRawQuery());
            }
            if (StringUtils.isEmpty(original.getRawFragment()))
            {
                sb.append("#").append(original.getRawFragment());
            }
            newURI = new URI(sb.toString());
        }
        catch (URISyntaxException e)
        {
        }
        return newURI;
    }
}`

i have some other way to solve this problem but it is bad and  case another problem,this is contextPath must be same with applicationname.
my code
`@LoadBalanced
@Bean
public RestTemplate getRestTemplate()
{
RestTemplate restTemplate = new RestTemplate();
List interceptors = new ArrayList<>();
interceptors.add(new EurekaContextPathInterceptor());
restTemplate.setInterceptors(interceptors);
return restTemplate;
}
public static class EurekaContextPathInterceptor implements ClientHttpRequestInterceptor
{

    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
        throws IOException
    {
        return execution.execute(new EurekaContextPathHttpRequestWrapper(request), body);
    }

}

public static class EurekaContextPathHttpRequestWrapper extends HttpRequestWrapper
{
    private URI original;

    public EurekaContextPathHttpRequestWrapper(HttpRequest request)
    {
        super(request);
        original = request.getURI();
    }

    @Override
    public URI getURI()
    {
        URI newURI = null;
        try
        {
            String scheme = original.getScheme();

            if(StringUtils.isEmpty(scheme)){
                scheme = "";
            }

            StringBuilder sb = new StringBuilder();
            sb.append(scheme).append("://");

            sb.append(original.getHost()).append("/").append(original.getHost());
            sb.append(original.getRawPath());
            if (!StringUtils.isEmpty(original.getRawQuery()))
            {
                sb.append("?").append(original.getRawQuery());
            }
            if (!StringUtils.isEmpty(original.getRawFragment()))
            {
                sb.append("#").append(original.getRawFragment());
            }
            newURI = new URI(sb.toString());
        }
        catch (URISyntaxException e)
        {
        }
        return newURI;
    }
}`

I have requirement to publish Boot Microservices with context path. How we can solve the problem? Eureka does not register the App with Context Path

I don't know if this code will stioll work on later version but give this a
shot:
http://webler.co.za/blog/spring-cloud-web-context-root-aware-zuul-eureka-service-calls-code-bit/
On Sat, 30 Dec 2017 at 01:38 dsushil2000<EMAIL_ADDRESS>wrote:

I have requirement to publish Boot Microservices with context path. How we
can solve the problem? Eureka does not register the App with Context Path
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spring-cloud/spring-cloud-netflix/issues/737#issuecomment-354513011,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABenf5974A6boiGaumxxXYYpi0jTqIILks5tFXfegaJpZM4G4gMt
.

I think that there is still a lot of interest in this feature and I also want to present a problem that we are currently facing.
Example: Dynamic microservice architecture using TLS/SSL secured endpoints only with no need for an wildcard certificate.
Solutions:

Context-path based routing
Creating an certificate containing all SANs of all microservices (not really dynamic)

Downside of context-path based routing with current EUREKA implementation:
Context paths must be added to all inter-service API calls if before sub-domain based routing was used.
=> Support for context paths would really help here
Downside SANs:
One has to add a new SAN to the certificate all the time a new microservice is added

@jrauschenbusch For me, this behavior seems like a huge design bug with Spring Cloud in general (not just Eureka). One of the founding design concepts of Java Servlets, and web development in general, was the ability to be deployed anywhere under any context, and have the application behave the same. It shouldn't matter if we "make war" instead of jar, deploy as root or with a custom context, nor even if the different instances have different contexts. This was the main appeal of Servlets, and the reason why so many companies (many on windows) decided to adopt it.

Has there been any update on this issue? I am facing the same issues mentioned above.

I have a workaround for the edgeware release train if you are looking to
expose your services via zuul. For service to service calls we've had to
add the context to the service name in our load balanced clients ie.
http://some-service-name/some-context
There is a way you can override ribbon behaviour to take care of this for
you that i have lying around somewhere if anyone is interested.
On Wed, 10 Oct 2018, 06:36 Christopher Hagler<EMAIL_ADDRESS>wrote:

Has there been any update on this issue? I am facing the same issues
mentioned above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spring-cloud/spring-cloud-netflix/issues/737#issuecomment-428434979,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABenf6H3VTIxTGWjLKBQKUIDPE9_gR3Oks5ujXkpgaJpZM4G4gMt
.

This is something we've avoided in the past and are not looking to implement this at this time.

I just bumped into this bu^H^Hfeature today. Is there a reason why this couldn't be fixed by used the specified homePageUrl/homePageUrlPath in Eureka? Would this break some other functionality? Most of our services unfortunately have a context path and are not served on '/', so this makes it a little harder to use the default Eureka client (I would rather use the default instead of supporting my own).

We've decided as a team not to support this.

You can pass the custom context-path into the instance metadata-map
eureka:
   instance:
      metadata-map:
         contextPath: ${server.servlet.context-path}

and access the value by calling
String url = instance.getUri() + instance.getMetadata().get("contextPath");


feat: s2s auth iam engine

Description
Adding IAM engine to the main module. It is also the new default behavior. Not sure if this should qualify for a major release.
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[x] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline


Fix documentation of missing input file workaround

Cherry picks https://github.com/gradle/gradle/pull/20685 into release

@bot-gradle test and merge

OK, I've already triggered a build for you.


error CS1061: “AppBuilder”未包含“UseXamlDisplay”的定义，并且找不到可接受第一个“AppBuilder”类型参数的可访问扩展方法“UseXamlDisplay”(是否缺少 using 指令或程序集引用?)

已经安装了ShowMeTheXaml，编译提示：
error CS1061: “AppBuilder”未包含“UseXamlDisplay”的定义，并且找不到可接受第一个“AppBuilder”类型参数的可访问扩展方法“UseXamlDisplay”(是否缺少 using 指令或程序集引用?)

Also got this after the 11.1 update, as workaround you can revert back to version 1.4.1

Thank you for your suggestion.

I commented UseXamlDisplay() and it compiles successfully, is there a better solution?

I commented UseXamlDisplay() and it compiles successfully, is there a better solution?

Also got this after the 11.1 update, as workaround you can revert back to version 1.4.1

Its worked

reproduce this issue today, update ShowMeTheXaml package to 1.5.1 or above will solve the issue.

should be fixed in latest beta5 nuget package


Move Raft command types to own file

Looking for comment, and approval to merge, from the team.

I'm not sure this make it more clear. Previously the commands were next to the functions that processed them. I'll defer to @pauldix though.

@benbjohnson -- you may be right. In that case, I think I need to scan through the file to make sure there is consistency, some places may not quite be adhering to that convention. If that helps, I'm up for that too. But this file is beginning to feel like a wall of source code. :-)
Definitely looking for consensus here.

I think I like the idea of having the commands in their own file. Server is getting a bit unwieldy and this will help a bit. I feel like Sublime hates me when I open up a 3k line file.

I'm always a fan of more files than less, so +1 from me!

You missed your calling as a Java programmer then, @corylanou :-)

+1 from @toddboom

Closing this and will re-do.


uglifyjs failed: SyntaxError: Unexpected token: operator (>)

Short description of the problem:
when doing ionic build, uglify complains about syntax error.

uglifyjs failed: SyntaxError: Unexpected token: operator (>)

tracing back, i found the generated www/build/main.js file keeps the operator (>) from main.prod.ts as part of the build instead of the main.prod.js file in the ./tmp folder. suspect if it is ngc related, because ionic serve (with transpile) does generate the appropriate main.js file without operator (>)
src/main.prod.ts file is as follows:
import { platformBrowser } from '@angular/platform-browser';
import { enableProdMode } from '@angular/core';

import { AppModuleNgFactory } from './app.module.ngfactory';

import { init } from './impl/parse';

// parse init
init();

//config
console.log('ParseUtil config refresh started...');
Parse.Config.get().then(config=>{
  console.log('ParseUtil config refresh completed.');
  enableProdMode();
  platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
},error=>{
  if (error.code == 209) {
    // invalid session token
    alert('USER SESSION ERROR! Please try again later!');
    Parse.User.logOut();
  } else {
    alert('SERVICE CONNECTION ERROR! Please try again later!');
  }
});

./tmp/app/main.prod.js file is as follows (without > operator):
import { platformBrowser } from '@angular/platform-browser';
import { enableProdMode } from '@angular/core';
import { AppModuleNgFactory } from './app.module.ngfactory';
import { init } from './impl/parse';
// parse init
init();
//config
console.log('ParseUtil config refresh started...');
Parse.Config.get().then(function (config) {
    console.log('ParseUtil config refresh completed.');
    enableProdMode();
    platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
}, function (error) {
    if (error.code == 209) {
        // invalid session token
        alert('USER SESSION ERROR! Please try again later!');
        Parse.User.logOut();
    }
    else {
        alert('SERVICE CONNECTION ERROR! Please try again later!');
    }
});

www/build/main.js is as follows (with the > operator):
var AppModuleNgFactory = new NgModuleFactory(AppModuleInjector, AppModule);

// parse init
init();

//config
console.log('ParseUtil config refresh started...');
Parse.Config.get().then(config=>{
  console.log('ParseUtil config refresh completed.');
  enableProdMode();
  platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
},error=>{
  if (error.code == 209) {
    // invalid session token
    alert('USER SESSION ERROR! Please try again later!');
    Parse.User.logOut();
  } else {
    alert('SERVICE CONNECTION ERROR! Please try again later!');
  }
});

What behavior are you expecting?
main.js is generated properly and uglify processed the main.js file as part of the build.
Steps to reproduce:

write a customized src/main.prod.ts in es6 syntax
ionic build

Which @ionic/app-scripts version are you using?
0.0.36
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
Your system information:
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.1
Ionic App Lib Version: 2.1.1
Ionic App Scripts Version: 0.0.36
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Mac OS X El Capitan
Node Version: v6.6.0
Xcode version: Xcode 7.3.1 Build version 7D1014

@alamusi,
Can you post your tsconfig in here?
Thanks,
Dan

@danbucholtz sure thing. see below. should be the same one after RC0 update.
{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "declaration": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "dom",
      "es2015"
    ],
    "module": "es2015",
    "moduleResolution": "node",
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}

@alamusi,
Hmm, that is strange. Can you give us a repo with a recreation of this? We'll look into.
Thanks,
Dan

@danbucholtz
it is indeed strange and happened after RC1 update. my repo is too big. i have to create something smaller. let me see what i can do.
thanks,
alamusi

@alamusi,
Sounds good. I was almost certain you were going to be using Typescript 2.1 and using a target of es2015 instead of es5. I am a little stumped by this one, so if you can reproduce it, it'd be very helpful.
Thanks,
Dan

@danbucholtz
I thought the same and scratched my head on why this happened too.
ionic serve (with transpile) worked as expected and generated everything in es5. while ionic build (with ngc) generated everything else in es5, except the main.prod. that got me suspecting whether this had anything to do with ngc or its config.
thanks
alamusi

@alamusi,
Any update on this?
Thanks,
Dan

@danbucholtz
my apologies for taking so long. this week has been... chaotic
here is a repo that can reproduce the issue.
https://github.com/alamusi/issue190
as described above, i modified the main.dev.ts and main.prod.ts with es6 syntax. this is where the file was NOT compiled to es5, when issue the build command (works fine with serve).
of course, i used a setTimeout, which the error appears to be slightly different (same result as issue 206)
Alamusis-MacBook-Pro:issue190 alamusi$ ionic build

Running 'build:before' npm script before build

> homes51@ build /Users/alamusi/git/issue190
> ionic-app-scripts build

[00:54:34]  ionic-app-scripts 0.0.36
[00:54:34]  build prod started ...
[00:54:34]  clean started ...
[00:54:34]  clean finished in 6 ms
[00:54:34]  copy started ...
[00:54:34]  ngc started ...
[00:54:34]  copy finished in 100 ms
[00:54:35]  lint started ...
[00:54:36]  lint finished in 1.28 s
[00:54:47]  ngc finished in 12.60 s
[00:54:47]  bundle started ...
[00:54:54]  bundle finished in 6.86 s
[00:54:54]  uglifyjs started ...
[00:54:54]  sass started ...
JS_Parse_Error {
  message: 'SyntaxError: Unexpected token: punc ())',
  filename: '/Users/alamusi/git/issue190/www/build/main.js',
  line: 69258,
  col: 12,
  pos: 2644743,
  stack: 'Error\n    at new JS_Parse_Error (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1545:18)\n    at js_error (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1553:11)\n    at croak (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2092:9)\n    at token_error (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2100:9)\n    at unexpected (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2106:9)\n    at expr_atom (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2621:13)\n    at maybe_unary (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2795:19)\n    at expr_ops (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2830:24)\n    at maybe_conditional (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2835:20)\n    at maybe_assign (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2859:20)\n    at expression (eval at <anonymous> (/Users/alamusi/git/issue190/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2878:20)' }
[00:54:55]  uglifyjs failed: SyntaxError: Unexpected token: punc ())
[00:54:55]  ionic-app-script task: "build"
[00:54:55]  Error: SyntaxError: Unexpected token: punc ())

Hello! I am going to be closing this one as a duplicate of https://github.com/driftyco/ionic-app-scripts/issues/239. Thanks!


Objet into text

Hi !
I have two little questions.
Can we use an object array into x and y coordinates ? I made an array that contains :
[x: 0, y: 1, h: 1.5, align: "c"]
align : "c"
h : 1.5
x : 0
y : 1

The type of it is an object, but it's ignored. I want this to auto-increment y for each line.
And the code is :
slide.addText( [ { text: $(str).text(), options:tagsstyle }, ], {coordinates} );
Where coordinates contains x, y, h and align. If I use something like {x:0.0, y:1, h:1.5, align:'c'} it's ok but not with an array.
And, can we do something like :
slide.addText(ppt)
Where ppt contains :
ppt[w] = { 	[text: $(str).text()],  	[options:taggstyle] };
taggstyle contains : [y: 6, align: "c", breakLine: true]
This works with :
slide.addText( 					[ 						{ text: $(str).text(), options:tagsstyle}, 					]						 				);
The returned type is always an Object but I have this error :

pptxgen.js:3578 Uncaught TypeError: Cannot read property 'split' of undefined
at pptxgen.js:3578
at Array.forEach ()
at genXmlTextBody (pptxgen.js:3565)
at pptxgen.js:1004
at Array.forEach ()
at Object.slideObjectToXml (pptxgen.js:667)
at makeXmlSlide (pptxgen.js:4037)
at doExportPresentation (pptxgen.js:1669)
at PptxGenJS.save (pptxgen.js:4407)

I'm doing an html to pptx converter. Actually I can generate the pptx but all lines are superimposed.
Thank you! :+1:

Hi @SylarVolkoff,
Thanks for the feedback.
The API only works as shown in the example and in the README files.
Regarding the error: ensure you're passing a valid string in the text option to avoid split errors, etc.
To auto-increment text you need your own loop, the library wont automate that type of thing.
var arrY = [1,2,3,4,5];
arrY.forEach(function(yVal,idx){
  slide.addText( "yVal:"+idx, {x:1, y:yVal} );
});

Hi @gitbrent ,
I inspired myself with your example and you solve 3 problems I have with your 4 lines :rofl:.
To the error, I was only passing text, but I resolve it with the example you send.
Thank you !


Make paths configurable

Thanks for adding this. Can you modify it so Application.get_env doesn't appear in the template, and we call Application.get_env from the .ex file instead?

Does putting it in Util like this work for you?

@TheFirstAvenger done

Hey @mayel thank you so much for your PR. Can you please rebase with main?


Add coverage test for ossl_rsa_sp800_56b_derive_params_from_pq

This test runs the error path for the above function.

Checklist

[ ] documentation is added or updated
[x] tests are added or updated

24 hours has passed since 'approval: done' was set, but this PR has failing CI tests.  Once the tests pass it will get moved to 'approval: ready to merge' automatically, alternatively please review and set the label manually.

Merged to master branch. Thank you for your contribution!


Show more information on cluster worker ipc "Pipe"

First off, this module is very helpful, thanks!
One of the last issues I just had to track down was that I wasn't aware that one needs to call cluster.worker.disconnect() for cluster workers to exit cleanly (I thought just closing all servers should be enough). Anyway, wtfnode just reported this:
[WTF Node?] open handles:
- Others:
  - Pipe

Since I didn't have that "Pipe" in my local development, it took me a while to figure out that is is the IPC channel from the cluster worker to the PM2 master.
I think for wtfnode it should be fairly straight forward to figure out that this is a IPC channel to another node process (I'm pretty sure this is created in the setupChannel function in internal/child_process.js) and maybe even that is is the one connecting the current worker to the master.
I know of this problem now, but I imagine a fair amount of developers using this module don't, and then it would be really nice to get more than the Others - Pipe.

This might have changed over time, I'm pretty sure I've dealt with cluster before. Thanks for the tip and the reference to where I might be able to hook it. As they keep moving more things into "internal", I'm having a harder and harder time obtaining a reference somewhere that I can get useful information! I will have a look as soon as I'm able.
Is it possible you can provide a minimal working example? I see you mention PM2, but when using PM2 in cluster mode I believe it controls the loading of the module. In such a case, it may be out of my control -- I depend very much on having wtfnode loaded before anything else, so that references other modules get from requiring things are the ones I've hooked, rather than the version before I've done so. It will help me find a solution if I can reproduce exactly what you are encountering.
(Also, which node version?)

As they keep moving more things into "internal", I'm having a harder and harder time obtaining a reference somewhere that I can get useful information!

Yeah. in terms of software design it is good that they do, but it makes hacks like this difficult. I had similar problems with another project.

Is it possible you can provide a minimal working example?

I created a Gist: https://gist.github.com/NiklasGollenstede/1c17f213659615b5e9c1f66923f3b740
The result is the same in node v8.9.3 and v10.8.0. It has little to do with PM2, as the Pipe in question is created in the forked process before handing of control to either application code or PM2 (which indeed does some stuff in the forked process).
But as the first tests in the Gist shows, its still very easy to identify the cluster IPC Pipe, its process.channel.
And if you do the instanceof process.binding('pipe_wrap').Pipe test, you could list the Pipes as "IPC channel to another node process" or something more informative like that (I don't think that class is used for anything else).

Also, which node version?

My bad. Tested it in versions v8.9.3, v10.8.0, v10.9.0 and 10.10.0 by now.

I see... in my (admittedly brief) cluster test, I assumed that the worker exits at some point/eventually. In your example, the worker doesn't exit -- which causes the parent process to hang, of course.
I'm starting to really feel the desire to rearchitect this more robustly, even though it's a giant hack. This one is an easy fix though :) Even works back to 0.10 with a minor change.
See if wtfnode@beta does what you expect. Also see https://github.com/myndzi/wtfnode/tree/parent-ipc#ipc-channel-to-parent for new docs.
Output should look like:
- Others:
  - IPC channel to parent (see readme)

Looks good!
I think you could additionally mark everything else that is instanceof process.binding('pipe_wrap').Pipe "IPC channel to a child process" or "IPC channel to another process", to get a better output in the parent as well.
But that is not what this ticket was originally about, so I'll close this now. Thanks!

Child processes have more information already, since I can instrument what spawned them :) the full output from the cluster test looks something like this:
[WTF Node?] open handles:
- File descriptors: (note: stdio always exists)
  - fd 1 (tty) (stdio)
  - fd 2 (tty) (stdio)
- Cluster workers
  - PID 20493
    - Entry point: /home/myndzi/wtfnode/tests/test-cluster.js:7
[WTF Node?] open handles:
- File descriptors: (note: stdio always exists)
  - fd 1 (tty) (stdio)
  - fd 2 (tty) (stdio)
- Others:
  - IPC channel to parent (see readme)

(merged and published to latest)

Uhh. Fancy


Bug Report: Package statuses incorrectly get changed when set as next

About me
This bug report is posted on behalf of the BBC
Observed Behavior
Package statuses are correct up until the point that the part is set as next at which point they randomly change to Package can't be found on the playout system
Example piece instance:
{
    "_id": "mNgEokWWIJwY32qYhGhrTuxroKM__RfnonXJmh65jasFGu_Kmlv798JrW1M__zPuol3jSJ0yHk_",
    "isTemporary": false,
    "rundownId": "AE3WNBwGLHsbQteS6iZzeMYwPwc_",
    "playlistActivationId": "YC8fQTM5cWhyKoZE6",
    "partInstanceId": "mNgEokWWIJwY32qYhGhrTuxroKM__RfnonXJmh65jasFGu",
    "piece": {
        "_id": "Kmlv798JrW1M__zPuol3jSJ0yHk_",
        "pieceType": "normal",
        "externalId": "someID",
        "name": "BLIP/NEWS/PRES///",
        "lifespan": "part-only",
        "sourceLayerId": "package",
        "outputLayerId": "pgm",
        "enable": {
            "start": 0
        },
        "prerollDuration": 250,
        "abSessions": [
            {
                "poolName": "clip",
                "sessionName": "someID"
            }
        ],
        "expectedPackages": [
            {
                "_id": "BLIP~fNEWS~fPRES~f~f~f.mxf",
                "layers": [
                    "clip_server_A",
                    "clip_server_B"
                ],
                "type": "media_file",
                "version": {},
                "contentVersionHash": "",
                "content": {
                    "filePath": "BLIP~fNEWS~fPRES~f~f~f.mxf"
                },
                "sources": [],
                "sideEffect": {}
            }
        ],
        "content": {
            "path": "",
            "fileName": "BLIP~fNEWS~fPRES~f~f~f.mxf",
            "sourceDuration": 4640
        },
        "startRundownId": "AE3WNBwGLHsbQteS6iZzeMYwPwc_",
        "startSegmentId": "CG6PpZpderq1ppsF65aNoSEysmc_",
        "startPartId": "mNgEokWWIJwY32qYhGhrTuxroKM_",
        "invalid": false
    }
}

Package manager shows that it is correctly processing the package and thumbnail / clip analysis data is generated as expected.
{
  _id: "studio0_casparcgContainer_mNgEokWWIJwY32qYhGhrTuxroKM__q4Xv7F9W3GS8opMQN_Kmlv798JrW1M__zPuol3jSJ0yHk__BLIP~fNEWS~fPRES~f~f~f.mxf",
  containerId: "casparcgContainer",
  deviceId: "packageManagerPackageManager",
  modified:<PHONE_NUMBER>384,
  packageId:
    "mNgEokWWIJwY32qYhGhrTuxroKM__q4Xv7F9W3GS8opMQN_Kmlv798JrW1M__zPuol3jSJ0yHk__BLIP~fNEWS~fPRES~f~f~f.mxf",
  status: {
    status: "ready",
    progress: 0,
    statusChanged:<PHONE_NUMBER>435,
    statusReason: {
      user: "2 workers available, about to start...",
      tech: "Found 2 workers who supports this Expectation",
    },
    contentVersionHash: "",
    priority: 1011,
    isPlaceholder: false,
  },
  studioId: "studio0",
},
{
  _id: "studio0___corePackageInfo_mNgEokWWIJwY32qYhGhrTuxroKM__q4Xv7F9W3GS8opMQN_Kmlv798JrW1M__zPuol3jSJ0yHk__BLIP~fNEWS~fPRES~f~f~f.mxf",
  containerId: "__corePackageInfo",
  deviceId: "packageManagerPackageManager",
  modified:<PHONE_NUMBER>728,
  packageId:
    "mNgEokWWIJwY32qYhGhrTuxroKM__q4Xv7F9W3GS8opMQN_Kmlv798JrW1M__zPuol3jSJ0yHk__BLIP~fNEWS~fPRES~f~f~f.mxf",
  status: {
    status: "ready",
    progress: 1,
    statusChanged:<PHONE_NUMBER>512,
    statusReason: {
      user: "Scan completed in 0.3s",
      tech: "Completed at<PHONE_NUMBER>787",
    },
    contentVersionHash: "1c66ab5fcb4b7d3e10a7596085b790a503258fa9",
    priority: 1013,
    isPlaceholder: false,
  },
  studioId: "studio0",
}

Expected Behavior
Packages should retain the correct status
Version
release51
Severity / Impact
Not a big issue at this time but disconcerting for the users
Level of Involvement
Just raising awareness at the moment due to lack of time to investigate further

I think this will be fixed by https://github.com/nrkno/sofie-core/pull/1155, it is one of the cases we found and that PR fixes in release50, so hopefully resolves your problem too

@PeterC89 The fixes #1155 have been merged. Could you give that a try to confirm whether it fixes your issues?

Glad to hear!
Yes, when playing an adlib we have noticed this too and have a separate bug report internally for this, as we believe it also affected r49, so is not a new issue (for NRK people: SOFIE-3000)


Workaround gdb issues

Remove stepping from the GDB test until these GDB issues have been fixed:
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1700595
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1700646

morph test

build in queue...

building...

Success

/morph test

/morph test

/morph test


ProcessedSource: use exception when .from_file raises

We ran into an issue recently where a file  was emitting an error from RuboCop about No such file or directory while the file actually did exist. While debugging, we eventually tracked down the actual cause of the error to the fact that the file had a very unusual encoding (UTF-32LE, which apparently couldn't be force-encoded to UTF-8), which caused an exception during parsing due to encoding incompatibilities.
The rescue clause here assumed that the only reason an exception would be raised was a missing file: in our case, that led to a very confusing & inaccurate error message that made debugging a bit harder than it had to be.
New behavior from this patch:

Rescue Errno::ENOENT specifically for the missing file case to  maintain the existing error text.
Rescue all other StandardError exceptions and abort, like before, but using the caught exception's #message so that the user-visible message reflects the originating message.

I've specced this behavior as well, but it's a little mock heavy & dependent on ProcessedSource's implementation details in order to not change the actual code much. Not sure how useful you'll find that.
This is just trying to make the error handling more likely to produce useful output in unexpected error cases: it's not really a bugfix in any concrete sense.

Looks good. +1
Can anyone who is running Windows confirm that Ruby also raises Errno::ENOENT if you try to open a non-existent file?

:+1: Thanks!

Can anyone who is running Windows confirm that Ruby also raises Errno::ENOENT if you try to open a non-existent file?

I think our Windows users are in pretty short supply. :-)


NIFI-3861: AvroTypeUtil used different constant.

Previous fix #1779 refactored the way to check Logical type to use string constants.
One of those refactoring used wrong constant mistakenly in normalizeValue method.
Fortunately, this defect is harmless since even though normalizeValue did not convert int to Time, DataTypeUtils.convertType does the same conversion.
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

+1 LGTM, thanks! Merging to master


Promise not resolve on NativeAudio.preload

Describe the bug
Promise does not resolve on preloading Assets
To Reproduce
NativeAudio.preload({
                    assetId: 'sound.mp3',
                    assetPath: 'public/assets/sound.mp3',
                    audioChannelNum: 1,
                    isUrl: false,
                })
.then(() => console.log('loaded'))
.catch(e => console.error(e))

Expected behavior
Promise should be resolve or fail
Smartphone (please complete the following information):

iOS 15

Additional context
Add any other context about the problem here.

@jansgescheit Try to update the plugin to the latest version and verify this issue, if that doesn't help, try debugging the capacitor-community/native-audio -> preload function in XCode.

@bazuka5801 thank you for reply
I'm using the latest version, and I've already struggled through the Xcode debugger. The call to call.resolve() is never reached, the method is exited one line before. Maybe also a quirk of the debugger in the async code

Im having the exact same issue, workarounds Im exploring are combination of unloading assets and manually tracking preloading.

It's strange. Sometimes it works, sometimes it doesn't, but it doesn't work at all when I have the livereload active.


continuation_token appears in response body after no events are left in get_events RPC function

Describe the bug (observed vs expected behavior)
The get_events method in RPC doesn't match the specification. Parameter continuation_token appears in response body after no events searched for are left.
After deploying a cairo contract with code:
%lang starknet
%builtins pedersen range_check

from starkware.cairo.common.cairo_builtins import HashBuiltin

@storage_var
func storage(key: felt) -> (value: felt) {
}

@event
func put_called(key: felt, prev_value: felt, value: felt) {
}

@external
func put{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}(key: felt, value: felt) {
    let (prev_value) = storage.read(key);
    put_called.emit(key=key, prev_value=prev_value, value=value);
    storage.write(key, value);
    return ();
}

invoking put function 2 times and calling get_events in RPC with "chunk_size": 4 the response looks like this:
{
    "id": 0,
    "jsonrpc": "2.0",
    "result": {
        "continuation_token": "1",
        "events": [
            {
                "block_hash": "0x06b0679b3060f2f1d02ec484f238f78a0a7c5aeb6bb0ced56edd40e8ddff05ff",
                "block_number": 3,
                "data": [
                    "0x01",
                    "0x00",
                    "0x01"
                ],
                "from_address": "0x021895a10d1f7319919b58967ec629d9fe6dc53269b0e24b8127ff4613759e55",
                "keys": [
                    "0x037e1449a2e98fcc818fa74e8abd5a3ebfefa48645be9b3777bd03e2c4ac54c0"
                ],
                "transaction_hash": "0x02304a74032d87b27f24537ae10105e29e014efb0fa9d0a9610132f490ac9373"
            },
            {
                "block_hash": "0x036f9108fb0b957df4d03eb18e7323c76c56219db854932a073d956ddba99347",
                "block_number": 4,
                "data": [
                    "0x02",
                    "0x00",
                    "0x02"
                ],
                "from_address": "0x021895a10d1f7319919b58967ec629d9fe6dc53269b0e24b8127ff4613759e55",
                "keys": [
                    "0x037e1449a2e98fcc818fa74e8abd5a3ebfefa48645be9b3777bd03e2c4ac54c0"
                ],
                "transaction_hash": "0x03037ea7104a49b4af996e0e3b21f886f1cd53c0742c8511d5f6ed2f553bec73"
            }
        ]
    }
}

Then, after adding "continuation_token": "1" to request body, the response looks like this:
{
    "id": 0,
    "jsonrpc": "2.0",
    "result": {
        "continuation_token": "1",
        "events": []
    }
}

I believe the problem lies here and because RpcEventsResult must return continuation_token, it isn't an optional parameter.

Not reproducible on alpha-goerli

[x] This issue is only present on Devnet and cannot be reproduced on alpha-goerli (check the box if true).

To Reproduce
Steps to reproduce the behavior:

Deploy any contract on devnet with function that emits an event.
Call the function that emits an event, e.g. 2 times.
Call get_events function in RPC and follow the continuation_token parameter.
continuation_token appears in response body even though it shouldn't.

Devnet version

I am using Devnet version: 0.5.0a1
[ ] This happens with a dockerized Devnet (check the box if true).

Thanks for the well-formulated issue! @mikiw I think the user has a point, can you take a look tomorrow?

Thanks for reporting. I'll fix that.


pkg/fscrypt: bump up version v0.2.4 -> v0.3.4

This patch bumps up fscrypt version from v0.2.4 to v0.3.4. There are two things done here:

Change fscrypt SHA in Dockerfile to the v0.3.4 tag
Adopt our local patches for the newest version of the fscrypt

From software engineering perspective this commit is rather boring (update package from older version to newer, we do this often, who cares) but motivation of this change goes far deeper. Here is the story.
Noticeable fscrypt evolution happened in version v0.2.6, where v2 policies began to be supported. A few lines from the fscrypt release notes related to the 0.2.6 version:
  The big feature in this release is support for v2 kernel encryption
  policies. With the release of Linux 5.4, the kernel added a
  [new type of policy](https://www.kernel.org/doc/html/latest/filesystems/fscrypt.html)
  that makes `fscrypt` much easier to use.  For directories using
  these new policies:

    [ cut ]

    * The policies are no longer tied to the buggy kernel keyring API.
        * This removes the need for users to run `keyctl link` or to
          reconfigure `pam_keyinit`.
        * Some systemd related bugs will no longer be an issue.

How is this change important to EVE? What does it fix?
On ext4 EVE unlocks /persist/vault folder (where all customer volumes and images are safely kept) utilizing old 0.2.4 version of fscrypt, so kernel keyring API was used (so called v1 policies).
Since /persist/vault folder was unlocked by the pillar proces from the pillar service container, kernel keyring was bound to that process and that mount namespace, not across the system. Very interesting side effect of this behaviour is that if a file exists in the page cache, then file can be read by any process from any namespace, but if caches are empty, then process receives ENOKEY (132) "Required key not available" errno.
Short illustration of the problem:
 # eve enter debug
 # cat /persist/vault/volumes/177eafd2-0bdd-498a-9369-20531f6cd344\#0.container/ug > /dev/null
 # echo 3 > /proc/sys/vm/drop_caches
 # cat /persist/vault/volumes/177eafd2-0bdd-498a-9369-20531f6cd344\#0.container/ug > /dev/null
 cat: can't open '/persist/vault/volumes/177eafd2-0bdd-498a-9369-20531f6cd344#0.container/ug': Required key not available

The problem spreads even further: after cache eviction files can't be accessed from the shim VM as well:
 # touch /mnt/test
 touch: /mnt/test: Required key not available

 # cat /mnt/ug
 cat: can't open '/mnt/ug': Required key not available

Entering container from the shim VM also stops working, because required /mnt/entrypoint-pid file can't be created:
 # eve-enter-container
 Error: PID file '/mnt/entrypoint-pid' not found. Container did not start?

So the whole issue could eventually result in not only being unable to enter the container, but also causing the shim VM to crash if the page cache on the host was evicted and the shim VM was rebooted.
Also same issue is observed on docker (worth reading!):
https://github.com/google/fscrypt/issues/128
Switching to the new fs keyring (v2 policies, starting from v0.2.6 of the fscrypt) eliminates described problem and unlocks vault across the system.

Seem harmless to me if the following tests are passing : both successfully and unsuccessfully upgrade a node which has vault config and encrypted volumes to a EVE version that contains this changes.

Seem harmless to me if the following tests are passing : both successfully and unsuccessfully upgrade a node which has vault config and encrypted volumes to a EVE version that contains this changes.

I've tested 2 cases:

Installed fresh EVE with policies v2 (newest fscrypt v0.3.4)
Upgrade from EVE with policies v1 (fscrypt v0.2.4) to the v2 (fscrypt v0.3.4)

These works. Did not test downgrade, which we do not officially support.

No downgrade, just fail the upgrade (like fail to pass attestation) and revert back to pre-upgrade version, just to be sure we don't leave any lasting effects from an failed upgrade (which we shouldn't with RO file system and no change to /config, just to be safe).

So what's tested:

Installed fresh EVE, fscrypt v0.2.4 (zboot curpart shows 'IMGA')
Upgraded to the rootfs with these commits, so fscrypt v0.3.4, created new file in vault just in case (zboot curpart shows 'IMGB')
Rebooted, which causes system to switch again to 'IMGA' (zboot curpart shows 'IMGA'). Vault unsealed, container has been started, all works.

JFYI But once v2 policies are used (freshly installed EVE with these commits), we can't switch back to the old fscypt, because compatibility in the tool is broken: the tool can't recognize metadata policies and complains. So downgrade won't be possible (which we don't support anyway!)
cc: @eriknordmark @shjala

JFYI But once v2 policies are used (freshly installed EVE with these commits), we can't switch back to the old fscypt, because compatibility in the tool is broken: the tool can't recognize metadata policies and complains. So downgrade won't be possible (which we don't support anyway!)

@rouming when would we start using v2 policies?
A customer might upgrade from EVE version 9.X to a future version on EVE-OS which has the new version of fscrypt and potentially also starts using v2 policies. Can we avoid using v2 policies while the EVE-OS image is in Testing state? Once we are past that state it will not fallback to the older image.

JFYI But once v2 policies are used (freshly installed EVE with these commits), we can't switch back to the old fscypt, because compatibility in the tool is broken: the tool can't recognize metadata policies and complains. So downgrade won't be possible (which we don't support anyway!)

@rouming when would we start using v2 policies?
A customer might upgrade from EVE version 9.X to a future version on EVE-OS which has the new version of fscrypt and potentially also starts using v2 policies. Can we avoid using v2 policies while the EVE-OS image is in Testing state? Once we are past that state it will not fallback to the older image.

Do we always unlock the vault on early pillar start?  Or unlock happens if first encrypted image is ready to be unlocked?
The thing is that v1 policies created by the old version of fscrypt do no harm and will be used by the new fscrypt without any modifications (so we can swing in both directions from versions to versions). But policies generated by the new fscrypt  (even the v1 policy) is not backwards compatible with the old fscrypt (I checked that). That means, that if vault policies are created by the new version of fscrypt  - we are screwed. But if we always unlock vault on early start, that means that highly the v1 policies metadata are already in the ".fscrypt" folder, so failed upgrade should be safe.

Do we always unlock the vault on early pillar start? Or unlock happens if first encrypted image is ready to be unlocked?

If no PCRs change then we can immediately unseal the key and unlock the vault. But that does not happen when there was an EVE-OS update.
In the update case we start doing the remote attestation and when that is accepted by the controller and we receive the encrypted escrowed key back, then we unlock the vault (and reseal the key under the new PCRs). We allow some minutes for this to handle short network outages, but in any case the device needs to reach the controller during the first 10 minutes otherwise if will assume there might be a network device driver problem in the new EVE-OS and fall back.
We don't start any app instances until the vault is unlocked.

The thing is that v1 policies created by the old version of fscrypt do no harm and will be used by the new fscrypt without any modifications (so we can swing in both directions from versions to versions). But policies generated by the new fscrypt (even the v1 policy) is not backwards compatible with the old fscrypt (I checked that). That means, that if vault policies are created by the new version of fscrypt - we are screwed. But if we always unlock vault on early start, that means that highly the v1 policies metadata are already in the ".fscrypt" folder, so failed upgrade should be safe.

When would we create a v2 policy? As you say we will already have a v1 policy for /persist/vault. Does that mean we'd only create a v2 policy if we rm -rf /persist/vault; reboot?

What I meant by "avoiding lasting changes" is upgrade failing for some reason other than TPM after we upgrade to V2, if this case is possible we should move the vault upgrade to be the last stage of upgrade-test.

@eriknordmark

When would we create a v2 policy? As you say we will already have a v1 policy for /persist/vault. Does that mean we'd  only create a v2 policy if we rm -rf /persist/vault; reboot?

Correct, if vault was setup once (/persist/vault/.fscrypt folder was created and populated with metadata), then metadata won't be modified. So we create a v2 policy only if the vault was not setup before.
@shjala

What I meant by "avoiding lasting changes" is upgrade failing for some reason other than TPM after we upgrade to V2, if this case is possible we should move the vault upgrade to be the last stage of upgrade-test.

metadata in .fscrypt folder is not modified once created. So we should be all safe to use this metadata in the newest fscrypt version and then suddenly switch back to the old fscrypt.

Our Makefile (make pkgs in particular) does not respect any dependencies, so building of pillar happens earlier than fscrypt, but pillar depends on the fscrypt, so build fails. I split this PR on two: this one contains update of the fscrypt and should be merged first, so SHA will be known prior the pillar build.


Find and replace with mismatched case doesn't work

If I type "TEST" into Notepads and try to do a find and replace of "test" with "testing" with Match-Case disabled, it will fail if I hit the "replace" button.
However, it will succeed if I hit "Replace All"

"Replace All" checks through whole document and replace all matches. However,  for "Replace", it checks starting from your selection. If you move the input cursor before "TEST", it will find the match and replace. It is intended for now, what do you think?


Fsharp tutorial 1.2 matchup tweaks with C# tuts

Created this here as don't have access to Fred's repo yet and he doesn't have the latest code from upstream. Will commit future PRs to his repo.

Hey wait a minute when did Hello Triangle become Hello Square? I have no objection to it, but it'd be nice if someone told me (and the folder/project names!)
P.S. if you do decide that 1.2 is hereby going to be a square, call the project 1.2 - Your First Square as Hello Square doesn't have the same ring to it as Hello Triangle does.

We will rename to hello quad or something on my branch/PR


Add short url support

Short description

This PR adds link for each page in Pages (next to buttons View Page, Archive Page, ...)  which generates unique string of 5 characters and copies URL in format url/s/<generated_string> into clipboard. After user navigates to copied URL, it will redirect to corresponding page.
Proposed changes

There is link in Pages (next to View, Edit, Archive, Delete page) for each page with title Copy short link.
In case page has no translation, link is visibly disabled with corresponding title.
After click on that link for first time for some page, it generates random short string (using shortuuid library), which is stored as new attribute called short_url_id  in AbstractBasePageTranslation class.
Default value of attribute is empty string. New short_url_id is generated only when attribute has default value.
Click on button also copies url in format url/s/<generated_string> into clipboard, with message informing user about successfuly copied url (using pyperclip plugin).
When user comes to copied short url, there is queryset which filters PageTranslation with given ID.
User is redirected to page which is given by get_absolute_url() method

Resolved issues

Fixes: #384

Thank you @timoludwig for review. I fixed it in my last commit :)
I can see there are some conflicts that must be resolved, do I need to do it manully or you can merge it anyway ?

@stanislavkocan Your changes are now merged into develop :tada:
Thanks again for your contribution :heart:


Opsworks for Puppet Enterprise

Embargo this until there's an official announcement, then check for accuracy.
Public pricing information came out, but no official go-live yet.

Closing, as this was pulled back.

Looks like it was launched today (Nov 16)? https://aws.amazon.com/blogs/aws/new-aws-opsworks-for-puppet-enterprise/

...figures. Reopening!

LGTM. I updated another link there for pricing.


added .png versions of Users - changed users.json files to .png

added .png versions of Users - changed users.json files to display .png instead of .webp - iOS doesn't currently support .webp (USER images not showing up on iPhone, but fine on desktop)

ok @rikoe - I believe this PR will fix the .png / .webp issue - and added to the README.md - let me know if any issues. Thanks!


Add UX details

Co-authored-by: Stavros Kounis<EMAIL_ADDRESS>Signed-off-by: Tracy Kuhrt<EMAIL_ADDRESS>

@skounis : I pulled your Google doc into this PR and will merge it.


Open toast message with an event

The previous way we were handling toast messages was to have a flag
(actually the output of a function) that would change depending on
whether the message should be open or not.  This disable the normal ways
of clearing a toast message (e.g. clicking somewhere else or swiping it
offscreen).
We now watch for changes of ui.toastMessage and will fire the open event
when that changes.
Fixes #1333
Tested by getting failures and making sure the message showed up and subsequently went away.

:+1:


Comick Extension Error 403

Extension information
Comick v0.0.4
Steps to reproduce

Install the Comick extension
Go to the search tab
Click the "Show all" button for Comick
Gigantic stack trace appears as a result of Error 403

Miru version
1.8.1 on Android
Other details
Error 403 also appears when clicking on a series that has been previously favorited
I am using Android 14 on a Google Pixel 8 Pro, although I doubt that makes much difference. I've also tried using a VPN just in case my school started blocking the Comick API, and still get the error. I also attempted reinstalling the extension in case the URL was changed but the app didn't update to the new URL for some reason
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.

Upon further inspection, it seems that the URL is being generated incorrectly. As an example, the URL generated for "Futari Escape" is https://api.comick.ccfutari-escape. it's clear that there is a missing forward slash, but it seems that there's also some other API related sections missing from the URL, as adding that / manually didn't fix the issue

It's working properly

Fix for those who are facing 403 error in any extension.
Open miru -> goto miru settings -> network -> webview user agent -> replace the default value to android

Thanks, it seems that works


Add support for asyncio compatible transport.

Rely on aiohttp's client to perform the requests.
Note: only python3.6+ is supported as we don't require to pass the loop to
asyncio.ensure_future. Only python3.6 handles this correctly by obtaining
the running loop from the context.
https://docs.python.org/3/whatsnew/3.6.html#asyncio

How is this different than raven-aiohttp?

Iirc pip throws compile errors because it’s python 3 only. We’re also trying to move away from “everything must live in one sdk”, though we should at least clearly document it (assuming we don’t).

ok thank you