[flink-cep]Add wait state support for cep

What is the purpose of the change

support cep wait state

Brief change log

add cep wait state

Verifying this change
This change added tests and can be verified as follows:

Added cep wait tests CEPITCase#testEventTimeWithWait

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Hi, thanks for your contribution! However, before you can contribute, please read the contribution guide and follow the steps outlined there.


How to pass a variable folder path from values.yaml ? I have tried it but not loading any configuration .. Can somone please share some example ?

Output of helm version:
Output of kubectl version:
Cloud Provider/Platform (AKS, GKE, Minikube etc.):

How to pass a variable folder path from values.yaml ? I have tried it but not loading any configuration .. Can somone lease share some example ?
Also can I use a absolute directory path instead of relative path?
For Example (Working)
apiVersion: v1
kind: ConfigMap
metadata:
creationTimestamp: null
name: myconfigMap
data:
{{ (tpl (.Files.Glob "config/*.properties").AsConfig . ) | indent 2 }}
Not Working
apiVersion: v1
kind: ConfigMap
metadata:
creationTimestamp: null
name: myconfigMap
data:
{{ (tpl (.Files.Glob "/home/tutai/MyApp/my-helm/config/*.properties").AsConfig . ) | indent 2 }}

doc link: https://docs.helm.sh/chart_template_guide/#accessing-files-inside-templates
Files cannot be accessed from outside the chart, as the rendering occurs server-side via Tiller. If you want to inject files into your chart, you'll have to copy them over to the chart before running helm install.

Closing due to inactivity. Please open a new ticket against Helm 3 if this issue persists. Thanks!


using ecdsa keys

verifying ecdsa signatures
update of mock wallets with ecdsa keys

@muzykantov please take a look.


how does one set the timeout values for the api calls?

thanks!

Hi @lfxc,
The optional 4th parameter to the TrafficManagement constructor allows you to provide an array of configuration values to the Zend HTTP client (which the SDK uses for the API calls). To specify a timeout of 30 seconds, that would be:
$tm = new TrafficManagement('customerName', 'username', 'password', array(
    'timeout' => 30
));

For email, it's the 2nd parameter instead:
$mm = new MessageManagement('APIKEY', array(
    'timeout' => 30
));

The default timeout is 300 seconds (5 minutes).
Hope this helps,
Tim.

perfect.  thanks!


fix oidc authentication with tgt timeout exp

Note: The changes I made  (changing getTimeToLive() usage to getTimeToIdle()) are only in OIDC module.
But there's the same behaviour in OAuth modules too.
Should I change that in OAuth modules too ? (I'm not too familiar so I'm asking before doing the change)

Hello,
Version of CAS: 6.1.4.
When using OIDC authentication (i.e. implicit flow)
with timeout expiration policy for TGT, I get the following error:
 2020-03-19 08:01:26,905 ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/cas].[dispatcherServlet]] - <Servlet.service() for servlet [dispatcherServlet] in context with path [/cas] threw exception [Request processing failed; nested exception is java.lang.ArithmeticException: long overflow adding:<PHONE_NUMBER> +<PHONE_NUMBER>854775807 = -9223372035270170923] with root cause>
 java.lang.ArithmeticException: long overflow adding:<PHONE_NUMBER> +<PHONE_NUMBER>854775807 = -9223372035270170923
 	at org.jose4j.lang.Maths.add(Maths.java:13) ~[jose4j-0.7.0.jar:?]
 	at org.jose4j.jwt.NumericDate.addSeconds(NumericDate.java:61) ~[jose4j-0.7.0.jar:?]
 	at org.apereo.cas.oidc.token.OidcIdTokenGeneratorService.buildJwtClaims(OidcIdTokenGeneratorService.java:103) ~[cas-server-support-oidc-core-api-patch.jar:?]

Sample configuration to reproduce the error:
cas:
  ticket:
    tgt:
      timeout:
        maxTimeToLiveInSeconds: 300

It seems to be because OIDC expiration is based on
ExpirationPolicy#getTimeToLive() and not
getTimeToIdle().
For timeout policy, getTimeToIdle() is Long.MAX_VALUE.
Thanks,
Adrian

Hello,

Yes, please change the oauth module as well if the problem exists.
For all changes, please add unit tests to verify.

Thank you!

@mmoayyed : I changed the oauth module and added some unit test
Let me know is something is missing
Thanks !

@mmoayyed I think we have a bigger issue related to expiration times that first spotted.
I made some tests last week that show we have different expiration time values.

idToken expiration time is equals to CAS TGT

cas:
  ticket:
    tgt:
      maxTimeToLiveInSeconds: 121
      timeToKillInSeconds: 121

accessToken expiration time is set to

"accessTokenExpirationPolicy": {  "@class": "org.apereo.cas.support.oauth.services.DefaultRegisteredServiceOAuthAccessTokenExpirationPolicy",  "maxTimeToLive": "100",  "timeToKill": "100"},

expires_in parameter from OIDC authorization endpoint response:

# cas.authn.oauth.accessToken.timeToKillInSeconds=7200
# cas.authn.oauth.accessToken.maxTimeToLiveInSeconds=28800

So the main issue I see is that all these values can be different.
IMO, they should be the same.
From OIDC specification https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.<IP_ADDRESS>:

expires_in
RECOMMENDED.  The lifetime in seconds of the access token.  For
example, the value "3600" denotes that the access token will
expire in one hour from the time the response was generated.
If omitted, the authorization server SHOULD provide the
expiration time via other means or document the default value.

So expires_in should be equals to AT lifetime.
wdyt ?
Should I use AT lifetime to compute expires_in and id_token expiration so we have the same value everywhere ?
Thanks,
Adrian

I'm Farah Hassan.

After checking a little more:

expires_in response parameter (from token and authorization endpoint): OIDC (OIDC Core 1.0 - <IP_ADDRESS>) and OAuth2 (rfc6749 - 4.2.2, 5.1) indicate that expires_in value must be set to accessToken expiration time.
==> We have an issue in CAS atm because this value is set to global oauth access token expiration, not per-service expiration.
idToken expiration is not linked to accessToken expiration (at least I didn't find anything about that).

If it's ok for you, I intend tomorrow to add an additional commit to this PR to  set expires_in to the same value as accessToken expiration (using per-service expiration value).
Thanks,
Adrian

If it's ok for you, I intend tomorrow to add an additional commit to this PR to set expires_in to the
same value as accessToken expiration (using per-service expiration value).

The last commit adds this behaviour
@mmoayyed: could you check if it's ok for you ?
P.S.: I've made some tests using this PR:
Test 1: same global conf for tgt and access_token expiration
Global Configuration:
cas:
  authn:
    oauth:
      accessToken:
        timeToKillInSeconds: 900
        maxTimeToLiveInSeconds: 900
  ticket:
    tgt:
      maxTimeToLiveInSeconds: 36000
      timeToKillInSeconds: 900

Result:
=> idToken, accessToken and expires_in response param are all set to 900s expiration time
Test 2: different global config for tgt and access_token expiration
Global Configuration:
cas:
  authn:
    oauth:
      accessToken:
        timeToKillInSeconds: 900
        maxTimeToLiveInSeconds: 900

Result:
expiration for access_token and expires_in response param:900
expiration for id_token: 2h
Test 3: per-service access_token expiration
Global Configuration:
cas:
  authn:
    oauth:
      accessToken:
        timeToKillInSeconds: 900
        maxTimeToLiveInSeconds: 900

Service configuration:
  "accessTokenExpirationPolicy": {
    "@class": "org.apereo.cas.support.oauth.services.DefaultRegisteredServiceOAuthAccessTokenExpirationPolicy",
    "maxTimeToLive": "100",
    "timeToKill": "100"
  }

Result:
expiration for access_token and expires_in response param:100
expiration for id_token: 2h

Thanks very much for the changes.
In its current form, this PR is simply not possible to review, or at least review in due time. Could I ask you to break apart this pull request into smaller chunks, so it can be more easily reviewed and more quickly? The changes proposed are non-trivial and given the complexity here, it would be best to address them in smaller pieces for better clarity.

Hello @mmoayyed,
You're right the PR changed a bit since its inception, and I'm mixing 2 things here.
I'll close it and open new ones.
I'll begin with this: https://github.com/apereo/cas/pull/4776
I'll do the other one (using timeToKill instead of timeToLive for accessToken expiration) afterwards in order to avoid merge conflicts.
Thanks,
Adrian


lib/debug.nix overhaul

The debug module is very useful for day-to-day nix programming, but hasn’t seen a lot of care and aquired quite a lot of cruft.
Main changes:

add *Val*Fn group of functions
remove deprecated strict function
deprecate the showVal group of functions because traceSeqN should be strictly more general
deprecate the Xml-group of functions, because they are mostly trivial and/or overly specific
deprecate traceValIfNot and addErrorContextToAttrs
document the module and tracing functions

More detailed reasoning is included in each commit description.

I think it would be nice to have a consistent write-up (or at least a reference entry) on how to use these functions, not only in the comment field above the code but in the manual itself. This is related to https://github.com/NixOS/nix/issues/701 and
https://github.com/NixOS/nix/pull/702

@makefu I can mention the debug module in the manual (similar to how generators is mentioned), but would rather not duplicate the docstrings (because that will go out of sync sooner rather than later).
If there’s a debugging tutorial, it should most likely go into a new chapter of the nix pills, which have been designated as our official tutorial as far as I can see.

@Profpatsch For newcomers that kind of "documentation" is far from optimal. When you start with nix and nixpkgs it is not very obvious to look for solutions inside the implementation source code.
IMHO the nixpkgs libs need a reference similar to what we have for the modules and packages, however to solve this is out of scope for this PR which looks fine.

@makefu Added an initial section to the manual in the last commit. It is more of a stub for now (but at least users now find something when they search for debug (in the right manual)).

I think all the functions which have been deprecated need:

release notes
their deprecation warnings to include what to replace them with

Added release notes & replacement instructions in the last commit.

I rebased it to remove the documentation merge conflicts.

Merging because no further feedback.
We can roll back selectively if something breaks (although nothing should, since these are debug functions).


Set the correct input/output payload metadata

Start propagating some input/output payload metadata to the runtime, this includes:

Make sure input/output emptyness is respected
Set the content-type for JSON input/outputs
Eventually propagate the JSON input/output schema (at the beginning we could just propagate the schema true)

This is solved for now.


HIPAA Compliant?

Our organization would like to use this Chrome extension for debugging our web-based electronic medical records system.  However, since this system includes protected healthcare information, we need to be certain that the extension doesn't send any private browsing data back to another server or anything.  Does anyone know if this is the case?

I can't say, as we rely on a lot of libraries outside of our control.  Your best bet is to dig through the codebase yourself.


Add custom metric support

Fixes #13 by adding support for a custom metric.

I had an issue with the current types. I had to satisfy the type checker because in the current types customMetric.dimensions might be undefined even though this cannot be the case at this point:
(customMetric.dimensions || []).map(d => ({ Name: d.name, Value: d.value }))

I propose to have different types for the input of the config and the created data with filled in defaults. The type for the input would be the same as now with most of the values being optional. But the members of data should mostly not be optional anymore.
This is a bigger change though and should probably be solved in its own PR.

@fxgtt FYI this is really great!

@fxgtt, After further consideration I think we can probably remove most of this configuration. I know in #13 we discussed giving full options, and I apologize for any extra work you did. I think to keep it simple, and within the scope of the plugin, we should limit it to just the statistic as you said. You can leave in all the other code for defaults. There really isn't a use case for modifying the other configuration within the provisionedConcurrency scope.
What got me onto this, is when I tried to deploy with the changes and could not match the function name correctly under dimensions. Having those options available created problems that can be solved by simply removing the option all together.
What do you think?

I was thinking the same about only exposing statistic. There might be use cases if you have your own metric on which you want to scale differently. For example to react earlier than you could with ProvisionedConcurrencyUtilization. But keeping it simple and reducing accidental misconfiguration should be the right way to go for now.
If I understood you correctly, I keep the code as it is and just remove the possibility of configuration?

@fxgtt You got it! We're almost there. There is only two things left that would really button this up.

The statistic should be case insensitive and could use the ucFirst() utility function to verify it is the correct case. This one isn't required but would be nice.

The dimensions being used in your customMetric changes are just the function name. SLS dynamically creates the function name with {service}-{stage}-{functionName}. The current implementation would actually not scale at all since the dimensions do not exist to scale against. (let me know if this one needs clarification)

@claydanford I cannot confirm that the wrong dimension are being created. The created dimensions have {service}-{stage}-{functionName} format. If that is what you meant?

@claydanford I cannot confirm that the wrong dimension are being created. The created dimensions have {service}-{stage}-{functionName} format. If that is what you meant?

@fxgtt, the created dimensions, with customMetric, use just the function name as you have written, but sls actually creates the function with the service, stage, and function name in the name of the function. The dimensions of the FunctionName and Resource are incorrect since it just takes one of those parameters(functionName).

@claydanford I understood that. But for me it takes service, stage and function name for the created dimension. Not only functionName.
I use config.name for that which holds the name from Serverless.FunctionDefinition. If I use config.function I only get functionName.
For me it looks fine.

@fxgtt, Disregard number 2. It was my mistake. This is solid.

@hemanthj Approved

Thank you for the quick merge!


Building a Shopping Cart - Step 15 - Too strict tests

Describe the Issue
the check for step 15 of the shopping cart does not allow a space to be placed to the immediate right-hand-side of the word constructor (just before the parenthesis), however that seems to be valid syntax.
Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-basic-oop-by-building-a-shopping-cart/step-15
Your code
class ShoppingCart {
  constructor () {

  }
};

Expected behavior
update the check for this step to allow a space to the immediate right-hand-side of the word constructor
Screenshots
No response
System
N/A
Additional context
No response

I found a similar issue with another step here:
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-intermediate-oop-by-building-a-platformer-game/step-13
(it also doesn't allow the constructor to have a single space to the immediate right of the word constructor)
Can this be fixed at the same time?


Get Involved - Page

As a user,
I need access to a "Get Involved" page,
So that I can learn about ways to participate and contribute as a volunteer or supporter.
Acceptance Criteria
Given that I am a user interested in getting involved
When I navigate to the "Get Involved" page
Then I should see information about volunteering opportunities, support options, and ways to contribute

This issue has also been addressed in thar commit: 80fc530b9e1a6b6e0becbf52f21f7af958e40e22


Zscaller corporate proxy (not working)

I tried to open an issue here too : https://github.com/dotnet/aspnetcore/issues/44782
Did someone has any xp with this messy proxy ? I cannot access anything in term of policies or config but it stops my wasm blazor very well.

your tool fights Zscaller if a specify .dat extension (.bin seems blocked too by my corporate config) you can add it to the list of success. Thx a lot for your job on this very very useful.

maybe it will be good to set another default value (.bin) seems to be considered as executable by dummy proxies. Maybe to have a excellent "first try xp".  A simple rename to .dat didn't do the trick for me. So the obfuscation part was important too and your custom caching is much loved. 👍

Thank you for your feedback, much appreciated. I am happy this solution worked for you


Modal - prevent bubbling of [esc] when closing

This is also fixed in version 4.

Bootstrap 3 is essentially in maintenance mode as we focus on working towards a stable v4. As such, we're only accepting changes to v3's code on a case-by-case basis, usually only for critical bug fixes or docs improvements.


OPSEXP-1785 ghostscript & gs libraries notes documented

OPSEXP-1785 Updated the readme file with ghostscript and gs libs.

Closing PR.
Please see my latest comments in OPSEXP-1785. This is actually possible to achieve what's described in the ticket


chore: release 2.1.2

:robot: I have created a release beep boop
2.1.2 (2024-09-06)
Bug Fixes

filter missing schema when request bodies are defined (aadda1a)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v2.1.2
:sunflower:


chore(mrm): add mrm setup

Coverage remained the same at 100.0% when pulling fc2d2e63a6bcc65c6bbbaeefcef0cd9fb75f1c39 on RomainForks:feature/mrm into 2466338ee147c4402a7a2822e8cfaad12676c2f7 on adonisjs:develop.


Fixed #1469 : Warn user when using coffee script with PhantomJS 2+

@istr I don't know how to test it, probably using python tests but I don't know python... any hint ?

Maybe something like https://github.com/n1k0/casperjs/blob/master/tests/suites/casper/formfill.js#L47, but only the other way around and with a coffescript? Have to think this over, too... ;-)

@istr to be honest, I don't see any "elegant" workaround :/ I feel bad about this patch, and I feel bad about a specific function too: this only move the crap :/
@n1k0 what do you think ? what could be the "best" way to handle deprecations from phantomjs ?

I have no problem with this patch. If people want to use phantom 2 and phantom 2 doesn't support something, they shouldn't be too much surprised we don't support it either.

I concur with @n1k0.  As long as we annotate it in the docs.

@BIGjuevos I add a notice in installation docs asap.

@mickaelandrieu

to be honest, I don't see any "elegant" workaround

No problem -- better to bail out and warn user's in an "inelegant way" rather than letting users run into unexpected trouble.  :+1: to merge this, maybe this could be replaced with an "elegant" solution later on. Life is imperfect.

thanks for review @istr :) I update also the docs today to inform users about this lack in phantomjs 2 and the workaround (compile into js first, then launch casperjs)


scollector with invalid -f flag throws exceptions on Windows

If you use -f to filter collectors but use a name that does not exist there are execptions thrown on windows

./scollector.exe -h 'http://ny-gbraylx01.ds.stackexchange.com:8070' -f asfd
2015/02/25 16:16:00 info: main.go:230: OpenTSDB host: http://ny-gbraylx01.ds.stackexchange.com:8070
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_iis_webservice: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_iis_apppool: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_network_team_windows: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_mssql: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_mssql_replica_resources: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_mssql_replica_db: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_mssql_replica_server: Exception occurred.
2015/02/25 16:16:14 error: interval.go:53: bosun.org/cmd/scollector/collectors.c_mssql_replica_votes: Exception occurred.

Problem is filter search returns a null set if nothing matches: https://github.com/bosun-monitor/bosun/blob/master/cmd/scollector/collectors/collectors.go#L95
and the run command runs everything if the set is null: https://github.com/bosun-monitor/bosun/blob/master/cmd/scollector/collectors/collectors.go#L110
Fix would probably be to exit with an error if filter matches nothing.

Ah and the init methods probably weren't run, which is why they throw exceptions! I'll take a look at the pr and make sure it works as expected, but sounds good to me.


Utility menu not showing up when right clicking on tabs

When right clicking on tabs, Firefox would usually show a utility menu with options like "Copy Link" or "Close Tab," but those aren't present when using ArcFox.

we don't have one at the moment but we're adding one soon :)


Update packet python

Motivation for this change
New release of packet-python that brings in a few small features and also allows for testing from the sdist.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

could you rename the commit to python3Packages.packet-python: 1.37.1 -> 1.38.2.
This should trigger the build.

python3Packages or pythonPackages?

@teto ping on the name clarification please. Is there a place where python (and other) modules commit messages format is described? The manual's direction looks like a subset.
So why python3Packages vs just pythonPackages or what I think makes the most sense actually: python.pkgs.packet-python:...

It should have been in the https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md but  the explanation is not good, I will try to update it. Meanwhile you can grep the repostiory log and you will see pythonPackages.XXX at the start.
If it works with both python 2 and 3, use pythonPackages else python3Packages. Both are an alias to python.pkgs so I suppose they are here to provide some abstraction over the underlying implementation.

yep I've seen all three flavors. IMO python.pkgs would make more sense for 2&3 compatible packages since pythonPackages.$foo refers to the python2 version atm and python3Packages is python3, so there doesn't seem to be one prefix to indicate both versions well. But, this is probably not the place to change convention :D.

:tada:


Countersigning Approve

Change description
Add Form to countersign advice given by other users.
Once approved displays a page to view the countersigned advice.

Need to add unit tests


Add --{host,target}-swift-package-path to use self-built toolchains

Generalized --{host,target}-swift-package-path options to be common generator options based on @euanh's feedback https://github.com/apple/swift-sdk-generator/pull/74#discussion_r1464895574

@swift-ci test


[AIRFLOW-2547] Describe how to run tests using Docker

For Airflow it can be a bit tricky to test the code. Add a description on how to build a clean enviroment from scratch.
Cleaned up the dependencies a bit, thrift_sasl is pulled in transitieve by impyla. And the unicodecsv is required to do the airflow initdb.
Make sure you have checked all steps below.
JIRA

[ ] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-2547] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-XXX
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-2547], code changes always need a JIRA issue.

Description

[ ] Here are some details about my PR, including screenshots of any UI changes:

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[ ] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

thanks @Fokko , the doc is useful :)

Codecov Report

Merging #3445 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3445      +/-   ##
==========================================
+ Coverage   76.68%   76.69%   +<.01%
==========================================
  Files         203      203
  Lines       15064    15064
==========================================
+ Hits        11552    11553       +1
+ Misses       3512     3511       -1

Impacted Files
Coverage Δ

airflow/utils/dag_processing.py
89.31% <0%> (+0.42%)
:arrow_up:

Continue to review full report at Codecov.

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

+1


Support nullability for mutation payload fields

Currently, automatically created mutation payloads (when using mutation conventions) do not have correct F# nullability on their fields.
I tried investigating this for an hour or two, but I couldn't find any way to get the underlying type from these fields, so I'm not sure how to proceed.
It is possible this is only relevant when not returning errors from the mutation, or if the returned data is a value type.

Actually, I'm not sure this should be implemented. When using mutation conventions, the result field should be nullable even if there currently is no error, because then an error field may be added later with no breaking changes to the schema.
Closing for now.


Add API to Record Compile Invocation

This commit adds API to record the compilation invocations in order to
emit compile_commands.json a.k.a. JSON compilation database.
Fixes #497
See following screencast that uses Neovim with rust-analyzer and clangd as language servers:

Not that I have an actual say, or that Alex wants to have one now, but consider https://github.com/rust-lang/cc-rs/pull/612#discussion_r677554949. Not even something as simple as which was frown upon:-) But in either case, I for one would argue that making it optional would be more than appropriate.

Not that I have an actual say, or that Alex wants to have one now, but consider https://github.com/rust-lang/cc-rs/pull/612#discussion_r677554949. Not even something as simple as which was frown upon:-) But in either case, I for one would argue that making it optional would be more than appropriate.

@HKalbasi, as you have the need to use compile_commands.json (see #691), do you mind to test this PR and provide some feedback?

Hi @schrieveslaach! unfortunately I'm using cc indirectly, and I'm totally newbie in c/c++ tooling, so it is not easy for me to experiment with this PR. But the result in the GIF looks great.
I just have a (probably newbie) question: would this design work if some project needs multiple calls to .compile? Or each call to .recorded_compile will override the previous dump?

@HKalbasi, thanks for the response.

would this design work if some project needs multiple calls to .compile? Or each call to .recorded_compile will override the previous dump?

recorded_compile return a Vec<CompileCommand> which you have to pass to store_json_compilation_database to store the file as JSON. If you have multiple calls to recorded_compile you can collect the results in a single Vec<CompileCommand> before passing them to store_json_compilation_database.
Does that clarify your question?

@m-ou-se, @Mark-Simulacrum, you seem to be the maintainers of the project. Do you mind to have a look at this PR?

Does that clarify your question?

Yes. I thought .recorded_compile would generate the file on its own. But in this way everything is fine.
It might make sense to have some wrapper type over Vec<CompileCommands> with a .generate(file_name) method for convenience. Not really important, just something that might worth considering after this PR gets some attention from maintainers.
And thanks for this PR!

Wouldn't it be more natural to have .record(<path-to-compilation-database>) method, as opposed to making users replace .compile() methods and perform extra steps actually saving the database?
BTW, is it correct understanding that the file name is actually fixed, compile_commands.json? So that the only variable is the target directory, right? But is it actually? I mean the file is surely searched for in specific locations. For example it's suggested that clangd starts in the directory where the source file is and walks up the tree. This sounds like it would be possible and even appropriate to infer even the destination directory for the database... In other words I wonder if it could be just .record(), or .store_compile_database(), or .save_compile_commands(), or... Or even more radical, why additional methods at all, just enable the feature and leave build.rs as is... Well, it all might be just wishful thinking, in which case my apologies for unnecessary distraction :-)

I chose to add store_json_compilation_database as a separate function because if you have multiple calls to Build::recorded_compile you can collect them and store them in one file.
I checked the clangd docs and clangd searches for compile_commands.json in the following way:

We first check for a compilation database in the directory containing the source file, and then walk up into parent directories until we find one.

Running clangd --help reveals:

--compile-commands-dir= - Specify a path to look for compile_commands.json. If path is invalid, clangd will look in the current directory and parent paths of each source file

So, I assume what I could do is that recorded_compile could write compile_commands.json into the current directory (might be changed optionally, e.g. Build::compile_database_directory(path)). And if the file already exists than it can check if there is already an entry for the particular file and if so it updates it.
@dot-asm, @m-ou-se, @Mark-Simulacrum, @HKalbasi  what do you think about that approach?

looking forward to using this pr!

Having an api for recording cmds run is awesome, though IMO the API should be as simple as possible:
Just let the users specify a callback Fn(cmd: &Command) -> () and let them decide how to record it.

cc @schrieveslaach I have changed my mind on this PR and supports merging it, given that json dependency is removed.
Recently tried c2rust and realize that compile_commands.json support is important, so I'd like it to merge.
The json dependency is unnecessary, writing a json file doesn't need it, we can use write! by hand, it won't be different from using a json crate.


Refine README.md

add --name ipv6nat, avoid random container name
add read-only bind mount for /lib/modules, so that users don't have to read troubleshooting section
use "unless-stopped" restart policy, do not start ipv6nat automatically if user stopped it explicitly
add description about how to load ip6_tables kernel module outside container, for systemd-based distro
unify docker command line argument style, use --key value instead of --key=value

@robbertkl Looks good to me!


Enhance error message for build failures

🚀 Useful details for errors for failures
I had commented out couple of mandatory fields in siteConfig.js. For example, I skipped projectName and organizationName because I hadn't setup the remote git repository yet.
Although the site was working fine on the dev server, I could not build the site. I kept getting an error like this:
yarn run v1.12.3
warning package.json: No license field
$ docusaurus-build
generate.js triggered...
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
    at assertPath (path.js:39:11)
    at join (path.js:1152:7)
    at join (/Users/.../doc-site/website/node_modules/docusaurus/lib/server/generate.js:68:20)
    at tryCatch (/Users/.../doc-site/website/node_modules/regenerator-runtime/runtime.js:62:40)
    at Generator.invoke [as _invoke] (/Users/.../doc-site/website/node_modules/regenerator-runtime/runtime.js:288:22)
    at Generator.prototype.(anonymous function) [as next] (/Users/.../doc-site/website/node_modules/regenerator-runtime/runtime.js:114:21)
    at asyncGeneratorStep (/Users/.../doc-site/website/node_modules/docusaurus/lib/server/generate.js:3:103)
    at _next (/Users/.../doc-site/website/node_modules/docusaurus/lib/server/generate.js:5:194)
    at /Users/.../doc-site/website/node_modules/docusaurus/lib/server/generate.js:5:364
    at new Promise (<anonymous>)
error Command failed with exit code 1.

After a lot of debugging, I found the root cause and I enabled those 2 mandatory fields with dummy data. Then I was able to build the site locally.
Have you read the Contributing Guidelines on issues?
Yes
Motivation
The error message is not very useful and it's difficult to know what cause the failure. We could probably organize the contents in siteConfig.js a little bit better too so that it's clear what's mandatory and what's not. However, the important thing is end user can always make mistakes. That's why the error messages need to be user-friendly and tell us why certain line failed to execute.
Pitch
This will improve developer experience in case they make silly mistakes somewhere and will also save a lot of time.

A related problem with error messages occurs if there is an error in one of the js files needed to run the local server.
I accidentally introduced a syntax error into help.js.  Here is the error message that I got:
$ yarn start
yarn run v1.12.3
warning package.json: No license field
$ docusaurus-start
LiveReload server started on port 35729
Failed to start Docusaurus server: SyntaxError: Unexpected token (38:2)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
It would be better if the filename of the offending error were listed in the error message.

This happened for me too. The error message should me more clear

I think this issue is very open ended (errors could always appear at certain place and so on).
Instead of keeping this issue open, we'll gradually accept PRs to enhance the error message better.
We will also try our best to enhance the error experience in v2.


[JENKINS-64383] combined refrepo became our bottleneck, support a fanout location too

JENKINS-64383 - combined refrepo became our bottleneck
As detailed in the JIRA issue, our heavy use of a single combined reference repository made it more a bottleneck and cause of job timeouts than a speedup and reliability improvement which it once was. This PR explores a way to keep the single point of configuration of the reference repository directory, suffixed with some "magic variable" to substitute a path to subdirectory with a smaller-scope reference repository for a particular source Git URL. On file systems with symlinks it is possible to maintain several such names that would point to the same directory, for closely-related repositories or different URLs of the same repository.
This PoC introduces trivial support for reference repository paths ending with /${GIT_URL} to replace by url => funny dir subtree in filesystem. Its limitation at the moment is that the URL is pasted in verbatim - this works for Linux and Unix like systems that only forbid a 0x00 and a slash from being characters in a filename, and slash suits us as a directory subtree separator. This code likely won't run on Windows as is (colon in https: and likely other chars - Microsoft has an extensive list of invalid chars).
The next ideas, commented but not yet PoCed, are to either escape such characters (non-ASCII and offensive to at least one popular filesystem), or convert URLs into base64 strings or sha/md5/... hashes. Using submodules and finding a way to map several URLs to a certain submodule might be a good idea if they keep indexes separately. This all can be built on top of this PoCed code by introducing further suffixes and handling for them.
It was tested on a MultiBranch pipeline job, where an original definition of the reference repository was suffixed with the new magic string, yielding /home/abuild/jenkins-gitcache/${GIT_URL} (verbatim in "Advanced clone behaviours"). During the checkout into a wiped workspace, with this plugin variant installed:
Cloning the remote Git repository
Cloning repository https://github.com/zeromq/czmq.git
 > git init /dev/shm/jenkins-swarm-client/workspace/CZMQ-upstream_master # timeout=10
[WARNING] Parameterized reference path replaced with: /home/abuild/jenkins-gitcache/https://github.com/zeromq/czmq.git
Using reference repository: /home/abuild/jenkins-gitcache/https://github.com/zeromq/czmq.git
Fetching upstream changes from https://github.com/zeromq/czmq.git
 > git --version # timeout=10
 > git --version # 'git version 2.1.4'
 > git fetch --tags --progress https://github.com/zeromq/czmq.git +refs/heads/*:refs/remotes/origin/* # timeout=40

Avoid second fetch
Checking out Revision fbe313cd2010bace7833fe52d419f82282343bd9 (master)

 > git config remote.origin.url https://github.com/zeromq/czmq.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config core.sparsecheckout # timeout=10
 > git checkout -f fbe313cd2010bace7833fe52d419f82282343bd9 # timeout=10

Commit message: "Merge pull request #2139 from bluca/ci_failures"
 > git rev-list --no-walk fbe313cd2010bace7833fe52d419f82282343bd9 # timeout=10

This completed quickly, much faster than the usual checkout with huge refrepo in original /home/abuild/jenkins-gitcache/, and did automatically find the "funny" /home/abuild/jenkins-gitcache/https://github.com/zeromq/czmq.git directory prepared with the single repo's reference cache:
# ls -la /home/abuild/jenkins-gitcache/https://github.com/zeromq/czmq.git
total 38
drwxr-xr-x 7<PHONE_NUMBER><PHONE_NUMBER>   12 Dec  7 19:31 .
drwxr-xr-x 3<PHONE_NUMBER><PHONE_NUMBER>    3 Dec  7 19:29 ..
-rw-r--r-- 1<PHONE_NUMBER><PHONE_NUMBER> 2353 Dec  7 19:31 FETCH_HEAD
-rw-r--r-- 1<PHONE_NUMBER><PHONE_NUMBER>   23 Dec  7 19:30 HEAD
drwxr-xr-x 2<PHONE_NUMBER><PHONE_NUMBER>    2 Dec  7 19:30 branches
-rwxr--r-- 1<PHONE_NUMBER><PHONE_NUMBER>  204 Dec  7 19:30 config
-rw-r--r-- 1<PHONE_NUMBER><PHONE_NUMBER>   73 Dec  7 19:30 description
drwxr-xr-x 2<PHONE_NUMBER><PHONE_NUMBER>   11 Dec  7 19:30 hooks
drwxr-xr-x 2<PHONE_NUMBER><PHONE_NUMBER>    3 Dec  7 19:30 info
drwxr-xr-x 4<PHONE_NUMBER><PHONE_NUMBER>    4 Dec  7 19:30 objects
drwxr-xr-x 5<PHONE_NUMBER><PHONE_NUMBER>    5 Dec  7 19:31 refs
lrwxrwxrwx 1<PHONE_NUMBER><PHONE_NUMBER>   43 Dec  7 19:30 register-git-cache.sh -> /mnt/jenkins-gitcache/register-git-cache.sh

Status update:
The current version of this plugin PR is already bringing value in the experiments with the GIT_SUBMODULES token interpretation, although parsing the actual submodule data (.gitmodules) is not yet completed. In fact, that seems like a nice speed-up to get into the right directory if the needed repository is exactly the one named in the URL configured by the submodule definition, but is less helpful to co-hosting of forks of the same repository in same directory (the mode with still a combined repo with several remotes, but much smaller scopes to walk across much more relevant commit objects).
The "fallback" modes of just looking for subdirectories that are git repositories, and recursing into such to inspect the remotes' configurations there, is more I/O intensive but already works :)
On the unit-testing side, I'll probably deprecate the original GIT_URL token expansion (which just expects the original URL made into a directory tree on a local filesystem): while it was useful to get the feet wet, and "just worked" on illumos and Linux systems, it does not on Windows (as anticipated, with : being a reserved character), and more useful and portable tokens were designed since that PoC step so there's not much use to complicate matters into making this mode work everywhere by mangling paths or something. The GIT_URL_SHA256 already mangles it by hashing the normalized URL string as a subdirectory name, and GIT_URL_BASENAME strips the tree part and just relies on the final path component like "git-client-plugin(.git)" to match as a subdirectlry name in the refrepo.

Status update:
The current version of this plugin PR is already bringing value in the experiments with the GIT_SUBMODULES token interpretation, although parsing the actual submodule data (.gitmodules) is not yet completed. In fact, that seems like a nice speed-up to get into the right directory if the needed repository is exactly the one named in the URL configured by the submodule definition, but is less helpful to co-hosting of forks of the same repository in same directory (the mode with still a combined repo with several remotes, but much smaller scopes to walk across much more relevant commit objects).
The "fallback" modes of just looking for subdirectories that are git repositories, and recursing into such to inspect the remotes' configurations there, is more I/O intensive but already works :)
On the unit-testing side, I'll probably deprecate the original GIT_URL token expansion (which just expects the original URL made into a directory tree on a local filesystem): while it was useful to get the feet wet, and "just worked" on illumos and Linux systems, it does not on Windows (as anticipated, with : being a reserved character), and more useful and portable tokens were designed since that PoC step so there's not much use to complicate matters into making this mode work everywhere by mangling paths or something. The GIT_URL_SHA256 already mangles it by hashing the normalized URL string as a subdirectory name, and GIT_URL_BASENAME strips the tree part and just relies on the final path component like "git-client-plugin(.git)" to match as a subdirectlry name in the refrepo.

This solution is in production for one our CI farms for the past week or two, and works well for all of:

legacy jobs;
pipeline jobs defined "directly";
Organization Folders (GitHub and BitBucket) which is one place where we can set a fixed string for refrepo config, and that value is inherited into generated MultiBranch Pipeline jobs for each repo, and leaf pipelines for each branch, PR or tag;
several pipeline jobs that have explicit "checkout" steps to combine code from various repositories, inheriting common settings (including refrepo string) from a folder, and set by a string (build arg):

    scm_src_checkout_extensions_array << [$class: 'CloneOption', timeout: SRC_CHECKOUT_TIMEOUT,
        noTags: false, shallow: false, reference: "${PROJECT_GITCACHE}"]

This solution is in production for one our CI farms for the past week or two, and works well for all of:

legacy jobs;
pipeline jobs defined "directly";
Organization Folders (GitHub and BitBucket) which is one place where we can set a fixed string for refrepo config, and that value is inherited into generated MultiBranch Pipeline jobs for each repo, and leaf pipelines for each branch, PR or tag;
several pipeline jobs that have explicit "checkout" steps to combine code from various repositories, inheriting common settings (including refrepo string) from a folder, and set by a string (build arg):

    scm_src_checkout_extensions_array << [$class: 'CloneOption', timeout: SRC_CHECKOUT_TIMEOUT,
        noTags: false, shallow: false, reference: "${PROJECT_GITCACHE}"]

Hopefully nailed the Windows issue now... at least this output looks right (note: my local paths had to be redacted so sha256 does not match the strings you see):
...
=== Beginning to search for cloneDirName='clone.git' from C:\Users\jenkins\shared\git-client-plugin\.
Looking for 'target' in C:\Users\jenkins\shared\git-client-plugin\.
Looking for cloneDirName clone.git in C:\Users\jenkins\shared\git-client-plugin\.\target
FOUND cloneDirName clone.git in C:\Users\jenkins\shared\git-client-plugin\.\target
clone output:
======
[INFO] The git reference repository path is parameterized, it may take a few git queries logged below to resolve it into a particular directory name;
[WARNING] Parameterized reference path
  'C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git/${GIT_URL_SHA256}'
  replaced with:
  'C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git\3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91';

Using reference repository: C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git\3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91;

[junit625123998984275238] $ git remote -v
...

and in a more detailed case:
=== Beginning to search for cloneDirName='refrepo256.git/3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91' from C:\Users\jenkins\shared\git-client-plugin\.

Looking for 'target' in C:\Users\jenkins\shared\git-client-plugin\.

Looking for cloneDirName refrepo256.git/3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91
  in C:\Users\jenkins\shared\git-client-plugin\.\target

FOUND cloneDirName refrepo256.git/3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91
  in C:\Users\jenkins\shared\git-client-plugin\.\target

wsRefrepoBase='C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git'

wsRefrepo='C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git\3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91

reference='C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git/${GIT_URL_SHA256}'

url='C:\Users\jenkins\shared\git-client-plugin\target\clone.git'

urlNormalized='file://c:\users\jenkins\shared\git-client-plugin\target\clone'

Feb 22, 2021 4:24:29 PM org.jenkinsci.plugins.gitclient.LegacyCompatibleGitAPIImpl findParameterizedReferenceRepository

INFO: Trying to resolve parameterized Git reference repository
  'C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git/${GIT_URL_SHA256}'
  into a specific (sub-)directory to use for URL
  'C:\Users\jenkins\shared\git-client-plugin\target\clone.git' ...

reference after='C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git/3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91'

Feb 22, 2021 4:24:29 PM org.jenkinsci.plugins.gitclient.LegacyCompatibleGitAPIImpl findParameterizedReferenceRepository
INFO: After resolving the parameterized Git reference repository, decided to use
  'C:\Users\jenkins\shared\git-client-plugin\target\refrepo256.git/3e56f2ff966ccc8ee3ac0df9faf4adfcd8ff38ef81cc062abd8bc9aae526dc91'
  directory for URL 'C:\Users\jenkins\shared\git-client-plugin\target\clone.git'

So hopefully this PR will go out of "draft" mode when Jenkins confirms this too :)

Disclaimer: I expect people better versed in Java would suggest other ways to solve some parts of this PR... Commits welcome, but I can't guarantee fixing code myself in language I don't understand too well still :)
Also I'm getting more and more entangled in dayjob and other projects, so time is scarce and lags are long - so maybe later cleanup-PRs would work better.

UPDATE: Relocated development the relevant files from a common mess in my git0scripts repo mentioned above, into https://github.com/jimklimov/git-refrepo-scripts dedicated to this subject.

That's odd: https://ci.jenkins.io/blue/organizations/jenkins/Plugins%2Fgit-client-plugin/detail/PR-644/96/pipeline reports no step/stage errors but ended up red

Gentle bump, still works for us and helps a lot, still annoying to keep rolling private HPI builds at upgrade cycles =D

And another gentle bump :)

Faults in tests regarding git CLI tool messages do not seem related to this PR's changes. I'll add a fix to this branch for clarity, but it deserves to be a separate PR -- already posted as #886 :)

Thanks, I was afraid it would come to tests... for years :)
Just in case: how relevant would jgit and apache-jgit tests be? Do they have a concept of using reference repositories from local(ly seen) filesystem? I understand that can at least serve for non-regression - that new methods/logic would not explode with that git implementation, but is there more to it practically?

Also while here, I've had a nagging thought in the back of my mind, that while the feature development offered several strategies for layout and discovery of fanned-out reference repositories (by URL path basenames, hash of URL, by submodules, etc.), in Jenkins setups I track I personally use one case that is best automated (with those helper scripts in my other project).
I am not convinced if the other strategies have benefits or downsides, just thought they could be useful (and were easier to implement for initial steps), or if some teams would prefer them over something known to work (maybe better, and automated almost out of the box) just as a human nuance :) Still, in some deployments with many similarly named repos there is a screenful of logs while it discovers the right subdirectory, so other methods might be quieter and faster if the cache area is groomed carefully.
So questions here would be:

Should the helper scripts from https://github.com/jimklimov/git-refrepo-scripts get somehow hosted at Jenkins (as resources in this plugin, or as some sidekick) for a better out-of-the-box experience?
Should I rip out the other strategies or is it OK to keep them even if my own use does not stress them so I am not likely to encounter bugs (if any) IRL?

pros of ripping out - less code to review, test and maintain; less places to break
cons of ripping out - this functionality may be preferred by some teams and might be better optimized (so arguably a bug or lack of feature in git-refrepo-scripts which does not maintain the fan-out location in a manner friendly and optimal for those strategies)

Recent re-run of tests https://github.com/jenkinsci/git-client-plugin/pull/644/checks?check_run_id=8950094793 failed with a cool run-time issue:
org.jenkinsci.plugins.gitclient.CliGitAPIImplTest.testSubmoduleUpdateWithThreads

Cloning into bare repository 'C:\Jenkins\workspace\Plugins_git-client-plugin_PR-644\.\target\clone-744732476378843854'...
fatal: unable to access 'https://github.com/jenkinsci/git-client-plugin/': Could not resolve host: github.com
 expected:<0> but was:<128>


[Icon Request] Support for SystemVerilog

[x] I'm sure this issue is not a duplicate.

[x] I'm submitting an icon request:

Type: language id
Icon Name: SystemVerilog
Sample original Icon:
Language ids: systemverilog

Language Extensions:
https://marketplace.visualstudio.com/items?itemName=eirikpre.systemverilog
https://marketplace.visualstudio.com/items?itemName=mshr-h.SystemVerilog

More info: Good suggestion of color differentiation of extension sv and svh

Fixed OP.

Same as https://github.com/vscode-icons/vscode-icons/issues/1441#issuecomment-363821107


Operations called from internalClient bypass customResolve (and possibly other hooks)

Bug description
We have two operations using a customResolve.
If the second operation is called externally, the customResolve for the second operation is executed.
If the first operation calls the second operation using internalClient, the customResolve for the second operation is not called and instead a normal API call is sent.
How to reproduce

Check out https://github.com/acdn-sglanzer/wundergraph-custom-resolve
npm install && npm start
curl http://localhost:9991/operations/First
Note that a full list of continents is returned and the logs have CUSTOM RESOLVE - FIRST but no CUSTOM RESOLVE - SECOND
curl http://localhost:9991/operations/Second
Note that only one mock continent is returned (123/abc) and the logs have CUSTOM RESOLVE - SECOND
Check wundergraph.server.ts and note that both First and Second have customResolve hooks and that First is calling Second using the internalClient

Expected behavior
The customResolve hook for the Second operation should be called even when the request is executed using the internalClient
WunderGraph information

Environment & setup

OS:
Go version:
Database:
Node.js version:

WunderCtl Version
Version: 0.125.0
Commit: 2cf3db469a0623baa0c1b69ff1bc4b7bf51c4121
Date: 2022-12-31T15:52:49Z
BuiltBy: ci

I've added it to our backlog for review, thanks for reporting!


feature idea: rating with rating displayed as stars

It would be cool if there was a badge with rating displayed visually as stars

rating: ⭐⭐⭐⭐⭐

@Almenon
I implemented your idea.
https://vsmarketplacebadge.apphb.com/rating-star/cssho.vscode-svgviewer.svg

Awesome! :D
Thanks man, I added it to my repo: https://github.com/Almenon/AREPL-vscode


No love for Dart protobuf?

Hi there Dart team at Google!
I've been using protobufs with Dart for the last 2 years and while it's working well in the current implementation, I've noticed that this library hasn't been worked on for a while. The last release was 16 months ago and the last commit (excluding automatic) was over 10 months ago.
There are also a growing number  of issues being raised that have no response at all, and some of those are quite serious questions e.g. regarding support for editions (a Protobuf feature!). Last response from any maintainer to any issue was (as far as I see) on March 30th. Responding to questions regarding user errors or similar I can understand is a chore and maybe not necessary, but many of these requests are quite reasonable, i.e. using proper Dart enums, using sealed classes and Uint8Lists instead of lists of integers.
Then there are multiple pull requests that either seem abandoned by maintainers or haven't been reviewed for several months like this one.
I guess I would just like to hear from the Dart team at Google if there is any reason for this (maybe you're waiting for a Dart feature like macros to be finished or similar?) and if there are any plans on giving this library some love so that it would feel more like an up-to-date and current library rather than it's current slightly outdated feel.
Thanks, and thanks for your work.

Wondering the same things myself. Waiting for https://github.com/google/protobuf.dart/pull/790 PR for almost 2 years with no response from devs. :/


filtering children and removing slide

Guidelines for posting a new issue

Please replicate your issue with this CodeSandBox and provide a link to it along with the issue description

I have a list of children and make a div tag looping a children. If a child has a certain type(in this code the types are "ETC" and "BANNER"), I don't want to make a slide and show a user the slide. But in this code, it automatically makes slides as many as children and shows empty slide.
How can I not make a slide in this case?
https://codesandbox.io/s/friendly-goldberg-v14qz?file=/src/App.js

filter postAttachments array to exclude objects for which slides are not necessary and then iterate over the filtered array to render slides


Element is not allowed here in prerference xml.

Hello. After update <IP_ADDRESS> -> <IP_ADDRESS> android studio issues warnings in xml preferences  "Element (element name) is not allowed here". For all preferences element. But all works (dont`t fully test).

You should read the change log for <IP_ADDRESS>

To be more specific, you need the commons package.

Thank you, I use it. Added  for element.


msh3app requests take 30 seconds to complete

I've noticed with recent builds that requests using msh3app work fine but the requests hang in an open state and then close after 30 seconds. Is there a way to have the cli complete after a successful request?
time ./msh3app www.cloudflare.com
HTTP/3 GET https://www.cloudflare.com/
Request 1 complete

________________________________________________________
Executed in   30.68 secs      fish           external
   usr time   11.17 millis  779.00 micros   10.39 millis
   sys time    7.50 millis   82.00 micros    7.42 millis

Thanks for reporting. I will take a look.


ezrassor_controller_server: 1.0.0-1 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository ezrassor_controller_server to 1.0.0-1:

upstream repository: https://github.com/EZRASSOR/ezrassor_controller_server.git
release repository: https://github.com/EZRASSOR/ezrassor_controller_server-release.git
distro file: melodic/distribution.yaml
bloom version: 0.9.7
previous version for package: null

Any update on this? Anything else I need to do?
Thanks :)

FYI @tgsachse I've proposed removing this entry in #26175 since the source and release repositories no longer appear to be available.


[SPIKE/RESEARCH]: Async operators/sensors for AWS StepFunctions API

Is your feature request related to a problem? Please describe.
Go through the OSS operators for AWS StepFunctions and find whether the StepFunctions API returns a unique job id , using which an async operator/sensor can be built.
Refer to

StepFunctionGetExecutionOutputOperator
StepFunctionStartExecutionOperator
StepFunctionExecutionSensor

The outcome of this spike would be to finalize the list of async operators/sensors which can built for AWS StepFunctions.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

We have a deferrable for StepFunctionStartExecutionOperator in OSS
StepFunctionGetExecutionOutputOperator look like does not take much time

Closing as it is implemented in OSS


Delete an account from the service

Delete
Delete should accept an account_id and use Account.find() to find the account.
If the account is not found, it should do nothing.
If the account is found, it should call the delete() method on the account instance to delete it from the database.
It should return an empty body "" with a return code of HTTP_204_NO_CONTENT.


Import/include settings from another file?

Where possible, I prefer to keep my settings explicitly defined. To that end, I'd like to define a "default" settings file (django-default.yaml) that would contain all of the "default" Django settings, and then define my override settings file (settings.yaml) where I either inherit/import/include the settings from django-default.yaml, and then maintain my project-specific settings.
While I know this is possible in a single settings.yaml file with the default environment, it fills up the settings file pretty quickly and makes it harder to parse for just the "important" stuff.
This seems like a use case for Preloading files, but it would help to understand if there's a better pattern or suggestion for this.

I think this is about documenting a workflow where the project have a default settings definition and how to override/extend from specific files, this is the most common use case and can be achieved by following merging strategies.
Example:
On the main application a default-settings.yaml is placed
default:
    options:
        power_mode: true
        flux_capacitor_enabled: true
        flux_capacitor_options:
            potency: 1000

Then on the application (can be a django, flask or any application
settings = Dynaconf(
    settings_files=["default-settings.yaml", "*.yaml"]
)

Now if you run the application you are going to have settings loaded from the default settings so
assert settings.options.power_mode is True

Now you can place a second yaml file on a place discoverable by dynaconf (or you set absolute paths or a root_path)
The Wrong Way
my-specific-settings.yaml
default:
    options:
        flux_capacitor_enabled: false

The above will override the entire settings.options with this new one so the keys power_mode and flux_capacitor_options will be gone.
To fix that problem there are 3 options:

Enable global merge by setting merge_enabled=True on your Dynaconf instance.  (on django plugin pass MERGE_ENABLED_FOR_DYNACONF=True`)

Use local merge only on specific keys

my-specific-settings.yaml
default:
    options:
        dynaconf_merge: true
        flux_capacitor_enabled: false

Use dunder settings

Settings with __ separator always merges with existing data structures
default:
    options__flux_capacitor_enabled: true

So that is the first part of the question: How to compose settings from multiple files
Now lets see how to reuse values from other settings using variable interpolation.
default:
    options__flux_capacitor_options__max_potency: "@int @jinja {{this.options.flux_capacitor_options.potency * 25}}"

The lazy evaluated variables are defined with either @format (calls str.format) or @jinja (calls Jinja parser), inside those templates you have access to this (the settings object) and env (all environment variables).
This can be combined with other converters like @int, @str, @float etc
You can also add custom converters https://www.dynaconf.com/envvars/#adding-a-custom-casting-token

I am not sure this fits your use case, if not, can you please provide more context with examples of code and what the expected behavior?


Hi, can't use the framework in an Obj-C command-line tool - can't compile.

Hi, and thanks for this gleaming framework. Unfortunately I'm working on an old Obj-C codebase, and need to integrate your framework in it.
So... old style... I dragged the ZIPFoundation project reference into mine, made sure it builds and tests well - then added the ZipFoundation framework target as dependency to mine, and linked against its product - all builds well.
Now comes the source part...
I quickly translated one of the suggested "Advanced API usage examples from the repo wiki (see below)
but the "Archive" and "Entry" classes seem to be unavailable to my code (compiler error: Use of undeclared identifier 'Archive'). What's wrong? the module IS created and exported, and I'm able to link against it.  What's missing, and can I fix it myself?
Please advise.
#import <Foundation/Foundation.h>
#import <ZIPFoundation/ZIPFoundation-Swift.h>
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSString *currentWorkingPath = [fileManager currentDirectoryPath];
        NSURL *archiveURL = [NSURL fileURLWithPath: currentWorkingPath];
        archiveURL = [archiveURL<EMAIL_ADDRESS>        Archive *archive = [[Archive alloc] initWithURL:archiveURL accessMode: read ];
        if (archive == nil)
            return;

        Entry *entry = archive["DocProps/custom.xml"];
        if (entry == nil)
            return;

        NSURL *destinationURL = [[NSURL fileURLWithPath: currentWorkingPath] URLByAppendingPathComponent:"labels.xml"];

        @try {
            [archive extract:entry to:destinationURL];
        } @catch (NSException *exception) {
            NSLog(@"Exception occured: %@", exception);
        } @finally {
            NSLog(@"Finally...");
        }
    }
    return 0;
}

The generated header file does not seem to include any of your public classes, types etc. I can attach it here if necessary

Hi,
We don't support Objective-C out of the box, but you should be able to wrap functionality you need by creating a Swift wrapper class within your project and then expose that class to Obj-C.
import Foundation
import ZIPFoundation

@objc
class ZIPWrapper: NSObject {

    @objc
    func extract() -> Bool {
        let archive = Archive(accessMode: .read)
        // ...
        // return true
    }
}

you can then use that class from Obj-C like that
ZIPWrapper *wrapper = [[ZIPWrapper alloc] init];
[wrapper extract];

Thank you! I have already started looking at your code and see what needs to be done to @objc the classes and enumerators and basic functionality... but it seems lots of work is due. Do you consider investing in it? there are plenty of important projects that are pure Obj-C out there
BTW do you know of any Obj-C Framework repository that wraps around zip archives in a similar way to yours? Zip Foundation is really beautiful - but Obj-C still exists...

Do you consider investing in it? there are plenty of important projects that are pure Obj-C out there

No. We want to focus on Swift-only for now. This allows us to freely use Swift language features in the API and it also allows us to reach platforms (e.g. Linux) that would be harder to target if we bring in Obj-C.

BTW do you know of any Obj-C Framework repository that wraps around zip archives in a similar way to yours? Zip Foundation is really beautiful - but Obj-C still exists...

I haven't used it myself but I have heard good things about ZipZap: https://github.com/pixelglow/ZipZap


Cargo isn't consistent wrt "automatic" files and vendoring

Say you have a crate vendored. That crate doesn't have a build script. Now, there are two ways to add a build script. One involves adding an entry to Cargo.toml, which fails because of the checksum change in Cargo.toml, and another is to just add a build.rs file.
The latter silently succeeds (and yes, the build script is built and run).
Or is silently ignored if the crate was already built thanks to #5805.

Yeah this isn't a great feature, but the checksum file is largely intended to be a roadblock to modifying vendored crates (instead nudging towards the correct way of doing so, [patch] and path dependencies). It wasn't ever designed to be a bulletproof solution

Something I've been considering is to evaluate all package.auto* variables during publish which should also include changing an implicit build.rs to an explicit package.build field.  This would mean dropping files into a vendored registry package should have no effect, making things consistent and getting us closer the checksum encompassing everything.


Ahub for linux fixes

Description

Removed 2.0 from headline
Changed links in README.md pointing to the correct links in Flexera docs

Issues Resolved
[List any existing issues this PR resolves]
Contribution Check List

[ ] All tests pass.
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] New functionality has been documented in CHANGELOG.MD

          2 Errors

:no_entry_sign:
Please add a CHANGELOG.md file

:no_entry_sign:
Please add labels to this Pull Request

  Generated by :no_entry_sign: Danger


Feature Request: Read-only mode

I think it would be very beneficial to allow a user to configure the board to a read-only mode when configuring routes. In the UI, the buttons that affect the state could be grayed out.
My team is using bull board for observability. We would like to open up its usage to a select group of users, but we cannot allow them to modify the state of bull queues. This is why I suggest having an additional configuration object that could be passed into 'setQueues()'.
So something like the following with readonly being an optional field, defaulting to false.
setQueues( [ new BullAdapter(someQueue) ], { readonly : true } )

Interesting idea, it can be done ;)
PR's are welcome here

You can also make a simple middleware that blocks PUT requests and use it around the bull board app :)
Something like:
const app = require('express')()
const { router } = require('bull-board')

const blockPut = (req, res, next) => {
  if (req.method == "PUT") {
    res.status(403).send("Bull board is in read-only mode")
    return
  }
  next()
}
app.use('/admin/queues', blockPut, router)

Wow, that was a quick turn around. Thanks @felixmosh

Had an hour spear during the day :]


Log warning when watchdog process overly delayed?

I'm using a much simpler watchdog timer (the Busybox applet), and am having trouble with the system suddenly rebooting. My conundrum: is the system actually locking up, or is the watchdog process just not being called often enough?
To debug this, I'd like the watchdog to tell me if its sleep()s are taking unexpectedly too long. If I'm set to a 2 second feed period with a 10 second hardware timeout, and I know that the sleep(2 seconds) can actually take 3 or more seconds, that can help me choose better parameters for the feed period and timeouts.
Which brings me to this project. I see that you can specify warning levels for the various tests which will log "whoa: things are getting close to a watchdog trigger". But, is there any such warning if the event loop suspends for longer than expected?
If not, would you accept an MR for such a feature, and if so, how would you like it to be designed?

Not entirely sure what problem you want to solve?  If the timer callback in the event loop isn't called, it's either:

(unintentionally) blocked by another callback in the loop, this would be a bug in the daemon, one of its monitors, e.g., too long execution time, or user script not terminating
general system overload so the daemon itself does not get enough runtime
kernel bug?

For (1) I'd like to say it should be a bug fix, and for (2) it's what you want to catch, right?   If it's not, then try running the watchdog daemon with a better nice value, or at real-time priority.  Having another guard timer, or whatever you were thinking, belted on top seems ... wrong?

Thanks for the precision. My concern was your option 2, and my hope was to have an early warning of that happening. The over-the-top version of this would be a histogram of how long each watchdog servicing was delayed, so you could estimate what the tails would be. I was thinking simpler: just a warning if the servicing was delayed more than X seconds.
But, looking at libuev and its timers, it looks like the only way would be (as you said) to add a backup timer for the process to feed the watchdog. I wouldn't want to implement this unless it's something you'd want an MR for; sounds like not?

I see, well my gut feeling is that you need more data to make that sort of decisions.  I.e., is the timing off for all (relevant) processes in the system?  when the 'loadavg' monitor is not sufficient, I'd have a look at the the kernel's PSI interface, as mentioned in #25, instead.
If anything, that would be a great addition to watchdogd.  I've only looked at very briefly but figuring out how to fit it as a monitor plugin is an interesting challenge.
So no, I don't think an extra timer would add any benefit to watchdogd.

Cool: thanks for your quick response.

One more comment. The purpose of having "warning" levels for the various system tests is to give the developer/tester warning that the unit is getting close to the limit. Without those, it would be difficult or impossible to choose appropriate "critical" thresholds, as you'd get no warning that you had a "once in a year" problem on your hands unless you tested it for over a year, which is infeasible.
The same concern should apply to the base watchdog function, where if the watchdog daemon doesn't wake often enough then the hardware watchdog will kick in and reboot the system. This isn't too important in large servers, as the "processes locked up for multiple seconds" failure doesn't happen as much, but it is critical for small embedded systems which are running limited systems at the limits of CPU availability.
I'm developing on a small Linux-based embedded system where reliability is paramount. The hardware watchdog is needed to catch once-in-a-blue-moon issues where the system completely locks up. Easy-peasy for the very simple Busybox watchdog applet, but we're having problems where the applet doesn't get enough cycles and doesn't feed the watchdog often enough, and the hardware watchdog triggers inappropriately.
Yes, we can improve this by un-nice-ing the applet and extending the hardware timeout, but how do we know we've done enough? I'm testing on eight units, but even if I ran them for a month I would likely miss a once-in-a-year problem.
The solution is to log a warning if the watchdog daemon's loop wakes up later than expected. By monitoring the size of these unexpected delays, we can extrapolate to choose a critical threshold that will (virtually) never kick in because of the daemon being delayed.
I'm going to be adding this to the Busybox applet, but I still think such a "warning" threshold would be useful for your tool.
(My $0.02...)


Installation instructions?

Do you install this file the same as the drivers?
cd ..../Arduino/libraries
git clone git@github.com:adafruit/Adafruit_Sensor.git
# Restart Arduino

You should install this through the Arduino Library Manager: https://learn.adafruit.com/adafruit-arduino-ide-setup/arduino-1-dot-6-x-ide


External deltas

Making a PR to review the diffs.

This is getting huge and sprawling, gonna merge it now and continue work on master.


Add single quote to iskeyword

The single quote ' is a valid character in variable names, so it should be included in iskeyword; this change, for instance, makes the * command behave predictably, which is good.

I'm sorry, @brammool , I hadn't read the CONTRIBUTING.md file. I've just sent an e-mail to him now.

you can change iskeyword anytime or set it in your vimrc, why making the single quote default? I don't think it's an allowed character in every language, is it?

This is a change for Haskell.

This is a change for Haskell.

oopsie, I obviously missed that important info. Thx for the clarification.


ValueError: Shapes (2, 1, ?, ?, 128) and () are incompatible

Any idea?
2019-04-21 17:53:43, exp = 999, load_model path = /home/nvidia/dpe
WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:

https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
https://github.com/tensorflow/addons
If you depend on functionality not listed there, please file an issue.

WARNING:tensorflow:From /home/nvidia/.local/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
Traceback (most recent call last):
File "tf.py", line 18, in
netG_test_output1, netG_test_list = model(netG, test_df.input1, test_df.input2, False, netG_act_o, None, is_first=True)
File "/home/nvidia/dpe/MODEL.py", line 100, in model
_ = conv_net_block(net_n, net_info, tensor_list, is_first, is_training, act_o, dilation_rate)
File "/home/nvidia/dpe/MODEL.py", line 47, in conv_net_block
tensor = exe_global_concat_layer(tensor, layer_o, tensor_list)
File "/home/nvidia/dpe/CONVNET.py", line 459, in exe_global_concat_layer
tensor = tf.concat(3, [tensor, concat_t])
File "/home/nvidia/.local/lib/python3.6/site-packages/tensorflow/python/util/dispatch.py", line 180, in wrapper
return target(*args, **kwargs)
File "/home/nvidia/.local/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 1254, in concat
tensor_shape.scalar())
File "/home/nvidia/.local/lib/python3.6/site-packages/tensorflow/python/framework/tensor_shape.py", line 1023, in assert_is_compatible_with
raise ValueError("Shapes %s and %s are incompatible" % (self, other))
ValueError: Shapes (2, 1, ?, ?, 128) and () are incompatible

It is mostly likes missing the data.

@scottcali Can you please tell, how you resolved it? I am getting the same error

For the latest TensorFlow:
tf.concat(3,[tensor, concat_t])  ===>> tf.concat([tensor, concat_t], 3)
tf.unpack ==》 tf.unstack
tf.pack ==》 tf.stack

Thank you :)

@scottcali I hope you have successfully tested on your own dataset/image.
What steps do I need to take for testing on my own image?
Thanks,

Just need  to configure the DATA.py, giving  the tes image, and write a main funtion to call two methods in TF.py mentioned in the readme

From: ankiosa<EMAIL_ADDRESS>Sent: Tuesday, April 23, 2019 4:52 PM
To: nothinglo/Deep-Photo-Enhancer
Cc: scottcali; Mention
Subject: Re: [nothinglo/Deep-Photo-Enhancer] Missing the data to run the code: ValueError: Shapes (2, 1, ?, ?, 128) and () are incompatible (#63)
@scottcalihttps://github.com/scottcali I hope you have successfully tested on your own dataset/image.
What steps do I need to take for testing on my own image?
Thanks,
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/nothinglo/Deep-Photo-Enhancer/issues/63#issuecomment-485711685, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AL2ULOA4UWF65VNDWQTFX7DPR3E6PANCNFSM4HHLLAZA.

def main():
img_name = 'your_test_image.png'
file_out_no_ext = ''your_test_image_dpe'
file_name = getInputPhoto(img_name)
processImg(file_name , file_out_no_ext)
if name == 'main':
main()

DATA.py
FLAGS['folder_input'] = 'images/input/'
FLAGS['folder_test_img']  = 'images/output/'

Yes, It resolved. Many thanks 🙏

@scottcali @ankiosa
Hi, According to this issue, I runed successfully with my image by using author code and pred-trained model, but got the strange output, like this,
here is the input(origin) image,

and the output image with LPGAN_exp_G3_999 output,

Is that right? Any idea would be appreciated.

Hi I am still geting ValueError: Shape (2, 3, 64, 64, 128) must have rank 0 in convnet.py
I have changed
batch_l = tf.unstack(concat_t, axis=0)
concat_t = tf.stack(bs)
tensor = tf.concat([tensor, concat_t], 3)
but still breaks at
line 420, in exe_concat_layer
tensor = tf.concat(3, [tensor, concat_t])
Any ideas?


Implement a Cache For Monitor Updates

This makes a few significant API changes in order to provide a cache for monitor updates.
Not only does it improve the API, but it also makes it possible to implement a Get (from cache) in the ORM API proposed in #31
The API changes are as follows:

Restrict the client to have only one DatabaseSchema. This mirrors how ovsdb-server is run in the wild (even though techincally a server can support multiple schemas). This has the advantage of removing the database argument from the Transact, Monitor... APIs
Replace Disconnected(*OvsClient) with Disconnected().The client needs to know about a handler to register it, but the handler shouldn't need to know about the client. Even if it did, that could be achieved through channels. Either way, the Go compiler didn't seem to like passing that client around once I'd added the cache feature.

The feature itself can be seen in operation in the play_with_ovs example.
In short, the OvsClient exposes a Cache and associated handler to ensure the cache is updated.
As such, a user can call Monitor without a handler defined and the initial state and all updates will populate in to the cache.
The cache API is very simple:
# Get a list of all tables
client.Cache.Tables()

# Get a table
client.Cache.Table("Open_vSwitch")

# Get a list of all row uuids in a table
client.Cache.Tables("Open_vSwitch").Rows()

# Get a row in a table by UUID
client.Cache.Tables("Open_vSwitch").Row("uuid")

In addition, a user may choose to register a calback so they can perform an action when a cache item is updated:
ovs.Cache.AddEventHandler(&libovsdb.EventHandlerFuncs{
AddFunc: func(table string, row libovsdb.Row) {
	if table == bridgeTable {
		update <- row
	}
},
})

Misc changes included in this PR to make sure CI is green:

Fix linting/formatting of encoding_test.go
Fix play_with_ovs which was a case of s/"ovsTable"/ovsTable/g

/cc @amorenoz @hzhou8

Closing here. Will open in https://github.com/socketplane/libovsdb


4 ➡ 5

Forward-port ign-gazebo4 to main

CI is failing. Do we need to depend on SDF 11?

Yup, that was done on #549 , let's see how CI goes now

CI is failing. Do we need to depend on SDF 11?

Yup, that was done on #549 , let's see how CI goes now

This PR requires https://github.com/ignitionrobotics/ign-transport/pull/209

This PR requires https://github.com/ignitionrobotics/ign-transport/pull/209

Argh! I rushed and squashed by mistake :sob:

Argh! I rushed and squashed by mistake :sob:


expands test coverage of chained Merkle shreds

Problem
Test coverage.
Summary of Changes
More test coverage for chained Merkle shreds.
Original pull request: https://github.com/solana-labs/solana/pull/35280

Codecov Report
Attention: Patch coverage is 94.89796% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 81.9%. Comparing base (72ee270) to head (200ca8e).
Report is 5 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff            @@
##           master      #55    +/-   ##
========================================
  Coverage    81.9%    81.9%
========================================
  Files         851      851
  Lines      230726   230758    +32
========================================
+ Hits       189009   189121   +112
+ Misses      41717    41637    -80


chore(deps): Bump dependencies 2021.11.1

What does this change?
Cherrypick Dependabot PR and run pnpm up.
This PR also also includes a run of pnpm install web-vitals. This package is marked as a peer dependency in @guardian/libs and not installing web-vitals causes files that import this package to give an error.
This PR also avoids cherrypicking the commit from #410 as it causes an error when used in conjunction with @guardian/eslint-config-typescript. This is mostly likely due to the major version change.
Why?
Keep our dependencies up to date.

Do we really need core-vitals as a dependency? I think it should be added as a peer dependency.

Do we really need core-vitals as a dependency? I think it should be added as a peer dependency.

So each package that imports commercial-core should have core-vitals as a dependency in that case? Is that the behaviour we're after?

@chrislomaxjones if this is only an issue with Jest, I would actually only include it as a Dev Dependency. You’re right in that we don’t want to force people using commercial-core to have to install core-vitals.


source plugin docs

Reorganizes plugins section to accomodate source plugins, adds source plugins docs.

@ItsMeBrianD will need some help on the creating a source plugin section.

cherry picked into #1382


unable to download roundcube

no roundcube package

Try to grab them from the website directly, the repo seems to be down and I don't know why.
(I just use the website directly and manually install the package)
https://synocommunity.com/package/roundcube

Not the right place for such a request. Please submit at: https://github.com/SynoCommunity/spksrc/issues


asu: device and default package input

Use separate fields for the device and default packages. This is meant to improve attention to what packages might brick the device.

Looks good, yes! Thanks for doing this

I'm not sure this is the right way. Looking at your screenshot I see packages that can be removed without any bricking in both boxes (kmod-usb2, luci, ppp...) but at the same time, for another device, it would be possible that the first box contains a Kernel module to handle ethernet or WiFi, meaning a removal "bricks" the device.
How about keeping a single box but showing a warning message when the user removes ANY of the default packages? Like one may add vim or some LuCI app without the warning, but when starting to remove default packages something pops up like "Please be careful when removing default packages, this may render your device unable to boot"

@mwarning Thanks for doing this!
I agree with @aparcar that the current concept wouldn't solve the class of problem that I (at least) encountered; there are indeed packages that could be removed and cause a bricking from both boxes. I believe that the goal is to preserve full customization, but at the same time at least warn the user that they may have make a dangerous edit
I agree that @aparcar's solution may also be viable

idea rejected so far

I suspect I'll be using https://openwrt.org/docs/guide-user/installation/attended.sysupgrade going forward


Document invoaction of docker run / settings used for the docker daemon.

Hi!
First of all, thank you for providing these Dockerimages (and hosting them!) like this.
It really helps in teaching and general showcasing of Jupyter.
I would like to host a modified version and I am curious how you disallow outgoing internet connections. I.e.:
>>> subprocess.check_output(["ping", '-c', '1', '<IP_ADDRESS>'])

b'PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.\n64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.028 ms\n\n--- <IP_ADDRESS> ping statistics ---\n1 packets transmitted, 1 received, 0% packet loss, time 0ms\nrtt min/avg/max/mdev = 0.028/0.028/0.028/0.000 ms\n'

>>> subprocess.check_output(["ping", '-c', '1', '<IP_ADDRESS>'])

---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
<ipython-input-11-89d4d5e7389b> in <module>()
----> 1 subprocess.check_output(["ping", '-c', '1', '<IP_ADDRESS>'])

/usr/lib/python3.4/subprocess.py in check_output(timeout, *popenargs, **kwargs)
    614         retcode = process.poll()
    615         if retcode:
--> 616             raise CalledProcessError(retcode, process.args, output=output)
    617     return output
    618

CalledProcessError: Command '['ping', '-c', '1', '<IP_ADDRESS>']' returned non-zero exit status 1

Using docker run --net='none' disables all networking. Are you running the docker daemon with --ip-forward=false? It would be great if there was a sentence or two describing this in the README.

The deployment of tmpnb is done through an Ansible playbook. We certainly need more documentation, as this evolved from a need and an experiment into something folks like to use and reference.
Networking is disabled for user containers by setting DOCKER_OPTS within /etc/default/docker to have both --icc=false and --ip-forward=false set:
DOCKER_OPTS="--icc=false --ip-forward=false"

The launcher (tmpnb) and proxy (configurable http proxy) are both set with --net=host to have the full networking stack.

The FAQ in the README now points to the ansible playbook. Is there more documentation needed here?

That looks great! Thanks!


error on pgsql2shp

syncing Ecologically or Biologically Significant marine Areas identified by Japan
*** buffer overflow detected ***: pgsql2shp terminated

Couldn't replicate, it worked for me locally and at production server. This could have happened by some problem during data download from ArcGIS, so I'll treat it as an error in handling workflow, which will be revised.


CI: update GHA instances from Ubuntu 18.04 to 20.04

The release binaries are built using Ubuntu 18.04 in Docker on Ubuntu 20.04 for glibc compatibility reason (issue #7255).
Fix #7297

Test release: https://github.com/AkihiroSuda/containerd/releases/tag/v1.7.0-prealpha.202210071413
https://github.com/AkihiroSuda/containerd/actions/runs/3202415035

https://github.com/containerd/containerd/actions/runs/3202497388/jobs/5231536072
  Running [/home/runner/golangci-lint-1.48.0-linux-amd64/golangci-lint run --out-format=github-actions --timeout=8m] in [] ...
  level=warning msg="[runner] Can't run linter goanalysis_metalinter: buildir: failed to load package btrfs: could not load export data: no export data for \"github.com/containerd/btrfs\""
  level=warning msg="[linters context] structcheck is disabled because of generics. You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649."
  level=error msg="Running error: 1 error occurred:\n\t* can't run linter goanalysis_metalinter: buildir: failed to load package btrfs: could not load export data: no export data for \"github.com/containerd/btrfs\"\n\n"

CRI tests are failing 😥
=== RUN   TestSandboxRemoveWithoutIPLeakage
    sandbox_clean_remove_test.go:39: Make sure host-local ipam is in use
    sandbox_clean_remove_test.go:52: Create a sandbox
    sandbox_clean_remove_test.go:62: Get pod information
    sandbox_clean_remove_test.go:76: Should be able to find the pod ip in host-local checkpoint
    sandbox_clean_remove_test.go:89: Kill sandbox container
    sandbox_clean_remove_test.go:92: Unmount network namespace
    sandbox_clean_remove_test.go:95: Network namespace should be closed
    sandbox_clean_remove_test.go:100: Remove network namespace
    sandbox_clean_remove_test.go:103: Network namespace should still be closed
    sandbox_clean_remove_test.go:105:
        	Error Trace:	/home/runner/work/containerd/containerd/sandbox_clean_remove_test.go:105
        	Error:      	Received unexpected error:
        	            	failed to get sandbox status: rpc error: code = NotFound desc = failed to get verbose sandbox container info: failed to get task status: container not created: not found
        	Test:       	TestSandboxRemoveWithoutIPLeakage
--- FAIL: TestSandboxRemoveWithoutIPLeakage (0.25s)

Restarted CI and now green

Looks like this was cherry-picked as part of https://github.com/containerd/containerd/pull/7713


Bump MSRV to 1.43.1

Closes https://github.com/uutils/coreutils/issues/2282
I hope I did not miss any important steps but based on the previous version bump and checking where 1.40 was mentioned, I think this is all that needs to change.

Please update:
https://github.com/uutils/coreutils/blob/master/Cargo.toml#L346-L347

I left some comments around in the code with notes about what could be improved with a higher MSRV, but I could make those changes in a different PR.

@sylvestre I updated the tempfile dependency. Is that what you meant?

yeah, exactly, thanks :)


Merge internal dependency projects in one project

I suggest to include project AIF-KERNEL as sub projects of this.
Create one maven project where you have as subprojects: AIF-KERNEL and AIF.
This helps to solve next problems:

No need to maintain additional artifactory server(You already have all dependencies in maven central)
No unsynchronized sources, so u can easily build project in dev machine
More easily debug(maybe)

Also I try to build AIF-KERNEL but sources not synchronized with this project and I don't know what commit I need to build this project.

finally all projects can be compiled and consistent. Starting this task with creating normal Maven structure


Update links to new website: http://www.vtki.org/

Check out the new domain http://www.vtki.org/ where the documentation is hosted.
Note: I have also added email forwarding on that domain which we will need to set up for user support per the JOSS submission guidelines.
Currently<EMAIL_ADDRESS>forwards to my email. Perhaps we create an actual email account under the vtki.org domain that active maintainers can access?

Thanks for doing that!  I accepted the google domains request.
It's up to you if we'll create a maintainers email account under the new domain.

I'll just keep the email forwarding for now because it's free. Maybe down the road when vtki grows we can set up a maintainer's email account.


Allow JSON export on iOS

For issues give the following informations related to your problem:

System Designer version number: v2.8.3
System Designer platform: iOS
Your OS version: iOS 11.4
If use on a phone, please give the model: iPhone 6s, iPad mini 4

I would love to be able to export my systems as JSON on the iPad or iPhone. While GitHub integration is great, we use BitBucket and some other data sharing solutions. Supporting generic ‘copy as JSON’ would go a long way.

In order to simplify the UI on mobile, I have deactivated this feature on mobile. So I will enable it.
To do so I will enable the Advanced mode checkbox on the Configuration panel.
This checkbox will show a Bundle menu on top when you edit a system.
When you click on it, you will see the JSON generated for the system and you will be able to select/copy/paste it with native iOS menu.

Fixed with commit https://github.com/design-first/system-designer-cordova/commit/b27d096cf2cd5abf37f09b3eb57e1beb02844ca4

Version will be available on App Store next week (for System Designer v2.8.4).


iOS: implement data_store using NSUserDefaults and implement missing life cycle hooks

Implement the main missing features of app.nit on iOS: data_store and life-cycle hooks (like on_save_state). These changes can be seen on the calculator app, as it preserves its context using the data_store.
data_store is implemented with NSUserDefaults to store objects sertialized to Json. It is very similar to Android's implementation using shared preferences. This may be a bit limited as it is not meant to hold large strings, and some data objects (like game saves) should instead be saved to a file.
This PR also implements all life-cycle callbacks in iOS, until now only on_create was implemented. We may have to update app.nit life-cycle to fit better with the life-cycle of iOS, the states between a running app and a fully stopped app are different between iOS and Android. I'm thinking of removing the two callbacks on_start/on_stop and keep only the more general callbacks on_create/on_destroy and on_resume/on_pause, and the services on_restore_state/on_save_state.

test osx please

+1


Support starting the driver, before the robot is booted

Refactored client library to support starting the client, before the robot is booted.
Changed producer to wait until robot is reachable on configured IP, instead of throwing an exception.
This will fix issue #94.

This will not completely fix #94 as we also have the connection to the secondary interface and to the dashboard server would need a reconnect to fully support starting the driver before a booted robot.

This will not completely fix #94 as we also have the connection to the secondary interface and to the dashboard server would need a reconnect to fully support starting the driver before a booted robot.
@urmahp would you like to address this in this PR, as well?

If it can wait until next week, then I can have a look at it next week and address it in this PR.

If it can wait until next week, then I can have a look at it next week and address it in this PR.

I would be fine with that. Maybe it will itch me enough before, to implement it myself, though ;-)


kernel: thread: make offload_sem visible for releasing it outside

In order to release irq_offload semaphore outside kernel/thread.c, we make it visible by modifying it non-static under ztest.
his would be needed such as when call irq_offload() to enter interrupt context and a fatal error happened, then you have to release it in your fatal handler, or the irq_offload will still be locked and no longer be using again.
And what case will we need this:  for a scenario of some negative test cases.  For example:

Mutex cannot be used in interrupt context, so there should be a test case that call k_mutex_lock in interrupt context,
Then it will trigger a assert handler to catch this, and we leverage self-defined post assert handler and call k_thread_abort() or ztest_test_pass() to judge the test case pass.
But there is one problem here, the irq_offload semaphore has been taken before irq_offload(), and fatal or assert happened. So before terminated the thread, the resource(offload_sem) shall be released before next test case executing, otherwise, one other test case(or APP) can use offload_load() again, it would be block here.

Perhaps another way to achieve this goal  is to add an API interface for release the offload_sem, such as "int release_offload_sem(void)".
I am really not sure what is the better practice for handling this, look forward to your feedback, thanks!
Signed-off-by: Enjia Mai<EMAIL_ADDRESS>

you haven't adequately explained why you need this in the first place

Hi~Thanks for your reminder, I add below descriptions into comments.
And what special case will we need this:  for a scenario of some negative test cases.  For example:

Mutex cannot be used in interrupt context, so there should be a test case that call k_mutex_lock in interrupt context,
Then it will trigger a assert handler to catch this, and we leverage self-defined post assert handler and call k_thread_abort() or ztest_test_pass() to judge the test case pass.
But there is one problem here, the irq_offload semaphore has been taken before irq_offload(), and fatal or assert happened. So before terminated the thread, the resource(offload_sem) shall be released before next test case executing, otherwise, one other test case(or APP) can use offload_load() again, it would be block here.

@andrewboie  Or do you know whether Zephyr has some kind of mechanism that can release resource if some a thread hold a resource then fatal error or assert fail happened?
A far as I know, it seems like we have to release them manually. Thanks!