Fix sticky navigation logic erroring on some pages

Entries are only appear when an element that is being observed enters or leaves the viewport.
This means that we cannot rely on the subNav entry being avaliable to check it's intersectionRatio.
This change to the logic caches the ratio outside of the observer so it's always up-to-date with the last time an entry for the subNav is avaliable.
This has no impact on users that I can tell fortunately.
Fixes https://github.com/alphagov/govuk-design-system/issues/1088

You can preview this change here:
Built with commit 5627c826c3e0399571a52293de3d1426d46f44e9
https://deploy-preview-1089--govuk-design-system-preview.netlify.com


Stone paper scissors Game

Please assign me this issue under {good first issue , hacktoberfest 2023}
Thankyou!!

i want to work on this issue @arjungupta01  please assign to me also

@arjungupta01 I would like to work on this isssue , please assign me


examples/local: Add -service_map flags since bson is no longer default.

@alainjobart
Fixes https://groups.google.com/d/msg/vitess/8veHu0MW9jE/uFT-xzuOBAAJ

this uses bson for vtctl, should we promote grpc instead?

I'd rather do that as part of a PR that also changes the default for vtctlclient to grpc. I wouldn't want to make people specify the protocol manually by default.

Sounds good, LGTM


Rebase gsoc15-dependency with master.

This Pull Request updates gsoc15-dependency branch using git rebase origin/master.

Close this Pull Request as git merge is better way to update branch as discussed on IRC.


fusionInventory: fix systemd service startup

Motivation for this change
https://github.com/NixOS/nixpkgs/issues/156100 is solved for me with this change
ping @phile314
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

After real world testing, my fix allow to have the agent running in one-shot when the service starts but won't refresh data because the service status is dead.

With help from upstream in https://github.com/fusioninventory/fusioninventory-agent/issues/986, we nailed the issue. The package is missing a few files, this commit is a fix.


STORM-2204 Adding caching capabilities in HBaseLookupBolt

https://issues.apache.org/jira/browse/STORM-2204

Overall it looks fine to me now.  I am still a bit concerned about guava as a dependency, but beyond that it seems like a great addition to the bolt.

@revans2 perhaps Caffeine?

I agree it's still better to not relying on Guava since storm-core is shading Guava but external modules are not.
Btw, I didn't use other cache modules too, but ehcache seems to be well-known and widely-used cache library, and Caffeine seems to be a drop-in replacement for Guava cache.
@ben-manes I guess you're the author of Caffeine. Could you introduce Caffeine?

Forgot to comment for other side. It looks great.

I was a co-author of Guava's cache, too.
Guava had originally considered soft references an ideal caching scheme, since they offer great concurrency and GC is for memory management. That evolved from ReferenceMap to MapMaker to optimize space, especially in regards to computations (no need for a Future wrapper). Unfortunately soft references result in awful performance outside of a micro-benchmark due to causing full GCs. In parallel, I had been experimenting with approaches for a concurrent LRU cache (CLHM) and when joining Google helped to retrofitted its ideas onto Guava. There was a lot of good that came out of that, but I left before working on optimizing for performance.
Java 8 provided an excuse to start from scratch. Caffeine is much faster and packs in even more features. I also spent time exploring eviction policies, which led to co-authoring a paper on a new technique called TinyLFU. That has a near optimal hit rate, low memory footprint, and amortized O(1) overhead. This is done by tracking frequency in a popularity sketch. The same concurrency model in CLHM and Guava is used (inspired by a write-ahead log), which allows for concurrent O(1) reads and writes.
The HighScalability article provides an overview of the algorithms that I use.

Overall looks good to me. My major concern is that on-heap caches(like Guava cache, Ehcache)  might cause bad GC situations.  I didn't use Caffeine in the past, maybe is a candidate.

Caffeine sounds like a great alternative to Guava and also seems to address some GC concerns.
@vesense I agree storing any large amount of data on heap will impact GC, we do that all the time with all of the queues that we have.  I think for the most part as long as GC is tuned properly for the topology, we don't get a lot of full GCs causing promotion in the cache, and TTL in the cache is not too long it will be fine.  If we do run into serious GC issues we can then look at off heap cacheing.

@revans2 Yes, we can find a balance between high rate of cache hits and full GCs. I'm OK for adding a built-in cache if we set parameters carefully.

@vesense it is off by default so it would be enabled/tuned on a per topology basis.

@revans2 @vesense @ben-manes Thanks for the valuable feedback, I am looking into integration with Caffeine. Should have a new commit soon.
@revans2 Indeed the intention is to have the cache tuned based on topology. The ideal use case is where caching actually makes sense and certain keys may have a higher hit frequency then others.
Ideally this bolt should be used with FieldGrouping when caching is enabled so cache misses minimal. Something to be kept in mind is distribution of keys (executor balancing).

+1

One thing to consider is that Caffeine seems to require Java 8, which means that this patch can't be shipped to 1.x version line. Do we want to keep using Guava for 1.x branch?
@ben-manes Is there any versions for Caffeine which works with Java 7?

Nope. Sorry, since your compilation target is 1.8 I hadn't thought you'd need that.

So should I revert back my changes; seems like the build is currently failing; additional tests pushed by upstream?

@revans2 What do you think about this? I'm in favor of adopting Caffeine, and I'm even OK to use Caffeine to master and Guava to 1.x.

@HeartSaVioR I also am find with Caffeine and even Caffeine on 1.x (assuming it is off by default)

+1 the code looks fine to me.

@ambud
The code looks good except what @vesense commented.
Two things more to address:

It would be better to document new configurations. Without documentation, end-users have no idea about added feature. external/storm-hbase/README.md and docs/storm-hbase.md.

The code already uses JDK 8 API (Map.getOrDefault()), so can't get it as it is for 1.x. Could you provide a new PR for 1.x branch?
It would be also great if you can test it (with Caffeine) on JRE7 (expected to not work but we can document the precondition for JRE version) and JRE8 (expected to work).
cc. @ben-manes Is my expectation right?

Thanks in advance!

Should fail, e.g. Class version error.

+1, but I agree with @HeartSaVioR that the new cache configuration options need to be documented before this is merged.

Added documentation to readme file.
Fixed the debug logging by using isDebugEnabled checks
Are we going to use Guava caching implementation for 1.x? @HeartSaVioR @revans2

@ambud I'm OK to use Guava for 1.x. IMHO it would be better to provide complete set of features for guaranteed environment (JDK version) instead of leaving 'warn' to documentation.
And some other external modules also use Guava, too.
@revans2 Are you OK to use Guava only for 1.x? Or you would like to keep using Caffeine for also 1.x and document it?

Caffeine is JDK 8 only so won't work for 1.x, since JDK 7 compilation will be tested.

@ambud
Yeah if we add unit test for the feature, unit test will fail on JDK 7 which will be always failing on Travis CI. Nice catch. Could you address this to use Guava for 1.x?

Sure thing, I will add the Guava patch code originally added for this to 1.x and 0.10.x branches

+1 for merging to master after updating docs/storm-hbase.md. external/storm-hbase/README.md has been documented.

I guess guava is OK for 1.x.  I would prefer to see it shaded if we do go with Guava, but I am only a -0 if it is not shaded.

OK. Since we have other modules which depends on Guava, it might be better to have a rule and apply all of them. +1 to shade Guava on external modules if possible.

Can we merge this? @HeartSaVioR @revans2 @vesense
I will need to open another pull request for 1.x branch.

1.x branch PR https://github.com/apache/storm/pull/1810

Can we merge this @revans2 @HeartSaVioR @vesense ?

@ambud Sorry for the delay response. Before we merge this in, can you replace all the tab space to white space?

Done

Thanks @ambud Squashed and merged into master. And I added you as the contributor.

Thank you @vesense. Could we merge the 1.x pull request as well?

@ambud I'll wait for other committers to vote for it before merging into 1.x-branch. And this may take some time.


[Feature]: Upgrade Python from 3.10 to 3.11

Is your feature request related to a problem? Please elaborate.
Nothing as such but python 3.11 has significiant speed-ups in general and also provides better tracebacks.
From the release notes at https://www.python.org/downloads/release/python-3110/:
The Faster CPython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite.

Describe the solution you'd like
Migrate the docker image from 3.10 to 3.11.
Additional Information
No response

I could submit the PR for the dockerfile change, but I am not sure of what else needs to be tested so I have left it alone for now.

PMM requires LXML, which is apparently hobbled by build issues under 3.11 at the moment.

Saw the same thing when 3.10 first released.

Looks like the lxml wheels are available now for 3.11: https://github.com/lxml/lxml/releases/tag/lxml-4.9.1
The release date seems old but perhaps the wheels were added recently.
Installing on Ubuntu 18.04 seems to be working fine now with the wheel:
darthshadow@server:~$ pip3 install --force-reinstall lxml==4.9.1
Collecting lxml==4.9.1
  Using cached lxml-4.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (7.0 MB)
Installing collected packages: lxml
  Attempting uninstall: lxml
    Found existing installation: lxml 4.9.1
    Uninstalling lxml-4.9.1:
      Successfully uninstalled lxml-4.9.1
Successfully installed lxml-4.9.1

https://bugs.launchpad.net/lxml/+bug/1977998
Im going to wait on 3.11 untill the next lxml version is released

added


Update from Casks to Homebrew

I recommend against scraping metadata from a utility like homebrew/cask. Instead, reference the vendor site directly.
I also recommend against duplicating recipes on public autopkg recipe repos, and this recipe is a duplicate of an existing one in joshua-d-miller-recipes. I will be submitting a pull request to fix that one, and I suggest deprecating the duplicates here.

Removed Duplicate recipie.

Removed Duplicate recipie.


Add unaligning vertices

Most topologies at the moment expect functional groups with different placer ids. They can be made more tolerant by using a vertex which only places and doe not do any alignment, for cases where there is only 1 placer id in the entire molecule, across all functional groups.
Maybe warn the user when it is used?

@andrewtarzia - is gonna take the Linear class

@lukasturcani the linear class already had an unaligning vertex, so just had to implement the replacement of linear vertices with an unaligning vertex if placer_ids is 1 -- this should be similar for many classes.

@lukasturcani I would say we have covered this?

Agreed!


libfilezilla: 0.27.0 -> 0.27.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libfilezilla/versions.
meta.description for libfilezilla is: "A modern C++ library, offering some basic functionality to build high-performing, platform-independent programs"
meta.homepage for libfilezilla is: "https://lib.filezilla-project.org/"
meta.changelog for libfilezilla is: ""
Updates performed

Version update

To inspect upstream changes
Impact

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 0.27.1 with grep in /nix/store/xj76payk3chrlsxfv1xn03ws0id52zrm-libfilezilla-0.27.1

directory tree listing: https://gist.github.com/3cd8247d6b3a178d7a510c7cf7f23c69

du listing: https://gist.github.com/ff1986dee2056f5aa24742d9326ac411

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

7 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
filezilla
libfilezilla

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xj76payk3chrlsxfv1xn03ws0id52zrm-libfilezilla-0.27.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libfilezilla https://github.com/r-ryantm/nixpkgs/archive/fd50f90ddb8a66a23704e33f659542b1df1a3bca.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/xj76payk3chrlsxfv1xn03ws0id52zrm-libfilezilla-0.27.1
ls -la /nix/store/xj76payk3chrlsxfv1xn03ws0id52zrm-libfilezilla-0.27.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

filezilla
libfilezilla

Maintainer pings
cc @pSub for testing.

Result of nixpkgs-review pr 116744 at fd50f90d run on aarch64-linux 1

2 packages built successfully:

filezilla
libfilezilla


Exclude the 'dist' folder in 'check-gofmt.sh' script

What type of PR is this:
/kind bug
What does this PR do / why we need it:
make validate does not pass if run right after generating a local RPM Package using the rpm-prepare.sh and rpm-local-build.sh scripts.
The problem is that check-gofmt.sh picks Go files from the dist/rpmbuild/BUILD/**/vendor folder, e.g.:
$ ./scripts/rpm-prepare.sh
$ ./scripts/rpm-local-build.sh
$ make validate
./scripts/check-gofmt.sh
gofmt ERROR - These files are not formated by gofmt:
./dist/rpmbuild/BUILD/openshift-odo-3.1.0-1/vendor/github.com/AlecAivazis/survey/v2/terminal/display_posix.go
./dist/rpmbuild/BUILD/openshift-odo-3.1.0-1/vendor/github.com/AlecAivazis/survey/v2/terminal/output.go
./dist/rpmbuild/BUILD/openshift-odo-3.1.0-1/vendor/github.com/AlecAivazis/survey/v2/terminal/runereader_bsd.go
--- Truncated ---

Which issue(s) this PR fixes:
—
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:
# Generate a local RPM package
./scripts/rpm-prepare.sh && ./scripts/rpm-local-build.sh

# `make validate` should pass with this PR. It won't pass without the changes here.
make validate

/approve

/override ci/prow/v4.11-integration-e2e


Syntax error

After a clean install on Amazon Linux VM I get the following error:
./zeus.sh: line 884: syntax error near unexpected token `}'

that's an incomplete if-else-fi block. You need to add fi before the curly braces.
Also, you'll get the similar error on line 1152 or something.

@varunchandak you're right but there is no any syntax error on line 1152?
@nealpeters86 it's fixed now, thanks.

Syntax error issue for current zeus.sh:
$ ./zeus.sh
./zeus.sh: line 904: syntax error near unexpected token }' ./zeus.sh: line 904: }'

It's fixed.


Update Dependencies File

Hi Dev SPOC's,
found out that your dependencies file, need an update.
https://github.com/eclipse/dash-licenses

Quistion form my side which DEPENDENCIES are the correct one
the 'pom.xml' in the folder 'backend' or the 'pom.xml' from root level repo directory?
Found some DEPENDENCIES update you have to add and 1 restricted dependencie needs an IP Issue on Eclipse side.
Info from repository status form the "to verify" release

Done


Just a thanks

Hey there, I've been working exclusively with SwiftUI for a while now and I've recently had to revisit UIKit for a project.
I was missing this kind of propagation and I love that you've come up with a really well implemented and elegant solution, let alone API-matching.
I really appreciate the effort you put it so thank you!
Just curious, 9 months later, have you found any issues with your approach that I might need to be aware of?

Hey,
To be honest for me it was a pet project, not really tested in a production app.
But I guess the whole concept works quite well, in some cases maybe it might be adjusted to your needs.
Feel free to make an issue if you would find some missing features or behaviours.
I tried to make couple of unit tests that prove the current behaviours to work.
For my demo, pet app I verified few uses cases it worked quite nice.

Fair enough, nice work though 👍

awesome, thanks too.
I was hoping to apply TCA's Dependency in UIKit as well.
The simple implementation through EnvironmentKey and EnvironmentValue didn't work as expected.
I came across your article on Medium and X(Twitter), and it caught my attention!
I am also looking to implement the project in UIKit, and I'm curious about its stability.
Wishing it becomes something as innovative as ReactiveX.


Lost style from material UI

Hi,
I'm using nextjs and trying to integrate with intercom then I found the issue:
When opening the chat box and then clicking on the close button, the material UI style is lost

And I also see another error when I go to the other navigation page:

Do you guys have any idea about this issue ?

same problem here https://streamable.com/we89py

Hi, thanks for creating this issue.
Can you provide a reproduction?

Hi, thanks for creating this issue.
Can you provide a reproduction?

...
...
const { show, update } = useIntercom();
...
...
<Button
  endIcon={<HelpOutline />}
  variant="text"
  onClick={show}
>
  Ayuda
</Button>

dependencies:
"@emotion/react": "^11.7.1",
"@emotion/server": "^11.4.0",
"@emotion/styled": "^11.6.0",
"@mui/material": "^5.3.1",
"next": "12.1.0",
"react": "17.0.2",
1.- Open your app in mobile size window
2.- Click on the button
Intercom would open fine
3.-Close intercom
4.- Navigate to another route
App styling is broken

Could you provide a codesandbox/stackblitz link with a small reproduction?

Feel free to re-open

Hi, I'm having the same issue with next.js and only on mobile

Feel free to re-open

I'd like to re-open it, but don't know how...

Hi @devrnt, we're not able to manually reopen this ticket ourselves. Could you reopen it?

Our problem appears to be fixed (not sure whether it's because of version 3, 4 or 5 :grin: ). Thanks anyway!

Re-opened!

Hi thanks for reopening this ticket. We are also experiencing this problem at reclaim.ai

Please provide a minimal reproduction

Closing this again since no reproduction is provided


Using collectd::plugin::curl_json in a define results in Puppet duplicate declaration errors

Hello, I'm trying to use the curl_json module inside a define, passing it an array to iterate over, however it faisl with dup declaration on the Package resource.  Can the package resource be moved elsewhere to avoid this?
Thank you
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Package[collectd-curl_json] is already declared in file /etc/puppet/environments/lab1/modules/collectd/manifests/plugin/curl_json.pp:18; cannot redeclare at /etc/puppet/environments/lab1/modules/collectd/manifests/plugin/curl_json.pp:18 on node rmq001.lab1.ca1.sfmc.co
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

This was introduced by #223
indeed that sucks to declare package{} inside defines ...... that should have not been done

PR welcome to rewrite curl_json the same way curl got rewritten - it'd solve this for this plugin

Fixed in v4.0.0


allow option row to have multiple lines of alternate text

Details

Priority mode Most Recent description text is truncated instead of showing the rest of the text in a new line.
Fixed Issues

$ https://github.com/Expensify/App/issues/15002
PROPOSAL: https://github.com/Expensify/App/issues/15002#issuecomment-1429909882
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Open Settings > Preferences > Language
Change the language to Spanish
Go back and open Priority Mode (Modo prioridad)
Select Most recent (Más recientes)
Verify the list item description is not truncated

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@Luke9389 @sobitneupane One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

Additional screenshot to make sure other component that uses OptionRow does not get affected.

view

@bernhardoj Can you please add screenshots from other components as well which use OptionRow? According to the checklist we are supposed to test all components impacted by the change.

I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)

I have included more screenshots above. Hopefully it covers all OptionRow usage. Let me know If I miss some.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/Luke9389 in version: 1.2.77-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/Luke9389 in version: 1.2.77-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.2.77-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add Algolia search

Summary
Add Algolia search as per #1775.
Test Plan

Clicking on the results brings me to the correct location in the docs. It's magic!

@niveditc I'm quite sure it has to do with Travis or node_modules/fbjs-scripts/node/check-dev-engines.js file.
When I set the Travis node version in .travis.yml to 8.9.0, the job passed - https://travis-ci.org/facebook/draft-js/jobs/427571646
However, using the default of 8, it installed 8.12.0 but the error message suggested that the Node version is 6.4.1 - https://travis-ci.org/facebook/draft-js/jobs/427490443
This is also failing in master as #1865 which is just a small typo fix is failing because of the same reason. I'll debug by trying to dig into fbjs-scripts/node/check-dev-engines.js.


Add content about the Alibaba cloud provider

Add content about the Alibaba cloud provider

/lgtm
Could I get an /approve from one of the @kubernetes/sig-docs-zh-owners?

/lgtm

/lgtm
/approve


Stripping or Preserving ICC Color Profiles

Is Imager affected by this? Does Imager preserve color profiles?
https://craftcms.stackexchange.com/questions/14429/image-transform-is-turning-my-jpegs-dark

Having a similar problem here, any tips?

Imager does not remove color profiles by default. If removeMetadata is set to true, all meta data, including color profiles, will be removed.


Clean up asciimaps

The functionality in utils/asciimaps.py has been pretty brittle, and difficult to extend and debug, and frankly pretty error prone to use. We've been talking for a while about perhaps taking another stab at the problem, so I am making this ticket to get it out there as a thing to do. I think a lot of the complexity stems from modelling the problem with a bunch of classes, which have pretty abstract state that needs to be ushered through a handful of methods that are subclassed in pretty nuanced and difficult to understand ways. I think the problem of mapping from a structured text grid to a dictionary of i,j indices -> specifier would better be suited to straight-up functions (e.g., fullHexFlatsUpToAscii(d) and its inverse fullHexFlatsUpToDict(text). We can still provide a sort of pseudo-factory, which returns the appropriate functions given a provided geom and symmetry condition. If whoever tackles this feels like the use of some private classes would ease implementation of these functions, they are more than welcome to do so, or even try using the classes that we already have to get a fist-cut implementation of the functional interface, but I suspect that the class approach is more complicated than it needs to be.
In summary:

replace the classes in asciimaps.py with functions for going to/from ascii<->dict
refactor client code to use the functions. life should be way simpler!

@davis8dd think you'd be interested?

Question -- I'm considering using dataclasses as an implementation detail (since __post_init__ is nice), but it is only available from 3.7 onwards. I suspect that's okay, since the latest release of ARMI appears to be tested against 3.7, 3.8, and 3.9 but not 3.6: https://github.com/terrapower/armi/runs/4267083946?check_suite_focus=true
However, since setup.py says >=3.6, I thought it would be good to check first. (there's a typo there too -- "s/requres/requires")
https://github.com/terrapower/armi/blob/b94744fdf12f247828dd07bf99e251651b494a13/setup.py#L49
So can I assume the user has python >=3.7 ?

I think it's a fair assumption that most users have Python 3.7+ internally at TerraPower, but I cannot speak for all external users. Right now the installation docs do state Python 3.6+ even though the setup.py is broken.

It seems, then, that either release v0.2 should be tested on python 3.6 (since it seems like it currently isn't), or that setup.py and the release doc should be updated to say it requires >=3.7 ?
I think dropping python 3.6 support might not be a terrible idea -- if someone is using python 3.6, they could depend on the previous release. Since release v0.2 was only 5 days ago, it seems unlikely that anyone is relying on it yet. This could be a good opportunity to drop python 3.6 support -- otherwise you might have to wait till the next major release to do so :(
The reason why I'm hoping that python 3.6 support can be dropped is that, besides dataclasses, python 3.7 also brings types and generics, which would make refactorings and cleanups so much easier. Perhaps some subclasses of abc.ABC can also be simplified.

@john-science - maybe we can hot patch the v0.2 release to enforce 3.7+? I don't see a reason why we need to support 3.6 at this time.

@jakehader @scottyak  My preference is to only support Python 3.7-3.9, as those are really the only versions that we test for seriously. And while I'm generally a fan of supporting a wide breadth of versions for an importable library... I don't know, I think for a scientific modeling framework I'm more in favor of constraining the versions to be better tested.
Let me ask around, and see if anyone depends on 3.6.

@jakehader @scottyak  It looks like no one is using Python 3.6 anyway.  Nick is hesitant to drop support for 3.10, so I think saying we support Python 3.7+ is a pretty safe bet for everyone.

@scottyak, the 3.6 requirement has been removed in #491.

@sdow1ll Wants to take this ticket.

Sorry for leaving this one assigned for so long!

Hi @john-science I have a working Jupyter Notebook of the asciimaps.py file that basically has the converted functions from the asciimap class, but one thing that I got stuck on was that I noticed at the end of the asciimaps.py file, there is a code block of the following:
`def asciiMapFromGeomAndSym(geomType: str, symmetry: str):
"""Get a ascii map class from a geometry type."""
from armi.reactor import geometry
MAP_FROM_GEOM = {
    (geometry.HEX, geometry.THIRD_CORE): AsciiMapHexThird,
    (geometry.HEX, geometry.FULL_CORE): AsciiMapHexFullTipsUp,
    (geometry.CARTESIAN, None): AsciiMapCartesian,
    (geometry.CARTESIAN, geometry.FULL_CORE): AsciiMapCartesian,
}

return MAP_FROM_GEOM[(geomType, symmetry)]`

Is this something that I should try to edit as well? When looking at this, I notice that the MAP_FROM_GEOM dictionary relies on the original classes. Are the functions I wrote basically an additional feature to this file, and that I should not touch the following code block above?

The only two references to that function are here:
https://github.com/terrapower/armi/blob/6a546dd1ca3a81128e5dcc469a5d49853db2047c/armi/reactor/blueprints/gridBlueprint.py#L410
https://github.com/terrapower/armi/blob/6a546dd1ca3a81128e5dcc469a5d49853db2047c/armi/reactor/blueprints/gridBlueprint.py#L567
So, refactoring those two use-cases will be necessary to do your refactoring of the asciimaps utils.
(Sorry for the long delay.)


NotFound when publishing package

I have created a publisher account and I've run nyssa init, which has left me with the following:
{
  "name": "miniroute",
  "version": "1.0.0",
  "description": "Tiny and simple HTTP router.",
  "homepage": "https://github.com/BenStigsen/miniroute",
  "tags": [
    "http",
    "router"
  ],
  "author": "Benjamin Stigsen",
  "license": "ISC",
  "sources": [
    "https://nyssa.bladelang.com"
  ],
  "deps": {}
}

If I run nyssa info I correctly get:
PACKAGE INFORMATION
~~~~~~~~~~~~~~~~~~~
 • Name: miniroute
 • Version: 1.0.0
 • Description: Tiny and simple HTTP router.
 • Homepage: https://github.com/BenStigsen/miniroute
 • Author: Benjamin Stigsen
 • License: ISC
 • Tags: http, router

DEPENDENCIES
~~~~~~~~~~~~
  None

SOURCES
~~~~~~~
 • https://nyssa.bladelang.com

However, when I do any of the following:
nyssa publish
nyssa publish -r .
nyssa publish -r https://github.com/BenStigsen/miniroute
nyssa publish -r https://nyssa.bladelang.com/

It results in:
Checking for valid publisher account
Checking for valid Nyssa package
Packaging<EMAIL_ADDRESS>NotFound -> no such file or directory

I have reinstalled Nyssa and tried cleaning the cache.

Please share a link to the package.

It's a bug in the zip module of Blade. I'm raising a ticket to fix it now. In the meantime, in your Blade installation path, modify the path libs/zip.b and change line 587 from:
if npath.starts_with('/')

To
if npath.starts_with(os.path_separator)

You should be able to publish after that.

Yes this made me able to publish! https://nyssa.bladelang.com/view/miniroute
One thing does surprise me though, how come it does not show 1.0.1 by default, but instead shows version 1.0.0?

That's a bug. I'll fix now.

I was just wondering if it was a design choice.
I don't mean to stress you or take your focus away from other tasks 😄

Fixed in v0.1.7


Issues with multimodule KMP

I get the impression conveyor is too dependent on Gradle's Java Plugin.
Forked compose-music-app for an example here.
In short, this will work fine:
plugins {
    kotlin("jvm")
    id("org.jetbrains.compose")
    id("dev.hydraulic.conveyor")
}

This will not:
plugins {
    id("kotlin-multiplatform")
    id("org.jetbrains.compose")
    id("dev.hydraulic.conveyor")
}

kotlin {
    jvm()
}

Seems to me that if you tweak a KMM desktop module to play along, conveyor will still choke on the overall KMM build if uses multiplatform VS jvm for e.g. an Android module.
Sample error:
manos@tower:~/git/compose-music-app-multimodule$ ./gradlew -q printConveyorConfig -S
// Generated by the Conveyor Gradle plugin.

// Gradle project data. The build directory is useful for importing built files.
gradle.build-dir = /home/manos/git/compose-music-app-multimodule/build
gradle.project-name = compose-music-sample
app.fsname = compose-music-sample
app.version = 0.9.10
app.rdns-name = dev.hydraulic.${app.fsname}

// Config from the JetPack Compose Desktop plugin.
app.jvm.gui.main-class = null

// Inputs from dependency configurations and the JAR task.
app.inputs += /home/manos/git/compose-music-app-multimodule/build/libs/compose-music-sample-0.9.10.jar

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':desktop:printConveyorConfig'.
> Configuration with name 'runtimeClasspath' not found.

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':desktop:printConveyorConfig'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:417)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:339)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'runtimeClasspath' not found.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:108)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:333)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:98)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:50)
        at hydraulic.conveyor.gradle.ConveyorConfigTask$runtimeConfigCopy$2.invoke(ConveyorConfigTask.kt:53)
        at hydraulic.conveyor.gradle.ConveyorConfigTask$runtimeConfigCopy$2.invoke(ConveyorConfigTask.kt:53)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at hydraulic.conveyor.gradle.ConveyorConfigTask.getRuntimeConfigCopy(ConveyorConfigTask.kt:53)
        at hydraulic.conveyor.gradle.ConveyorConfigTask.importFromDependencyConfigurations(ConveyorConfigTask.kt:75)
        at hydraulic.conveyor.gradle.ConveyorConfigTask.generate(ConveyorConfigTask.kt:143)
        at hydraulic.conveyor.gradle.PrintConveyorConfigTask.print(PrintConveyorConfigTask.kt:16)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

Turns out all the build needed  was a withJava():
plugins {
    id("kotlin-multiplatform")
    id("org.jetbrains.compose")
    id("dev.hydraulic.conveyor")
}

kotlin {
    jvm {
        withJava()
    }
    sourceSets {
        named("jvmMain") {}
    }
}

Living this open in case it's handy for doc/example improvements, feel free to close otherwise

Hey Manos, glad you found the time to try it!
That's interesting about withJava() but I'm not convinced that's all it needs? Does the output make sense when you do that - have all the JARs for each platform? We don't yet support KMM because it's still in alpha and yeah the Gradle plugin is totally different. It's a high priority but it feels like it needs more work. If you just ask for "the conveyor config for this gradle build" then in KMM it's ambiguous. You might want to package the JVM version, the native version or even the web version with Electron. So how do you pick? The obvious answer is to have several different Gradle tasks like printConveyorConfigForJVM and so on, but that has to be designed.
BTW the Gradle plugin is open source and in this repository. If someone wants to tackle this before we get to it, just let us know so there's no duplication of effort. In theory it's easy enough. The code just needs to detect the KMM plugin, then add KMM specific config writing tasks.

Apologies, forgot to update. Indeed  withJava() simply tricked the code by offering the expected "runtimeClasspath" etc. but without any practical effect. I refactored my desktop module from kmm to jvm+compose Gradle plugins for now. This only buys me some time, will have to make kmm work eventually. A PR for basic kmm sourceSets shouldn't be that hard if you guys haven't worked on it by then.

We're currently planning on having proper KMP support by early October, so if you want to have a crack at it before then that'd brilliant of course, otherwise we'll have a go. KMP is maturing and hopefully it'll be treated as stable soon, but the new Gradle plugin seems more complicated than the JVM specific one.

@manosbatsis On investigation it seems the current plugin actually does work, as long as you use withJava(). The following build.gradle.kts seems to produce the correct outputs and working apps. It's using the (not yet announced) 1.1 version of the Conveyor plugin, but, only because a new version was needed to work against the Compose 1.2 Gradle plugin. No dependency logic changed. But you've got to watch out for the bug workarounds, otherwise you'll get either classpath conflicts or errors from Gradle about ambiguous depenencies.
We just released the v1.1 plugin. Maybe you can try this out and see if it works when your build looks like the one below?
import org.jetbrains.compose.compose
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet

plugins {
    java
    kotlin("multiplatform")
    id("org.jetbrains.compose")
    id("dev.hydraulic.conveyor") version "1.1"
}

group = "com.example"
version = "1.0"

java {
    toolchain {
        vendor.set(JvmVendorSpec.AMAZON)
        languageVersion.set(JavaLanguageVersion.of(11))
    }
}

kotlin {
    jvm {
        compilations.all {
            kotlinOptions.jvmTarget = "11"
        }
        withJava()
    }

    sourceSets {
        val jvmMain: KotlinSourceSet by getting {
            dependencies {
                implementation(project(":common"))
                implementation(compose.desktop.currentOs)
                implementation("org.apache.lucene:lucene-core:8.11.2")
            }
        }
        val jvmTest by getting
    }
}

dependencies {
    // Machine specific configs used by Conveyor for the JVM desktop version.
    "linuxAmd64"(compose.desktop.linux_x64)
    "macAmd64"(compose.desktop.macos_x64)
    "macAarch64"(compose.desktop.macos_arm64)
    "windowsAmd64"(compose.desktop.windows_x64)

    // Force override the Kotlin stdlib version used by Compose to 1.7 as otherwise we end up with a mix of 1.6 and 1.7 on our classpath.
    val v = "1.7.10"
    for (m in setOf("linuxAmd64", "macAmd64", "macAarch64", "windowsAmd64")) {
        m("org.jetbrains.kotlin:kotlin-stdlib:$v")
        m("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$v")
        m("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$v")
    }
}

// Workaround for https://github.com/JetBrains/compose-jb/issues/1404
configurations.all {
    attributes {
        attribute(Attribute.of("ui", String::class.java), "awt")
    }
}

compose.desktop {
    application {
        mainClass = "MainKt"
    }
}

@manosbatsis Conveyor 3 released with the fix for this. Please let us know if it works for you!


NETOBSERV-1720: fix issues with topology scopes

Fixes also NETOBSERV-1721 and NETOBSERV-1722

new func getStepIntoNext that provides the next scope for 'stepInto' and cares about the allowed scopes
fix call to toggleDirElementFilter on stepInto (it was removing the filter instead of adding it), and prevent adding duplicate filters
Do not link groups invalidation to scope via useEffect, as it results in doing 2 queries (first with the invalid group, then without). Make them more strictly tied instead.

Also, this PR changes the stepInto workflow when coming from nodes, it jumps directly to pods. Two reasons for that:

this seems more logical to see pods rather than namespaces when "stepping into a node". Namespaces and Nodes are orthogonal, whereas Pods are contained in Nodes.
more pragmatically, this also is a better workflow in lokiless, since having scope=namespace + filtering on a node generates an error.

The new stepInto workflow is:

 CLUSTER
    │
    ▼
  ZONE
    │
    ▼
  NODE         NAMESPACE
    │              │
    │              ▼
    │            OWNER
    │              │
    └──────┬───────┘
           │
           ▼
        RESOURCE

Description

Dependencies

n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[x] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[x] Does this PR require a product release notes entry?

[x] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[x] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

/ok-to-test

@jotak - couple of findings:
For NETOBSERV-1720, I don't see "step into" button on graph node when Scope=Node:

And I still see bug NETOBSERV-1722

@memodi these two are expected:

It's what I mentioned in the PR description, now "stepping into" a Node goes to Pods, which isn't available without Loki, that's why I don't see the icon, it's on purpose. Previously, when stepping into a Node, it would bring you to namespaces, and you would see the error that you report on 2

There's no fix for that, it's what the error says: you need to use Loki to get that query, because you can't mix node and namespace labels with prom metrics. The fix for NETOBSERV-1722 is different: it was sometimes showing this error even though the query should work with prom metrics. cf the reproducing steps in the ticket, they are different.

I also created this enhancement to improve UX on unsupported queries: https://issues.redhat.com//browse/NETOBSERV-1719

(rebased)

got it, thanks, @jotak
/label qe-approved


BOOST and pboted

@majestrate raised very important question about the rationality of using BOOST in the project.
The project architecture allows us to replace BOOST with alternatives at this stage.
I prepared small table about used components:

BOOST component
Alternative

program_options
CLI11 (just as example)

filesystem
std::filesystem in C++17 (but then it will be necessary to drop support of old C++ standards)

asio
removed from PacketHandler

Regarding BOOST in parts of libi2pd - these components are not used by the application and have been removed.
I'll post all latest changes soon.
At the moment, I see only one requirement for any BOOST alternatives:
users should not notice any changes and should not be required to make any changes themselves to be compatible with new components.
Decision will be made on the future fate of BOOST in the project after the discussion.
Let me know if anyone has ideas about it.
Thanks

program_options replacement can be done on std::find: https://stackoverflow.com/a/868894

getopt is fine if you only do basic cli args as well.

Looks like getopt with getopt_long more suitable in this case.
Just need to think about wrapper for ini config parsing.
I think I'll have time to finish before weekend.

i do think CLI11 is a very good choice here. we are planning on using it in new codebases at work going forward.

No problem for me in the current state. In any case, further tests may tell much more.

Now I'm waiting for https://github.com/CLIUtils/CLI11/pull/789
This change will add backwards compatibility with currently used options like --sam.port
After that, I can start testing CLI11 as part of the pboted.
The current status of CLI11 in the project - better than boost.
Maybe CLI11 stay with the project for a long time, maybe not.
But it will remove last boost dependence.


Upscale and stretch  videos in streaming websites

Hello, this necessary and important extension because we watch a lot of streaming sites and often there are side black bars and this extension allows to remove them, I tried with Chromium and Ungoogled-Chromium and it didn't work, sure because this extension officially only supports firefox and google chrome, so i had to fiddle around and search and i tried one of these solutions and it worked! please can you add official support for this incredible essential extension, ie add an option to be able to change the aspect ratio of the videos in an easy way without having to manipulate the experimental flags of the browser?
the extension : https://github.com/dvlden/ultrawideo
Upscale or stretch any video on the web, to make it look great on UltraWide screens.
The only extension on the market with two significant functionalities that no other extension in this category possess.
Works on all video streaming platforms. ✅
Works on all embedded videos. ✅
It doesn't matter if there are multiple direct or embedded video players on a single page. The extension is smart enough to manipulate the video you put into a fullscreen, without affecting other video players.
If you are using multiple browsers on the same or different devices, this extension is cross-browser and will work in all major browsers (except Safari). I tested it in Chrome, Firefox, Edge, Brave, Whale, and Opera; without a single issue. Many other browsers use Webkit engine, hence this extension will work in those browsers too.
Approach 1
Run the browser with a specific flag.
Quit the browser
Right click on the browser's shortcut and go to Properties
Within the Target box, add --disable-direct-composition-video-overlays` to the end (outside of quotation mark) and apply the changes
Launch the browser
Approach 2
Change graphics back-end for ANGLE.
Launch the browser
Open browser://flags/ (replace word browser, with the one you're using, e.g. chrome://flags/)
Search for ANGLE (full option name: Choose ANGLE graphics backend)
Choose D3D9 or OpenGL
Restart the browser
Approach 3
Disable hardware acceleration.
Launch the browser
Go to browser settings
Search for hardware (full option name: Use hardware acceleration when available)

Those approaches are not that complicated to do oneself without adding any additional; patches into ungoogled-chromium. Each additional patch increases the entropy and hardens the maintenance. One should be very careful at adding patches.

yes i konw, mais ordinary user has must to investigate, search, foullier in the flags.....and UngoogleD chromium is a browser which differs from the others, for example ungoogled chromuim int-gre reader mode flag removed in chromium, here we are talking about an important feature, being able to watch videos without black band and it will be great that Ungoogled chromium integrates a native "change aspect ratio" option in order to dazzle the world even if it's very difficult, we know it :)


Dismiss Push Notification Icon

Issue Description
Push notification icon in the notification bar remains after the app has opened.
Steps to Reproduce / Code Snippets
Receive push notification.
Icon displays in the notification bar.
Open the app.
Icon remains.
Expected Results
Icon in the notification bar should dismiss once the app opens.
Additional Information

React Native version: Unknown
Platform(s) (iOS, Android, or both?): Android
Operating System (macOS, Linux, or Windows?): N/A

This issue is being closed due to platform migration and may be revisited at a later date.


Support listening to Space updates

Space infra have a SSE endpoint to get updates on the status of a Space. It would be nice to have support for this endpoint to subscribe to space updates. This would have to be implemented as a Python generator.
Example for Open LLM Leaderboard:

Space: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard
endpoint: https://api.hf.space/v1/HuggingFaceH4/open_llm_leaderboard/sse

First discussed on slack (internal) (cc @freddyaboulton @christophe-rannou)

Note: How much time the connection stays open when you start listening to the SSE endpoint? => Til the client breaks the connection or the server restarts, which happens every time we release, you'd need to handle a reconnect

i'd say kinda low-prio but why not!


⚠ Bofrost.be has degraded performance

In fe769be, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1208 ms

Resolved: Bofrost.be performance has improved in 633bee4 after 20 minutes.


Enchantments and potentially other stuff does not have minecraft: prefixes

The implementation of EnchantmentRegistryModule  only registers the non-prefixed enchantments. This is a problem because the builder for EnchantmentData relies on having those present.
Map insides ERM:
{thorns=Enchantment{Name=enchantment.thorns, Id=minecraft:thorns},
 fire_protection=Enchantment{Name=enchantment.protect.fire, Id=minecraft:fire_protection},
 smite=Enchantment{Name=enchantment.damage.undead, Id=minecraft:smite},
 unbreaking=Enchantment{Name=enchantment.durability, Id=minecraft:unbreaking},
 feather_falling=Enchantment{Name=enchantment.protect.fall, Id=minecraft:feather_falling},
 protection=Enchantment{Name=enchantment.protect.all, Id=minecraft:protection},
 respiration=Enchantment{Name=enchantment.oxygen, Id=minecraft:respiration},
 projectile_protection=Enchantment{Name=enchantment.protect.projectile, Id=minecraft:projectile_protection},
 knockback=Enchantment{Name=enchantment.knockback, Id=minecraft:knockback},
 fire_aspect=Enchantment{Name=enchantment.fire, Id=minecraft:fire_aspect},
 luck_of_the_sea=Enchantment{Name=enchantment.lootBonusFishing, Id=minecraft:luck_of_the_sea},
 lure=Enchantment{Name=enchantment.fishingSpeed, Id=minecraft:lure},
 punch=Enchantment{Name=enchantment.arrowKnockback, Id=minecraft:punch},
 sharpness=Enchantment{Name=enchantment.damage.all, Id=minecraft:sharpness},
 power=Enchantment{Name=enchantment.arrowDamage, Id=minecraft:power},
 bane_of_arthropods=Enchantment{Name=enchantment.damage.arthropods, Id=minecraft:bane_of_arthropods},
 efficiency=Enchantment{Name=enchantment.digging, Id=minecraft:efficiency},
 fortune=Enchantment{Name=enchantment.lootBonusDigger, Id=minecraft:fortune},
 looting=Enchantment{Name=enchantment.lootBonus, Id=minecraft:looting},
 silk_touch=Enchantment{Name=enchantment.untouching, Id=minecraft:silk_touch},
 aqua_affinity=Enchantment{Name=enchantment.waterWorker, Id=minecraft:aqua_affinity},
 depth_strider=Enchantment{Name=enchantment.waterWalker, Id=minecraft:depth_strider},
 infinity=Enchantment{Name=enchantment.arrowInfinite, Id=minecraft:infinity},
 flame=Enchantment{Name=enchantment.arrowFire, Id=minecraft:flame},
 blast_protection=Enchantment{Name=enchantment.protect.explosion, Id=minecraft:blast_protection}}

Here's a test code you can use:
   <something to get DataManager>.getManipulatorBuilder(EnchantmentData.class)
         .get()
         .build(new MemoryDataContainer()
         .set(Keys.ITEM_ENCHANTMENTS,
         ImmutableList.of(new ItemEnchantment(
         Enchantments.FORTUNE, 100))))
         .get();

Stick it in init and watch the fireworks.

Not fixed. Run https://gist.github.com/kenzierocks/3c7e07a96603ddd9ee7a.

All good now.


Feature toggles and configuration changes

Fixed heroku integration (was returning 404)
Changed the way tests are stored to support coveralls code inspection
Added feature toggles on a config file, for now only supports startup dialog hooks

Coverage increased (+7.2%) to 70.0% when pulling fd72876ced9d5c8af71cded3b555cb468196d6ae on pancho111203:feature-toggles into cbe5490d860eb18bd352ab4593ec8241b92934c7 on eclipsesource:master.

@pancho111203  I think something went wrong here, the PR contains already merged commits. Can you re-check?

I used the other branch as base for this one. My mistake...

There's another issue with the current state of this PR, since it also contains coverage reports. Can you try to fix this?

Coverage increased (+7.2%) to 70.0% when pulling 3db681f9dc8796587d3e328bcb33b7c8829dfab8 on pancho111203:feature-toggles into cbe5490d860eb18bd352ab4593ec8241b92934c7 on eclipsesource:master.

Coverage increased (+1.9%) to 64.735% when pulling 358c2a8957772aed875d253ed763669796546a27 on pancho111203:feature-toggles into cbe5490d860eb18bd352ab4593ec8241b92934c7 on eclipsesource:master.


Set min/max zooming

I see there was some discussion regarding controlling zoom in #49 but I believe it deserves its own issue.
What are your thoughts on possibility to limit zoom values? E.g. in my case I need to limit output image (user avatar) to some min dimensions - thus zooming in should stop at some point to not make picture pixelated.
I realize setting min/max zoom makes sense after binding image when we know its dimensions.
Is there any way I can achieve it now or are there any plans on adding this feature?

I want to add it, but to me, I haven't heard a good pitch for how it would work.
Someone once said they see croppie used more for spitting out several images at a certain dimension.  So they would set the zoom limits (and initial value, might as well toss that in here as well) before binding the image.
I'm with you, I don't think the zoom limits make much sense without knowing the image dimensions first.  Yet, I still don't know what I would do with the image dimensions after I have them.  The min zoom is pretty easy (with enforceBoundary: true), but the max zoom is where I'm a little foggy.
Maybe we should just add methods setMinZoom and setMaxZoom and call it quits?
Do you have any better ideas?

My use case is: I want user to upload an avatar, result must be a square image of 600x600px.

When user uploads image larger than 600px: min zoom depends on image (user can zoom out to select some area), max zoom = 1 (so image doesn't get pixelated)
When user uploads image 600x600: min zoom = max zoom = 1
When image is smaller than 600px: min zoom = max zoom = some value smaller than 1 (image is zoomed in enough to fill a square. Result will be pixelated. Lock zoom so that user can't make it even more pixelated).

What would setMinZoom and setMaxZoom do internally?
I tried hacky solution with setting range input min/max values directly - it seems to work fine regarding locking zoom to given values but side effects are mouse scroll on image breaks zoom and the resulting image size is not of viewport size.
I've put a small demo with 4 different image sizes to see how it behaves: https://jsbin.com/bijofavuke/edit?js,output

My issue is when the user uploads a much large issue that is very lop sided. For instance 2000x300 image with a view port of 200x200. With EnforcedBoundry they can only zoom out (shrinking the image) until the smaller dim matches the view port. They can never zoom out enough to shrink the image to fit in the view port.
If I set EnforcedBoundry to false, then they can't move the image up or down once they zoomed out.
My solution was to add an "autoSetMinZoom" option that did minZoom = Math.min(minW, minH) instead of Math.max (like EnforcedBoudnry). And acted like EnforcedBoundry was set to false everywhere else so the user could move the image around to corp it once zoomed out.
In general we need access to change the zooming behavior, as there are just going to be a lot of diff needs. You can try to anticipate them all and have a list of zoom modes, or you can give access to the minZoom and maxZoom and let us set it. That breaks the abstraction a little bit but keeps things flexible.

Why current maxZoom is 1.5?

Do we have access to min and max zoom ??

In my case I currently don't have a great need to set a minimum zoom but I do have a need to avoid it being zero! A value of 0 doesn't make sense. Can it be made possible to prohibit the slider being all the way to the left causing a value of 0?

Desperately in need of changing the MaxZoom on a dynamic basis!

I need MaxZoom too. It should be a dynamic parameter. PLease could you add it to your script?

Any updates for this? I need MaxZoom, too 😢

I needed to set maxZoom to maintain qualitiy and minimal width of the cropped image. So I changed the function updateZoomLimits() in the croppie.js into
`
function _updateZoomLimits (initial) {
var self = this,
minZoom = 0,
canvas=self.elements.canvas,
vpData = self.elements.viewport.getBoundingClientRect(),
maxZoom=self.options.maxZoom || canvas.width* vpData.width/canvas.width/self.options.maxZoomedCropWidth || 1.5,
initialZoom,
defaultInitialZoom,
zoomer = self.elements.zoomer,
scale = parseFloat(zoomer.value),
boundaryData = self.elements.boundary.getBoundingClientRect(),
imgData = naturalImageDimensions(self.elements.img, self.data.orientation),
minW,
minH;
    if (self.options.enforceBoundary) {
        minW = vpData.width / imgData.width;
        minH = vpData.height / imgData.height;
        minZoom = Math.max(minW, minH);
    }

    if (minZoom > maxZoom) {
        maxZoom = 0;
    }

    zoomer.min = fix(minZoom, 4);
    zoomer.max = fix(maxZoom, 4);

    if (!initial && (scale < zoomer.min || scale > zoomer.max)) {
        _setZoomerVal.call(self, scale < zoomer.min ? zoomer.min : zoomer.max);
    }
    else if (initial) {
        defaultInitialZoom = Math.max((boundaryData.width / imgData.width), (boundaryData.height / imgData.height));
        initialZoom = self.data.boundZoom !== null ? self.data.boundZoom : defaultInitialZoom;
        _setZoomerVal.call(self, initialZoom);
    }

    dispatchChange(zoomer);
}

`
Let's say I need a cropped image width a minimal width of 400px. Now I can just add the option maxZoomedCropWidth just like:
$('#demo-basic').croppie({         		viewport: {                 width: 150,                 height: 200                 },                 maxZoomedCropWidth: 400,             	url: 'demo/cat.jpg'         	});
This will ensure mininal width of the cropped image to be at least 400px, and adjust MaxZoom-factor automatically to get that value.
For the case an image is uploaded that has a natural width below the maxZoomedCropWidth of 400px, the cropped image will maintain the original width of the uploaded image, but zooming won't be possible anymore. Better to ensure that the uploaded files width is equal or larger than the 'maxZoomedCropWidth'
Hope that may help others!

Please PR this.

@claudio10 yes please create PR

Created PR: https://github.com/Foliotek/Croppie/pull/576

@kosgdk I'm not that active at github, registered at github just to share this. so many thanks for creating PR #576

@maximivanov
I set min and max value in slider in put to avoid minium and maxium zoom
$('.cr-slider').attr({'min':0.5000, 'max':1.5000});
I used this on image load, sample code is below
`reader.onload = function (event) {
$image_crop.croppie('bind', {
url: event.target.result
}).then(function(){
			  	$('.cr-slider').attr({'min':0.5000, 'max':1.5000});

			  });
	 }`

awesome

https://github.com/Foliotek/Croppie/issues/47#issuecomment-247406164

A better approach:
1. Set up boundary and viewport, In my case:
var sizeBoundary= window.innerWidth>512?512:window.innerWidth-100;
var sizeViewPort=256;
2. Then as @Dinesh-Wasnik said:
$uploadCrop.croppie('bind', {
url: e.target.result
}).then(function(){
               var img = new Image();
               img.src = reader.result;

               var aux = img.height<img.width?img.height:img.width;
               aux =aux<sizeViewPort*2?sizeViewPort*2:aux;

               var min = sizeViewPort/aux;
               var max = aux/sizeViewPort;

              $('.cr-slider').attr({'min':min, 'max':max});
            });

This will fit correctly to max widht/height of selected image.

Issue happens only first time when you upload image  solved this issue by binding same image two times
$uploadCrop.croppie('bind', {
url: e.target.result
}).then(function(){
$uploadCrop.croppie('bind', {
url: e.target.result
});

Not sure If I am missing something, but I think the formula for the maxZoom
const maxZoom = image.width * viewportDimensions.width / image.width / desiredMaximumWidth;

can be simplified to
const maxZoom = viewportDimensions.width / desiredMaximumWidth;

so it does not depend on the image, right?


Makefile:*: warning: ignoring prerequisites on suffix rule definition

Congratualtions on the dhcpcd-10 branch. 10.0.1. compiles very cleanly and runs smoothly.
The only noticable output is some Makefile warnings (probably harmelss since they are marked as ignored). Please see the begining of the attached build log.
dhcpcd_10.0.1-1_i386.build.txt

The part I was reporting about is in the ./configure segment at the start. There's several lines like this:
Makefile:*: warning: ignoring prerequisites on suffix rule definition
The warning about BPF is of course valid as well but, unless I'm mistaken, DHCP pretty much requires that sort of promiscuity to work at all?

warning: ignoring prerequisites on suffix rule definition
This is basically GNU saying they will force people to stop using BSD extensions to make and use GNU autoconf in the fullest - and it's apparently fine to use GNU extensions, because you know, GNU.
The only fix this will get is a comment that if GNU make ever stops working then use an older version or use bmake instead.
https://packages.debian.org/bookworm/bmake

The warning about BPF is of course valid as well but, unless I'm mistaken, DHCP pretty much requires that sort of promiscuity to work at all?`

Yes it does. But on BSD we can supply a write filter and then tell the kernel it cannot be removed. So at most a compromised host can only send to the DHCP port and not just any port. We might add more restrictions in the future, but at least we can - on Linux we cannot.


Add WebTorrent Desktop; better WebTorrent version parsing

Added the new peer ID for WebTorrent Desktop (WD).
Support parsing the WebTorrent version correctly.

@fisch0920 What do you think?

@fisch0920 Any chance you review this or add me to GitHub/npm so I can publish a new version?

Looks good; just added you as a collaborator.
Thanks, Feross!

Thanks Travis!
On Wed, Jul 27, 2016 at 5:21 PM Travis Fischer<EMAIL_ADDRESS>wrote:

Looks good; just added you as a collaborator.
Thanks, Feross!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fisch0920/bittorrent-peerid/pull/11#issuecomment-235761675,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHbpg5sc98bXfTW8qzVQLPKILvXwwkzks5qZ_XwgaJpZM4I-Ihg
.


Thanos sidecar failing : cant reach tsdb.path for prometheus (installed with istio)

prometheus: "docker.io/prom/prometheus:v2.8.0"
thanos: docker.io/thanosio/thanos:v0.7.0
-> running in kubernetes cluster
What happened
I have an installation of prometheus (through helm for istio) which is running and exposed via ingress.This is running as deployment and not stateful set.
I have added the thanos sidecar to this prometheus pod and here are the arguments for both :
containers:
        - name: prometheus
          image: "docker.io/prom/prometheus:v2.8.0"
          imagePullPolicy: IfNotPresent
          args:
            - --web.external-url=http://prometheus.istio-system.svc.cluster.local:9090/prometheus
            - --web.route-prefix=prometheus
            - --storage.tsdb.retention.time=6h
            - --config.file=/etc/prometheus/prometheus.yml
            -  --storage.tsdb.path=data/
            - --web.enable-lifecycle
            - --web.enable-admin-api
            - --storage.tsdb.no-lockfile
            - --storage.tsdb.min-block-duration=2h
            - --storage.tsdb.max-block-duration=2h
          ports:
            - containerPort: 9090
              name: http
          livenessProbe:
           httpGet:
             path: /prometheus/-/healthy
             port: 9090
          readinessProbe:
           httpGet:
             path: /prometheus/-/ready
             port: 9090
          resources:
            requests:
              cpu: 10m
          volumeMounts:
            - name: config
              mountPath: /etc/prometheus
        - name: thanos-sidecar
          args:
          - sidecar
          - --prometheus.url=http://<IP_ADDRESS>:9090/prometheus
          #- --tsdb.path=data/
          - --reloader.config-file=/etc/prometheus/prometheus.yml
          - --reloader.config-envsubst-file=/etc/prometheus-shared/prometheus.yaml
          - --objstore.config-file=/etc/thanos/thanos-store-config.yml
          - --http-address=[$(POD_IP)]:10902
          - --grpc-address=[$(POD_IP)]:10901
          - --log.level=debug
          env:
            - name: POD_IP
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.podIP
          image: docker.io/thanosio/thanos:v0.7.0
          imagePullPolicy: IfNotPresent
          ports:
            - name: http-sidecar
              containerPort: 10902
            - name: thanos-grpc
              containerPort: 10901
              protocol: TCP
          resources:
            requests:
              cpu: 10m
          volumeMounts:
          - mountPath: /etc/thanos/
            name: thanos-store-config
          - mountPath: /etc/prometheus-shared
            name: config-shared
          - name: config
            mountPath: /etc/prometheus
      volumes:
        - name: config
          configMap:
            name: prometheus
        - name: config-shared
          emptyDir: {}
        - name: thanos-store-config
          configMap:
            defaultMode: 420
            name: thanos-store-config

When I run this, prometheus comes up fine and im able to get metrics as well (its storing all data in data/ in prom container but thanos fails with :
level=warn ts=2019-09-07T10:26:52.187968611Z caller=sidecar.go:282 err="iter local block metas: read dir: open ./data: no such file or directory" uploaded=0
level=warn ts=2019-09-07T10:26:52.188035954Z caller=sidecar.go:287 msg="reading timestamps failed" err="read shipper meta file: open data/thanos.shipper.json: no such file or directory"

What you expected to happen
Thanos to come up with no errors/warning and ship data to S3
Full logs to relevant components
Logs

[root@ip-10-147-7-180 istio-patch]# kubectl logs pod/prometheus-5b888d6565-44t9k -n istio-system -c thanos-sidecar
level=debug ts=2019-09-07T10:26:20.142592706Z caller=main.go:120 msg="maxprocs: Leaving GOMAXPROCS=[2]: CPU quota undefined"
level=info ts=2019-09-07T10:26:20.142870405Z caller=main.go:168 msg="Tracing will be disabled"
level=info ts=2019-09-07T10:26:20.143116599Z caller=main.go:288 component=sidecar msg="disabled TLS, key and cert must be set to enable"
level=info ts=2019-09-07T10:26:20.143140686Z caller=factory.go:39 msg="loading bucket configuration"
level=error ts=2019-09-07T10:26:20.186408709Z caller=sidecar.go:254 err="WAL dir is not accessible. Is this dir a TSDB directory? If yes it is shared with TSDB?: stat data/wal: no such file or directory"
level=info ts=2019-09-07T10:26:20.186634705Z caller=sidecar.go:298 msg="starting sidecar"
level=info ts=2019-09-07T10:26:20.186958429Z caller=main.go:363 msg="listening for metrics" address=[<IP_ADDRESS>]:10902
level=info ts=2019-09-07T10:26:20.186995925Z caller=prober.go:143 msg="changing probe status" status=healthy
level=info ts=2019-09-07T10:26:20.187127454Z caller=sidecar.go:231 component=sidecar msg="Listening for StoreAPI gRPC" address=[<IP_ADDRESS>]:10901
level=info ts=2019-09-07T10:26:20.200900635Z caller=reloader.go:286 component=reloader msg="Prometheus reload triggered" cfg_in=/etc/prometheus/prometheus.yml cfg_out=/etc/prometheus-shared/prometheus.yaml rule_dirs=
level=info ts=2019-09-07T10:26:20.204134367Z caller=reloader.go:154 component=reloader msg="started watching config file and non-recursively rule dirs for changes" cfg=/etc/prometheus/prometheus.yml out=/etc/prometheus-shared/prometheus.yaml dirs=
level=info ts=2019-09-07T10:26:20.205472249Z caller=sidecar.go:164 msg="successfully loaded prometheus external labels" external_labels="{env=\"production\",lz=\"build\",region=\"virginia\"}"
level=info ts=2019-09-07T10:26:20.20549365Z caller=prober.go:114 msg="changing probe status" status=ready
level=warn ts=2019-09-07T10:26:22.18785748Z caller=sidecar.go:282 err="iter local block metas: read dir: open ./data: no such file or directory" uploaded=0
level=warn ts=2019-09-07T10:26:22.187927628Z caller=sidecar.go:287 msg="reading timestamps failed" err="read shipper meta file: open data/thanos.shipper.json: no such file or directory"
level=warn ts=2019-09-07T10:26:52.187968611Z caller=sidecar.go:282 err="iter local block metas: read dir: open ./data: no such file or directory" uploaded=0
level=warn ts=2019-09-07T10:26:52.188035954Z caller=sidecar.go:287 msg="reading timestamps failed" err="read shipper meta file: open data/thanos.shipper.json: no such file or directory"

Anything else we need to know
I think I understand the issue is thanos container is unable to get to /data folder within prometheus container as its running as a sidecar besides but with istio, prometheus is deployed as deployment with no volume claim that can be shared between containers so how do I go about solving this without adding a volume claim ?

@bwplotka could you please assist ?

I have an installation of prometheus (through helm for istio) which is running and exposed via ingress. This is running as deployment and not stateful set.

This fact is really important as:

This is not advised for any Prometheus instance, as it is a stateful set application. Any crash or upgrade will lose data.
Thanos global view mode (sidecar -> Querier) without shipping blocks will work just fine.
As per: 'Thanos to come up with no errors/warning and ship data to S3' Thanos long term storage by sidecar uploading block is highly discouraged for Prometheus without persistent volume. This due to the fact of Thanos relies on the fact that block will be produced by Prometheus. It is produced every 2h. In environments like Kubernetes, you should expect pod restart anytime.
Maybe you should look rather in a solution for streaming metrics like Thanos Remote receive. Still, pod restart will lose data, but normally you would lose only a few minutes, not hours.

If you want to still proceed with this, you just need sharedVolume - so empty volume shared between containers.

@bwplotka thank you for that detailed answer with the recommendations!


report "version `GLIBCXX_3.4.20' not found"

I use sshcode in Macos,want to install vscode server to centos 7.5,report the following error:
sent 1712186 bytes  received 20 bytes  311310.18 bytes/sec total size is 955763838  speedup is 558.21 2019-04-30 19:23:14 INFO	synced extensions in 7.344483678s 2019-04-30 19:23:14 INFO	starting code-server... 2019-04-30 19:23:14 INFO	Tunneling local port 26914 to remote port 36692<EMAIL_ADDRESS>password: /tmp/sshcode-code-server: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /tmp/sshcode-code-server)
/tmp/sshcode-code-server: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /tmp/sshcode-code-server) /tmp/sshcode-code-server: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by /tmp/sshcode-code-server)
2019-04-30 19:23:30 FATAL	error: code-server didn't start in time: context deadline exceeded`

full information is below:
`✘ fanzhi@fanzhi-MBP  ~/vagrant/labs-elk-ansible  sshcode<EMAIL_ADDRESS>2019-04-30 19:23:04 INFO	ensuring code-server is updated...
<EMAIL_ADDRESS>password:

mkdir -p /root/.local/share/code-server

cd /tmp

wget -N https://codesrv-ci.cdr.sh/latest-linux
--2019-04-30 19:23:06--  https://codesrv-ci.cdr.sh/latest-linux
正在解析主机 codesrv-ci.cdr.sh (codesrv-ci.cdr.sh)... <IP_ADDRESS>, <IP_ADDRESS>, 2606:4700:30::681b:851a, ...
正在连接 codesrv-ci.cdr.sh (codesrv-ci.cdr.sh)|<IP_ADDRESS>|:443... 已连接。
已发出 HTTP 请求，正在等待回应... 200 OK
来自 codesrv-ci.cdr.sh 的 Cookie 尝试将域设置为 codesrv-ci.cdr.sh
长度：94698820 (90M) [application/octet-stream]
远程文件比本地文件 “latest-linux” 更老 -- 不获取。

'[' -f /tmp/sshcode-code-server ']'

rm /tmp/sshcode-code-server

ln latest-linux /tmp/sshcode-code-server

chmod +x /tmp/sshcode-code-server
2019-04-30 19:23:07 INFO	syncing settings
<EMAIL_ADDRESS>password:
building file list ... done

sent 329 bytes  received 20 bytes  139.60 bytes/sec
total size is 207024  speedup is 593.19
2019-04-30 19:23:09 INFO	synced settings in 2.478132549s
2019-04-30 19:23:09 INFO	syncing extensions
<EMAIL_ADDRESS>password:
building file list ... done
sent 1712186 bytes  received 20 bytes  311310.18 bytes/sec
total size is 955763838  speedup is 558.21
2019-04-30 19:23:14 INFO	synced extensions in 7.344483678s
2019-04-30 19:23:14 INFO	starting code-server...
2019-04-30 19:23:14 INFO	Tunneling local port 26914 to remote port 36692
<EMAIL_ADDRESS>password:
/tmp/sshcode-code-server: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by /tmp/sshcode-code-server) /tmp/sshcode-code-server: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by /tmp/sshcode-code-server)
/tmp/sshcode-code-server: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by /tmp/sshcode-code-server) 2019-04-30 19:23:30 FATAL	error: code-server didn't start in time: context deadline exceeded

try updating the packages on your server

That tends to happen if you're running on an old linux distro, if you're using Ubuntu try a version >= 16.04

We are left with no option but to use CentOS 7 for our development. It would be really good if this can be fixed.

This is a problem with code-server not with sshcode itself, you could try opening an issue against that repo but I'm not sure it'll be fixed. I'll look into a workaround for Centos users

I'll leave this open while I investigate

Also seeing this trying to use on CentOS 7.

It looks like the latest code-server actually works just fine! If I download https://github.com/cdr/code-server/releases/download/2.1523-vsc1.38.1/code-server2.1523-vsc1.38.1-linux-x86_64.tar.gz and copy the included code-server binary over the one downloaded by sshcode (~/.cache/sshcode/sshcode-server), then I'm able to use sshcode quite happily.
It only doesn't work with the version downloaded automatically by sshcode, so maybe updating that version will be enough to make sshcode work for CentOS users?


Uses the threadsafe branch with threadlocals

This is just to verify that the gem is still working, once
https://github.com/Shopify/activeresource/pull/2 is merged
this will either point to that resulting ref or to the gem
when it gets released on rubygems.
Please review @boourns @benjlcox
/cc @chrisbutcher @peterjm

We got green!!!!!

Looks like this is ready for review @boourns @benjlcox

Sorry for the delay! lgtm

LGTM :sheep:


Cannot pass default acl ID from vpc module

Found a bug? Maybe our Slack Community can help.

Describe the Bug
Even though the variable private_network_acl_id exists, if you pass it from the vpc module you get a count error
Error: Invalid count argument

  on .terraform/modules/dev_subnets/private.tf line 56, in resource "aws_network_acl" "private":
  56:   count      = module.this.enabled && var.type == "private" && signum(length(var.private_network_acl_id)) == 0 ? 1 : 0

The "count" value depends on resource attributes that cannot be determined
until apply, so Terraform cannot predict how many instances will be created.
To work around this, use the -target argument to first apply only the
resources that the count depends on.

Expected Behavior
I would expect to be able to pass the acl reference down. Perhaps this is a limitation in terraform?

Weird thing is that this variable private_network_acl_id acts as a boolean rather than an actual configuration that will be done, that is: associate the given network acl to the subnet.
I also couldn't find a terraform resource that can perform such action. There's a CloudFormation Template tho.
The name of this variable should probably change to something like: create_network_acl and be a boolean.


feat(stacks): scope stack names to endpoint

fix #1347

@chiptus do you mind rebasing that one on latest develop?

@chiptus do you mind rebasing that one on latest develop?

done

Marked it as available for review so that I can give it a review.

@pull-dog down

/azp run

/azp run

@pull-dog up

@pull-dog up

@pull-dog down

@pull-dog down

@deviantony  should work now (tested with containers, not with other resources)

@deviantony  should work now (tested with containers, not with other resources)

@deviantony @ncresswell when migrating stack, should we fail if there's a stack with the same name on the target endpoint?

@deviantony @ncresswell when migrating stack, should we fail if there's a stack with the same name on the target endpoint?

@chiptus yes, we should prevent the migration of a stack if a stack with the same name already exists on the target endpoint.

@chiptus yes, we should prevent the migration of a stack if a stack with the same name already exists on the target endpoint.

/azp run

/azp run

The UAC still seems to be having issues on my machine

I see it correctly. Can you give me more details?

I'm unable to replicate that one now.
(maybe a caching issue on my side)

Very nice job @chiptus, couple of small comments that don't lower the quality of the work done

Thanks!

thanks @chiptus, looks good, we will need to resolve conflicts before we can send to test (including API version change to 2.2.0)

thanks @chiptus, looks good, we will need to resolve conflicts before we can send to test (including API version change to 2.2.0)

Done

Does this feature have a chance to be released?


Cannot transform sap.ui.define when no function is provided

Hello,
I noticed that the babel-plugin-transform-modules-ui5 cannot transform such definition which is valid from a UI5 perspective (even if a sap.ui.require could be an alternative !)
sap.ui.define("", [
    "foo/bar/MyResource"
]);

Error:
TypeError: C:\project\test\unit\AllTests.ts: Cannot read property 'params' of undefined
    at getRequiredParamsOfSAPUIDefine (C:\project\node_modules\babel-plugin-transform-modules-ui5\dist\classes\visitor.js:154:23)
    at PluginPass.CallExpression (C:\project\node_modules\babel-plugin-transform-modules-ui5\dist\classes\visitor.js:111:32)
    at NodePath._call (C:\project\node_modules\@babel\traverse\lib\path\context.js:53:20)
    at NodePath.call (C:\project\node_modules\@babel\traverse\lib\path\context.js:40:17)
    at NodePath.visit (C:\project\node_modules\@babel\traverse\lib\path\context.js:90:31)
    at TraversalContext.visitQueue (C:\project\node_modules\@babel\traverse\lib\context.js:110:16)
    at TraversalContext.visitSingle (C:\project\node_modules\@babel\traverse\lib\context.js:79:19)
    at TraversalContext.visit (C:\project\node_modules\@babel\traverse\lib\context.js:138:19)
    at Function.traverse.node (C:\project\node_modules\@babel\traverse\lib\index.js:76:17)
    at NodePath.visit (C:\project\node_modules\@babel\traverse\lib\path\context.js:97:18) {
  code: 'BABEL_TRANSFORM_ERROR'
}

You can find a workardound by defining it that way:
sap.ui.define("", [
      "foo/bar/MyResource"
], () => {
    // Empty
});

Issue is located in babel-plugin-transform-modules-ui5\dist\classes\visitor.js
And I made a local fix by checking checking callbackNode against undefined.
function getRequiredParamsOfSAPUIDefine(path, node) {
  const defineArgs = node.arguments;
  const callbackNode = defineArgs.find(argNode => _core.types.isFunction(argNode));
  **HERE**
  return callbackNode.params; // Identifier
}

But I don't know how the plugin itself works and if this is viable.
Do you think a fix could be provided. Using sap.ui.define with no content helps when for example you are running OPA tests with karma. They can be loaded, but you do not need to define a function. Maybe there are other use cases.
Thanks

Also have this issue. The workaround is fine for now but is still an ongoing issue


Searchbar

This is for a search bar in the nav
Goes with https://github.com/18F/cg-docs/pull/252

@jeremiak @msecret

Looks good @jcscottiii! I think we should also add this to the documentation/_includes/header.html partial so that it is used on the style guide site.
Also, how do you feel about moving the search.scss into nav.scss? With the way React components import styles in 18f/cg-deck its a bit easier to only have to import one file per component and since the search bar will always be in the nav it seems like a good fit.

I want to wait til we get Victor involved to merge this. We might want to add the functionality to expose the nav after you clikc on a search icon first.

If we merge this we should also tag a 0.4.1 release. I'm using patch versions as a stand in for minors, sort of. I think we should just publish the next breaking change as 1.0.0 so we can properly use semver but in the meantime we can stick to our current method.
18F/cg-docs#252 relies on this and it would be best to use a public version of cloudgov-style instead of pinning to a specific commit here

@thisisdano @vz3 we could use some design advice/help here.
First off, here's the original issue for implementing the search bar into the header: https://github.com/18F/cg-deck/issues/237. In the first comment, you can see how @jcscottiii implemented this. It doesn't exactly follow the issue as the search bar is longer, and is always present rather then only being present when the search icon is clicked.
Based on this, should we:

(a) continue with this
(b) take the extra time to implement the search bar to only appear after you click the search icon (about 1 day of work)
(c) do something completely different from either (a) or (b).

The design team has decided on a slightly different direction for implementation of the search bar. A new comp to work from is located here: https://github.com/18F/cg-docs/pull/252#issuecomment-244135650
I'll be closing this PR and opening a new one that might branch off of this work. 🎉


Perpetual pot for infinite rewards distribution per epoch

We need a way to keep a perpetual pot. Such a pot should distribute it's full balance every epoch, but the pot shouldn't disappear afterwards. This is what OSMO rewards will probably go into.
Like the weekly minted amount should go into a perpetual pot that distributes for 1 epoch. But new coins will be sent to this same pot every week until governance decides to vote to change it.

Considering the state of the module so far, I think the pool-yield(pool-incentives) module could use the onFinishDistribution() hook from the incentives module to create a new pot every time. However, this is a bit inefficient.
How long do you think it will take to implement the perpetual pot? If it doesn't take too much time, we can use the perpetual pot for now.

Perpetual pot won't take much time, will be done shortly within 1-2 days.

closed by #44


[BUG] "Unimplemented" when attempting to delete snapshots in the UI

Describe the bug (🐛 if you encounter this issue)
It doesn't seem to be possible to delete snapshots from the Longhorn UI.
To Reproduce
Navigate to a volume.
Click on a snapshot.
Select "Delete".
It is not deleted. An error toast pops up at the top of the screen with "Unimplemented" ion it.
Expected behavior
It should delete the snapshot.
Environment

Longhorn version: master, approx Oct 2022.
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): kubectl
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: K3s 1.25.4

Number of management node in the cluster: 1
Number of worker node in the cluster: 3 at the time, now 4.

Node config

OS type and version: Ubuntu 22.04.1
CPU per node: 2/4, mixture of i3/i5.
Memory per node: 16GiB+
Disk type(e.g. SSD/NVMe): NVMe
Network bandwidth between the nodes: 1Gbit.

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): Baremetal.
Number of Longhorn volumes in the cluster: 6

Just noticed you are using Longhorn version: master, approx Oct 2022. Please use the official release version instead, because the master is under development and not for official usage.

Can't. Waiting for a fix that's in 1.4.0.

Let's close this due to the issue reported by the ongoing development branch. @rlipscombe feel free to reopen this issue if you still encounter it from official releases. Thanks.


App Store

Is there any chance this app will find its way into the app store? I don’t have a Mac to build it and could not find any links/instructions in the readme.

This app cannot be published on App Store because it uses non-public APIs to accomplish key features.

That’s unfortunate, but thanks for your quick response.


--help Outputs duplicate flags.

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Command (mark with an x)
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

- [x] --help

Versions

node v10.11.0
npm v6.4.1
ng v6.2.3
Linux x64 with Ubuntu
Repro steps

ng new --help
or
ng update --help
The log given by the failure

Example:
~❯ ng new --help
Creates a new directory and a new Angular app.
usage: ng new <name> [options]
arguments:
  name
    The name of the workspace.
options:
  --collection (-c)
    Schematics collection to use.
  --collection (-c)
    Schematics collection to use.
  --directory
    The directory name to create the workspace in.
  --dryRun (-d)
    Run through without making any changes.
  --dryRun (-d)
    Run through without making any changes.
  --experimental-ivy
    EXPERIMENTAL: Specifies whether to create a new application which uses the Ivy rendering engine.
  --force (-f)
    Forces overwriting of files.
  --force (-f)
    Forces overwriting of files.
  --inline-style (-s)
    Specifies if the style will be in the ts file.
  --inline-template (-t)
    Specifies if the template will be in the ts file.
  --new-project-root
    The path where new projects will be created.
  --prefix (-p)
    The prefix to apply to generated selectors.
  --routing
    Generates a routing module.
  --skip-git (-g)
    Skip initializing a git repository.
  --skip-install
    Skip installing dependency packages.
  --skip-tests (-S)
    Skip creating spec files.
  --style
    The file extension to be used for style files.
  --verbose (-v)
    Adds more details to output logging.
  --verbose (-v)
    Adds more details to output logging.
  --view-encapsulation
    Specifies the view encapsulation strategy.

Desired functionality

Remove the duplicate help statements.

Hey @alan-agius4 I would love to help fixing this issue.
Would you mind guiding me?

Hey @alan-agius4
So I was going over the codebase.
Could you direct me towards the implementation of the --help flag.
I guess it is somewhere in the schematics component.

Nvm.
I got it.

I am going to close this, as has already been fixed and no longer re-reproducible in Version 7 RC 2.