p4v: Use openssl 1.0

I also tried updating to a version that's not 2y old, but that failed on qt runtime linking errors.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
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"
[x] Tested execution of all binary files (usually in ./result/bin/)

p4v and p4merge start

[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @nioncode

Duplicate of https://github.com/NixOS/nixpkgs/pull/71301, please close this one and add to the discussion over there.


hz make-token is broken in next

As of 81402f8:
$ hz make-token user
/home/ckastorff/src/github.com/rethinkdb/horizon/cli/src/make-token.js:56
  config = serve.merge_configs(config, serve.read_config_from_file(parsed.project_path,
                                             ^

TypeError: serve.read_config_from_file is not a function
    at Object.processConfig (/home/ckastorff/src/github.com/rethinkdb/horizon/cli/src/make-token.js:56:46)
    at runCommand (/home/ckastorff/src/github.com/rethinkdb/horizon/cli/src/main.js:52:27)
    at Object.<anonymous> (/home/ckastorff/src/github.com/rethinkdb/horizon/cli/src/main.js:70:1)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:148:18)
    at node.js:405:3

Should be serve.read_config_from_secrets_fileas that is wheretoken_secret` is now stored.

We should probably have a CLI test for this too.

Just ran this using #696 and it now causes this error:
$ hz make-token user
error: rethinkdb stderr: warn: Cache size does not leave much memory for server and query overhead (available memory: 1033 MB).
error: Unclean shutdown - killing RethinkDB child process
/Users/dalanmiller/repos/fusion/server/node_modules/rethinkdb/net.js:570
          cache_string = password.toString("base64") + "," + salt.toString("base64") + "," + iterations.toString();
                                 ^

TypeError: Cannot read property 'toString' of null
    at pbkdf2_hmac (/Users/dalanmiller/repos/fusion/server/node_modules/rethinkdb/net.js:570:34)
    at Socket.handshake_callback (/Users/dalanmiller/repos/fusion/server/node_modules/rethinkdb/net.js:656:35)
    at emitOne (events.js:90:13)
    at Socket.emit (events.js:182:7)
    at readableAddChunk (_stream_readable.js:153:18)
    at Socket.Readable.push (_stream_readable.js:111:10)
    at TCP.onread (net.js:534:20)

Independently of the bug, why does make-token even start RethinkDB? Is that actually necessary?

it checks that the user exists. we could skip that step since it doesnt
really need it
On Wed, Aug 3, 2016, 13:55 Daniel Mewes<EMAIL_ADDRESS>wrote:

Independently of the bug, why does make-token even start RethinkDB? Is
that actually necessary?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rethinkdb/horizon/issues/691#issuecomment-237370342,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAFVpwPc4sLUWDo2TyDLehCZa2i_C4Oks5qcQArgaJpZM4JXwKD
.

Hmm not sure. Let's leave it in for now.


Design comments

Removal of patch loader (discussed IRL)
Blueprint names: I would only add suffixes to blueprint names that have multiple endpoints (i.e. only collection).
Naming: Resource -> ResourceView (discussed IRL, to be rediscussed)
Resource. should take same parameters as the MethodView.get/put/post/patch/...
Accept is only a request header, but not a response header.
Loaders should put data on the resource request context and not pass it as arguments (to be further discussed re. how loaders should look like)
Can MethodView.decorators be used in BaseView?
DELETE could potentially take a payload (for tombstone pages)
Content negotiation can it be applied to all methods (e.g. DELETE might not take)

Answering some in-line. The rest should be align with #27 and ticketized.

Removal of patch loader (discussed IRL)

Fixed in https://github.com/inveniosoftware/flask-resources/pull/31 . Removed.

Blueprint names: I would only add suffixes to blueprint names that have multiple endpoints (i.e. only collection).
Naming: Resource -> ResourceView (discussed IRL, to be rediscussed)
Resource. should take same parameters as the MethodView.get/put/post/patch/...
Accept is only a request header, but not a response header.
Loaders should put data on the resource request context and not pass it as arguments (to be further discussed re. how loaders should look like)

Fixed in https://github.com/inveniosoftware/flask-resources/pull/31.

Can MethodView.decorators be used in BaseView?

No, since it is a cls function. However, as it is now, each function is being decorated on each call which is a bit of an overhead.

DELETE could potentially take a payload (for tombstone pages)

In https://github.com/inveniosoftware/flask-resources/pull/31 the loaders allow data to be passed optionally (default to required though). So both DELETE sending a tombstone page data or DELETE with no body could be implemented.

Content negotiation can it be applied to all methods (e.g. DELETE might not take)

Would only happen if no response body is sent. However, as it is now, content negotiation would fail if no default.

The changes have been already merged as part of different PRs


Adds command "cookiecutter installed" to list installed (locally available) templates.

Adds new command: cookiecutter installed
This lists locally available templates, for example:
user$ cookiecutter installed
7 installed templates:
 * cookiecutter-bottle
 * cookiecutter-pyramid-talk-python-starter
 * cookiecutter-sublime-text-3-plugin
 * cookiecutter-template
 * puppet-openstack-cookiecutter
 * pyramid-cookiecutter-starter
 * python-macon-template

I was not able to integrate it into click without breaking the existing functionality. Someone who knows click better than me please adjust this if possible.
I’d like to see just cookiecutter —installed as the command (so it would be listed in help output) but I only get a missing template error and all attempts to add the command as an option met with my lack of experience with click.

Codecov Report

Merging #916 into master will decrease coverage by 1.57%.
The diff coverage is 21.42%.

@@            Coverage Diff             @@
##           master     #916      +/-   ##
==========================================
- Coverage     100%   98.42%   -1.58%
==========================================
  Files          17       17
  Lines         684      698      +14
==========================================
+ Hits          684      687       +3
- Misses          0       11      +11

Impacted Files
Coverage Δ

cookiecutter/cli.py
82.53% <21.42%> (-17.47%)
:arrow_down:

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 f1d99a3...4939c97. Read the comment docs.

Hey @mikeckennedy! 👋
Thanks for the PR. I'll have a look into the CLI implementation.
What does the -27 exit code mean and is that platform agnostic?

Thanks @hackebrot that would be great to see this feature.
-27 is just a number to be unique. Feel free to use any failure code that makes the most sense.

@mikeckennedy It looks like you need to add a few more tests to maintain the coverage 👍


feat(app): add auth and expose rpc server sidecar

This exposes the Git RPC server sidecar.
Things to note:

The server is available on port 4000.
The authentication is such that when the session is launched a random token is generated and stored in the k8s secret for the session. This token has to be passed in all requests to the RPC server - otherwise an error message is returned that indicates that authentication is required.
A network policy is added on the notebook helm chart level that allows ingress into every user session pod on port 4000 from only the notebook service or ui server.

closes #577
/deploy #persist

You can access the deployment of this PR at https://renku-ci-nb-762.dev.renku.ch

what's going on here @olevski @ableuler? Should it be closed or finalized and merged?

what's going on here @olevski @ableuler? Should it be closed or finalized and merged?

I need to resolve the conflicts and we can finalize this. It should not be closed.

The authentication is such that when the session is launched a random token is generated and stored in the k8s secret for the session.

So in order to access the sidecar the client needs to first read the k8s secret for the specific session they need to query? Why not use the oauth2 proxy that can just use the JWT which the clients already have?

A network policy is added on the notebook helm chart level that allows ingress into every user session pod on port 4000 from only the notebook service or ui server.

We're already allowing ingress to the jupyter server - since the authentication is done now via the proxy with a JWT token, is there a need for the network policy?

Rok I have to put back/add more code so that some kind of authentication is in place for anonymous sessions. This is because for anonymous sessions the oauth2 proxy is not there at all.
For registered user sessions things should be fine. And I will remove any of the unnecessary network policies as you mentioned.

@rokroskar actually the easiest thing is to just fully remove the sidecar for anonymous users. There is definitely no use for it right now. In the future if we need the sidecar for anonymous users we can add it.

@rokroskar as you suggested the git sidecar is not created at all for anonymous users. So this is good to go.

Thanks @olevski - is the API documented somewhere? We can do it in a follow-up issue if you prefer.

graph LR;
    A--> B & C & D;
    B--> A & E;
    C--> A & E;
    D--> A & E;
    E--> B & C & D;

@rokroskar this is ready for another review. The changes I made are as follows:

I added flask and gunicorn for the rpc server because the server were were using form Werkzeug is for development purposes only (it says this in the log when the server starts)

The json-rpc library can show a "map" of the different available rpc methods and their docs. See screenshot on what his looks. I think this is ample documentation. At least to start with.

I upgraded to oauth2proxy 7.3.0 because it allows me to specify additional audience for the JWT tokens. Without this the proxy lets through only JWT tokens that have renku-jupyterserver in their audience. But only JWT tokens issues to the same client has this audience. This way if the JWT is valid and has been issued for the renku or renku-jupyterserver client it will work.

I tested that the JWT token that the notebook service receives works with this. Also the JWT token for the renku client works too.

@andre-code here is how to use the sidecar:

docs are available at https://<renku-domain>/sessions/<session_name>/sidecar/jsonrpc/map, these do not require authentication
health check for the sidecar is available at https://<renku-domain>/sessions/<session_name>/sidecar/health - just in case you need this
anonymous sessions do not have sidecars at all

Here is also example code of how to call the api (in python) but you can adapt it to javascript easily:
def main(renku_domain, session_name, jwt):
    url = f"http://{renku_domain}/sessions/{session_name}/sidecar/jsonrpc"

    payload = {
        "method": "git/get_status",
        "jsonrpc": "2.0",
        "id": 0,
    }
    header = {
        "Authorization": f"Bearer {jwt}"
    }
    response = requests.post(url, json=payload, headers=header)
    print(response.json())

The format of the git/get_status response is like this:
{
    "result": {
        "clean": true,
        "ahead": 0,
        "behind": 0,
        "branch": "master",
        "commit": "b78bc17aa966175e19b879aa4e65d44f2a73e052",
        "status": "# branch.oid b78bc17aa966175e19b879aa4e65d44f2a73e052\n# branch.head master\n# branch.upstream origin/master\n# branch.ab +0 -0\n"
    },
    "id": 0,
    "jsonrpc": "2.0"
}

Please note that the json rpc standard wraps all responses in this {"result": "...", "id": 1, "jsonrpc": "2.0"} format.

Error codes from the json rpc servers look like this:
{"error": {"code": -32601, "message": "Method not found"}, "id": 0, "jsonrpc": "2.0"}

And all responses have status code 200.
Also do not remove either the id or jsonrpc field from the payload in your post requests. If you do things do not work. Lastly the json rpc server only allows/responds to POST requests. The only get requests are for the health check and docs.

Depends on https://github.com/SwissDataScienceCenter/amalthea/pull/188

Also an excerpt from https://www.jsonrpc.org/specification on what the id field means:

Ok now there is a network policy so that the ui-server can reach any session sidecar without credentials.
I also addded a service that leads directly to the sidecar.
This is how you can use the sidecar (without needing credentials) from the uiserver:
>>> import requests
>>> server_name = "tasko-2eol-test-2d1-2d1-faa67a07"
>>> res = requests.post(f"http://{server_name}-rpc-server/sessions/{server_name}/sidecar/jsonrpc", json={"jsonrpc": "2.0", "id":0, "method": "git/get_status"})
>>> res.json()
{'result': {'clean': True, 'ahead': 0, 'behind': 0, 'branch': 'master', 'commit': '55234e13ede9947718ce765377b86603b2446a1a', 'status': '# branch.oid 55234e13ede9947718ce765377b86603b2446a1a\n# branch.head master\n# branch.upstream origin/master\n# branch.ab +0 -0\n'}, 'id': 0, 'jsonrpc': '2.0'}

Please keep in mind that not all sessions will have a sidecar. This can happen in two cases:

Where the session has been launched before this functionality is rolled out
For anonymous sessions (either pre or post- deploying this update)

@ciyer @andre-code does the ui-server not have the user's JWT token? Why is unauthenticated access needed? It seems like it's asking for trouble - if a user somehow knew the id of another session they could get access via the ui server.

What about following a more traditional pattern? That would mean going through something like https://<renku-url>/ui-server/api/sessions/<id>/sidecar/<sub-route> with the UI-server adding the bearer token and the gateway handling the routing and swapping the token if necessary (or adjusting the headers as it does for renku-notebooks)?

Ok so I confirmed that the ui server has the Keycloak JWT for the user.
With this in mind we have two options:

The ui server calls the sidecar server with this JWT token
The ui server goes through the gateway and the gateway inserts the same JWT in the request and forwards this to the sidecar.

@lorenzo-cavazzi suggested option no. 2 above. I am in favour of option no. 1. I do not see why we have to go through the gateway when the UI server already has what it needs? We are creating unnecessary complexity and dependencies between the gateway, user sessions and the ui server this way. Where in reality the true dependency is only between the ui server and user sessions.
 Should we go through the gateway or not?

Thanks @olevski for digging further - I guess the question that comes to mind is why the ui-server has the JWT token in the first place (@lorenzo-cavazzi ?). With the gateway proxying requests it should not be needed for backends to store their own user credentials and the fewer places it's stored the better. otoh since each rpc server exposes its own service, wouldn't the gateway need to dynamically update its middleware rules every time a new session is created? If the ui-server already has a JWT token, I agree it's not necessary to fetch it twice. But in this case the API is less clean, i.e. it would be nice to just be able to hit an endpoint derived from an already known URL (the session server).

The UI-server handles the user authentication so it gets (and stores) the access token from keycloak and uses it to authenticate all the requests going to backend services.

it would be nice to just be able to hit an endpoint derived from an already known URL

That was my thought -- it would keep the routing cleaner. I might be underestimating other changes needed if gateway rules have to be dynamic

@lorenzo-cavazzi though the endpoint URL you proposed would be one that the UI client would go to - the ui server still needs to access the sidecar by some other means. Unless it's actually exposed through the ingress of the session on a different port than the jupyter server?

Well the endpoint I proposed is in the form https://<renku-url>/ui-server/api/<something> so the UI client will invoke it, but the request would go through the UI server (/ui-server), then the gateway (/api), then to ` that the gateway should know where it lives

The rpc server on the session is exposed the same way as the session itself, through the ingress object created by each session. And the authentication for the rpc server is the same as for when a user tries to just open a session. When the user opens a session these requests do not go through the gateway. They go through oauth2proxy (that is part each session), the  oauth2proxy talks to keycloak and then the request (if authenticated) is forwarded to the session container.
The way this PR is setup is that the rpc sidecar server will be available at https://<renku-domain>/sessions/<session_name>/sidecar/jsonrpc/. The session itself is available at https://<renku-domain>/sessions/<session_name>. So if we end up going through the gateway then we have to set it up in such a way that it will not touch requests for https://<renku-domain>/sessions/<session_name> but it will touch requests for https://<renku-domain>/sessions/<session_name>/sidecar/jsonrpc/. Do we know for sure this is possible with traefik?
Also we have to make sure the proxy does not touch other random "sub-urls" of https://<renku-domain>/sessions/<session_name> like https://<renku-domain>/sessions/<session_name>/lab or https://<renku-domain>/sessions/<session_name>/rstudio and many others where the resources used by running the session jupyterlab or rstudio ui are used.

i.e. it would be nice to just be able to hit an endpoint derived from an already known URL (the session server).

This is the case if we query the rpc server directly. The url for the rpc server is the same as the session url just with /sidecar/json added to it.

[...] So if we end up going through the gateway then we have to set it up in such a way that it will not touch requests for https://<renku-domain>/sessions/<session_name> but it will touch requests for https://<renku-domain>/sessions/<session_name>/sidecar/jsonrpc/. Do we know for sure this is possible with traefik?

This seems a standard case. We can match URLs using regex (E.G. here https://github.com/SwissDataScienceCenter/renku-gateway/blob/master/helm-chart/renku-gateway/templates/configmap.yaml#L161-L167 ).
I don't fully understand how going just through the UI server would be significantly less complicated than also going through the gateway -- it's probably the other way around since the gateway is made to route requests while the UI server shouldn't do that, so we would create something custom just for that case.
Anyway, I'm fine with both options at this point.
P.S. If the UI knows the full URL, we could even pass that as a parameter without the need to know more information for proper routing. The gateway (or UI server) will then route the request there with the proper tokens.

API - https:///sessions/sidecar/<sidecar_endpoint>?final_url=<full_session_url>
ROUTING - <full_session_url>/sidecar/jsonrpc/<sidecar_endpoint>

P.S.2 The UI already goes directly to a session without passing through the UI server or the gateway. My understanding is that another set of cookies (named session IIRC) are created. I assume those are also used for authentication. Could we use the same mechanism for sidecar authentication/authorization or is that something used by JupyerLab only?

My understanding is that another set of cookies (named session IIRC) are created. I assume those are also used for authentication. Could we use the same mechanism for sidecar authentication/authorization or is that something used by JupyerLab only?

The authentication for accessing the rps sidecar server is the same as the auth for accessing a running session. So yes you could use those cookies you mention to call the rpc sidecar server.

I propose that we start out with the assumption that we can make this work without going through the gateway. Then if we see that this is impossible we make the necessary changes in the gateway and use it. But I am pretty sure that it will not come to this.

Ok, then I assume you suggest going straight from the client, bypassing both the server and the gateway.
Fine for me, even if I generally prefer the more traditional pattern -- but I see this might be painful in this case.

P.S. To be sure we are on the same page, my understanding is that we must be in one of the two following cases:

We get the full URL in the client (E.G. https://<domain>/<something_including_session_id_and_routing>), and to access the sidecar we just add something at the end to hit the desired endpoint (E.G. /sidecar/jsonrpc/).
We get the session_id in the client, and to access the sidecar we need to build the final URL. We must know how to build it (E.G. https://<domain>/session_or_other_fix_path/<session_id>/sidecar/jsonrpc)

Case 2 is the most common: as for most (all?) our APIs, we build the URL and invoke it. It goes through the UI server (add the authentication headers) and through the gateway (route properly -- ignore any token dance since it's not relevant here). Bypassing the gateway has no meaning because the UI server doesn't know anything about routing: either it's a local API, or the location is unknown and it must forward it to the gateway.
If we are in case 1, we have the shortcut to invoke the API directly. I see the advantage here when:

the gateway doesn't know how to route to the final endpoint and
authentication is not required, or the session cookie in the client is enough (the path is set to / :flushed: so it is already attached to each API).

If any of the above is false, we need to fall back to case 2. We might have the option to include the final redirect URL so that the gateway can use it without knowing how to route it in advance -- not the cleanest solution but effective.
I assume: we are in case 1, the gateway doesn't know about the routing, and the session cookie is enough. Please correct me if I'm wrong.

@Panaetius I removed the network policy that allowed the ui-server to access any sessions sidecar without authentication. That is the only change that happened since your last approval. I am sorry for getting you to re-approve this so many times. But this is ready to go now.


[flatbuffers] upgrade the flatbuffers to v2.0.0

Describe the pull request

What does your PR fix?
Upgrade the flatbuffers to v2.0.0

Which triplets are supported/not supported? Have you updated the [CI baseline]
Yes

Does your PR follow the maintainer guide?

Yes

@jixingcn ,Thanks for your pr.
have you tested the feature locally on x64-linux, x64-windows, and x64-windows-static？

@jixingcn ,Thanks for your pr.
have you tested the feature locally on x64-linux, x64-windows, and x64-windows-static？

My application use flatbuffers on x64-windows and x64-windiws-static. I think all features are tested or verified.

@JonLiu1993 @jixingcn it does seem a bit suspicious to add a 19000 lines patch file.
What is the context of this patch. Shouldn't it be a upstream change?

@JonLiu1993 @jixingcn it does seem a bit suspicious to add a 19000 lines patch file.
What is the context of this patch. Shouldn't it be a upstream change?

Sorry, I did not find a patch file with 19000 lines. Can you point it out for me? Thank you

@jixingcn,Please run the command "./vcpkg x-add-version flatbuffers --overwrite-version" and commit the changes again.

@jixingcn,Please run the command "./vcpkg x-add-version flatbuffers --overwrite-version" and commit the changes again.

I already run, but nothing's changed.

@JonLiu1993 @jixingcn it does seem a bit suspicious to add a 19000 lines patch file.
What is the context of this patch. Shouldn't it be a upstream change?

Sorry, I did not find a patch file with 19000 lines. Can you point it out for me? Thank you

You can find in https://github.com/microsoft/vcpkg/pull/18897/commits/96e57b8a0b29e2491abdfa7f6871f0dbf2bed3a0.
Commit this patch because the pipeline's report. The 19000+ lines were generated by MNN's schema generate script and the latest flatc that was compiled by vcpkg.

We cannot commit a 19k line patch like this, especially since it will need to change every time flatbuffers updates -- instead, mnn's port should run flatc at build time to generate any needed files.
You can easily get a runnable flatc.exe by depending on flatbuffers as a host dependency:
{
  "dependencies": [
    { "host": true, "name": "flatbuffers" }
  ]
}

Then, in the portfile, you can use ${CURRENT_HOST_INSTALLED_DIR}/tools/... to access the host dependency.

OK, thanks. I will fix that.

@jixingcn ,Could you please take a look?
https://dev.azure.com/vcpkg/public/_build/results?buildId=56048&view=artifacts&pathAsName=false&type=publishedArtifacts

@jixingcn ,Could you please take a look?
https://dev.azure.com/vcpkg/public/_build/results?buildId=56048&view=artifacts&pathAsName=false&type=publishedArtifacts

Ok

@jixingcn ,Thanks for your contribution.

@jixingcn ,Thanks for your contribution.

Thanks for your patient. 😃


filepath autocompletion

Hi,
is it possible to enable file path autocompletion? In RSTUDIO if I e.g. type
setwd('user/example...')
then I could press tab and it picks the matching folder/file if there is one. Would be cool if hydrogen will support that soon or in case I can enable it, please someone give me a hint.
Thanks!

Thanks for reporting!
I looked into why this is happening, and it turns out that hydrogen isn't really using the full power of the Jupyter protocol to do autocomplete. The protocol is designed to accept a code block and a cursor position, and output completions. Hydrogen instead using a custom regex to send the kernel a completion string (with the cursor position field always set to the end of the string). Moreover, hydrogen disables autocomplete inside strings.
Fixing this seems like it would take a bit of work, but the good news is that it's language-independent and can bring other benefits besides path completion (e.g. completion of dictionary keys)

Any update on this? Thanks!

This is already fixed, at least for Python

Thanks Klye for your prompt reply. I am new to Hydrogen so might miss something here. In Jupiter Notebook, when I write "/U" and tab it will autocomplete to "/Users" but when I do it In Hydrogen, I have to write "/Use" and then it will give me a couple of options including the "/User" but not as the first option. If that is what I suppose to get then that is okay. I just wanted to double check. Thanks again!

You can change the number of characters needed to generate autocomplete suggestions in the settings for autocomplete-plus. There might be autocomplete suggestions from other packages listed before the Hydrogen ones. It's  hard to tell without a screenshot

Great! I already changed it and it feels much better. Thanks for the tip! here is the screenshot:

@kashuk
    inclusionPriority: 1,
    suggestionPriority: atom.config.get("Hydrogen.showAutocompleteFirst")
      ? 3
      : 1,
    excludeLowerPriority: false,

you can change this code inside of hydrogens autocomplete-provider.js file, but in your config you should be be able to set showAutocompleteFirst to true to make it appear first
(docs to the autocomplete provider code)[https://github.com/atom/autocomplete-plus/wiki/Provider-API]


Test 1

Conflicts Found

Author: colorMeCode - PR: #3
File: index.js
Line: 4

Conflicts Found

Author: @colorMeCode - PR: #4
action.yml index.js

Author: @colorMeCode - PR: #3
action.yml index.js


Connect GitHub Release feature to public Slack channel

User Story
As a Tech Lead and Product Owner,
I want to automatically post the Release Notes from the Release feature in GitHub to the public #release_notes channel,
So that we can test logging our work completed over time transparently to technical and non-technical stakeholders that frontloads the level of effort.
Acceptance Criteria
Given that we have made commits to development,
When we make a push to production,
Then the Release Notes should be pushed automatically to the #release_notes Slack channel.

Hey @burrage ,
hope you are  doing well ;)
Ben I have created a another  dummy repo,
here I have tried using "release-it" npm module using which we can define our own lables like this:-

Also Ben For documenting the release notes we are creating  a CHANGELOG.md file  using "release-it" node package automatically where can categories our commits based on features and bug fixes like this:-

Using this node package we can automatically create release notes and categories them,
As per automatically posting the release notes in public slack channel Ben I am still working on it, Currently trying to send the updated CHANGELOD.MD file to the slack channel using github actions workflow!

What a good find! Thanks for the update @amitsinghsutara !
Cool cool on GitHub Actions-- keep me posted!

Also Ben,
There's one concern as well,
Currently we are using node module "release-it" which we are running from the command interface I.e. using "run npm release" but for sending message to slack we are utilising the workflow which sends release notes automatically by extracting them from change log.md file,
So the teams concern is do we want to automatically create release as  well using the workflow besides using the command line interface!

Hey @burrage ,
Hope you are doing well ;)
Status update:-
We are automatically able to run release-it module as well!

Hey @amitsinghsutara!
That's good news!
I think I might not fully understand the order of steps in this proposed process with this new tool in the mix, so I'm having a bit of trouble understanding the team's concern about "automatically creating a release."
I'll go ahead and lay out my understanding of the proposed process as it stands (please correct me where I'm wrong!):
1.) Developer Lead reviews development PR and merges to main.
2.) Developer Lead runs release-it manually to build CHANGELOG.md and create a new release (is this second part right? Or is release-it ONLY building the CHANGELOG.md file?)
3.) (not sure on this part) There's some process that is looking for changes (is this a Google Cloud Function or ...?) to the CHANGELOG.md file.
4.) When the CHANGELOG.md file is changed, the process looking for changes will automatically post the CHANGELOG.md file as-is to the #release_notes Slack channel.
Is this correct? If not, let's write out these steps :-)

So here's the thing Ben,
Once pr get's merged into main brach our  GitHub Actions workflow automates the process of sending release notes to a Slack channel whenever changes are pushed to the main branch. Here's what it does:
Set up Git: Configures Git with your email and username for committing changes during the workflow.
Checkout Code: Fetches the latest code from the repository.
Install Dependencies: Installs any necessary dependencies using npm.
Run release-it: Executes the release-it command to create a new release. This  updates the CHANGELOG.md file with release notes.
Extract Release Notes: Extracts the release notes from the CHANGELOG.md file using the ffurrer2/extract-release-notes action.
Extract Version Number: Parses the version number from the CHANGELOG.md file.
Commit Changes (Optional): Commits the changes made to the CHANGELOG.md file during the release process. This ensures that any modifications are included in the subsequent push to GitHub.
Send to Slack: Sends a message to a Slack channel containing the newly extracted release notes and version number.


Remove examples

Thank you for helping out with embedded-graphics-simulator development! Please:

[ ] Check that you've added passing tests and documentation
[ ] Add an example where applicable
[ ] Add a CHANGELOG.md entry in the Unreleased section under the appropriate heading (Added, Fixed, etc) if your changes affect the public API
[ ] Run rustfmt on the project
[ ] Run just build (Linux/macOS only) and make sure it passes. If you use Windows, check that CI passes once you've opened the PR.

PR description
This PR removes the examples that were moved to the examples repo.

Should we add a link to README.md and lib.rs pointing to the new examples repo? Maybe that was planned for another PR after embedded-graphics/examples#3 is merged anyway but worth pointing out either way.

Do you have any thoughts on this? Happy to do it in a future PR if that was the plan.

Should we add a link to README.md and lib.rs pointing to the new examples repo? Maybe that was planned for another PR after embedded-graphics/examples#3 is merged anyway but worth pointing out either way.

Do you have any thoughts on this? Happy to do it in a future PR if that was the plan.

Do you have any thoughts on this? Happy to do it in a future PR if that was the plan.

Sorry I had somehow missed that comment. That would be a good idea and it would be great if you could create a PR for this.

Do you have any thoughts on this? Happy to do it in a future PR if that was the plan.

Sorry I had somehow missed that comment. That would be a good idea and it would be great if you could create a PR for this.

Done in #19

Done in #19


Enable for IFRAMEs

This change makes JSONView work in IFRAMEs.

What's the point ?  Viewed documents should be in JSON format, not HTML...

Outer frame:

Currently, the content inside the IFRAME is not prettified.  With the change suggested, it is.

Thanks for the response but why would I need to pretty print a JSON document into an IFRAME ? Why wouldn't I open it into a new tab ?

We have a lot of internal tools and sites where a JSON document is loaded within an IFRAME and it is unfortunate that they don't get pretty printed.

I added this optional feature in the latest commit.

Any guidance on when this might hit the chrome web store?  A number of people on my team could immediately benefit!

It's updated. Merry christmas and happy new year to you and all your team :)

Thank you!


Customizable rule severity

Hi :wave:,
I saw your tweet and gave sherif a go on a few different repositories. One rule that constantly triggered errors was multiple-dependency-versions. Large monorepos may require different versions of typescript, for example. Some packages like expo have a very strong opinion about the version of typescript they are compatible with, while others are updated, naturally.
It would be nice if rules had a way to change their severity, so large monorepos wouldn't break in CI.

Thanks for trying Sherif - indeed, this tool is opinionated and zero-config which is why we don't allow to customize rule levels. However, for cases such as the one you described, you can ignore a specific dependency from this rule: see the docs
sherif --ignore-dependency typescript

If you want, you can also completely disable the multiple-dependency-versions rule if it doesn't provide any value for you:
sherif -ignore-rule multiple-dependency-versions

Does that help?

Thanks for the quick response!
I saw the --ignore-rule option, and it's probably what we are going to have to use in order to adopt sherif. I understand that zero-config means that some settings cannot be changed, even if that means we lose out on warnings which devs may manually attend to.
I'm happy to close this issue if you feel adding a --warning/--error <rule> flag is out of scope.

Unless more folks are interested in this feature, I don't think it's worth it for now. Happy to revisit my decision later if more folks are asking for it though!

@QuiiBz I'll put my vote in for this!
Came looking to see if sherif could be configured for just this type of thing...alas, it's not possible.
Something like this would be ideal:
    "lint:repo": "sherif --warning multiple-dependency-versions"

Happy to provide more details of my use case if that helps...


Cloud Management Gateway

Hi, I am trying to complete section 5 and cannot get a cloud management gateway to provision correctly, At each attempt I simply get error in the status. The guide does provide any guidance as to what to do if this occurs. I have spent several hours trying to fix this problem but no luck so far. I have tried removing the created apps and resource group but the same error occurs.
[Enter feedback here]

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

ID: 21195f1c-0f99-502b-c6e7-a87d35237a81
Version Independent ID: 1848a7e1-4919-8e28-27ea-cfdbef125609
Content: Modern Desktop Deployment and Management Lab Kit
Content Source: microsoft-365/enterprise/modern-desktop-deployment-and-management-lab.md
Service: o365-solutions
GitHub Login: @JGruszczyk
Microsoft Alias: jogruszc

Hi - this series of articles is not designed to go into troubleshooting guidance. Please check out this article to see if it helps you identify or resolve your issue - https://docs.microsoft.com/en-us/sccm/core/clients/manage/cmg/setup-cloud-management-gateway
Thanks!


Add radians-to-degrees and degrees-to-radians elements

In the future, make sure not to add tests in two PRs to the same area - it causes merge conflicts otherwise.


PP load/save BMDI (5 man days' effort)

Ensure that PP BMDI and fill_value is being handled correctly for PP load/save.

Not necessarily all about BMDI, but setting out to fix outstanding load/save and test problems.

Taking these skipped tests on from #2382 :
from this comment
lib/iris/tests/test_cdm.py TestMaskedData.test_save_and_merge
lib/iris/tests/test_pp_module.py TestPackedPP.test_wgdos
==> those both now fixed, according to #2398
lib/iris/tests/test_pp_module.py TestPackedPP.test_rle
==> outstanding

Tests highlighted by, + taken out of #2398
lib/iris/tests/test_cube_to_pp.py:236
lib/iris/tests/test_cube_to_pp.py:270
lib/iris/tests/test_pp_cf.py:84
==> "pp/bmdi problem"
lib/iris/tests/test_pp_module.py:245 test_rle
==> "Test loads in pp file and checks the data/mask which is different to the expected"
lib/iris/tests/integration/test_pp.py:51
lib/iris/tests/integration/test_pp.py:86
lib/iris/tests/integration/test_pp.py:122
==> Seg fault

Here's the PR : #2507

Closed now that #2564 has been merged.


Typo?

https://github.com/Blacksuan19/scrapy-ai/blob/142f71367282d4f2e6381ab3f4f1cc9f74aa9788/scrapy_llm/handler.py#L66
Did you mean to put "dorm data" here? I might be missing something obvious but I couldn't figure out what it means.

good catch! should be just data, this project initially started as the example project dorm scrapper than I refactored out most of the functionality.

closed in #5


Fix code to support Django 4 and up, edge case for code older than 3.2

Past django 3.2 there was a breaking change in the middleware I fixed before, but forgot to account for newer version in logic. This should be the required fix for that

@shanx

Hi @c-goosen thanks for the PR! @bashu took over maintenance for this library. @bashu do you have time to look into this?

Thank you both, appreciate the effort

Thanks for the improvement!!


Secondary Indices

Indexed fields of type F of a struct T are added and removed from an index of type Map[F, Reference[T]] on object creation and deletion. You could search and iterate the index to perform range queries. Related to #72.
struct Foo {
  x: Indexed[String]
}

We can build indexes using a radix tree. Caustic tries to make sure that related values have related keys. For example, fields foo and bar of an object xyz will have keys xyz$foo and xyz$bar. Because keys often have common prefixes, a radix tree is a good candidate for an indexing structure.
We can implement radix trees in Caustic as a hierarchical Map, and we can use Caustic's transactional guarantees to safely build and update these indexes on demand. Consider the following object.
struct Foo {
  bar: Int
}

To build an index on bar, we construct the root node of the index at as a Map[String, String]& at key $Foo$bar. The key of each entry in the map corresponds to a suffix of bar and each value corresponds to the key at which the next Map[String, String]& in the index is located. We designate the $ key in the map as signifying that its value corresponds to the key of the Foo object whose bar field contains the value formed by concatenating all the suffixes used in the index traversal. Updates to bar will insert into the index, and deletes to the Foo object will propagate to the index.


Create Stacks_using_queues.py

The issue #259 is resolved in python language @akgmage

Issue is resolved @akgmage please check

Yeah its updated check once @akgmage


uncomment cl template

About the PR
uncomment the changelog template :trollface:
Why / Balance
pros keep leaving out :cl: or not formatting it right
Technical details
no
Media
merge and open new pr :trollface:

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
no
Changelog

add: Added fun!
remove: Removed fun!
tweak: Changed fun!
fix: Fixed fun!

I don't think this is a good idea. "Pros" can still continue to not format it right, except now that PRs with the default Changelog (like this one) will inevitably get merged and show up in the Changelog.

there is no :cl:

We could have one of those "[X] I have read and agreed..." boxes for the changelog so people pay more attention.
Or we could move the add/remove/tweak/fix examples to the comment above the :cl: so leaving it as the default wouldn't do anything. Examples of proper usage of the changelog could be provided as comments or in the linked documentation.

There were a lot of alternatives discussed and rejected in #18900. Please take a look at the discussion there.

pro


DropDownOption

fixes: #1510 . No functional changes.

Moved some shared code to the base class.
defined generic DropDownOption that can handle any integer enum (maybe I should assert).
defined KeyAttribute that allows us to put the translations directly on the enum members.
All drop drowns use the new DropDownOption.

I am yet to test this.

test works. but what is the deal with the tooltip?

fixed it.

@kian Could you also take a look at the tooltip for sliders at some point (out of scope for this PR): Should show current slider value but CO UI is very unreliable at updating the tooltip. Alternative would be custom slider component eg. something like Quistar's Tree Anarchy mod?

@aubergine10 Also noticed 2 drop-downs not yet converted in GeneralTab_LocalisationGroup.cs

They where not covered by OptionsManager so fixing them does not contribute toward #363.
they don't have enum so they may need special code so lets deal with them in another PR.

SliderOption has an extraneous ReadOnly getter/setter (line 79) that can likely be removed as that's now included in SerializableUIOptionBase.

bumping for great justice


Missing icons

Fresh install, python 3.12, python venv 3.12, all plugins successful. Ubuntu Noble.

Also :ToggleTerm opens a window and immediately closes it. Vim installed with sudo snap install nvim --classic.

Terminal thing is resolved. Default shell was set to "fish" for some reason

The problem with the terminal is resolved in this issue #8. To solve the problem with icons, try installing nerd font from jet brains: https://www.nerdfonts.com/

The problem with the terminal is resolved in this issue #8. To solve the problem with icons, try installing nerd font from jet brains: https://www.nerdfonts.com/

Great, icons now presented. Nerd font installation solves the problem.

Go here https://www.nerdfonts.com/
Click the Download button.
Choose the font you like and download it
Unpack it anywhere.
Open files with the extensions some_name.ttf and in the upper right corner there will be a green Install button.

P.S. Current for Ubuntu 20.04.6 LTS
P.S.S. Close issue ^_^


FreeCAD update troubles

for a FreeCAD choco installation we already had to trick chocco out:
https://forum.freecadweb.org/viewtopic.php?f=3&t=57483
for an update seem that the problem is not resolved:
2021-05-07 10:20:50.524 +02:00 [Information] Attempt to get headers for https://github.com/FreeCAD/FreeCAD/releases/download/0.19.2/FreeCAD-<IP_ADDRESS>b5e18a-WIN-x64-installer.exe failed.
The remote file either doesn't exist, is unauthorized, or is forbidden for url 'https://github.com/FreeCAD/FreeCAD/releases/download/0.19.2/FreeCAD-<IP_ADDRESS>b5e18a-WIN-x64-installer.exe'. Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (404) Not Found."
2021-05-07 10:20:50.527 +02:00 [Information] Downloading freecad 64 bit
from 'https://github.com/FreeCAD/FreeCAD/releases/download/0.19.2/FreeCAD-<IP_ADDRESS>b5e18a-WIN-x64-installer.exe'
2021-05-07 10:20:52.661 +02:00 [Error] ERROR: The remote file either doesn't exist, is unauthorized, or is forbidden for url 'https://github.com/FreeCAD/FreeCAD/releases/download/0.19.2/FreeCAD-<IP_ADDRESS>b5e18a-WIN-x64-installer.exe'. Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (404) Not Found."
This package is likely not broken for licensed users - see https://chocolatey.org/docs/features-private-cdn.
2021-05-07 10:20:52.792 +02:00 [Error] The upgrade of freecad was NOT successful.
2021-05-07 10:20:52.793 +02:00 [Error] Error while running 'C:\ProgramData\chocolatey\lib\freecad\tools\chocolateyInstall.ps1'.
See log for details.
2021-05-07 10:20:56.808 +02:00 [Warning]
Chocolatey upgraded 0/1 packages. 1 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
2021-05-07 10:20:56.808 +02:00 [Information]
2021-05-07 10:20:56.808 +02:00 [Error] Failures
2021-05-07 10:20:56.808 +02:00 [Error]  - freecad (exited 404) - Error while running 'C:\ProgramData\chocolatey\lib\freecad\tools\chocolateyInstall.ps1'.
See log for details.
Do we still need to change  the hashes in between the process? or is this a license issue?
or is this making troubles? (bu tthat is version 0.20-dev)
Postby Kunda1 » Tue Apr 20, 2021 12:27 pm
Heads up, we've renamed the git repo we're now serving FC development builds from. Please see https://forum.freecadweb.org/viewtopic.php?f=4&t=57958
it is called installer1.exe !!
https://github.com/FreeCAD/FreeCAD/releases
Thanks
Lukas
win10 20h2 (19042.928)
choco gui 0.18.1 with choco 0.10.15

The URL for FreeCAD is wrong. The correct URL can be found here: https://github.com/FreeCAD/FreeCAD/releases/tag/0.19.2
I guess this link should do the work:
https://github.com/FreeCAD/FreeCAD/releases/download/0.19.2/FreeCAD-<IP_ADDRESS>b5e18a-WIN-x64-installer1.exe


implemented Repeat forever overload (issue 248)

resolved issue #248

@fsateler thanks for the feedback! all adjusts were done. I also added a quote to extra overload on README.md

@atifaziz  all adjusts were done

@fsateler Your review requested changes. Have you had a chance to see if they've been addressed?

Sorry for not reporting back after the changes were done. Better late than never, so I did that now.

Add to list of operators and release notes in project.json

Sorry, I don't understand. Since repeat method already existed, Isn't it already on project.json?

@leandromoh Apologies, you're right.

Squashed and merged as e17bb06ed54603b0d3a61091b698e4cf49f17982. Thanks!


Rate Limiting issues in Ocelot

Rate Limit is not working when period and period timespan values are different. When we are making same value for period and period timespan then it is working for Rate limiting on configured service. In below configuration first case Rate Limiting is working and in second case Rate Limiting is not working.

First Case
"RateLimitOptions": {
"ClientWhitelist": ["HOR777"],
"EnableRateLimiting": true,
"Period": "10s",
"PeriodTimespan": 10,
"Limit": 2
},
Second Case
"RateLimitOptions": {
"ClientWhitelist": ["HOR777"],
"EnableRateLimiting": true,
"Period": "10s",
"PeriodTimespan": 15,
"Limit": 2
},
Please provide the solution because rate Limiting is not working as per Ocelot documentation. Please provide it is product backlog or ongoing issues.

Thanks for reporting to us once again! But this is well-known #1590 bug ❕

And stop terrifying us with duplicated bugs ❗
Please start your contribution the project! 🆗 ❔

Thanks, you @raman-m for update and solution.  Currently I am fully occupied in my ongoing project.  Sure, I will be ready to contribute to your project whenever i am free up here.

@raman-m  My linkdin id is Sheru Kumar Gaur

Please watch for PR #1592 #1590 news!
Closing because of duplication...


Optional tweak to penalize player score for Friendly Fire on Katina

This adds an optional tweak that causes players to lose points when they shoot down allies in Katina.
It's set to off by default.
I've made sure to prevent underflowing (it checks if your score is bigger than zero before trying to subtract)
As an added bonus, this fixes a bug with the Score Editor, which would spin like crazy if you set the value to lower than the current score.

https://github.com/user-attachments/assets/a6dc5fc0-5323-4e60-85dc-097f99b21251

This is a mod, i suggest you add a Mods category in between Cheats and Developer for it.

Done

Yes, notice that the existing enhancements are objective while yours is subjective. Dynamic polygon reduction is almost fully negative now: more visible at high resolutions without raising fps the way it did in the past.
If subjective mods get accepted in their own category, the only concern would be how many will be added in the future. There are thousands of places where you could say "this design mechanic should be like this because I think it's better." But this generally only makes sense when it is a common complaint among the playerbase.

I'm going with whatever the project's maintainers say. If minor mods in a dedicated Mods menu are okay, then I'm submitting them.
I imagine it's also the only way to make such minor mods easily accessible to players. Unless there's some way to make code mods work without requiring binary patching.


Videos have been deleted!

Is there possible to use my own ipfs node to save the videos,the network is NOT data-persistent,i have lost a lot of videos.
Please tell us how to run this on our own ipfs node,rather than some random node of the ipfs network.
thanks

Yeah, I should probably put a notice about that on the front page...
The instance I'm running is on a VPS with only 20GB of storage, so old stuff gets overwritten/unpinned as new stuff is uploaded. It's really meant as a temporary seeder.
If you head over to the ipfs install instructions you can set up your own node on your computer or a server if you've got one. Then just use ipfs add {filename} if you've got a file, or ipfs pin {hash} if it's already on the network and you want to make sure you keep a copy.


Listener for network

It will useful if we can add a listener for network
if the state changes it will trigger the func that we passed in

+1


Profunctor instance for (FoldM m)

If I'm not mistaken,
instance Monad m => Profunctor (FoldM m) where
  rmap = fmap
  lmap = premapM

Speaking of premapM, it appears that its Monad m context is redundant.

Sounds good!  Do you have time to write up a pull request for this?

Yes.

Closed by #42


Custom serialisation

Hi,
Referring to the unit test for Custom serialisation in https://www.baeldung.com/java-serialization
Should the code be
e.writeObject(objectOutputStream)
instead of
objectOutputStream.writeObject(e)
Otherwise, the 'override' methods don't make sense.

@h3dud5 could you please open a PR for this one?

I have verified the code,  is the issue still valid?


avoid analysis_output_test duplication, capture common functionality

please un-link the issue from this PR, since this issue has more items to be covered in other followup PRs.


fix tiles' internal seams by unifying geometries

st_union() the Natural Earth geometries in all earth queries, and water queries only for zoom levels 0, 4, and 7. This should resolve the issue of tiles' "internal" seams, which are caused when a continuous earth/water feature is composed of multiple different polygons at the data level, which, when simplified, slightly diverge away from one another and create a gap. By creating a union of the polygons, we can ensure that simplification will only alter the exterior of that feature.

@baldur , @rmarianski , check this out when you get a chance.

:+1:

Let's give it a whirl in dev.

I updated the dev environment to contain this change. Next week, we should be able to see the results. If we're satisfied, let's merge this branch into master then.

This is running on dev at the moment, and low zoom levels have been regenerated.

The seams that I spotted appear to be fixed. @bcamper ?

So this sounds expected, but I'm seeing some seams, this one looks like it may be on a tile border. Do we have a plan to address those?
http://tangrams.github.io/tangram/#mapzen-dev,40.63375667842965,-74.17556762695314,12

Right, seams on tile borders are still an issue. The two images below illustrate the problem pretty well: some tiles have very fine detail near their borders, and when it gets simplified away, the geometry may no longer line up against the edge:

I haven't done any work towards fixing those, yet.

Good to go, will tackle tile seams as a separate issue. Thanks!


DesktopLibrary | Duplicate Screenshots on Failure

When a keyword fails in the Desktop Library a screenshot is created. For some reason currently this is duplicated.

Still no real progress here. I have narrowed it down to DesktopLibrary keywords that call AppiumLibrary Keywords.

For example:
Wait For And Click Element
Is a DesktopLibrary keyword that calls a couple AppiumLibrary keywords
This keyword would trigger 2 screenshots on failure.
Click Element
Is an AppiumLibrary keyword
This triggers only one screenshot
Mouse Over Element
Is a DesktopLibrary keyword that does not call any AppiumLibrary keywords
This triggers only one screenshot
It seems that when something like 'Wait For And Click Element' fails it triggers two failure routines. Trying to suppress the screenshot from what I assume is AppiumLibrary doesn't do anything:

The 'self.register_keyword_to_run_on_failure' seems to set both.

Attempting to override the run on failure keywords didn't really seem to do anything either.
Overriding a keyword from AppiumLibrary (in this case with itself) seems to only generate one screenshot.
Running that same overridden keyword as a part of a sequence chain (wait for and click) still results in 2 screenshots

Extends to the Mobile Library as well so its definitely how AppiumLibrary is handling screenshots differently than how we do with seleniumLibrary.

Finally found it, issue is caused here:

Since I am calling 'wait_until_page_contains_element' directly it is counting that keyword as a failure along with the main keyword (like 'wait_for_and_click_element').
This can be avoided through helper methods _wait_until_page_contains_element and _wait_until_page_contains that start with an underscore to avoid this check.


Convert button not working

Click add funds modal
Click Convert
Input amount into Eth to dai....dai value doesnt update

not sure what is going on. is it a long lag then update?

Need error messages to tell user they don't have enough ETH to convert.

Added - closing


Enhancement to scan using front camera

Hi, I can't find the property to switch from back camera to front camera for QR code scanning. I want to implement it for the front camera.

Hi.
I dont see the enhancement feature for front camera. pls advise

Also possible to have function turn on/off flash light.


Reconnect repository should insert Deploy Key to Github

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
arn:aws:amplify:eu-west-2:694647969796:apps/dg1s64s7fmyba
Region
eu-west-2
Amplify Console feature
Build settings
Describe the bug
Given I  use Github with AWS Amplify
When I select repository
Then "Deployment Key" is inserted to this repository on Github
:+1:  so far so good

Given I remove this "Deployment Key" from Github repository (e.g. due to https://github.com/aws-amplify/amplify-console/issues/1830)
When I Reconnect Repsitory (in AWS Amplify > General settings)
Then deployment key is not reinserted  :-1:

That means when I try to build the AWS Amplify APP this will happen

Expected behavior
Given I remove  "Deployment Key" from Github repository
When I Reconnect Repsitory (in AWS Amplify > General settings)
Then deployment key should be reinserted
Reproduction steps

configure AWS Amplify to use Github Repo
go to Github repository settings > Deployment Keys > remove the key inserted by AWS Amplify
go to AWS Amplify > general settings > reconnect repsitory
check  Github repository settings > Deployment Keys  == see no new deployment key

Build Settings
No response
Additional information
this is  related to bug  https://github.com/aws-amplify/amplify-console/issues/1830#
and https://github.com/aws-amplify/amplify-console/issues/157#issuecomment-834362708  and https://github.com/aws-amplify/amplify-console/issues/1815

Hello Tomas,
I think I was able to find a possible cause. When you click Reconnect Repository the message below is shown

Make sure to follow instructions and delete existing webhooks, if you proceed without this - request silently fails.
Thank you for feedback, I will file a bug to show explicit message on UI when webhooks are not removed during reconnect. Please let us know if that was the cause.

Hi @JKalm, thank you for looking into this

When you click Reconnect Repository the message below is shown

In my case when I try to reconnect - reconnect happens successfully - no error appears, Github say a-ok, AWS Amplify say a-ok. I think the issue you are describing is unrelated to what I'm describing
the core of the issue as I've described in this issue screenshots the deployment keys are no longer there => AWS amplify app is no longer able to clone the repo. There is no problem with reconnecting the App to repo. It's just that the reconnect will not add new deployment keys.
BTW a developer is able to connect as many AWS Amplify Apps to the same repo . Don't know why webhooks would   be an issue. But his is not important.

I will file a bug to show explicit message on UI when webhooks are not removed during reconnect

that is  a reasonable solution but again this is not the issue. In the case of the deployment keys they should be readded if they are missing once re-connect is clicked

Please let us know if that was the cause.

It was not,
as from my side I wont be able to spend more time reproducing this issue for you (already spent 2 weeks , raised 3 issues related to this. I'm pretty sure we pinpoint exact moment when the error happens) We done this research just to see if AWS Amplify is stable enough product to be used with our company. Now that we know what was the problem we will carry on with other work.
In our company we simply decided we will be careful not to de-authorize the application ( https://github.com/aws-amplify/amplify-console/issues/1830) and not remove deployment keys or mess around with users while we are doing our tests.
But as described in this issue  or issue https://github.com/aws-amplify/amplify-console/issues/1830 or  all the comments from various other developers in issue https://github.com/aws-amplify/amplify-console/issues/157#issuecomment-834362708 AWS Amplify have issues working with Github this may discourage other Companies from using it. So my only advice is to look deeper into what I'm actually describing in this issue for the good name of AWS Amplify.

Hi @equivalent, I understand your frustration, let me give you some context on what's going on here. The webhook and the deploy keys are indeed related (as part of the process of connecting a repository, we create both), so if you delete the deploy keys, you'll need to delete the webhook as well in order to re-connect the repository again to your Amplify app. If you don't delete the Webhook, our backend will not be able to re-connect the repository.
While this is a rare edge case, we acknowledge this is not the best user experience so we have filed a bug into our backlog to make this process of re-connecting a repository better. Thank you for bringing this to our attention!

@ferdingler @JKalm thank you both  for the answer. I will try your solution next time this error happens. My apologies if my previous comment sounded harsh. I'm grateful for the work done on AWS Amplify.

I'm also having this issue. Reconnect doesn't do anything. I have no web hook and no deploy key in my github repo. No idea how to add them back in. Can those be added back in manually?

Also have this error. I have already dig for a day.

I have this same error, @equivalent and @JohnHershberg described exactly what is the problem.

@ferdingler any updates on this one?

Not sure if this is related, but I started to have this problem after the user who connected the Github repo with Amplify was removed from our Github organization. Since then, I'm having the same problem described by @JohnHershberg.

@LucasAndrad my opinion is that this will not be fixed in near future (or not so near future)
What we done in our team is that we created fresh Github user, we connected all SPAs from scratch and we  told every developer in the team not to ever ever ever disconnect/reconnect/remove/touch anything with those SPAs on Github configuration or in AWS Amplify (we have just one person responsible to do changes in repo setting)
Now the team can do changes on Amplify itself like adding Redirects or ENV variables or Auto branches - just not to try to change Repo connections
Yep it's a stupid and fragile way around it (one Junior developer hire close to screw-up or production) but so far so good.
But I agree with you that this is an existing issue and it should be fixed

One more note if AWS Amplify ever implement this https://github.com/aws-amplify/amplify-console/issues/1815  (SSH keys) then I'm 80% sure this will solve this issue as well

Yes @equivalent I agree, it's very frustrating to pay for a service and sunddely start to face issues like this one with no feedback/support from the team. I already reported many issues on amplify projects and I never got any feedback with less than 3 months (unreal right ??) I decided it doesn't worth any more, Amplify it's just for very very simple MVPs, I don't recommend to use it with real projects, not even the small ones. I moved all my stuff out of it, even for deployment I started using S3.

Facing the same issue still, its pretty blocking.


[L5R] Auto calculation repeatables

Added auto calculations for up to five skills in each tree.
Added width to repeatables so they don't extend with window.

Hello, I was wondering if you had a functioning sheet for L5R, the one on roll20 has many issues.

It could be that you tried using the sheet as it was being merged with roll20. As it loads fine for me and things seems to be in order.


Number Guess Game.py

This game is for 4 players.
Description
Please include a summary of the changes you have made in regard with this issue.

Fixes: #(issue number)
Type of change
Please delete options that are not relevant

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Checklist:

[x] I have read the contribution guidelines before making this PR.
[x] I have performed a self-review of my own code

Create an issue for this PR and link it


Reliable non existing  domain detection

The library relays on word like "not found" to detect non existing domains.
but, for example, .it tld does't have such words. I belive we need a method to detect such domains. We can do this in prepareXX method, or introduce net method (for example precheckXX)
whois aaadjdhfhfhssssfh.it
Domain:             aaadjdhfhfhssssfh.it
Status:             AVAILABLE

{
  "domain": {
    "domain": "aaadjdhfhfhssssfh.it",
    "punycode": "aaadjdhfhfhssssfh.it",
    "name": "aaadjdhfhfhssssfh",
    "extension": "it",
    "status": [
      "available"
    ]
  }
}

[Querying whois.nic.it]
[whois.nic.it]
Domain:             agrigento.it
Status:             UNASSIGNABLE

{
  "domain": {
    "domain": "agrigento.it",
    "punycode": "agrigento.it",
    "name": "agrigento",
    "extension": "it",
    "status": [
      "unassignable"
    ]
  }
}

what do you think?

Hello @AlexBlack772
Thanks for your feedback.
I think it is too heavy to implement with prepareXX  or precheckXX, it is more acceptable that to improve isDomainNotFound.

If you think this repository is helpful, please share it with friends, thanks.

it is more acceptable that to improve isDomainNotFound.

this is a possible way, but in this case we need another algorithm of isDomainNotFound calling.
now, isDomainNotFound is called from getDomainErrorType. But getDomainErrorType is called only if we can't detect domain name.
With .it tld we can detect domain name and getDomainErrorType is not called

Yes, you are right, let me think about it.

If you think this repository is helpful, please share it with friends, thanks.

JFYI, the same issue with .nl tld
sometimes it responds with the following text

whois.domain-registry.nl: Server too busy, try again later

Hello @AlexBlack772
It works. Please try the latest version.

If you think this repository is helpful, please share it with friends, thanks.


Question: how to write case when .. then when .. then .. end, like this?

code

GoodsXX(Goods).. haha, Goods will gen go golang keyword, looking forward to the new version

func HasInventory(ctx context.Context, goods *ent.GoodsXX, S *ent.Store, quantity int) (bool, error) {
	var result []struct {
		GoodsXxStream string `json:"goods_xx_stream"`
		Inventory int
	}
	err := pkg.Db.GoodsStream.Query().
		Where(goodsstream.HasGoodsWith(goodsxx.ID(goods.ID))).
		Where(goodsstream.HasStoreWith(store.ID(S.ID))).
		GroupBy(goodsstream.GoodsColumn).
		Aggregate(func(selector *sql.Selector) string {
		return fmt.Sprintf(`sum(case
			when %s=%d or %s=%d or %s=%d then 1 * %s
			when %s=%d or %s=%d or %s=%d then -1 * %s
		end) as inventory`,
			selector.C(goodsstream.FieldType), schema.In,
			selector.C(goodsstream.FieldType), schema.OutIn,
			selector.C(goodsstream.FieldType), schema.TransferIn, selector.C(goodsstream.FieldQuantity),
			selector.C(goodsstream.FieldType), schema.Out,
			selector.C(goodsstream.FieldType), schema.InOut,
			selector.C(goodsstream.FieldType), schema.TransferOut, selector.C(goodsstream.FieldQuantity))
	}).Scan(ctx, &result)

	if err != nil {
		return false, err
	}

	return result[0].Inventory >= quantity, nil
}

And also, if count to get total or sum without GroupBy, i want skip GroupBy, direct call Aggregate

Hey @maxiloEmmmm!

Question: how to write case when .. then when .. then .. end, like this? #779

There's no built-in support for these functions/predicates. However, you can write your own predicates or functions. See the sqljson package and https://github.com/facebook/ent/issues/708.
Closing, but feel free to continue the discussion if any further help is needed.


Can't write dot product

This should work:
∑_i a_i b_i
where
a: ℝ^n
b: ℝ^n

We are trying grammar for indexing vector and matrix


v3.0.13 not published

The fix for #110 has not been published yet.

+1, It would be really great to get React 16 support into the peerDependencies so I can shrinkwrap my app.

Fixed:)


Add prefix to alb access logs

This change will allow to include a Prefix when enabling access logs in ALB

@ahernandezdefinity So sorry for the belated response, and thank you so much for this contribution!
In order not to bother you with rebasing I'll recreated this PR without merge conflicts https://github.com/hazelops/terraform-aws-ecs-app/pull/47


Gene linkouts Soybase URL is broken

glyma.Wm82.gnm2.ann1.Glyma.01G103400
generates linkouts with Soybase URL lacking gene identifier:
http://www.soybase.org/sbt/search/search_results.php?category=FeatureName&search_term={UNPREFIXED_GENE_ID}

thanks - this linkout is no longer in the yaml, but until we get a service running on the updated ones it will persist. Alternatively, I could commit the code that was dealing with substituting in the UNPREFIXED_GENE_ID but that will also require a service instance to be deployed. Sounds like @nathanweeks was OK with us managing the service from our end, so I guess we need to decide if that means re-pointing linkouts.services.legumeinfo.org to the NCGR production host or just coining a new endpoint like services.lis.ncgr.org that doesn't require DNS tinkering on the ISU side. Any preferences?

Not per this particular case, but it's a higher-level question regarding hosts. Should all legumeinfo.org sites and services consume services only on legumeinfo.org? Or is lis.ncgr.org a suitable domain for production services? I don't have any issue with hosting services on lis.ncgr.org but are there some USDA issues? That's my only concern. Otherwise I prefer to use lis.ncgr.org so we have control over the DNS, as you say. But it should only be for services behind the scenes: end users should use legumeinfo.org hosts in their browsers.

Actually, come to think of it, a CNAME doesn't really change anything, I think, from the USDA perspective - I'd think it's more about the IP segment - so let's go ahead and run our services on lis.ncgr.org. Unless folks in Iowa have a problem with it.


conversionFieldData must be string

fixes an issue caught in staging

I looked at the component for this custom field, and it expects a number, not a string. I fear this could be a symptom of something else. For example,NaN would cause the same errors to display, as seen in the screenshot.
Why you ask?
In the case of custom fields, the value displayed in the UI can be completely different than the value set in the form data, which is ultimately submitted. So you see 8 but you submit NaN, or 'poop', or whatever is wrong.


fix(transfer): look-up channel version before sending a packet

Description
Creates a v1 packet for v1 channels
closes: #6376

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against the correct branch (see CONTRIBUTING.md).
[ ] Linked to GitHub issue with discussion and accepted design, OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/).
[ ] Added relevant godoc comments.
[ ] Provide a conventional commit message to follow the repository standards.
[ ] Include a descriptive changelog entry when appropriate. This may be left to the discretion of the PR reviewers. (e.g. chores should be omitted from changelog)
[ ] Re-reviewed Files changed in the GitHub PR explorer.
[ ] Review SonarCloud Report in the comment section below once CI passes.

Summary by CodeRabbit

New Features

Enhanced packet handling to support multiple versions of packet data, ensuring compatibility with different application versions.

Bug Fixes

Corrected error handling in the TestSendTransfer function to return the appropriate error type.

in OnRecvPacket we unmarshal and convert to ics20-2 packet data regardless of channel version, correct? This is just for code maintainability, right?


Licensei cache

Q
A

Bug fix?
yes

New feature?
no

API breaks?
no

Deprecations?
no

Related tickets
fixes random licensei check failures

License
Apache 2.0

What's in this PR?
Add licensei.cache file to skip pre-resolved detection failures
Why?
licensei check fails randomly sometimes when github repo license could not be determined
Checklist

[x] Implementation tested
[x] Error handling code meets the guideline
[x] Logging code meets the guideline
[x] User guide and development docs updated (if needed)

Alternative solution https://github.com/banzaicloud/istio-operator/pull/907 , if using go mod vendor is acceptable we can close this PR https://github.com/banzaicloud/istio-operator/pull/906

Closing this PR as #907 is approved and merged


Certain highlights broken when using impatient.nvim

How it looks without a colorscheme (don't mind the awful contrast of the default colorscheme and my terminal background):

How it looks with nordbuddy:

This is my nordbuddy setup (as seen in the screenshots):
require("nordbuddy").colorscheme({
  italic = false,
  italic_comments = false,
})

This is using the latest nordbuddy 525b9658fcf145e141f34de16029bb069ced92fd and the latest neovim
3f526feebfe6d7bf71380a24639a3dd908f77ff6 (although I've had this problem for a bit longer). This might not be enough information to debug but I wouldn't know what to add exactly so if you miss anything please ask.

Strange. I'm not able to reproduce this :thinking: I'll do a bit more testing here on my end.

Could you maybe share what terminal you're using as well as your $TERM variable ?

Not able to reproduce either, I see this when visually selecting:

Tried a couple of different terminal emulators as well as a couple of variations of $TERM (including inside tmux), and so far I haven't run into this.

It also dawned on me that in @sandersantema's screenshot, the active line has no highlight (not even in the gutter -- text should be "white" there). This should have the same background as "visual mode".

I'm using konsole 21.08.0 but I've tested it with xterm 368-2.1 too and this gives the same result. Whether I'm using tmux or not doesn't matter either, in tmux $TERM is set to tmux-256color without tmux $TERM is set to xterm-256color. I'll try to setup a minimal config and see if I'm still experiencing this error.

Hmmphh for some reason I'm not able to get the minimal config working, do any of you have an idea how to get it working?
let &runtimepath  = '/home/sandersantema/.local/share/nvim/site/pack/packer/start/nordbuddy,' . &runtimepath
let g:nord_underline_option = 'none'
let g:nord_italic = v:true
let g:nord_italic_comments = v:false
let g:nord_minimal_mode = v:false
colorscheme nordbuddy

I was able to run with a minimal config using -u customvimrc -- though, I had to temporarily rename my ~/.config/nvim directory because it always tried to load :thinking:
let &runtimepath  = '/home/anders/.local/share/nvim/site/pack/packer/start/nordbuddy,' . &runtimepath
set termguicolors
colorscheme nordbuddy

Moving ~/.config/nvim did the trick and highlighting works using this minimal config. So I guess this is caused by my config or another plugin, that I'll have to investigate further. I'll get back to you when I have this figured out but it could take a little longer.

Alright. Great! I'll just leave this open then until you've narrowed it down.

Found it :tada: I stumbled upon it by accident and I've got no idea why it's the case but it seems to have something to do with impatient.nvim. Highlighting works once after clearing it's cache (:LuaCacheClear) and restarting neovim afterwards it doesn't. Disabling impatient.nvim all together gets the highlighting working again.
impatient.nvim provides quite a big improvement to startup time but I have no idea whether highlighting isn't working with nordbuddy and impatient.nvim because of my setup, nordbuddy or impatient.nvim. If you'd like to investigate feel free to otherwise it might be a good idea to at least post a warning impatient.nvim could cause some problems with highlighting. Whenever I get around to it I'll try to reproduce with a minimal config and see if it's my config causing the problems.

Ah. Nice find!
I've seen this impatient thing pop up every now and then while I'm browsing, but never tried using it because my load time is 200ms, which is basically a blink of an eye and totally fine :sweat_smile:
I'll install it and do a bit of debugging to get (hopefully) a better idea of what's going on.

OK. So I've figured what's causing the error, but not exactly sure why yet.

https://github.com/maaslalani/nordbuddy/blob/becd30e3c82a9c2a437c30f5f9e249becabfd30d/lua/nordbuddy/init.lua#L67-L72
The unpack here results in nil values when a module is brought back from the impatient cache.
The group always has the table: { "Visual",  [3] = "#434c5e" }, but unpack yields nil.
Example before: Visual nil #434c5e nil, and after: Visual nil nil nil.

Doing this works:
vim.highlight.create(group[1], {
    guifg = group[2] or 'NONE',
    guibg = group[3] or 'NONE',
    gui = group[4] or 'NONE',
})

The following unpack above seems to work fine though.
https://github.com/maaslalani/nordbuddy/blob/becd30e3c82a9c2a437c30f5f9e249becabfd30d/lua/nordbuddy/init.lua#L55

I pushed the changes I mentioned here. Hopefully that takes care of it :nerd_face:

Thanks @andersevenrud for looking into this ❤❤


[AutoDiff] Disable tests on use_os_stdlib or back_deployment_runtime

AutoDiff is not ABI-stable and not shipped in any OS. We disable all AutoDiff runtime tests with use_os_stdlib or back_deployment_runtime.

@swift-ci please test


Update README.md

We made the experience that writing BioNetGen and importing via SBMLtk works in some cases where importing the .net file doesn't (translating the functional rate parameters). You just have to make sure you use the newest BNG version. They fixed a bug in the SBML export around Dec 2020, was in 2.5.something IIRC.

@paulflang I updated the readme to say:
"SBMLToolkit.jl provides an alternative for loading SBML files into Catalyst models, offering a much broader set of supported features. It allows the import of models that include features such as constant species, boundary condition species, events, constraint equations and more."
so I'm going to close this. I think that better advertises SBMLToolkit for people wanting more functionality.

Thanks, Sam. But I think the problem with this explanation is that it is not clear what to do if a BioNetGen model cannot be imported into Julia if the import fails with ReactionNetworkImporters. This is because some (many?) people are not aware of the writeSBML() function in BioNetGen. I think it is not easily findable in the BioNetGen documentation. So perhaps the following would clarify that:
"SBMLToolkit.jl provides an alternative for loading SBML files into Catalyst models, offering a much broader set of supported features. It allows the import of models that include features such as constant species, boundary condition species, events, constraint equations and more. The BioNetGen function to export SBML is writeSBML()."

I'll add a comment that SBML files can be generated in many standard modeling tools (including BioNetGen). I think it makes more sense for you to have the SBMLToolkit docs explain how to generate SBML files in various tools than for us to start discussing that here.


Missing output of meta in resource files

Describe the bug
As you see, {{this}} keyword is removed in the output metadata, is this expected?
I don’t think that dbt compiles YML files via jinja2 because {% tags don't compile but I may be missing something here.
Steps To Reproduce

Create a file models/source.yml as follows:

version: 2

sources:
  - name: jaffle_shop
    tables:
      - name: orders
         meta:
             test: "value{{this}}"

Run dbt list
Open manifest.json file and you will see the following output of meta for jaffle_shop.orders source:

"meta": {"test": {"value"}}

Expected behavior
It should have the following output:
"meta": {"test": {"test": "value{{this}}"}}

System information
Which database are you using dbt with?

[ x] postgres

The output of dbt --version:
0.19.1

The operating system you're using:
Mac OS

The output of python --version:
Python 3.8.6

It looks like dbt actually compiles yml files but I couldn't find the relevant documentation at the first glance.

Correct, dbt Jinja-renders values in YAML files, but it uses a much more limited rendering context than the full context it uses for model rendering:

{{ var() }} and {{ env_var() }}
A handful of Jinja context values: {{ target }}, {{ dbt_version }}, {{ run_started_at }}, {{ invocation_id }}
{{ doc() }} in description fields only
Other macros are not supported, and other context variables (such as {{ this }}) are undefined