ammonite: 1.7.1 -> 1.7.4

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/ammonite/versions.
meta.description for ammonite is: '"Improved Scala REPL"'.
meta.homepage for ammonite is: '"http://www.lihaoyi.com/Ammonite/"
Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.7.4 with grep in /nix/store/0v5k1czjli89q2118x19cd8bncymjkv8-ammonite-1.7.4

directory tree listing: https://gist.github.com/89ef20b9a8fbd5cd0adc5b05641bc06e

du listing: https://gist.github.com/9f8f3af79a7ec2a9731621cdfa8a852b

Rebuild report (if merged into master) (click to expand)

12 total rebuild path(s)
3 package rebuild(s)
3 x86_64-linux rebuild(s)
3 i686-linux rebuild(s)
3 x86_64-darwin rebuild(s)
3 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
ammonite
ammonite_2_12
ammonite_2_13

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0v5k1czjli89q2118x19cd8bncymjkv8-ammonite-1.7.4 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A ammonite https://github.com/r-ryantm/nixpkgs/archive/f41d884f173254fab516f23aed743dd05e52c73c.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/0v5k1czjli89q2118x19cd8bncymjkv8-ammonite-1.7.4
ls -la /nix/store/0v5k1czjli89q2118x19cd8bncymjkv8-ammonite-1.7.4/bin

cc @nequissimus for testing.

ammonite builds successfully on macos 10.13, ammonite_2_12 has the same hash mismatch reported by @conferno

b0e4d7b9ea970c13e0509d7b4fbe1729d016abe9


I want to be able to be injecting a given script in all webpages visited in a web view. Hower when I inject a script it was only run on the first page I did visit but not in all the next pages

We use GitHub Issues for bugs.
If you have a non-bug question, ask on Stack Overflow: http://stackoverflow.com/questions/tagged/react-native
If you have a feature request, post it on Product Pains: https://productpains.com/product/react-native/
--- Please use this template, and delete everything above this line before submitting your issue ---
Description
[FILL THIS OUT: Explain what you did, what you expected to happen, and what actually happens.]
Reproduction
[FILL THIS OUT: Try to reproduce your bug on rnplay.org and provide a link. If you can't reproduce the bug on rnplay.org, provide a sample project.]
Solution
[FILL THIS OUT: What needs to be done to address this issue? Ideally, provide a pull request with a fix.]
Additional Information

React Native version: [FILL THIS OUT: Does the bug reproduce on the latest RN release?]
Platform: [FILL THIS OUT: iOS, Android, or both?]
Operating System: [FILL THIS OUT: MacOS, Linux, or Windows?]

We're cutting down on the number of outstanding issues, in order to allow us to focus. I'm closing this issue because it has been open for over 60 days with no activity. If you think it should still be opened let us know why. PRs are always welcome.


Add support for the merge operator

See http://lesscss.org/features/#merge-feature

I have added this support in a local branch and am planning a pull request but would like some information regarding what requirements the new code has to follow and what language version I have to limit it to.
Currently it is using c# 6 but .net 3.5 framework.
Would that work?
Also, I fixed 3 other problems in regard to compatibility will less.js, would this be 4 different pull requests or can I use one for all?

I don't see a reason to limit ourselves to a particular language version. Keeping the target .NET version is a worthwhile endeavor, although I seem to recall that currently we kind of already break that in the ILMerge step of the build.
I'm fine with a single pull request if you keep to a "commit per logical change" or similar organization in your changes.
You can make my life a wee bit easier if you base your changes on the develop branch. Means you have to select that branch when creating the PR.
Thanks!
-Lauri
Sent from my iPhone

On 14 Feb 2017, at 14.34, dmartensson<EMAIL_ADDRESS>wrote:
I have added this support in a local branch and am planning a pull request but would like some information regarding what requirements the new code has to follow and what language version I have to limit it to.
Currently it is using c# 6 but .net 3.5 framework.
Would that work?
Also, I fixed 3 other problems in regard to compatibility will less.js, would this be 4 different pull requests or can I use one for all?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Pulled the develop branch yesterday so thats no problem ;)
Got to split up the commits then so the request should be coming tomorrow.
I  have added unit tests but you might want to suggest where I should place them, now I just stuck them into one of the least used for simplicity.

Should I add issues for the 3 other things I fixed?
One is that a trailing ; after a block throws exception while less.js just removes them
ex: }; => }
Also, Expected char seems to display the wrong found char and it was that it reposrted nextChar, not currentChar (which is what was matched against).
We also had problems with empty variables:
@test: ;
This also works in less.js without error.

If you feel like you're up for writing down the issues, sure. Having the description would help verify the PR, and at the very least having the issues on the next release milestone would make it easier to keep track of what we're releasing. That said, I don't feel very strongly about this at the moment. I've barely had any time to work on dotless for over a year now, so I don't want to put up too many obstacles for people who want to contribute. :-)


feat(updates): support installing and detecting nodejs

Added checks to check the installed version of node and if node exists.
Added the ability to install node and support the installation with tasks in vscode
closes https://jira.appcelerator.org/browse/EDITOR-56
vscode changes https://github.com/appcelerator/vscode-appcelerator-titanium/pull/406

Messages

:book:

:white_check_mark: All tests are passing
Nice one! All 28 tests are passing.

  Generated by :no_entry_sign: dangerJS against 21c13cc4f390991cce56a3744df376ce8909526f

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Set TA on queue actions

When changing queue properties, the changer should be stored in the Queue object.

Closing. This should be logged in an analytics suite instead.


add a rule block upload filename with ../  and something like that

Motivation
when paranoia_level=2
i can upload a file with ../ or ..\

and windows filename can not inclue / \ : * ? " < > |
i think it is owasp Path Traverser vul
Proposed solution
so i think modsecurity need block upload filename include  / \ : * ? " < > |    with paranoia_level=1
especial  / \ :
reference linking：
https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload
thx again

Wow, that's a nice finding.
Thank you for your report.
I'll check it!

I found a way to reproduce this request:
curl -v -F "data=@file;filename=../1.7z" localhost
First I thought that I will extend the data file restricted-upload.data of the rule 932180.
But then I found the "Directory Traversal" rules 930100 and 930110 that already cover a lot of possible encodings.
When I extend the targets of the rule 930110 with FILES, the reported request no longer works.
So my solution would be to extend both rules 930100 and 930110 with FILES. I think we don't need FILES_NAMES (Contains a list of form fields that were used for file upload. Available only on inspected multipart/form-data requests.)
What do you think about this proposal?

Proposal looks good to me.
I seem to remember that the values of FILES and FILES_NAMES are not very intuitive.

Ok, I'll propose a PR.
Thank you for the feedback.

Closing after merge.


The "Responsive contexts require Breakpoint" warning is displayed when no responsive context are defined/used

Hi!
I'm building a fixed-width page with no media queries.
I decided not to import Breakpoint.
Example grid definition:
+add-grid(12)
+add-gutter(0.1)

Example usage:
.foo
  +grid-span(1,1)

This line alone produces four identical warnings:

WARNING: Responsive contexts require Breakpoint (https://github.com/Team-Sass/breakpoint). Please ensure that Breakpoint is imported and available for Singularity to use. First item used.

How do i use Singularity without Breakpoint?

Using column-span() is impossible without Breakpoint, it raises the same warning as an error.

What version of Singularity are you using? I can't reproduce this issue with ruby or libsass

That was on 1.4.
I've upgraded to 1.5.1. column-span() no longer errors out, but i still see numerous warnings as described in the top post.
I'm on ruby 2.1.5p273 and using Compass, but assets are fetched via Bower and made available to Compass via add_import_path 'bower_components/singularity/stylesheets'.
I've commented out all code from my root Sass file and added this instead:
@import singularitygs

.foo
  +grid-span(1,1)

This results in this warning appearing four times:

WARNING: Responsive contexts require Breakpoint (https://github.com/Team-Sass/breakpoint). Please ensure that Breakpoint is imported and available for Singularity to use. First item used.
on line 43 of /home/lolmaus/Code/hb_admin_panel_ember/bower_components/singularity/stylesheets/singularitygs/helpers/_find.scss, in `grid-span'
from line 9 of /home/lolmaus/Code/hb_admin_panel_ember/app/styles/app.sass

The error is raised from the find-object function. The comment above the function admits that it will fail without Breakpoint.
But i can see that grid-span unconditionally calls find-grid, and find-grid unconditionally calls find-object.
Would send a PR, but i've long lost track of Singularity internals as they grew in complexity. Probably should just comment out the warning.

I'll look into it.


go.dev: 404 error shown for some packages such as github.com/natefinch/markbates

Some packages seem to show a 404 Not Found error, such as:
https://pkg.go.dev/github.com/natefinch/markbates
Sorry for the quick report. Seen via https://twitter.com/NateTheFinch/status/1223427948260347904
CC @natefinch

From https://go.dev/about:

To add a package or module, simply fetch it from proxy.golang.org. Documentation is generated based on Go source code downloaded from the<EMAIL_ADDRESS>New module versions are fetched from index.golang.org and added to the go.dev site every few minutes.

Nobody had ever downloaded it. It's on pkg.go.dev now.

This is still a bug. If you go to the url, clearly the site should try to download it and generate the docs. Otherwise it just looks broken, which is why this bug was filed.

Hi @heschik, what would you think about using this issue to track a friendlier message for this situation that points people in the right direction?
Might save some future bug reports, and probably ends up being friendlier.

Or maybe the suggestion from @natefinch is better... though maybe a message is easier to change in near term...

@natefinch That may be clear to you but it is not clear to me. The repository you linked to is a two year old test, not exactly something I would expect people to need to find in search or read documentation for. Packages with actual usage are highly likely to already be populated. If you think that pkg.go.dev should fetch on demand, feel free to file an issue for that, perhaps with a more realistic example.
@thepudds Adding a pointer to the about page seems reasonable to me. I'll switch this over to that. cc @julieqiu.

Adding a link to go.dev/about#adding-a-package on the 404 page makes sense to me. I'll work on adding that.

Eight years of people using godoc.org and it working exactly that way is why I think it should work that way. Also you assume that every package is widely used, many are hyper specific and may only be used by people that have a corporate proxy.... Until someone tries to view the docs here.
I just honestly don't know why you wouldn't just try to fetch it.

@natefinch why not file the issue, as @heschik mentioned? I agree that the two issues are related, but this change is a step in the right direction, so I think we should let it happen.

Yeah, sorry, was on mobile, doing that now.

Instructions link to go.dev/about#adding-a-package has been added.

Closing this issue.

Just a note... these instructions aren't actually actionable:
To add a package or module, simply fetch it from proxy.golang.org.

I don't know what "fetch it from proxy.golang.org" means or how to go about doing that. I'm sure I'm not the only one.
Also, avoid putting "simply" or "just" in directions, because they trivialize a step which may actually not be trivial for the person attempting it.  Like, me, trying to figure out how to fetch something from a go proxy.  Remove the word and it reads exactly the same, except if I don't know how to do it, I don't feel like I've been talked down to.

Thanks for the input, @natefinch. Would you mind filing a separate issue for this, since it is related to updating content go.dev/about?

sure

@julieqiu, should I expect to see that link when I search for a package url and get no matches?

At the moment it only appear on the 404 page:
http://pkg.go.dev/github.com/doesnot/exist
We can add the link on the search results page too when there are no matches if you think it would be helpful.

Thanks Julie! I believe it would improve the user experience by providing a
possible next step for someone who has dead-ended in a search.
On Fri, Feb 7, 2020 at 11:16 AM Julie Qiu<EMAIL_ADDRESS>wrote:

At the moment it only appear on the 404 page:
http://pkg.go.dev/github.com/doesnot/exist
We can add the link on the search results page too when there are no
matches if you think it would be helpful.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/36986?email_source=notifications&email_token=AACY7VLQ2XTAZICYZJKVP23RBWCMTA5CNFSM4KO3JAF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELDSQQI#issuecomment-583477313,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACY7VJXYZ6JWXQXHTSN2VTRBWCMTANCNFSM4KO3JAFQ
.

--

from mobile

This change is now live.


Release version 0.0.12

Codecov Report
Patch and project coverage have no change.

Comparison is base (a29f9aa) 100.00% compared to head (30449ac) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #173   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        11
  Lines          882       882
  Branches       193       193
=========================================
  Hits           882       882

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Scenario 2 is missing a UDR for the application gateway to reach the backend pool via the firewall

Scenario 2 is missing a UDR for the application gateway to reach the backend pool via the firewall, it instead will direct traffic to the internet, which will be blocked as a RFC1918 address cannot be reached over an internet gateway.
I suggest essentially a duplication of Scenario 1 as below is added to the solution:
To ensure the application gateway is able to send traffic to the backend pool via Azure Firewall in the Virtual WAN hub, specify the following UDR:

Address Prefix: Backend pool subnet (<IP_ADDRESS>/24)
Next Hop: Azure Firewall private IP

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

ID: 15f6fb6f-5b91-cea5-d95d-dc4c09d2c58c
Version Independent ID: 11a6d253-6a6d-d7f5-17e8-01eb4e90f369
Content: Secure traffic between Application Gateway and backend pools - Azure Virtual WAN
Content Source: articles/virtual-wan/scenario-secured-hub-app-gateway.md
Service: virtual-wan
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@aizeitdoug
Thanks for your feedback! We will investigate and update as appropriate.

@aizeitdoug
Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

#reassign:cfields475

#assign:wtnlee

Hi! Thanks for reaching out. This is not true as Virtual WAN will automatically plumb the routing to allow traffic between the Backend Pool and AppGateway.
The configuration here is that customer would have VNET's propagating to none, and the following static routes in the defaultRouteTable (<IP_ADDRESS>/0 and RFC1918 + any additional prefixes with next hop Azure Firewall). These routes would be advertised to both VNETs.
Datapath from AppGW VNET -> backend pool will take the RFC1918 + additional prefixes routes. Backendpool to App GW VNET will take the similar RFC1918 route. Egress from AppGW to Internet will take the <IP_ADDRESS>/0 UDR which is preferred by Azure over the <IP_ADDRESS>/0 route plumbed by vWAN.

#close

#pleaseclose

#closed

#please-close


Unfold on select but don't fold back when deselecting

I use Bosket as a treeview representation of a visual diagram. Diagram shows nodes that can be connected, grouped together etc. User should be able to select nodes by clicking on them in the treeview but also by clicking on them in the diagram. That part was easy and it works nicely. I now want the treeview to automatically unfold a parent of a node selected on the diagram. I can easily do it by either using 'no-child-selection' fold strategy, or writing simple function myself. However, with this approach, when user deselects the node in the diagram, it's parent (in the treeview) automatically folds back. I don't want that, I want the node to stay unfolded until user specifically closes it using the opener (I also use 'opener-control').

So I managed to figure this out on my own, however in a slightly roundabout (hacky) way.
Basically, whenever I select an element, I am programmaticaly firing click event on it's parents' openers. Doing so also adds a booleans to the parents in the tree, so that they wont close when I'm deselecting and reselecting elements.


Build targets from shards.yml

Sometimes multiple target is needed. bin/compile should build all of it's targets.

Yes there might be needed, but the problem is that the user needs to edit manually the Procfile to let heroku know which process is the webserver.
Ideally if there is only one target that should be used without manual Procfile. So the last case of the if can be supported in a natural way (and solving #33).
Also with the PR as is the last case of the if is never reached since the shard.yml is always present.


fix(api-client): uppercase request method

Fix regression caused by #3981.
Problem
Same issue as #3419.
Solution
Same solution as #3305.

awesome thank you so much :))


Google drive changes returns 404

Hello,
we have a web prototyping tool where some of the users sync their images from Google Drive. This means that they add an image to the prototype and then work using whatever tool they fancy and the changes are synced via Google Drive.
We have always received an overwhelming amount of 404s after being hit by a webhook, because a file has presumably changed. We have made our piece with that, and there are no docs or info to be found where we could understand more about the mechanics of how all this works. If there is one, please, point me in its direction.
I found an obscure StackOverFlow post that claims that with every file change the previous one is cancelled and this is why it returns 404s. It makes sense, and as long as we eventually get the change we are happy.
However, even this stopped working and sometimes a file will never be updated. We get hit by the webhook but the request always 404s. Same file is correctly updated in the Google Drive webview.
A basic example from our logs:
INFO       2016-06-09 11:59:20,944 tasks:120 check_drive_change 676dc142-5f17-4e05-82f1-63cfcb0b8979
INFO       2016-06-09 11:59:20,945 tasks:121 check_drive_change {u'kind': u'drive#change', u'id': u'380', u'selfLink': u'https://www.googleapis.com/drive/v2/changes/380'}
INFO       2016-06-09 11:59:21,351 tasks:150 check_drive_change drive.webhook.change.404.380
INFO       2016-06-09 12:09:34,963 tasks:120 check_drive_change 676dc142-5f17-4e05-82f1-63cfcb0b8979
INFO       2016-06-09 12:09:34,963 tasks:121 check_drive_change {u'kind': u'drive#change', u'id': u'383', u'selfLink': u'https://www.googleapis.com/drive/v2/changes/383'}
INFO       2016-06-09 12:09:35,279 tasks:150 check_drive_change drive.webhook.change.404.383
INFO       2016-06-09 12:12:28,127 tasks:120 check_drive_change 676dc142-5f17-4e05-82f1-63cfcb0b8979
INFO       2016-06-09 12:12:28,127 tasks:121 check_drive_change {u'kind': u'drive#change', u'id': u'386', u'selfLink': u'https://www.googleapis.com/drive/v2/changes/386'}
INFO       2016-06-09 12:12:28,467 tasks:150 check_drive_change drive.webhook.change.404.386
INFO       2016-06-09 12:12:51,186 tasks:120 check_drive_change 676dc142-5f17-4e05-82f1-63cfcb0b8979
INFO       2016-06-09 12:12:51,186 tasks:121 check_drive_change {u'kind': u'drive#change', u'id': u'389', u'selfLink': u'https://www.googleapis.com/drive/v2/changes/389'}
INFO       2016-06-09 12:12:51,466 tasks:150 check_drive_change drive.webhook.change.404.389
INFO       2016-06-09 12:16:41,089 tasks:120 check_drive_change 676dc142-5f17-4e05-82f1-63cfcb0b8979
INFO       2016-06-09 12:16:41,089 tasks:121 check_drive_change {u'kind': u'drive#change', u'id': u'392', u'selfLink': u'https://www.googleapis.com/drive/v2/changes/392'}
INFO       2016-06-09 12:16:41,511 tasks:150 check_drive_change drive.webhook.change.404.392
676dc142-5f17-4e05-82f1-63cfcb0b8979 is the channel for the file. The kind is change: u'kind': u'drive#change', and then it 404s for the id we received via the webhook.
I have no idea where to look for an answer or how to go about trying to change or troubleshoot somehow.
We are using google-api-python-client==1.4.0
Anybody has any idea why this is happening?
Thanks
Rali

Unfortunately we do not maintain the APIs themselves, only this client.
I would recommend filing a bug on the public issue tracker for Apps APIs.

Thanks, Jon. I was pretty sure this was not the right place to post as we have no issues with the library itself, but at the same time had no idea where to post.

Hopefully you can find some answers!


[incubator/couchdb] Addresses bug in PR

What this PR does / why we need it: Corrects name for subPath attribute in ConfigMap volume mapping.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #5438 and corrects bug in #5440
Special notes for your reviewer: @kocolosk Can you take a look at this PR?

/ok-to-test

/assign

It's a little hard to tell from the PR which commits are not already merged -- turns out it is
2ddd5ba, 7065735, and 37f9b66. I'm sure git will sort it out in the end.
Looking at the actual diff ... I've not seen mountPath refer to a single file before. What was the thinking behind changing that from default.d?
Also, if I understand subPath corrected it is used to take folders from a single volume and mount them in different locations in the container. I don't think it's required at all here; the underlying voluem is an emptyDir that gets populated by the initContainer.

/lgtm


First commit

Description

Type of Change

[ ] Non-module change (e.g. CI/CD, documentation, etc.)
[x] Azure Verified Module updates:

[ ] Bugfix containing backwards compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in locals.version.tf.json:

[ ] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[ ] The bug was found by the module author, and no one has opened an issue to report it yet.

[ ] Feature update backwards compatible feature updates, and I have bumped the MINOR version in locals.version.tf.json.
[ ] Breaking changes and I have bumped the MAJOR version in locals.version.tf.json.
[ ] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[x] My corresponding pipelines / checks run clean and green without any errors or warnings
[x] I did run all  pre-commit checks

Hi @sharmilamusunuru thank you for your PR, before we proceed with the review can you make sure to merge #21 and #16 and rebase your branch accordingly?

Triggering @mbilalamjad to kick-off an AVM-review.


[DOR 174] [SC] Contraction updates

Looks great, just one last thing (promise!) we need to update on the vessel page and that's the error message when nothing is entered on the mandatory page to match the other change:
Enter the ship, vehicle or airline name


Melodic Density Analysis

Description/Goal
To measure the distribution of pitches across syllables (number of notes per syllable)
According to the ECHOES Project Report 2023:

Melodic density to measure the distribution of pitches across the syllables. Knowing the syllables that bear the highest number of notes would make it possible to discover if there are any words that are most likely to bear a melisma. Furthermore, finding out where the syllables bearing the highest melodic density are located within the chant (i.e., at the beginning, end, or middle of the chant) can help us to unveil recurring neume patterns employed at cadences.

As pointed out by @elsinhadl:

This search should be done over the whole corpus.
Look for syllables with 6 or more notes (i.e. neume components) in them.
Return the list of syllables, with a link to the chant that contains them. When clicking the link, the chant should be opened and displayed on a new tab (so, the MEI file should be rendered in the new tab).

As indicated in https://github.com/ECHOES-from-the-Past/mei-analyser/issues/22#issuecomment-2036835204, the result should be displayed on an extra column with heading 'Text'. This column should contain the full text of the chant, with the syllables that contain melismas (6 notes or more per syllable) in a different color.

So, the results of the melodic density will be highlighted in the text with a background color. This color could be light green or similar so that the font color used to signal the ornamental neumes (liquescent, oriscus, and quilisma) is still visible.

I'll try to find colours that would work with all ornamental text and the melisma background. Here's a preview of what it would look like:

With ornamental neumes:

Hi! I don't mind the color selection to show the melodic density, what is crucial to me is that the background colors allow to recognize the yellow, blue and fuchsia (used for ornamental neumes) in case a syllable with a certain melodic density contains them. Thank you!

Thank you! That's exactly what I was aiming for.

@notkaramel: After you have implemented this for 6-note melismas, the next step would be to allow the user to choose the number of notes in the melismas (a minimum of 6 and a maximum of 12).
@elsinhadl, could you double-check that these were the numbers we agreed on?

@martha-thomae Here's the input box that allows user to highlight every syllable that has at least the number in the box number of notes. For example, if the number is 7 (like below), when the user click on the Search button, all syllables with 7+ notes will be highlighted.

Search result when the melisma box shows 6:

Search result when the melisma box is 7: (notice less syllables are highlighted here)

You can try it out on branch melodic-density

hello! I love the input box but maybe we should clarify somewhere that it searches for syllable that contain "at least" number in the box notes.

@notkaramel: After you have implemented this for 6-note melismas, the next step would be to allow the user to choose the number of notes in the melismas (a minimum of 6 and a maximum of 12).
@elsinhadl, could you double-check that these were the numbers we agreed on?

Yes, these were the numbers we agreed on but actually I think that the "input box" solves our problems and allows a great flexibility. Maybe there is no need to have categories if we can use the input box

hello! I love the input box but maybe we should clarify somewhere that it searches for syllables that contain "at least" number in the box notes.

What about instead of saying: Melisma (#notes in a syllable) [ ]
We do:
Melisma (**minimum** #notes in a syllable) [  ]
Or maybe:
Melismatic Search:
Looking for syllables with melismas of at least [ ] notes

Yes, these were the numbers we agreed upon but actually I think that the "input box" solves our problems and allows great flexibility. Maybe there is no need to have categories if we can use the input box. I am happy with this solution!

Hi @elsinhadl, yes, we won't have categories, just the box with numbers that can go from a minimum of 6 to a maximum of 12. Does that sound good to you?

Hello,
I wonder if the numbers in the box can go from 2 to a max of 20. Would that a problem to change the current numbers?

@elsinhadl Hi Elsa,
I can make the box go from 2 to 20. The only problem (more like a slight inconvenient) is that the user would have to click a lot of times to reach the maximum value, or to decrease it.

@martha-thomae I'm so sorry I forgot about updating the wordings of the melisma search. Will open a quick PR to patch it


Feature request: cheat/ util for checking addresses blacklisted by USDC/ USDT

testForkFuzz_ tests that run against USDC/ USDT break when the fuzzed address happens to be blacklisted.
This problem would be solved by a cheat/ util that assumes that the fuzzed address is not blacklisted. Here's a draft of what I have in mind:
interface USDCLike {
    function isBlacklisted(address) external view returns (bool);
}

interface USDTLike {
    function isBlackListed(address) external view returns (bool);
}

function assumeNoBlacklisted(address token, address addr) internal virtual {
    if (token == 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) {
        USDCLike usdc = USDCLike(token);
        vm.assume(!usdc.isBlacklisted(addr));
    } else if (token == 0xdAC17F958D2ee523a2206206994597C13D831ec7) {
        USDTLike usdt = USDTLike(token);
        vm.assume(!usdt.isBlackListed(addr));
    }
}

Of course, the function could be shortened by using a low-level call instead of using an interface; also, checking that token is USDC/ USDT is not strictly necessary, as we could check the success status of the low-level call, ignore reverts, and check if the return data is false.

tests that run against USDC/ USDT break when the fuzzed address happens to be blacklisted.

Were these blacklisted addresses in your code somewhere, or did forge generate them on its own? I'm assuming the former, since I don't know how they'd get into the forge dict otherwise, in which case it makes the argument for including this as a stdCheat a lot weaker (I'm not against it, but it does feel very specific to a use case so I'm hesitant to merge the PR)

The blacklisted addresses were not in our code! Forge found them all by itself.
We started bumping into this scenario in our CI, so much so that we ended up writing our subroutine, and now we need the said subroutine in another repo, so I said that it might be a good thing to put it in Forge Std 😁
Here are some screenshots from February:

Huh, interesting! Should this be enough to reproduce, since a blacklisted holder/spender should revert on approval
import "forge-std/Test.sol";
import {IERC20} from "forge-std/interfaces/IERC20.sol";

contract Test8 is Test {
  IERC20 usdc = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);

  function setUp() public {
    vm.createSelectFork(vm.envString("MAINNET_RPC_URL"), 17_330_951);
  }

  function test_usdcBlacklist(address holder, address spender) external {
    vm.assume(holder != address(0) && spender != address(0));
    vm.prank(holder);
    usdc.approve(spender, 1);
  }
}

Presumably the blacklist addresses must have gotten into the dict somehow? It looks like the values are stored in a mapping, and obtaining all keys to a mapping isn't trivial, and I'm pretty certain forge doesn't use fork storage to initialize the dict (but I could be wrong). Just trying to better understand how this can happen. If any of your tests loaded/observed a blacklisted address in a tx it'd get added to the dict, but it sounds like that may not be the case

Should this be enough to reproduce

Possibly, although you may need a very high fuzz.runs number.

Presumably the blacklist addresses must have gotten into the dict somehow?

I'm as certain a person can be that we have never hard coded any blacklisted user ourselves; Forge fuzzed them, which caused our CI to fail.

I'm pretty certain forge doesn't use fork storage to initialize the dict

I'm also open to the possibility that it used to do this, but it doesn't do that anymore now?
Is there any Foundry maintainer we can tag to help us elucidate this mystery?

Added a check for address(0) and the precompiles: https://github.com/foundry-rs/forge-std/pull/498
This should reduce the odds of running into this edge case.


Unspecified Referrers API Behavior on Non-Existing Manifest

In the section Listing Referrers, the spec states

Assuming a repository is found, this request MUST return a 200 OK response code. If the registry supports the referrers API, the registry MUST NOT return a 404 Not Found to a referrers API requests.

However, it does not specify what the behavior is if the repository is found but the manifest that the <digest> points to does not exist. Since the registry MUST NOT return a 404 and other 4xx errors are not appropriate, I would like to suggest always returning an empty list for non-existing manifest in an existing repository.
As a byproduct, the empty list for non-existing manifest allows the clients to check the Referrers API efficiently by querying a zero digest where the probability of collision is negligible.
/v2/<name>/referrers/sha256:0000000000000000000000000000000000000000000000000000000000000000

In addition, if a repository is not found (i.e. not exist), what is the return status code of the referrers API?

Both of these should return an empty index:

If a query results in no matching referrers, an empty manifest list MUST be returned.

What's the use case for checking if the API exists without querying the API for a specific digest?

When querying the referrers API for pushing manifests with subject and deleting manifests, we actually do not need the returned index result but the status code 200 or 404. Based on this, we can try to query the referrers list of a non-existing manifest so that the remote server can cost less and response more quickly.

... we actually do not need the returned index result but the status code 200 or 404. Based on this, we can try to query the referrers list of a non-existing manifest so that the remote server can cost less and response more quickly.

Perhaps a HEAD request would be more appropriate for those. My hope is that the responses become cached so there isn't much server overhead after the first query following any change. For your use cases, an unknown digest will work on registries following the spec and we should include that in any compliance tests.

A HEAD request is a good idea but it won't reduce the server cost since the server still needs to load everything to compute the Content-Length header.

Since this was opened, we added the OCI-Subject header that should help with the push scenario. For deleting manifests, you'd only want to delete the referrers when deleting by digest rather than deleting a tag (since there may be other tags pointing to the manifest, and an untagged manifest could be retained). What that doesn't help with are referrers to GC'd manifests, so a periodic cleanup process run by clients looking for referrers tags to digests that don't exist could be useful.
It's been a while since this was asked. Is this issue okay to close?


remove index param from enableManualSummarization

Description
This PR changes the enableManualSummarization() function in the TestTreeProvider class to indicate that manual summarization currently does not work when the TestTreeProvider creates multiple trees.
The index parameter is removed from the function (as it can only ever be 0), and an assert statement is added to ensure only 1 tree has been created.

I have updated the create() method to set the summarizer (as a class field), and updated the test cases in testTreeProvider.spec.ts to use the new summarize() method.
As we no longer require the enableManualSummarization method, should I go ahead and remove it? I did notice that it's also being used in SharedTree.spec.ts, so should I update the test cases to use the new summarize() method there as well?


Fix unexpected overwrite of default settings

default setting config -> this should impact default builtin setting definitions
updating setting CR -> this should not impact the default setting definitions
longhorn/longhorn#2570
Signed-off-by: Derek Su<EMAIL_ADDRESS>

cc @cchien816

Refactoring according to the discussion with @shuo-wu


Export variable and constraint names in LP files

A small modification to export LP files with variable and constraint names.
Gurobi is able to read the generated LP files.
This modification does not apply to polar export.
I'm ready to improve the code if needed
This is related to issue https://github.com/PyPSA/linopy/issues/157

I'll fix the tests first

I added a new io_api type called "lp-debug" to write lp file with variable and constraint names. I don't know if you will like that approach. I can replace it by an extra argument to the function to_file instead if you prefer.

Ok. I'm on it

Well I did it in the end.
So the variable and constraint names  can be transfered to the solver either for lp, lp-polars, mps or direct api.
Only CBC and GLPK are incompatible (if trying to solve with_names=True and with one of these solvers, a warning will be printed and the option will be deactivated).
I couldn't test it with mindopt due to issues with my mindopt license. But all other solvers work fine

Wow, well done @olivierjuan ! I promise to have a look soon and then we can merge it 🚀


can i chain redux promise action in react component?

I have a redux action which get data from server my action is like this:
export const getFakeData = () => (dispatch) => {
  return dispatch({
    type: 'GET_FAKE_DATA',
    payload: {
      promise: axios.get('/test'),
    }
  });
};

my reducer is like this:
const reducer = (INITIAL_STATE, {
  [GET_FAKE_DATA]: {
    PENDING: () => ({
      isLoading: true,
    }),
    FULFILLED: (state, action) => {
      const { data } = action.payload.data;
      return {
        ...state,
        data,
        error: false,
        isLoading: false,
      };
    },
    REJECTED: () => ({
      isLoading: false,
      error: true
    }),
});

I want to show success alert after my action sent, is below code breaks the principle of redux about one way flow?
this.props.getFakeData().then(() => {
  this.setState({
    showAlert: true
  });
});

For the purposes of setting local state, that makes sense to me. Reading from the store for something as ephemeral as a loading state seems to be cramming too much value into the store and may couple you too much to its state.


NullPointerException on File indexing (IgnoreFilesIndex), infinite loop of failing re-indexes.

Prerequisites

[x] Plugin is in the latest version
[x] Issue was not reported yet
[ ] Stack trace (if provided) contains mobi.hsz.idea.gitignore package name

Description
Infinite loops of index runs (every ~10 sec), each accompanied with the following log entries:
2018-04-04 10:02:51,358 [ 165995] INFO - il.indexing.FileBasedIndexImpl - Rebuild requested for index IgnoreFilesIndex
java.lang.NullPointerException
at com.intellij.util.indexing.impl.ValueContainerImpl.saveTo(ValueContainerImpl.java:410)
at com.intellij.util.indexing.impl.ChangeTrackingValueContainer.saveTo(ChangeTrackingValueContainer.java:174)
at com.intellij.util.indexing.impl.ValueContainerMap$1.append(ValueContainerMap.java:58)
at com.intellij.util.io.PersistentHashMap.doAppendData(PersistentHashMap.java:481)
at com.intellij.util.io.PersistentHashMap.appendData(PersistentHashMap.java:458)
at com.intellij.util.indexing.impl.ValueContainerMap.doPut(ValueContainerMap.java:55)
at com.intellij.util.indexing.impl.ValueContainerMap.doPut(ValueContainerMap.java:28)
at com.intellij.util.io.PersistentHashMap.put(PersistentHashMap.java:377)
at com.intellij.util.indexing.impl.MapIndexStorage$3.onDropFromCache(MapIndexStorage.java:132)
at com.intellij.util.indexing.impl.MapIndexStorage$3.onDropFromCache(MapIndexStorage.java:99)
at com.intellij.util.containers.SLRUMap.clear(SLRUMap.java:148)
at com.intellij.util.indexing.impl.MapIndexStorage.flush(MapIndexStorage.java:156)
at com.intellij.util.indexing.VfsAwareMapIndexStorage.flush(VfsAwareMapIndexStorage.java:106)
at com.intellij.util.indexing.MemoryIndexStorage.flush(MemoryIndexStorage.java:127)
at com.intellij.util.indexing.impl.MapReduceIndex.doFlush(MapReduceIndex.java:148)
at com.intellij.util.indexing.VfsAwareMapReduceIndex.doFlush(VfsAwareMapReduceIndex.java:192)
at com.intellij.util.indexing.impl.MapReduceIndex.flush(MapReduceIndex.java:127)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:600)
at com.intellij.util.indexing.FileBasedIndexImpl.access$4600(FileBasedIndexImpl.java:117)
at com.intellij.util.indexing.FileBasedIndexImpl$FileIndexDataInitialization$1.run(FileBasedIndexImpl.java:2443)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Steps to Reproduce

Update .ignore Plugin to latest version (2.5)
Open any Project in PHPStorm

Expected behavior: Index runs once, then finishes, as nothing changed
Actual behavior: Infinite index reruns (every ~10 sec)
Reproduces how often: 100%
Versions
Plugin: 2.5
IDE: PHPStorm 2018.1 / 2017.3.6
OS: macOS 10.13.3 / 10.13.4
Additional Information
Removing .ignore Plugin and manual reinstall of version 2.4 fixed the index problem. does not fix the problem completely, but the NullPointerException with subsequent index rebuild occurs only occasionally.
idea.log

We had to disable .ignore plugin versions 2.4.0 and 2.5.0 in 2018.1.1 released due to the issue since it causes serious problems for many customers: https://youtrack.jetbrains.com/v2/issue/IDEA-189189

Btw,
IgnoreEntryOccurrence.deserialize seems to catch all IOExceptions and return null when deserializing the value from index

Affects PyCharm 2018.1

I found more serious problem in IgnoreEntryOccurrence: the value of an index should be immutable with persistent hashCode / equals (value is used as Key in a Map).
But IgnoreEntryOccurrence contains a list of Pair<java.util.regex.Matcher,Boolean> that a)  is mutable b) serializing Matcher and deserializing it back will produce nonequal Matcher instances!

@nicity Thanks for this summary. I've made a few changes - available in separated branch: https://github.com/hsz/idea-gitignore/commit/24d0b061f4c83624e1815c8435b8185ee5bb5281
I'd also appreciate if someone would install following package and verify if issues are resolved.
idea-gitignore-2.6.0-RC.1.zip

@hsz I installed the attached plugin in PhpStorm 2018.1.1. The exceptions no longer show up but every time I run some commands that updates ignored files, e.g. phpunit, they get re-indexed.
2018-04-11 10:57:29,184 [ 116065]   INFO - g.FileBasedIndexProjectHandler - Reindexing refreshed files: 143 to update, calculated in 4ms
2018-04-11 10:57:32,695 [ 119576]   INFO - .diagnostic.PerformanceWatcher - Reindexing refreshed files took 3509ms; general responsiveness: ok; EDT responsiveness: ok

Is it related to this issue?

@nicity
IgnoreEntryOccurrence is now immutable:

instead of storing items in ArrayList - it's array now,
I've moved from Matcher to Pattern which is serializable
equals/hashCode are correctly calculated

Regarding NPE - I've removed try-catch and IOException will be handled by IDE directly - so I don't return null anymore. I didn't link this commit properly before - here it is: https://github.com/hsz/idea-gitignore/commit/8a4797aafab37f82b99e11fc3eb3b7c8a2f7e365
Correct me if I'm wrong, but it should resolve this NPE problem, right?

@hsz Changes for Try / catch / IOException aren't enough for the originally reported problem: 'value' can be null inside indices. I commented on code because it masks other problems: e.g. readUTF throws exception for large strings.
Mutable IgnoreEntryOccurrence (as it breaks index contract) leads to NPE problem because Value are keys inside Map and mutability breaks key's hashcode.

All right - everything is resolved, refactored and tesed.
v2.6.0 is built and released.
Thanks @nicity !


gedis client failed to connect to explorer 3bot

@zaibon I can't reproduce it on development. Any info that you can give me to be able to reproduce your state? which version were you using before?

I dont really see any recent changes in gedis client except this change in the default value of the package name. I undid it in my local code, created a gedis client instance then readded it again, and was able to get the gedis client without any issues. https://github.com/threefoldtech/jumpscaleX_core/commit/ec42c87df209ca24ca9ed36c63ec34ebb1a2139b#diff-c89b60396efd7415c12f0ce1b020606fL24

So does this mean package_name argument is now mandatory? if so why is it still marked as optional ?
JSX> cl = j.clients.gedis.get('explorer',host='explorer.testnet.grid.tf',package_name='tfgrid.directory')
this line seems to work. But I'm still unable to use j.clients.threebot which is what end user are supposed to use.

No, it doesn't mean it's mandatory. Nothing in what I said implies that it's mandatory. The change I linked only changed the default value of package_name in the schema. Can you paste the error you're getting for j.clients.threebot

well using package_name is the only way I got to have actors to be loaded in the client. thus why I asked if it was mandatory to make it work. Which seems to be the case for me.
explorer is down again, so I can test anymore right now.

@zaibon I was using package_name because that's how you did the call when you posted the first error not because it's mandatory, and I even used the same package. package_name already has default value zerobot.base in gedisclient.

@zaibon since explorer is down and I also can't test against it. I started explorer locally, and tested both gedis and threebot client, and they both work fine. When explorer is up again, or when you face any errors, please add the stack trace to the ticket and I'll look into it.


Migrate over to ESBuild from Rollup

Describe Request
Migrate over to ESBuild from Rollup
Fixed #121
Change Type
Optimization work.

Codecov Report

Merging #125 (d6e71a0) into main (2f7b63d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #125   +/-   ##
=======================================
  Coverage   64.45%   64.45%
=======================================
  Files          92       92
  Lines        1525     1525
  Branches      181      181
=======================================
  Hits          983      983
  Misses        529      529
  Partials       13       13

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 2f7b63d...d6e71a0. Read the comment docs.


[BEAM-7996] Add support for MapType and Nulls in container types for Python RowCoder

This PR adds support for MapType in the Python RowCoder, as well as support for encoding nulls inside of container types (NullableCoder).

This is relevant for BEAM-10571. Some existing payloads use List<KV<K,V>> fields, which we could replace with Map<K,V> when using schemas to encode the payload.

Run Portable_Python PreCommit

Are we going to use this as a basis for a stand alone "beam:coder:map:v1" urn type as well? As it stands I'll be changing Go to use this encoding for map types by default anyway. Though I believe we don't have the equivalent "beam:coder:optional/nullable" component wrapper urn to handle the other half of this PR.
This comes up as the following: In the event users are serializing raw maps or iterables with pointer components, the Go SDK will likely default to the nullable interpretation.  This comes into play with proto element types which in Go are defaulted to pointers to structs.  (However, this is probably a non-issue if the proto type is decomposed into a schema instead.)

Run Java PreCommit

Run Java PreCommit


move ecommerce intro

LGTM once CI issues are solved

Validation errors are caused by this: https://github.com/ampproject/amphtml/pull/10159


Question - is this project still alive?

I understand that people are busy but I notice there have been no commits since Jun 11th.
It would be a shame for such a popular repo to bite the dust. My skills are not good enough to maintain it I'm afraid, but maybe there are others who could be given access to help close some of the pull requests?

You're not the only user, I do see from time to time the maintainer answer to issues, so I guess that, at the very least, the maintainer is alive :) Still, I think it is, but is is stable enough to be slow, I guess.

@pounard Sorry I don't understand why you state the obvious fact that I am not the only user.
I can see the maintainer is alive but he is clearly very busy on other projects (if you examine what he is committing to on his profile, for example, 179 private repos committed to in Oct - so clearly a busy person!)
I am simply putting out the idea that if he is too busy perhaps it would be a good idea to seek volunteers to enlarge the team of people who can review/close outstanding pull requests and help address the growing list of issues being raised. That's all.

Yes, I understand, I don't know what his plans are, but as I can see it, I didn't step through any major or blocking bug I always had a way to do whatever I needed to do, so I guess it's pretty normal for this project to be slow if you consider it as stable enough.

@pounard Ok fair point, it is pretty stable. I suppose if it is normal for it to be slow, I can understand and accept that. :)


feat: add store rooms (slice, thunk) "Redux"

Codecov Report
Base: 33.42% // Head: 40.74% // Increases project coverage by +7.32% :tada:

Coverage data is based on head (92587fb) compared to base (0bc1aca).
Patch coverage: 53.52% of modified lines in pull request are covered.

Additional details and impacted files
@@               Coverage Diff               @@
##           development      #72      +/-   ##
===============================================
+ Coverage        33.42%   40.74%   +7.32%
===============================================
  Files               63       78      +15
  Lines              377      481     +104
  Branches            37       40       +3
===============================================
+ Hits               126      196      +70
- Misses             218      248      +30
- Partials            33       37       +4

Impacted Files
Coverage Δ

src/containers/Home.container.tsx
0.00% <0.00%> (ø)

src/containers/index.ts
0.00% <0.00%> (ø)

src/mocks/fixtures/index.ts
100.00% <ø> (ø)

src/pages/_app.tsx
0.00% <0.00%> (ø)

src/pages/api/room/[id].ts
0.00% <ø> (ø)

src/pages/api/room/index.ts
0.00% <ø> (ø)

src/pages/api/rooms/index.ts
0.00% <ø> (ø)

src/pages/api/seeding/rooms/index.ts
0.00% <ø> (ø)

src/pages/index.tsx
0.00% <0.00%> (ø)

src/server/controllers/room.ts
0.00% <0.00%> (ø)

... and 26 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Classpath Issues on Windows

Hi,
I generated classpath.txt by Maven but still getting undefined symbols for a Spring Boot project, on Windows. (Path separator ";" File separator "")
Everything works for jdk and project local classes.
Demo Spring Boot Project:
demo.zip

Workaround:
Seems to be the absolute paths.
İf I use relative paths it works:
../../.m2/repository

thanks man.. your demo project is good..
and Ctrl + space is not showing up! Untill I type a char, nothing shows up.

Should be fixed by https://github.com/georgewfraser/vscode-javac/commit/4e818e3a7065dce9e7459e8571cc7079823f47e7


[install] use data_dir from config_hash

the data_dir variable in install.pp appears to be unused making it
impossible to change the owner of the data_dir directory. This makes it possible to change the owner of the data_dir, as well as force consistency with the configuration.

Seems to be working fine when I test is against the latest master :confused:
Puppet run with group changed:
Notice: /Stage[main]/Consul::Install/File[/opt/consul]/owner: owner changed 'consul' to 'root'
Notice: /Stage[main]/Consul::Install/File[/opt/consul]/group: group changed 'consul' to 'root'

Notice: /Stage[main]/Consul::Install/File[/opt/consul]/owner: owner changed 'root' to 'consul'
Notice: /Stage[main]/Consul::Install/File[/opt/consul]/group: group changed 'root' to 'consul'

Yea, I don't mind moving the data_dir to be injected into the install class, but if you do that, please remove that other plumbing that aj linked to.
I does look like we don't have tests coverage for ensuring that the owner is set correctly. So if isn't, please add a test to ensure it is correct and stays correct.

@solarkennedy I wouldn't do that because this block requires it. Although a test to ensure proper user/group seems like a fantastic idea!
I guess Im trying to understand why we think the existing code isin't working? Is there a way we can replicate it?

I wonder if the version of puppet makes a difference here. I'm running 3.2.4 (Puppet Enterprise 3.0.1). Are you on a different version?
I don't see how $consul::user in the install.pp resolves to the value in the init.ppl, so maybe that is new.

I tested this on 3.3.2. The way puppet inheritance works, because we call class { 'consul::install': } in init.pp, install.pp has access to all params from init.pp.

Is it safe to close this pull request now?  Seems that there isn't actually a problem here instead of there being no tests explicitly against the user/group ownership.

Yes, sorry for the lack of response. We may revisit this at a later time, but we aren't using this module at this time. It is probably something on our end. Thank you.


Thumbnails generator

Just an FYI I've created a preview thumbnails generator specifically for use with Cloudflare Stream. We use this process fairly extensively, embedded into the admin side of our site - I thought it might be useful to others as a standalone utility.
https://www.npmjs.com/package/plyr-stream-thumbs

Could you give an example of how to use this from the command line?
I have a 30 minute video file, I can generate a mosaic of the frames, but this vtt file can't.
Do you think your program can do this from the command line to be run by a shell?

Hi @campiotto this tool is intended specifically for generating thumbs for videos hosted on Cloudflare Stream. Take a look at the VTT portion of the code .. You could easily repurpose/reinvent it to work with ffmpeg or similar, but you'd need to wrap it appropriately for cli use.

i did an online tool to create thumbnails for videos, here https://davidclews.com/article/54.html

I wrote a small, configurable bash script that uses ffmpeg and montage from ImageMagick to create thumbnail sprites for plyr:
#!/usr/bin/bash

FRAME_WIDTH=178
FRAME_HEIGHT=100
MAX_COLUMNS=8
MAX_ROWS=6
SECONDS_BETWEEN_FRAMES=5
SPRITE_JPEG_QUALITY=80

if [[ $# -lt 2 ]]; then
    echo "Usage: $0 my_video.mp4 my_video_thumbs"
    exit 1
fi

video_file=$1
output_prefix=$2

sprite_file_prefix=${output_prefix}_
vtt_file=${output_prefix}.vtt

tmpdir=$(mktemp --tmpdir --directory video-thumbnails.XXX)
trap 'rm -rf -- "$tmpdir"' EXIT

# Extract frames from video file with ffmpeg

ffmpeg -v quiet -stats -i "$video_file" \
    -vf "fps=1/${SECONDS_BETWEEN_FRAMES},scale=${FRAME_WIDTH}:${FRAME_HEIGHT}" \
    "$tmpdir/frame_%08d.png"

num_images=$(ls -1 "$tmpdir" | wc -l)

# Combine frames into one or more sprites

montage "$tmpdir"/frame_*.png -tile "${MAX_COLUMNS}x${MAX_ROWS}" -geometry "+0+0" \
    -background black -quality "$SPRITE_JPEG_QUALITY" "${sprite_file_prefix}%d.jpg"

# Generate index file in WEBVTT format

printf "WEBVTT\n" > "$vtt_file"

let column=0 row=0 file=0
for (( image=1; image<=$num_images; ++image )); do
    start_time=$(date "+%T.000" -d "2020-01-01T00:00:00 $(( (image - 1) * SECONDS_BETWEEN_FRAMES )) seconds")
    end_time=$(date "+%T.000" -d "2020-01-01T00:00:00 $(( image * SECONDS_BETWEEN_FRAMES )) seconds")
    printf "\n%d\n%s --> %s\n%s#xywh=%d,%d,%d,%d\n" \
        "$image" "$start_time" "$end_time" "$(basename "$sprite_file_prefix")$file.jpg" \
        "$(( column * FRAME_WIDTH ))" "$(( row * FRAME_HEIGHT ))" \
        "$FRAME_WIDTH" "$FRAME_HEIGHT" >> "$vtt_file"

    let ++column
    if (( column >= MAX_COLUMNS )); then let column=0 ++row; fi
    if (( row >= MAX_ROWS )); then let row=0 ++file; fi
done


Laravel 5.4 - Issue with Jobs after move model

I have this error on my console. I use Jobs from Laravel 5.4 and I have move the Feed Model in App\Models\Feed. Since two days, I have this error because Laravel doesn't find the Feed Model. I have restart my Jobs with php artisan queue:restart.

[2017-07-13 10:45:33] staging.ERROR:
Symfony\Component\Debug\Exception\FatalThrowableError: Class
'App\Feed' not found in
/home/site_com/http/www/vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php:45

<?php

namespace App\Jobs;

use App\Models\Feed;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class FetchFeeds implements ShouldQueue {
	protected $feed;
	public function __construct(Feed $feed)
    {
        $this->feed = $feed;
    }
}

This is expected behavior. It is because you didnt restart the queue after making changes.
You should always restart the queue during your deployment process.

Assuming you've actually restarted the workers; can you confirm that this is a newly dispatched job, and not an old job that is serialized with the old Feed class?

I have already restart the Job with php artisan queue:restart.


Will you consider adding the function of custom folder?

I hope to use it with obsidian on iOS.

I looked into that previously, but libgit2 uses standard C file APIs for working with git files while iOS and Android use custom APIs for working with custom folders outside an app’s control. So libgit2 would need to be rewritten to use different APIs for accessing files, which is outside the scope of this project.
It would probably be easier for Obsidian to add support for using outside folders to store its data (or for Apple and Google to redesign their file security scheme to map their files into the OS file system properly instead of the hacky, non-performant thing they implemented instead).


Fix Memcached user on Debian and/or Ubuntu, or add if missing.

This is to fix the default user on Debian and/or Ubuntu which used to be the
nobody user, but that since has changed, as per:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=587797
https://launchpad.net/ubuntu/+source/memcached/1.4.13-0.1ubuntu1

Nowadays, packages on both Debian and Ubuntu (and most likely their derivatives)
would create dedicated memcache user. Nonetheless, we attempt to create
a dedicated user in case there isn't one already.
Signed-off-by: Krzysztof Wilczynski<EMAIL_ADDRESS>

I also found this:

#23
#33

The #33 will be superseded by this pull request.

There are some Rspec failures which look like some incompatibility there, I will have a look.

Merging.  Please fixup the specs if a new PR.  Nice catch on the bad attribute section too.

@tas50 will do, thanks!


[StorageNodeRegistry] Create contract.

Create a contract : https://github.com/verida/VIPs/pull/4

Let's expand the scope of this issue.

Expand StorageNodeInput to support numberSlots (integer) indicating how many storage slots the node will provide.
The number of tokens required to stake must be defined in a variable (STAKE_PER_SLOT). Only contract owner can change this variable. Initial value is 60 VDA tokens.
When addNode() is called, the requester must provide VDA tokens to stake. The number of staked tokens must be numberSlots * STAKE_PER_SLOT. The staked tokens should be registered against the storage node being registered.
When removeNode() is called, the staked tokens for that storage node should be released to the requester of this call.
Add a new method withdraw() allowing the requester to remove tokens for a given storage node. They must provide a signed request proving they control the private key of the storage node. If the STAKE_PER_SLOT goes down, then the storage node owner can withdraw excess tokens.
Add a new method deposit() allowing a storage node owner to add more tokens to a given storage node. They must provide a signed request proving they control the private key of the storage node. If the STAKE_PER_SLOT goes up, then the storage node owner can deposit additional tokens.

Note: We have not yet handled the scenario where STAKE_PER_SLOT is increased and storage node operators do not have enough tokens staked. This will be handled later. We will implement storage node operators earning a revenue from their nodes. They won't be able to earn revenue if they don't have enough tokens staked.

Add a new method deposit() ...
Here, I think, we don't need the provide the signed request. We can deposit the token amount from any requestor to that didAddress as following:

function depoistToken(address didAddress, uint tokenAmount) external;

Add a new method deposit() ...
Here, I think, we don't need the provide the signed request. We can deposit the token amount from any requestor to that didAddress as following:

function depoistToken(address didAddress, uint tokenAmount) external;

And this deposit() function will work for only the registered DIDs, correct?

Yes, correct.


Python API formatting / code style and extended typing

Format with black.
Conform to pycodestyle.
Add types to API functions as a method of documentation.

All print to stdout must be removed due to compliance with cli


Svelte Add Tailwind CSS (using TypeScript)?

I saw there's a way to use PostCSS with a TypeScript config (It's supported by the loader) but I haven't gotten it working with SvelteKit yet. Has anyone figured out a clean way to do this, even if it requires some updates to Svelte Config? Perhaps your changes could be worked into the Adder to help us work away from require statements and CJS syntaxes.

Potentially related: https://github.com/vitejs/vite/issues/5316

same issue

This seems to be currently working


Starrocks executing a specific query will cause the Query history page to report an error and not load the data

Bug description
Starrocks executing a specific query will cause the Query history page to report an error and not load the data. Error msg: An error occurred while fetching Query historys: Fatal error

https://github.com/user-attachments/assets/dc4bf4da-4725-47ac-9545-ceaac1e429ae
How to reproduce the bug

Create a data source with mysql, fill in the Starrocks cluster address and account secret.
Goto Query history page(/sqllab/history/), at this point, you can see the query record normally.
Goto Sql Lab, select the Starrocks data source you just created.
Execute the following sql: select date_add(current_date, -1) as yst_date.
Return to the Query history page, at this point the page reported an error, can not browse the query history.

Screenshots/recordings
superset_app container logs:
2024-08-22 06:53:04,605:ERROR:flask_appbuilder.api:list index out of range
Traceback (most recent call last):
File "/app/superset/sql_parse.py", line 297, in _extract_tables_from_sql
statements = parse(self.stripped(), dialect=self._dialect)
File "/usr/local/lib/python3.10/site-packages/sqlglot/init.py", line 87, in parse
return Dialect.get_or_raise(read or dialect).parse(sql, **opts)
File "/usr/local/lib/python3.10/site-packages/sqlglot/dialects/dialect.py", line 490, in parse
return self.parser(**opts).parse(self.tokenize(sql), sql)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 1153, in parse
return self._parse(
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 1219, in _parse
expressions.append(parse_method(self))
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 1427, in _parse_statement
expression = self._parse_set_operations(expression) if expression else self._parse_select()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 2486, in parse_select
from = self._parse_from()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 2693, in _parse_from
exp.From, comments=self._prev_comments, this=self._parse_table(joins=joins)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3067, in _parse_table
subquery = self._parse_select(table=True)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 2501, in _parse_select
self._parse_table()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3067, in _parse_table
subquery = self._parse_select(table=True)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 2491, in _parse_select
this = self._parse_query_modifiers(this)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 2639, in _parse_query_modifiers
key, expression = parser(self)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 942, in
TokenType.WHERE: lambda self: ("where", self._parse_where()),
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3394, in _parse_where
exp.Where, comments=self._prev_comments, this=self._parse_conjunction()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3704, in _parse_conjunction
return self._parse_tokens(self._parse_equality, self.CONJUNCTION)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 5534, in _parse_tokens
this = parse_method()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3707, in _parse_equality
return self._parse_tokens(self._parse_comparison, self.EQUALITY)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 5541, in _parse_tokens
expression=parse_method(),
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3710, in _parse_comparison
return self._parse_tokens(self._parse_range, self.COMPARISON)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 5534, in _parse_tokens
this = parse_method()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3713, in _parse_range
this = this or self._parse_bitwise()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3832, in _parse_bitwise
this = self._parse_term()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3864, in _parse_term
return self._parse_tokens(self._parse_factor, self.TERM)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 5534, in _parse_tokens
this = parse_method()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3868, in _parse_factor
this = parse_method()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3889, in _parse_unary
return self._parse_at_time_zone(self._parse_type())
File "/usr/local/lib/python3.10/site-packages/sqlglot/dialects/mysql.py", line 602, in _parse_type
return super()._parse_type(parse_interval=parse_interval)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3910, in _parse_type
data_type = self._parse_types(check_func=True, allow_identifiers=False)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 4005, in _parse_types
expressions = self._parse_csv(self._parse_type_size)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 5520, in _parse_csv
parse_result = parse_method()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3927, in _parse_type_size
this = self._parse_type()
File "/usr/local/lib/python3.10/site-packages/sqlglot/dialects/mysql.py", line 602, in _parse_type
return super()._parse_type(parse_interval=parse_interval)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 3911, in _parse_type
this = self._parse_column()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 4113, in _parse_column
this = self._parse_column_reference()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 4117, in _parse_column_reference
this = self._parse_field()
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 4232, in _parse_field
or self._parse_function(anonymous=anonymous_func)
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 4253, in _parse_function
func = self._parse_function_call(
File "/usr/local/lib/python3.10/site-packages/sqlglot/parser.py", line 4319, in _parse_function_call
func = function(args)
File "/usr/local/lib/python3.10/site-packages/sqlglot/dialects/dialect.py", line 707, in _builder
raise ParseError(f"INTERVAL expression expected but got '{interval}'")
sqlglot.errors.ParseError: INTERVAL expression expected but got '-1'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/flask_appbuilder/api/init.py", line 110, in wraps
return f(self, *args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/flask_appbuilder/api/init.py", line 182, in wraps
return f(self, *args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/flask_appbuilder/api/init.py", line 1711, in get_list
return self.get_list_headless(**kwargs)
File "/app/superset/queries/api.py", line 340, in get_list_headless
response[flask_appbuilder.const.API_RESULT_RES_KEY] = list_model_schema.dump(lst, many=True)
File "/usr/local/lib/python3.10/site-packages/marshmallow/schema.py", line 557, in dump
result = self._serialize(processed_obj, many=many)
File "/usr/local/lib/python3.10/site-packages/marshmallow/schema.py", line 519, in _serialize
return [
File "/usr/local/lib/python3.10/site-packages/marshmallow/schema.py", line 520, in
self._serialize(d, many=False)
File "/usr/local/lib/python3.10/site-packages/marshmallow/schema.py", line 525, in _serialize
value = field_obj.serialize(attr_name, obj, accessor=self.get_attribute)
File "/usr/local/lib/python3.10/site-packages/marshmallow/fields.py", line 344, in serialize
return self._serialize(value, attr, obj, **kwargs)
File "/usr/local/lib/python3.10/site-packages/marshmallow/fields.py", line 1991, in _serialize
return self._serialize_method(obj)
File "/app/superset/queries/schemas.py", line 76, in get_sql_tables
return obj.sql_tables
File "/app/superset/models/sql_lab.py", line 75, in sql_tables
extract_tables_from_jinja_sql(
File "/app/superset/sql_parse.py", line 1126, in extract_tables_from_jinja_sql
).tables
File "/app/superset/sql_parse.py", line 287, in tables
self._tables = self._extract_tables_from_sql()
File "/app/superset/sql_parse.py", line 303, in _extract_tables_from_sql
**ex.errors[0]
IndexError: list index out of range
2024-08-22 06:53:04,613:INFO:werkzeug:<IP_ADDRESS> - - [22/Aug/2024 06:53:04] "GET /api/v1/query/?q=(filters:!((col:database,opr:rel_o_m,value:2)),order_column:start_time,order_direction:desc,page:0,page_size:25) HTTP/1.1" 500 -
Superset version
4.0.2
Python version
3.10
Node version
16
Browser
Firefox
Additional context
No response
Checklist

[X] I have searched Superset docs and Slack and didn't find a solution to my problem.
[X] I have searched the GitHub issue tracker and didn't find a similar bug report.
[X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Maybe @miomiocat has some insight here?

I made a temporary change to superset/sql_parse.py which avoids this issue, but it may cause other problems, so someone still needs to fix the bug!
def _extract_tables_from_sql(self) -> set[Table]:
    """
    Extract all table references in a query.

    Note: this uses sqlglot, since it's better at catching more edge cases.
    """
    try:
        statements = parse(self.stripped(), dialect=self._dialect)
    except ParseError as ex:
        statements = []
    except SqlglotError as ex:
        ...

Hi, does anyone fix it? I got same problem in 4.0.2 version

Maybe @miomiocat has some insight here?

Thanks.
We should use a specialized StarRocks Python client to connect to StarRocks instead of using a MySQL client and this issue does not occur with the StarRocks client.
We will continue to focus on developing and maintaining this StarRocks Python client.
Please refer to this usage link: https://docs.starrocks.io/docs/integrations/BI_integrations/Superset/


⚠ GitHub has degraded performance

In d535ce5, GitHub (https://www.githubstatus.com/api/v2/status.json) experienced degraded performance:

HTTP code: 200
Response time: 71 ms

Resolved: GitHub performance has improved in ff64b9e after 1 hour, 12 minutes.


av.error.InvalidDataError: [Errno<PHONE_NUMBER>] Invalid data found when processing input

Bug description
Editing doesn't complete, gives error.
  File "<frozen runpy>", line 198, in _run_module_as_main   File "<frozen runpy>", line 88, in _run_code   File "C:\Users\talkp\AppData\Local\Programs\Python\Python311\Scripts\auto-editor.exe\__main__.py", line 7, in <module>  File "C:\Users\talkp\AppData\Local\Programs\Python\Python311\Lib\site-packages\auto_editor\__main__.py", line 347, in main     edit_media(paths, ffmpeg, args, temp, log)   File "C:\Users\talkp\AppData\Local\Programs\Python\Python311\Lib\site-packages\auto_editor\edit.py", line 378, in edit_media     make_media(tl, output)   File "C:\Users\talkp\AppData\Local\Programs\Python\Python311\Lib\site-packages\auto_editor\edit.py", line 313, in make_media     out_path, apply_later = render_av(ffmpeg, tl, args, bar, ctr, temp, log)                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "C:\Users\talkp\AppData\Local\Programs\Python\Python311\Lib\site-packages\auto_editor\render\video.py", line 222, in render_av     frame = next(decoders[obj.src])             ^^^^^^^^^^^^^^^^^^^^^^^   File "av\container\input.pyx", line 203, in decode   File "av\packet.pyx", line 87, in av.packet.Packet.decode   File "av\stream.pyx", line 172, in av.stream.Stream.decode   File "av\codec\context.pyx", line 524, in av.codec.context.CodecContext.decode   File "av\codec\context.pyx", line 427, in av.codec.context.CodecContext._send_packet_and_recv   File "av\error.pyx", line 336, in av.error.err_check av.error.InvalidDataError: [Errno<PHONE_NUMBER>] Invalid data found when processing input; last error log: [h264] number of reference frames (0+2) exceeds max (1; probably corrupt input), discarding one
What's your platform?
Python Version: 3.11.2 64-bit
Platform: Windows 10 amd64
FFmpeg Version: N-105325-g7512293cf9
FFmpeg Path: C:\Users\talkp\AppData\Local\Programs\Python\Python311\Lib\site-packages\ae_ffmpeg\Windows\ffmpeg.exe
Auto-Editor Version: 23w21a

What command did you use
auto-editor C:\Users\talkp\OneDrive\Documents\auto_editor_vids\7.mp4 -v 2.5

What properties does your input video have?
` - video:

track 0:

codec: h264
fps: 60000/1001
resolution: 1280x720
aspect ratio: 16:9
pixel aspect ratio: 1:1
duration: 3155.151600
pix fmt: yuv420p
color range: tv
color space: bt709
color primaries: bt709
color transfer: bt709
timebase: 1/90000
bitrate: 1007942
lang: und

audio:

track 0:

codec: aac
samplerate: 44100
channels: 2
duration: 3155.220317
bitrate: 127999
lang: und

container:

duration: 3155.221000
bitrate: 1149085`

Comments
I don't get that previous error that I was getting in my last bug report anymore.

Auto-Editor uses PyAV for rendering, and therefore, as a source of truth. If there is indeed invalid data, it doesn't make sense to create a valid output file when the input is already invalid.
I don't think there is any action that auto-editor can take.


Make card colors configurable

Card colors, specially the graph ones, could be configurable so it can be adapted to each dashboard theme
Context: https://www.reddit.com/r/homeassistant/comments/ne2mx4/sun_card_for_home_assistant/gyeip4x
Context: https://www.reddit.com/r/homeassistant/comments/ne2mx4/sun_card_for_home_assistant/gyf2qdq

I would like this as well. My theme is dark, but the text color stays black while the rest of my text is white.

Yes! I have the same issue, text color stays black when dark theme.

Me too

To make color of text white add darkMode: true to card configuration.

For me this is now closed, the suggestion by LiJu09 worked for me.


Using from() with a void typed promise returns type Observable

RxJS version: 6.4+, typescript version: 3.7.4
Code to reproduce:
function returnVoid(): Observable< void>{
const a: Promise< void>= new Promise< void>(resolve=>resolve())
return  from(a);
};
Expected behavior:
Should not throw an error on compile
Actual behavior:
I get the error "Type 'Observable< unknown> ' is not assignable to type 'Observable< void> '."
Additional information:
Downgrading to rxjs 6.2.2 works fine.

Not a bug. This is one of the rare instances in which it's necessary to specify a type argument explicitly:
function returnVoid(): Observable<void> {
  const a = new Promise<void>(resolve => resolve());
  return from(a);
}

It's not possible for TypeScript to infer the type parameter for Promise here and it must be specified explicitly.

Oh sorry I forgot to add that in for me even if I explicitly put the  onto the promise, I will still receive the error, I have updated my original post

I see no TypeScript error in the snippet that I posted:

I would suggest your creating a minimal reproduction of the problem. You might even discover what the problem is when you do so.

Well that did give a little bit more info, so in the tsconfig, I changed the target to be es2015 instead of es5 and that appeared to resolve the issue although I will admit that I do not know what in particular could have caused that as there is a large difference between the 2. Unfortunately I can't remove the es5 target due to having to support IE (the bane of my existence as a developer) but I can work around it for now with a type assertion. Thanks for your help.

The target in the tsconfig.json should not matter. What likely does matter is the lib setting. I would imagine that it has to be at least "lib": ["es2015"] as that's where TypeScript's types for Promise are.
The lib setting has nothing to do with what you are targeting. It relates to the types that should be included for the language features you intend to use - and you are using Promise. This answer explains it: https://stackoverflow.com/a/39306295/6680611

That fixed my problem, thank you, I was unaware of that setting.


Added Jones as contributor and added 2 posts.

Issue #, if available:
NA
Description of changes:
Added Jones Zachariah Noel as Contributor
Added 2 posts -
Amplify your web hosting
Understanding AWS Amplify
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Added a new post committed on Aug 24th. So the same PR will be inclusive of that?

Hi reviewers. Any updated on this PR?

Hey @zachjonesnoel , sorry for the slow response on this - the project is no longer being maintained but will be replaced with something new soon. Thank you so much for writing about amplify and being a member of the community!

Would be happy to contribute for the new one. 😄 Thanks @aspittel


feat: add Release type which is triggered by kusion apply

What type of PR is this?

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

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

Additional documentation e.g., design docs, usage docs, etc.:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
17 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.1%) to 54.659%

Files with Coverage Reduction
New Missed Lines
%

pkg/engine/operation/parser/spec_parser.go
4
56.1%

pkg/engine/operation/parser/parser.go
6
75.61%

pkg/engine/api/destroy.go
7
82.79%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
8799

Relevant Lines:
16098

💛  - Coveralls


etcd3 metrics missing

I installed all the prometheus-operator examples, quite a lot of metrics..
But missing etcd metrics..  Have running
NAME                    ENDPOINTS                                                              AGE
alertmanager-main       <IP_ADDRESS>:9093,<IP_ADDRESS>:9093,<IP_ADDRESS>:9093                   14d
alertmanager-operated   <IP_ADDRESS>:9093,<IP_ADDRESS>:9093,<IP_ADDRESS>:9093 + 3 more...       14d
etcd-k8s                <IP_ADDRESS>:2379                                                        1h
grafana                 <IP_ADDRESS>:3000                                                       14d
kube-state-metrics      <IP_ADDRESS>:8080                                                       14d
node-exporter           <IP_ADDRESS>:9100,<IP_ADDRESS>:9100,<IP_ADDRESS>:9100 + 12 more...   14d
postgres-exporter       <IP_ADDRESS>:9187                                                     8d
prometheus-k8s          <IP_ADDRESS>:9090,<IP_ADDRESS>:9090                                      14d
prometheus-operated     <IP_ADDRESS>:9090,<IP_ADDRESS>:9090,<IP_ADDRESS>:9090                    14d
prometheus-operator     <IP_ADDRESS>:8080                                                       14d
redis-exporter          <IP_ADDRESS>:9121

and getting on http://localhost:2379/metrics (kubectl proxy --port 2379) not the expected results of  etcd_server values..
Kubernetes version information:
´´´
tom.stark@MBproTStark prometheus-monitoring (aws)  $ kubectl --context=aws version
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.2", GitCommit:"922a86cfcd65915a9b2f69f3f193b8907d741d9c", GitTreeState:"clean", BuildDate:"2017-07-21T19:06:19Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.6+coreos.1", GitCommit:"42a5c8b99c994a51d9ceaed5d0254f177e97d419", GitTreeState:"clean", BuildDate:"2017-06-21T01:10:07Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"}
´´´

The problem is that etcd is typically quite locked down and is very different in its deployment. Essentially what you need is a Endpoints objects in your Kubernetes cluster, that includes the IP port combination that fits your cluster. An example for manual provisioning an Endpoints object can be found here:
https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/etcd/etcd-bootkube-vagrant-multi.yaml

I added  that svc and ep, replaced IP addresses for my setup .. but there is no metric etcd_server
tom.stark@MBproTStark prometheus-monitoring (aws)  $ kubectl -n monitoring get svc,ep | grep etcd
svc/etcd-k8s                <IP_ADDRESS>   <none>        2379/TCP            3m
ep/etcd-k8s                <IP_ADDRESS>:2379                                                        3m

Is it right, that ep and svc could resist in monitoring namespace?

Since this is just a manually maintained list of IPs, it doesn't actually matter where these objects are. You do need to make sure there is a ServiceMonitor object, that selects that Service/Endpoints object. Like this one: https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/prometheus/prometheus-k8s-service-monitor-kube-controller-manager.yaml

Thank you for response and hinting that. But I'm so sorry for my bad explanation on that, what I in general mean is, that I'm searching for the etcd_server items in the metrics.. I expect, that they should be listet on the etcd-k8s svc.. The snippet from the /metrics .. only etcd_helper_* and etcd_request_* entries listed.. concerning the documentation of https://coreos.com/blog/developing-prometheus-alerts-for-etcd.html  the etcd_server metrics should be listed..
apiserver_request_latencies_summary{resource="statefulsets",verb="LIST",quantile="0.9"} NaN
apiserver_request_latencies_summary{resource="statefulsets",verb="LIST",quantile="0.99"} NaN
apiserver_request_latencies_summary_sum{resource="statefulsets",verb="LIST"} 443
apiserver_request_latencies_summary_count{resource="statefulsets",verb="LIST"} 1
apiserver_request_latencies_summary{resource="statefulsets",verb="WATCH",quantile="0.5"} 4.13000323e+08
apiserver_request_latencies_summary{resource="statefulsets",verb="WATCH",quantile="0.9"} 5.32000506e+08
apiserver_request_latencies_summary{resource="statefulsets",verb="WATCH",quantile="0.99"} 5.32000506e+08
apiserver_request_latencies_summary_sum{resource="statefulsets",verb="WATCH"} 1.05957986482e+11
apiserver_request_latencies_summary_count{resource="statefulsets",verb="WATCH"} 254
apiserver_request_latencies_summary{resource="storageclasses",verb="LIST",quantile="0.5"} NaN
apiserver_request_latencies_summary{resource="storageclasses",verb="LIST",quantile="0.9"} NaN
apiserver_request_latencies_summary{resource="storageclasses",verb="LIST",quantile="0.99"} NaN
apiserver_request_latencies_summary_sum{resource="storageclasses",verb="LIST"} 444
apiserver_request_latencies_summary_count{resource="storageclasses",verb="LIST"} 2
apiserver_request_latencies_summary{resource="storageclasses",verb="WATCH",quantile="0.5"} 3.90000333e+08
apiserver_request_latencies_summary{resource="storageclasses",verb="WATCH",quantile="0.9"} 5.44000343e+08
apiserver_request_latencies_summary{resource="storageclasses",verb="WATCH",quantile="0.99"} 5.44000343e+08
apiserver_request_latencies_summary_sum{resource="storageclasses",verb="WATCH"} 1.05768279043e+11
apiserver_request_latencies_summary_count{resource="storageclasses",verb="WATCH"} 253
apiserver_request_latencies_summary{resource="thirdpartyresources",verb="LIST",quantile="0.5"} NaN
apiserver_request_latencies_summary{resource="thirdpartyresources",verb="LIST",quantile="0.9"} NaN
apiserver_request_latencies_summary{resource="thirdpartyresources",verb="LIST",quantile="0.99"} NaN
apiserver_request_latencies_summary_sum{resource="thirdpartyresources",verb="LIST"} 442692
apiserver_request_latencies_summary_count{resource="thirdpartyresources",verb="LIST"} 139
apiserver_request_latencies_summary{resource="thirdpartyresources",verb="WATCH",quantile="0.5"} 1918
apiserver_request_latencies_summary{resource="thirdpartyresources",verb="WATCH",quantile="0.9"} 3652
apiserver_request_latencies_summary{resource="thirdpartyresources",verb="WATCH",quantile="0.99"} 14225
apiserver_request_latencies_summary_sum{resource="thirdpartyresources",verb="WATCH"} 1.659086944e+09
apiserver_request_latencies_summary_count{resource="thirdpartyresources",verb="WATCH"} 10141
# HELP authenticated_user_requests Counter of authenticated requests broken out by username.
# TYPE authenticated_user_requests counter
authenticated_user_requests{username="admin"} 4048
authenticated_user_requests{username="other"} 509369
# HELP etcd_helper_cache_entry_count Counter of etcd helper cache entries. This can be different from etcd_helper_cache_miss_count because two concurrent threads can miss the cache and generate the same entry twice.
# TYPE etcd_helper_cache_entry_count counter
etcd_helper_cache_entry_count 0
# HELP etcd_helper_cache_hit_count Counter of etcd helper cache hits.
# TYPE etcd_helper_cache_hit_count counter
etcd_helper_cache_hit_count 0
# HELP etcd_helper_cache_miss_count Counter of etcd helper cache miss.
# TYPE etcd_helper_cache_miss_count counter
etcd_helper_cache_miss_count 0
# HELP etcd_request_cache_add_latencies_summary Latency in microseconds of adding an object to etcd cache
# TYPE etcd_request_cache_add_latencies_summary summary
etcd_request_cache_add_latencies_summary{quantile="0.5"} NaN
etcd_request_cache_add_latencies_summary{quantile="0.9"} NaN
etcd_request_cache_add_latencies_summary{quantile="0.99"} NaN
etcd_request_cache_add_latencies_summary_sum 0
etcd_request_cache_add_latencies_summary_count 0
# HELP etcd_request_cache_get_latencies_summary Latency in microseconds of getting an object from etcd cache
# TYPE etcd_request_cache_get_latencies_summary summary
etcd_request_cache_get_latencies_summary{quantile="0.5"} NaN
etcd_request_cache_get_latencies_summary{quantile="0.9"} NaN
etcd_request_cache_get_latencies_summary{quantile="0.99"} NaN
etcd_request_cache_get_latencies_summary_sum 0
etcd_request_cache_get_latencies_summary_count 0
# HELP get_token_count Counter of total Token() requests to the alternate token source
# TYPE get_token_count counter
get_token_count 0
# HELP get_token_fail_count Counter of failed Token() requests to the alternate token source
# TYPE get_token_fail_count counter
get_token_fail_count 0
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00040487600000000003
```

Those metrics look like they're from the apiserver. Are you sure you picked up the right IP address? What does your setup look like? As in which tools did you use to privision your cluster, kubernetes version, etc?

I installed exactly that https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/README.md setup, but without helm.. In my initial description I display the service and endpoints.
But I'm not sure to get the right IP for putting into the setup .. What ip address I have to use?
https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/etcd/etcd-bootkube-vagrant-multi.yaml

I've got the same issues. Probably from lack of understanding

Created an etcd service and endpoints in monitoring space:

apiVersion: v1
metadata:
  name: etcd-k8s
spec:
  ports:
  - protocol: TCP
    port: 2379
    targetPort: 2379
---
kind: Endpoints
apiVersion: v1
metadata:
  name: etcd-k8s
subsets:
  - addresses:
      - ip: <IP_ADDRESS>
    ports:
      - port: 2379```

where <IP_ADDRESS> is the IP of my etcd node. It's an EC2 instance (I use kube-aws 0.9.7 and for this cluster I have only 1 etcd node)

2. I've opened port 2379 on <IP_ADDRESS> to the world for time being

3. I've created the service monitor https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/prometheus/prometheus-k8s-service-monitor-kube-controller-manager.yaml
Although from reading this file I don't understand what it is doing.

4. check Prometheus console in the web UI. I see etcd_helper_* and etcd_request_*. Whereas I expected metrics like `etcd_server_has_leader`

What step am I missing? would you be able to clarify the flow, as in how the components interact with each other

The etcd_helper_* metrics are actually coming from the apiserver, not etcd. You are not successfully discovering etcd yet.
The ServiceMonitor you referenced needs to be adapted, as it specifically selects only those service/endpoints objects that have the k8s-app: kube-controller-manager label. What you need to do is label your service and endpoints object properly and then adapt the ServiceMonitor manifest. You should end up with something like this (assuming you are deploying this in the monitoring namespace).
apiVersion: v1
kind: Service
metadata:
  name: etcd-k8s
  labels:
    k8s-app: etcd-k8s
spec:
  ports:
  - protocol: TCP
    port: 2379
    targetPort: 2379
---
apiVersion: v1
kind: Endpoints
metadata:
  name: etcd-k8s
  labels:
    k8s-app: etcd-k8s
subsets:
  - addresses:
    - ip: <IP_ADDRESS>
    ports:
    - port: 2379
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: etcd-k8s
  labels:
    k8s-app: etcd-k8s
spec:
  jobLabel: k8s-app
  endpoints:
  - targetPort: 2379
    interval: 30s
  selector:
    matchLabels:
      k8s-app: etcd-k8s
  namespaceSelector:
    matchNames:
    - monitoring

I haven't tried this out, but it should give you guidance. Let me know how it goes :slightly_smiling_face: .

This works, thanks! Now just need to configure the ServiceMonitor it to use SSL as etcd will only respond over SSL.
I will test that over my kube-aws cluster and provide feedback so others can use this configuration in the future

I'm able to curl my etcd endpoint by passing the certificates:
curl -L -v  --cacert ./ca.pem --cert ./etcd-client.pem --key ./etcd-client-key.pem https://etcd0.mycompany-internal-domain.local:2379/metrics
Where etcd0.mycompany-internal-domain.local is the full DNS for my first etcd node. I have 3 of them, each with its own DNS (Route53)

etcd0.mycompany-internal-domain.local
etcd0.mycompany-internal-domain.local
etcd1.mycompany-internal-domain.local

I want to alter the ServiceMonitor spec to specify tlsConfig:
spec:
  jobLabel: k8s-app
  endpoints:
  - port: api
    interval: 30s
    scheme: https
    tlsConfig:
      caFile: credentials/ca.pem
      certFile: credentials/etcd-client.pem
      keyFile: credentials/etcd-client-key.pem

where credentials is the path to the credential folder on my laptop.
The problem I see is that Endpoint takes an IP address:
- addresses:
  - ip: <IP_ADDRESS>
    nodeName: <IP_ADDRESS>

The certificates are not valid for the IP address. Not a valid name. I tried with curl, it won't take it.
How can I use DNS based service?
Kubernetes has the concept of ExternalName for a service:
spec:
  type: ExternalName
  externalName: etcd0.mycompany-internal-domain.local

How do I link the ServiceMonitor to this ExternalName endpoint?

So I thought I could use the IP of my etcd nodes for time being with the insecureSkipVerify option for time being, until I generate certificates that work for both the IP and DNS address.
With the Certificates options:
      caFile:
      certFile:
      keyFile:

Where are those files expected? Is that a location inside the Prometheus container? Or on the host VM?
I assume the etcd certificates are not available to the kubernetes nodes/workers but only by controllers? What is the best practice here?

I think I'm getting close: https://github.com/coreos/prometheus-operator/pull/264
Secrets available in the namespace can be mounted into the pod
The alternative, as explained on the ticket, would be to bake a Prometheus image which includes the certificates.
it's the first time I see Kubernetes secrets used to store a file i

I got it working :). Problem solved for me

Created a doc in the repo and wanted to push a pull request but I'm not authorised.
Here is the doc in a Gist: https://gist.github.com/VinceMD/43c7afc1a6b0f580b0cb6fb27e650042

https://gist.github.com/jeremyd/1fffeaf3e9acc0165bbcd9c33286287c  @VinceMD here's what I use for grafana dash, it's a mix of host metrics and etcd metrics.  Maybe you can make it better and add it to grafana.net :)

Thanks I made one quickly  yesterday and published on Grafana: https://grafana.com/dashboards/3070
I didn't include host metrics. Are they available with the etcd_ label?
I will check your gist on Monday and see if I can merge and republish on Grafana

Sorry I was on vacation, and am only slowly working myself through issues and PRs.
@VinceMD we'd be happy if you could create a PR to add this to the docs. Anyone should be able to open a PR, just fork the repository, commit your doc and open the PR. Once we merge your doc, I would say we can close this issue :slightly_smiling_face:
Regarding an etcd grafana dashboard, the etcd team maintains a grafana dashboard and ensures it's up to date and high quality: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/monitoring.md#grafana

@brancz Documentation pull request here https://github.com/coreos/prometheus-operator/pull/601
Improvements welcome.
PS: I include in the doc an etcd dashboard that I've uploaded to Grafana.com. It's based on the official etcd one but working with Prometheus and I've added some metrics that were mentioned on the CoreOs metrics doc and were not present in the dashboard

Closing here as @VinceMD added some nice docs around this in #601 . Thanks!