god mod don't work

hey bro verify the god mod that don't work

I just checked, it still works for me.
Sorry for the late response.


Autoapprove/automerge bot PRs?

It seems that enabling automerging of PRs on a GitHub repository only allows people to enable automerging on specific PRs.  That is, all PRs will not automerge.  This creates some noise for us every time dependabot or pre-commit-ci[bot] create PRs to update dependencies or pre-commit configuration.  Or am I missing something?
I'm wondering if we can deploy some mechanism for autoapproving and automerging PRs created by bots (e.g., dependabot and pre-commit.ci) when they pass all tests.  Something like this:
https://github.com/MobileTeleSystems/mlflow-rest-client/actions/runs/1880831594/workflow
could be deployed on our repos to do this.  This workflow demonstrates the<EMAIL_ADDRESS>action and the hmarr/auto-approve-action@v2 action.

@brian-rose I've noticed that you are mostly the one who merges these PRs. How high of a priority do you think it would be to automate this?

I do a lot of this merging because I like to clean out my notifications once a day!
I think an alternative to auto-merging these type of basic maintenance PRs would be to allow exceptions to our typical "two review approvals" requirement. Then a single maintainer (like myself) could just quickly hit merge and be done with it.

To answer your question @jukent I think finding a better solution to our ongoing maintenance burden is a high priority.

Yeah sounds pretty clear haha

We discussed this at today's IWG meeting.
A barrier to auto-merging bot PRs is that recently pre-commit-ci[bot] has been repeatedly trying to update our repos to a pre-release alpha version of prettier, e.g. https://github.com/ProjectPythia/pythia-foundations/pull/317
This creates situations where tests pass but the bot is trying to merge something we don't want.
We have not had problems like that with dependabot so we could turn on auto-merging for those PRs.
We also discussed whether we should get rid of pre-commit-ci entirely, in favor of locally installed pre-commit tools for each developer. The consensus was that the local route works well for projects with a core developer team and helps build good habits among the devs. But it adds significant complexity for first-time contributors to a community repo. We decided to stick with pre-commit-ci despite its annoying bot.
It would be great to set a more fine-grained PR review policy, where PRs originating from maintenance bots only need one single review before merging -- while keeping our "two-review" policy for other (usually more content-oriented) PRs. Does anyone on @ProjectPythia/infrastructure know how to do this?

There's no way within the GitHub UI to dynamically adapt the number of required reviews. We only get to pick one of them (1 or 2) to be enforced by GitHub.
I'll also note that GitHub's "auto-merge" feature always requires someone to enable it on a given PR. There's no way to set criteria for PRs that should be merged with no maintainer intervention. Once CI passes and reviews are in, in fact, there's no way to even enable automerge, it's just a way for a maintainer to make sure something gets automatically merged once the other criteria are in.

At today's IWG we decided on a new approach: select 2 reviewers for every PR (round-robin requests from the GitHub teams), but only require 1 review before merging.
We will continue our best practice of expecting at least 2 reviews on most non-trivial PRs, but the onus will be on us to identify these as such. The trivial bot-initiated PRs can get merged after 1 review.

Quick update, it turns out that the change to branch-protection rule only happened in the Foundations repo. This morning I changed it for this repo as well and made sure the two are consistent.


contractcourt: use the sweeper for HTLC offered remote timeout resolu…

…tion
In this commit, we bring the timeout resolver more in line with the success resolver by using the sweeper to handle the HTLC offered remote timeout outputs. These are outputs that we can sweep directly from the remote party's commitment transaction when they broadcast their version of the commitment transaction.
With this change, we slim down the scope slightly by only doing this for anchor channels. Non-anchor channels will continue to use the utxonursery for this output type for now.

I think we need to handle the case where there's already a force close in the process and the output has already been offered to the utxo nursery. In that case, during the startup, we need to delete it from the nursery and offer it to the sweeper?

My idea to handle that is if the close is already in process, and offered, then this proceeds as normal (re the incubated field). I fixed a unit test issue, but need to see why the itest is failing rn.

Pushed up a new version, itests+unit tests should be passing now.
It also starts to send all new remote HTLC timeout outputs to the sweeper (prior commit was just taproot outputs).

I think we need to handle the case where there's already a force close in the process and the output has already been offered to the utxo nursery. In that case, during the startup, we need to delete it from the nursery and offer it to the sweeper?

With the latest version, I modified the logic slightly:

We no longer attempt to set outputIncubated to true, nor checkpoint (needed to change some tests as now there's only a single checkpoint).
As a result, we'll always re-offer the direct expired HTLC outputs to the sweeper.
Post upgrade, if an existing HTLC has already been offered to the sweeper, then outputIncubated will be true, skipping the section that attempts to re-offer the output.

I also needed to make a change to the way we generate reports for outputs. Previously it would skip asking the CNCT for the report if SignDetails was nil, instead assuming the nursery would have the data necessary to generate a report. Now we'll only ask the nursery if SignDetails is nil and SignedTimeoutTx is not nil (only non-anchor channels fall into this bucket).


devnum doesn't consistently identify a device

While a device's "devnum" field changes each insertion/boot, making it hard for a program to identify a given device/sensor from the JSON output, a device's USB port-identifier reflects where it's plugged-in.
I've got this PR that adds a JSON field "port" to reliably associate a device with a USB socket. Would it be worthwhile to switch this PR to this repo?

@mrj As far as I'm concerned, that would be a nice feature.

@mrj there's not a lot of activity here.  Your change has been added to ccwienk/temper, though, which publishes to PyPI.  I'd like to stay in sync with this one, but it may be abandoned.


Menu: make checked items more clear

Refs: #52854
I find the current indicator is too subtle and also should be to the left:

Compared to native:

@bpasero see experiment branch for use of svg. obviously it needs to pick up theme color, right now it is  just set up for a basic light theme. please comment on the look of the svg (sourced from @roblourens settings editor), placement, and margins of the menu to adjust.

@sbatten yeah looks good in light theme:

But probably needs a matching icon for dark theme:


Add optimization for generating tangents in mikktspace.

genTangSpace was taking 70% of the time, we want to reduce it to 30% of the time.
Test Plan
Test a project with three copies of the same load. Compare before and after. Check correctness.

This causes tangent generation to crash.
Office_chair.glb.zip

I pushed a rebase to master to see if that affects the mesh appearance.

The flat areas now show correctly. Needs a performance retest.

Latest revision of this PR compared to master:

Before
After

59.5 ms
28.9 ms

Before
After

Currently working on:
core/math/vector3.h:395:4: runtime error: division by zero
core/math/vector3.h:396:4: runtime error: division by zero
core/math/vector3.h:397:4: runtime error: division by zero
servers/rendering_server.cpp:649:24: runtime error: nan is outside the range of representable values of type 'short unsigned int'
thirdparty/misc/mikktspace.c:1889:21: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int'
thirdparty/misc/mikktspace.c:646:2: runtime error: -nan is outside the range of representable values of type 'int'
Segmentation fault (core dumped)
FATAL ERROR: Godot has been crashed.

The handling of the w component in the SIMD code is a bit inconsistent, on SSE it should be ignored for all operations so denormal/NAN/INF should only cause performance regression. However, on NEON the w component is implicitly used by horizontal sum operations.
There seems to be a workaround for vadd() which zeroes the w component, but this feels a bit incomplete.
float32x4_t result = vaddq_f32(v1, v2);
return vsetq_lane_f32(0.0f, result, 3);

I'd remove that and make sure that w is always zero for all operations by:

Adding an assert in vload() to make sure that v->w == 0
vadd/vsub/vmul/vmin/vmax all preserve the zero without an issue
vscale/vdiv does not as they may introduce NAN values, so they should force the w component to zero with the above workaround

Alternatively you could let the w component be garbage and only make sure it's zero before passing the vector into vaddvq_f32().
Also I noticed that Normalize() is semantically different from the original in the new scalar and SSE code path: The original is specified as vscale(1 / Length(v), v) and currently scalar/SSE calculate it as v/Length(v). With the modifications above it could be changed back simply to:
static SVec3 Normalize( const SVec3 v )
{
    return vscale(1 / Length(v), v);
}

Regarding the visual issues one way of verifying whether the issue is in vectorized code or somewhere else is to force ARCH_SSE to be 0 on an x64 platform, I personally don't have much time to work on this currently so that I could debug the issue. I think ARM would probably benefit from an abstracted define as well so it would be easy to toggle between the scalar and vector code path on that platform.

Discussed splitting simd and callback fixes into two different pr.

I have split the simd code to the mikktspace-optimization-simd branch.

@akien-mga Is there a how-to generate the patch on third party code mikktspace?

Commit unmodified upstream code.
Make changes.
git diff > patches/name.patch
Commit changes + patch.

@Calinou I was trying to test performance, but I wasn't able to use test_generate_tangents_obj_import.zip because the normal debug mode is broken. Can you confirm and maybe run the performance test.

Normals have still regressed with the latest revision of this PR:

Thanks I wanted to confirm that normals are broken in this pr. I was suspecting something with the normals

The normals should be fine now.

The normals should be fine now. Can you try if possible again?

Would it be possible to explain what change was made to the code to improve the normals? That would assist me in understanding the code. I'm having trouble locating the differences compared to the revision Calinou tested on.

Here is the diff https://github.com/godotengine/godot/compare/5035d24d6f24d26d5c1d936deec8e56d7caf2628..7706099a14b2b52e17f04470a320d8e9bd99d59e

Here is the diff https://github.com/godotengine/godot/compare/5035d24d6f24d26d5c1d936deec8e56d7caf2628..7706099a14b2b52e17f04470a320d8e9bd99d59e
Note the part with the index.

@fire This diff appears to be backwards: The current version of the code seems to be on the left side of the diff for me. Can you confirm?
Also, these lines of code are incorrect:
	if (!(format & Mesh::ARRAY_FORMAT_NORMAL)) {
		index();
	}

The and should be against Mesh::ARRAY_FORMAT_INDEX, not ARRAY_FORMAT_NORMAL

@lyuma I can't see any of the changes you're referring to in the current code.

I am confused because Calinou stated that there was a regression.
You then said to try again, despite no commits since then, and so I asked what had changed. I clicked the link you sent and saw the diff I commented on
but you claim that change you linked me evidently isn't there, so I am back to being confused about what changed and what fixed the normals. github does not show any commits since Calinou tested the normals.
Anyway none of that matters much at this point. What I really want to see is a good screenshot of the mesh Calinou is trying which you claim has been fixed. I think they attached it earlier.
and more broadly speaking, if it is true that the normals issue was fixed as you claimed in the earlier comment, what are the remaining blockers for getting this change merged?

Is this ready?

Let me run it through my test cases.

Ok, I am trying to follow this. I just want to confirm I should be working in the salvage/mikktspace-optimization branch from https://github.com/V-Sekai/godot/tree/salvage/mikktspace-optimization to salvage this change?
For the change above, I am seeing the change to resource_importer.cpp is current.
The change to surface_tool.cpp is not. Or, @lyuma comment holds true (the diff is backwards)?
Otherwise, I do see the changes to stuff in mikktspace. Oddly, it appears the normals look correct but I expected them to look wrong from the comments:

Unsure what to make of this now.


Bt shell improvements

Add command to print connection info.
Handle registering authentication callback error code.

@joerchan thanks! can you post a snippet of the output of the info command?

@joerchan thanks! can you post a snippet of the output of the info command?

Peer address: 54:9c:a7:fb:82:77 (random)
Type: LE, Role: slave, Id 0
Initiator  address: 55:94:4f:05:93:72 (random)
Advertiser address: 54:9c:a7:fb:82:77 (random)
interval: 0x0028 (50.00 ms)
latency: 0x0000 (0.00 ms)
timeout: 0x002a (420 ms)

@joerchan thanks! can you post a snippet of the output of the info command?

Peer address: 54:9c:a7:fb:82:77 (random)
Type: LE, Role: slave, Id 0
Initiator  address: 55:94:4f:05:93:72 (random)
Advertiser address: 54:9c:a7:fb:82:77 (random)
interval: 0x0028 (50.00 ms)
latency: 0x0000 (0.00 ms)
timeout: 0x002a (420 ms)

So the info struct is really carrying the init_addr and resp_addr as src and dest? That is very misleading imo, we should probably rename these to avoid confusion in the future.
Btw, I would have assumed that by being slave the peer address would be initiator or is the problem here is that bt_conn_get_info swaps src/dst depending on the role, so we got src = resp_addr and dst = init_addr, no wonder it is hard to understand the meaning of these.

Ouch looks like I managed to edit your post @joerchan instead of quote it, my bad.

So the info struct is really carrying the init_addr and resp_addr as src and dest? That is very misleading imo, we should probably rename these to avoid confusion in the future.

Yes, that is the confusing. Also since the function bt_conn_get_dst exists, it is unclear what is the correct way. The functions seems to have been added at the same time, and also before privacy.
Maybe this was not the intention of the APIs, and we should clean it up?  There has been problems in the stack as well, see #17981.

Update info object to carry source identity and destination identity addresses in src/dst. added local/remote for on-air addresses.
Output looks like this: (after pairing)
Type: LE, Role: master, Id: 0
Remote address: c1:f6:39:6f:90:c5 (random) (identity)
Local address: f1:c1:d9:aa:49:e2 (random) (identity)
Remote on-air address: 5b:ce:8b:94:62:69 (random) (resolvable)
Local on-air address: 54:08:d1:10:57:fa (random) (resolvable)
interval: 0x0028 (50.00 ms)
latency: 0x0000 (0.00 ms)
timeout: 0x002a (420 ms)


我要如何获得预测文件呢

Prerequisites
Before submitting your question, please ensure the following:

[ ] I am running the latest version of PowerInfer. Development is rapid, and as of now, there are no tagged versions.
[ ] I have carefully read and followed the instructions in the README.md.
[ ] I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).

Question Details
我如果需要对模型进行训练后再使用powerinfer，那如何获得预测文件呢，是否有这种方法
Additional Context
Please provide any additional information that may be relevant to your question, such as specific system configurations, environment details, or any other context that could be helpful in addressing your inquiry.

Now openbmb has open sourced a sparse model, including pytorch version and gguf version, of which gguf can be directly inferred in powerinfer. I use llamacpp to convert the pytorch model into gguf. At this time, the gguf model cannot be inferred by powerinfer. Is there a way to solve it? All in all, my question is if I have a pytorch sparse model, how to convert it into a gguf model that powerinfer can use


Rate Limit Error with OpenAI API When Using VisionAgent

Description:
I am encountering a rate limit error when trying to use the VisionAgent. The error occurs during the initialization of the VisionAgent and seems to be related to the OpenAI API quota. Below are the details of the error and the steps I have taken to troubleshoot the issue.
Please note (I am a Plus member)
Error Details:
INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 429 Too Many Requests"
INFO:openai._base_client:Retrying request to /embeddings in 0.948247 seconds
INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 429 Too Many Requests"
INFO:openai._base_client:Retrying request to /embeddings in 1.822015 seconds
INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 429 Too Many Requests"
Traceback (most recent call last):
  File "/Users/moutasemhome/Desktop/from vision_agent.py", line 2, in <module>
    agent = VisionAgent(verbosity=2)
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/vision_agent/agent/vision_agent.py", line 429, in __init__
    Sim(T.TOOLS_DF, sim_key="desc")
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/vision_agent/utils/sim.py", line 46, in __init__
    self.df["embs"] = self.df[sim_key].apply(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/pandas/core/series.py", line 4924, in apply
    ).apply()
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/pandas/core/apply.py", line 1427, in apply
    return self.apply_standard()
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/pandas/core/apply.py", line 1507, in apply_standard
    mapped = obj._map_values(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/pandas/core/base.py", line 921, in _map_values
    return algorithms.map_array(arr, mapper, na_action=na_action, convert=convert)
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/pandas/core/algorithms.py", line 1743, in map_array
    return lib.map_infer(values, mapper, convert=convert)
  File "lib.pyx", line 2972, in pandas._libs.lib.map_infer
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/vision_agent/utils/sim.py", line 47, in <lambda>
    lambda x: get_embedding(self.client, x, model=self.model)
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/vision_agent/utils/sim.py", line 15, in get_embedding
    return client.embeddings.create(input=[text], model=model).data[0].embedding
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/resources/embeddings.py", line 114, in create
    return self._post(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 1240, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 921, in request
    return self._request(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 1005, in _request
    return self._retry_request(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 1053, in _retry_request
    return self._request(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 1005, in _retry_request
    return self._retry_request(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 1053, in _retry_request
    return self._request(
  File "/Users/moutasemhome/vision_agent/lib/python3.10/site-packages/openai/_base_client.py", line 1020, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

Steps Taken for Troubleshooting:

Verified the OPENAI_API_KEY is set correctly.
Ensured that the API key has sufficient quota.
Implemented retries with exponential backoff to handle rate limits.

Code Snippet:
from vision_agent.agent import VisionAgent

agent = VisionAgent(verbosity=2)
code = agent("What percentage of the area of the jar is filled with coffee beans?", media="jar.jpg")

def get_agent_response(agent, query, media):
    retries = 5
    for i in range(retries):
        try:
            return agent(query, media=media)
        except openai.error.RateLimitError as e:
            print(f"Rate limit exceeded, retrying in {2 ** i} seconds...")
            time.sleep(2 ** i)
        except Exception as e:
            print(f"An error occurred: {e}")
            break
    raise Exception("Rate limit exceeded, all retries failed.")

# Initialize VisionAgent
agent = VisionAgent(verbosity=2)

# Query the agent
try:
    response = get_agent_response(agent, "What percentage of the area of the jar is filled with coffee beans?", "jar.jpg")
    print(response)
except Exception as e:
    print(f"Failed to get a response: {e}")

Additional Information:

OpenAI API usage and limits can be checked at https://platform.openai.com/settings/organization/limits.
The error seems to be related to the rate limits set by the OpenAI API.

Questions:

Is there a way to handle rate limits more effectively within the VisionAgent?
Are there any recommended approaches to optimize API calls to avoid hitting rate limits?

Environment:

Python Version: 3.10
Operating System: macOS

Thank you for your assistance!

This error happens when you are using the Free Tier for the OpenAI API. The OpenAI API is different than the ChatGPT paid subscription (~$20/month) and you must buy at least $5 of API credits to enable it https://platform.openai.com/docs/guides/rate-limits/usage-tiers?context=tier-free

Yes, that worked! Thanks Dillon


Provide a way to self assign

Testing #5100

You mean you want a dedicated entry in the Assignee quick pick that says "Self Assign"?

We also have a setting "githubPullRequests.assignCreated": "${user}"

You mean you want a dedicated entry in the Assignee quick pick that says "Self Assign"?

Yes.

I think this is a good idea. @alexr00 how about Assign Yourself as the first item followed by a separator? This is the same wording as on GH web.

To verify:

Install the pre-release version of GitHub Pull Requests and Issues
Open the description/overview of a PR
Add an assignee. Verify that you see an "Assign yourself" option at the top of the quick pick.

I don't think I see it. Does it need to be my own PR?

I see this:

And I see my self as the first option:

My verification steps were incorrect:

Install the pre-release version of GitHub Pull Requests and Issues
Open the description/overview of a PR Checkout a topic branch, make a commit, and run the command "Create Pull Request"
Add an assignee from the "Create" view. Verify that you see an "Assign yourself" option at the top of the quick pick.

Just verified, it works:

Although I see myself twice in that list now


Tutorial Page abap-websocket-rfc-bc.md Issue. PROD

Tutorial issue found: https://github.com/sap-tutorials/Tutorials/blob/master/tutorials/abap-websocket-rfc-bc/abap-websocket-rfc-bc.md  - file path is not unique. Your tutorial was not created.
Affected server: PROD

Tutorial was moved to a new repository.


No --prod or --release build on linux

when $> ionic build --prod --release android command executed giving error
✗ You cannot run iOS unless you are on Mac OSX.
What behavior are you expecting?
on linux there is no way to compile in production or release mode
Steps to reproduce:

$> ionic build --prod --release android
$> ionic build --prod  android
$> ionic build --release android

Which @ionic/app-scripts version are you using?

ionic info

Your system information:
Cordova CLI: 6.5.0
Ionic Framework Version: 2.3.0
Ionic CLI Version: 2.2.2
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.2.5
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.10
Node Version: v6.10.1
Xcode version: Not installed

Try ionic build android --prod --release

that works; thanks.


[flutter_svg] Migration from the AssetBundlePictureKey apis

Imported from https://github.com/dnfield/flutter_svg/issues/1070
Original report by @dovahkiin98 on May 28, 2024
I have code using classes like AssetBundlePictureKey, ExactAssetPicture, etc. But I can't seem to find any migration guide for that code?
Can someone help me?
class DynamicAssetPicture extends ExactAssetPicture {
  final int cacheHash;

  DynamicAssetPicture(
    super.assetName,
    super.decoderBuilder,
    this.cacheHash,
  );

  @override
  Future<OverrideSvgKey> obtainKey(PictureConfiguration picture) {
    return SynchronousFuture<OverrideSvgKey>(
      OverrideSvgKey(
        bundle: bundle ?? picture.bundle ?? rootBundle,
        name: keyName,
        colorFilter: colorFilter,
        cacheHash: cacheHash,
      ),
    );
  }

  @override
  bool operator ==(Object other) {
    if (other is DynamicAssetPicture) {
      return cacheHash == other.cacheHash;
    }

    return false;
  }

  @override
  int get hashCode => Object.hash(super.hashCode, cacheHash);
}

class OverrideSvgKey extends AssetBundlePictureKey {
  final int cacheHash;

  const OverrideSvgKey({
    required super.bundle,
    required super.name,
    super.colorFilter,
    required this.cacheHash,
  }) : super(
          theme: const SvgTheme(),
        );

  @override
  bool operator ==(dynamic other) => hashCode == other.hashCode;

  @override
  int get hashCode => Object.hash(super.hashCode, cacheHash);
}

For help requests please use a community chat channel and not the issue tracker.


Adding Turbo Support

Description
We would need to add Turbo support to be able to use these charts in our pages. Attempting a possible solution that should enable Turbo.
Reference to the discussion on the gem's repo.

You should make this PR upstream 👍


Add privacy manifest for iOS

Connection with issue(s)
Resolve issue #1909
This adds an empty privacy manifest. I could not find this library using any of the listed methods from https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api
This is similar to the changes seen in the first party Flutter plugins https://github.com/pichillilorenzo/flutter_inappwebview/issues/1909
Testing and Review Notes
I'm not really sure how to test this. I guess if this builds it's fine?

https://github.com/pichillilorenzo/flutter_inappwebview/pull/2028 5 minutes apart :)

#2028 5 minutes apart :)

when this pr can be confirmed

@pichillilorenzo please confirme

@all-contributors please add @ueman for code


[ci:component:github.com/gardener/terraformer:v2.23.0->v2.26.0]

failed to retrieve release-notes

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[release-0.58] Backport 8521 'TTL field for VMExport objects'

What this PR does / why we need it:
The release was cut on Oct 3rd, but we would consider it an issue if a user wouldn't be able to limit the lifetime of an export:

No reason to keep serving after import on the other end took place
Security concerns

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Backport #8521
https://bugzilla.redhat.com/show_bug.cgi?id=2136534
Special notes for your reviewer:
Release note:

BugFix: Add an option to specify a TTL for VMExport objects

Just to have a bidirectional link https://github.com/kubevirt/kubevirt/pull/8521

/lgtm

/lgtm
/approve

/retest

/retest

/retest


Show Student IDs in Age Histogram

Adds Student ID to the hover label using px.bar interface instead of px.histogram. This implements #19

This needs to be checked on other computers

@Carifio24, when you get a chance, can you please test this branch out on your system? You click on the "data" tab to get to the age histogram for the class. My computer handled some things differently from @johnarban's, so I thought it would be good to have one more check on a non-Mac computer.
If it checks out, you can go ahead and merge this PR.

This looks good on my computer. My only comment would be that we should reset the bounds of the histogram each time that we change classes.
For example, if I go from class 194 -> 188, it looks like the histogram is empty. But it's really just an issue with the axes - if I hit the Plotly home button and reset the axes, I can see that there's data there.


Preferences panel outside of project

If possible I think the ctrl+, shortcut should work outside the project - it's minor but there have been a few times I've tried to do it and it doesn't work so yee :)

I suppooose this is possible


Maint-1.2: Guestuser can not search in public collection when the records are also in restricted collections

Hallo,
we have on our test system with Maint-1.2 Invenio the following behaviour:
From 1.1 to 1.2 we lose the possibility, that unauthorized user (guest) can search in any public collections. In Invenio 1.1 the guest got the full result, e.g. 32000 records in the simple search. Now with 1.2 the result is Zero, only the authorities are searchable. I see in invenio.conf, the CFG_WEBSEARCH_VIEWRESTRCOLL_POLICY = ANY is not more ALL like in 1.1, but in our local conf in both versions was CFG_WEBSEARCH_VIEWRESTRCOLL_POLICY always ANY. In the moment, I have no ideas more.
Additionally, all records have the red "Restricted" flag on the left side now!
A simple example: We have the two collections:
61016	UNRESTRICTED	collection:"UNRESTRICTED"	No	Yes	No	en,	3:Restricted
61056	FullTexts	collection:"FullTexts" and collection:"UNRESTRICTED"	No	No	No	en,	OK
UNRESTRICTED is a restricted collection and FullTexts not, this should be public.
One record has both 980__a:UNRESTRICTED and 980__a:FullTexts
In Maint-1.1, the record is public for all users and searchable because of the minimum one public collection.
In Maint-1.2, the record is public but has the Restricted flag and is not searchable.
The CFG_WEBSEARCH_VIEWRESTRCOLL_POLICY = ANY is in both cases equal because of our invenio-local.conf.
This should be related to #1315
@tiborsimko @aw-bib

Appendix:
In the search_engine.py, function check_user_can_view_record, the if statements are different to main-1.1. This was my first idea to check the differences, but I'm not the expert.

Looks similar to #1511

Behaviour looks similar to #1511


Add git tag for 2.0.0b2

hi,
Can you add 2.0.0b2 tag on this commit:
https://github.com/lxc/pylxd/commit/b96a4bd24c97d80175d13587b46bc98d9878f3b0
Thanks,

Done.


choreupgrade some dependencies

Proposed changes
Issue Number: close #xxx

run buildall

run buildall

run P0

run p0


ERROR TS6054: File<EMAIL_ADDRESS>not found.

@willemneal @jtenner hi, i am experiencing a similar issue as @zimmah does in #364 .
The code can be found here: https://github.com/0xbe1/graph-ts-playground/pull/2
basically, in my example.spec.ts, I try to import the @graphprotocol/graph-ts library, however it shows error:
$ yarn test
yarn run v1.22.17
warning package.json: No license field
$ asp --verbose
       ___   _____                       __
      /   | / ___/      ____  ___  _____/ /_
     / /| | \__ \______/ __ \/ _ \/ ___/ __/
    / ___ |___/ /_____/ /_/ /  __/ /__/ /_
   /_/  |_/____/     / .___/\___/\___/\__/
                    /_/

⚡AS-pect⚡ Test suite runner [6.2.4]

[Log] Loading asc compiler
Assemblyscript Folder:assemblyscript
[Log] Compiler loaded in 308.139ms.
[Log] Using configuration /Users/yiksanchan/source/0xbe1/web3/graph-ts-playground/as-pect.config.js
[Log] Using VerboseReporter
[Log] Including files: assembly/__tests__/**/*.spec.ts
[Log] Running tests that match: (:?)
[Log] Running groups that match: (:?)
[Log] Effective command line args:
  [TestFile.ts]<EMAIL_ADDRESS>--runtime incremental --debug --binaryFile output.wasm --explicitStart --use ASC_RTRACE=1 --exportTable --importMemory --transform<EMAIL_ADDRESS>
ERROR TS6054: File<EMAIL_ADDRESS>not found.

 import {BigInt} from "@graphprotocol/graph-ts"
                      ~~~~~~~~~~~~~~~~~~~~~~~~~
 in assembly/__tests__/example.spec.ts(1,22)

[Error] There was a compilation error when trying to create the wasm binary for file: assembly/__tests__/example.spec.ts.
[1 parse error(s)]
error Command failed with exit code 1.

Any help? Thank you!

Looking into it, they didn't follow the convention of placing their main file in assembly/index.ts, nor did they add "ascMain": "index.ts" to their package.json.
I tried adding ascMain and it fixed it. So either try forking their repo, adding that, and then depending on their github repo. Or make a PR to their repo.
The newest version 0.20.* of AS removes ascMain. But as of now as-pect doesn't support the newest version.

Thank you so much!!! I wonder when will as-pect support 0.20.* if that's the plan? At the same time I will PR on their repo.

I need to add a note to the README but this project is currently in maintenance mode, with no plans for future development.  Though I would gladly help transition to anyone that would like to work on it.

Hi, @willemneal ! would you be able to tell us what would need to be updated to make this package work with AS 0.20.*?


Making method public and adding annotation can lead to build failure

Suppose there is a protected (or package-private) method. An intention is invoked and:
a) everything is OK
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
b) IDE sees the method as private and shows a warning/error on a method call in a child class
@com.google.common.annotations.VisibleForTesting (Support Library < 25.0.0)
@android.support.annotation.VisibleForTesting
It should not be possible to invoke intention on package-private and protected methods when it leads to making them private in production code. The method's visibility should be changed to public instead by using IDE's built-in intention actions.

I thought that could be a problem, but it turned out that IDE was smart enough to not mark child classes' method calls as warning.


Fix footer forums link

See https://forum.image.sc/t/openmicroscopy-org-forum-link/40110

Conflicting PR. Removed from build WWW-merge#1586. See the console output for more details.
Possible conflicts:

PR #393 jburel 'WIP: Help replacement'

_includes/footer.html

--conflicts

Builds well, and the link is working as expected on https://snoopycrimecop.github.io/www.openmicroscopy.org/
Ready to merge fmpov

merging so it will be included in the next release of website


AWS: Create role for cloud-network-config-controller

This is a new component that was added in the 4.10 cycle.
Ref: https://github.com/openshift/cloud-network-config-controller/pull/6

Apart from this, we also need the following two changes for Hypershift to work with 4.10:

https://github.com/openshift/cluster-network-operator/pull/1268
https://github.com/openshift/cloud-network-config-controller/pull/13

/lgtm


[WIP] Export to Codesandbox

Related Issue:
#323
Summary:
Exporting to Codesandbox working in branch export-to-codesandbox. Just the mentioned issue with the image not fixed yet in Codesandbox. I have to check what's wrong with it.
I'm creating this because I'd like to get a first feedback if this is going into the right direction. If it's OK then I'll start to refactor the business logic from the component into export-codesandbox.saga.
Save button styling at the end of the dialog is a bit messed. I have to check why this happened.
I think the export flow is OK like it is in the branch. The Codesand token is saved in app-settings.reducer so it's available for every project.
TODOs

[x] Improve styling of save button & export section (more padding)
[x] Check if we should hide the token and only display a check mark that it's available.
[x] Make a copy sandbox url to clipboard button for easier sharing. (Maybe optional, not sure if it's needed) - not needed as there is an open button then the user can use the share options inside Codesandbox
[x] Refactor to export-codesandbox.saga
[x] Add unit tests
[x] Check Codesandbox logo issue in the exported sandbox
[ ] Add logout test
[ ] Check flow errors in export.saga & test - multiple $FlowFixMe added.
[ ] Add try/catch blocks around the spawn of codesandbox - shouldn't happend but we need to show an error message like Export failed. Please check browser console for more details. & also finish exporting.

Screenshots/GIFs:

I have not dived into the code yet to review but I am trying to test out the flow in Guppy and I'm getting ENOENT when trying to export... is that functionality still WIP? It also seems to trigger when I hit the Logout button as well, which is strange.

OK, I think this is ready for a review.
I have two smaller thing open but it would be great to get a feedback to it.
The UI is not perfect yet. If you're having any ideas what should be improved please let me know.
What do you think? Is it OK to move the save button to the header of the modal (see screenshot above)?
I've moved it to save some space in the modal content - otherwise it wasn't fitting. Sure adding a scroll would help but I don't like to have the save button of screen.
Or maybe we could add the save bottom to a bottom bar that's permanently visible and use a scrollbar.
@melanieseltzer where do you get that message? Is this happening after triggering export action?

@AWolf81 Here's a recording...

The upload never completes and the button stays spinning. And as you can see it's also triggering about clicking the Logout button.

Seems like codesandbox cli is missing. Have you installed it with a yarn call?
If it's installed and still happening I think that could be a path issue.

@AWolf81 🤦♀ That was it, whoops.
I'm not too familiar with Codesandbox and the CLI, do you know why I'm getting an infinite loop of tokens? Every time it finds error with the token and prompts me to get a new one. Am I doing something wrong?

My first shot at getting this running resulted in getting stuck with a loading spinner on the Export to Codesandbox button and no sandbox created on their end. Error message is spawn codesandbox ENOENT, running on Ubuntu 18.04. I'll update this comment as I figure things out.

If the looping issue is due to codesandbox cli, then we can potentially fork our own version and just set a fallback if something goes wrong, maybe log the intended URL to the console and have the user ctrl+click on it instead. I'll dig into this further and see if I can replicate it.


Test case and proposed fix for HHH-12011

Test case and proposed fix for HHH-12011 - Field annotated with target TYPE_USE break metamodel generation, see https://hibernate.atlassian.net/browse/HHH-12011
We probably shouldn't use com.sun.tools.javac.code.Type.AnnotatedType, but I found no other solution short of parsing the output of toString().

First, using SUN classes is not the way to go and the code doe not even compile.
If we modify it to:
if ( type.getKind().isPrimitive() ) {
	if ( type.getKind().isPrimitive() ) {
		typeName = context.getTypeUtils().getPrimitiveType(type.getKind()).toString();
	}
}

The test still fails:
TypeUseAnnotationEntity_.java:3: error: <identifier> expected
import (@org.hibernate.jpamodelgen.test.annotation.TypeUseAnnotation :: java.lang.Byte);
      ^

This PR is superseded by https://github.com/hibernate/hibernate-orm/pull/2270.


feat: add sharded redis cache adapter

Why
This PR implements a sharded Redis cache adapter, where cache keys are spread evenly across a user-configurable set of redis instances.
Due to the user-configurable nature of this, any consistent hashing scheme and configuration can be employed by the library consumer. One good one might be xxhashjs when used in production.
Due to the short-lived nature of most entity cache entries (and the fact that they are cache and not persisted data), changing the number of shards is a bit easier since we can just change the cache key at the same time. This PR provides a mechanism for doing that.
How

Clean up the GenericEntityCacheAdapter concept (move it into the core package).
Introduce new ShardedGenericRedisCacher.

In a follow-up PR, we can make the GenericRedisCacher the n=1 case of ShardedGenericRedisCacher to reduce code duplication.
Test Plan
Run all tests.

One alternative simpler version of this might be the following:

Change the entity redis cache adapter to operate on a Redis-like interface
Create a new object, ShardedRedis that implements that interface and decides which instance to send it to

The upside here is that it is less code most likely. The downside is that it muddies the redis multi transaction a little bit (no longer transactional for all keys, though this PR also has that downside).

Moving this back to draft as we'll be going with the other option for now.


Update to latest from upstream 5.6

Signed-off-by: Herman van Hazendonk<EMAIL_ADDRESS>

There is a module version bump is the middle of these commits; will that be a problem?

Shouldn't really cause issues, but will see when I build it :)


Schemas v3.83.0

What is the context of this PR?
Latest schemas: https://github.com/ONSdigital/eq-questionnaire-schemas/releases/tag/v3.83.0
How to review
Ensure the correct version is loaded when running make build

Replaced by v3.83.1


add multiple jdks to travis build

Cascade was seeing errors building against JDK 8, so we should also make sure that our other projects compile against JDK 8, too. See https://github.com/paypal/cascade/pull/84

LGTM


Show diff on Type Mismatch error

Quick Summary:
When getting a Type mismatch error between 2 records it would be nice to make the error little bit more obvious (show the diff)
currently it looks like
Detected problems in 1 module.
-- TYPE MISMATCH --------------------------------------------------- src/Map.elm

Something is off with the body of the `tiles` definition:

93|         List.concat <| cartesianMap tileXY xTiles yTiles
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The body is:

    List
        { coordinates : { x : Int, y : Int }
        , offset : Tile.Offset
        , size : Int
        , url : Tile.Url
        }

But the type annotation on `tiles` says it should be:

    List Tile

Note: Read <https://elm-lang.org/0.19.1/implicit-casts> to learn why Elm does
not implicitly convert Ints to Floats. Use toFloat and round to do explicit
conversions.

More obvious error
(the coordinates should be { x : Float, y : Float }
The body is:

    List
        { coordinates : { x : Int, y : Int }
                        ^
                        |   Type Mismatch!
        , offset : Tile.Offset
        , size : Int
        , url : Tile.Url
        }

But the type annotation on `tiles` says it should be:

    List Tile

I just realised that the diff is coloured to point me the right direction


view all participants for your project

This is not possible at the moment. A project admin should be able to see this. Maybe filter general user overview in admin?

Fixed


feat(destination/fb): Optionally send phone field

Add support for sending the hashed phone from the user traits following Meta spec.

Thanks, @denisroldan! @absorbb will merge it by the beginning of the next week


License?

package.json says MIT, but there's no LICENSE file. Any chance of adding one? I'd really like to try this out at work but can't unless the license is crystal clear.

Sorry about that.  Good to go!  Thanks for the heads up.


documentation?

Hello,
nanoc-plate looks really cool except I can't find any documentation for how to actually use it. Is there any?

@dtenenba There's no documentation right now, sorry, I'm too busy. But I promise I will add some documentation within this month.
I was wondering about how you find this project cause I didn't announce this publicly.

It's the first hit for nanoc on docker hub.

@dtenenba Oh, I got you.
I've used nanoc to build multiple web sites, so I think it may be helpful if I can make an awesome(hopefully) nanoc bundle, documents some tips and experiences.
So I build this boilerplate project last month. And I'm just too busy on my personal project this month.


2021 updates

2021 updates

Docs Build status updates of commit 5da7c25:
:warning: Validation status: warnings

File
Status
Preview URL
Details

dynamics-gp/payroll/CAN18YETax.md
:warning:Warning
View
Details

dynamics-gp/payroll/CAN18YETax.md

Line 385, Column 1: [Warning-file-not-found] Invalid file link: 'media/MB2020.JPG'.
Line 336, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/FED2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 369, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/AB2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 377, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/BC2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 385, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/MB2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 393, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NB2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 401, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NL2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 409, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NT2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 417, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NS2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 425, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NU2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 433, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/ON2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 440, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/PE2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 456, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/SK2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 464, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/YT2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit f558647:
:warning: Validation status: warnings

File
Status
Preview URL
Details

dynamics-gp/payroll/CAN18YETax.md
:warning:Warning
View
Details

dynamics-gp/payroll/CAN18YETax.md

Line 336, Column 1: [Warning-file-not-found] Invalid file link: 'media/FED2021.JPG'.
Line 369, Column 1: [Warning-file-not-found] Invalid file link: 'media/AB2021.JPG'.
Line 377, Column 1: [Warning-file-not-found] Invalid file link: 'media/BC2021.JPG'.
Line 385, Column 1: [Warning-file-not-found] Invalid file link: 'media/MB2021.JPG'.
Line 336, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/FED2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 369, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/AB2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 377, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/BC2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 385, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/MB2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 393, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NB2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 401, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NL2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 409, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NT2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 417, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NS2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 425, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NU2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 433, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/ON2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 440, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/PE2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 456, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/SK2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 464, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/YT2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 346b345:
:clock10: Pending: waiting for processors (9 builds ahead of you)
:warning: Docs Build is busy, currently there are 9 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 346b345:
:warning: Validation status: warnings

File
Status
Preview URL
Details

dynamics-gp/payroll/CAN18YETax.md
:warning:Warning
View
Details

dynamics-gp/payroll/CAN18YETax.md

Line 336, Column 1: [Warning-file-not-found] Invalid file link: 'media/FED2021.JPG'.
Line 369, Column 1: [Warning-file-not-found] Invalid file link: 'media/AB2021.JPG'.
Line 377, Column 1: [Warning-file-not-found] Invalid file link: 'media/BC2021.JPG'.
Line 385, Column 1: [Warning-file-not-found] Invalid file link: 'media/MB2021.JPG'.
Line 393, Column 1: [Warning-file-not-found] Invalid file link: 'media/NB2021.JPG'.
Line 401, Column 1: [Warning-file-not-found] Invalid file link: 'media/NL2021.JPG'.
Line 409, Column 1: [Warning-file-not-found] Invalid file link: 'media/NT2021.JPG'.
Line 425, Column 1: [Warning-file-not-found] Invalid file link: 'media/NU2021.JPG'.
Line 433, Column 1: [Warning-file-not-found] Invalid file link: 'media/ON2021.JPG'.
Line 439, Column 1: [Warning-file-not-found] Invalid file link: 'media/PE2021.JPG'.
Line 455, Column 1: [Warning-file-not-found] Invalid file link: 'media/SK2021.JPG'.
Line 463, Column 1: [Warning-file-not-found] Invalid file link: 'media/YT2021.JPG'.
Line 336, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/FED2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 369, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/AB2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 377, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/BC2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 385, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/MB2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 393, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NB2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 401, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NL2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 409, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NT2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 417, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NS2020.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 425, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/NU2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 433, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/ON2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 439, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/PE2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 455, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/SK2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.
Line 463, Column 1: [Suggestion-alt-text-missing] Missing alternate text for image 'media/YT2021.JPG'. Alt text is required for accessibility. NOTE: This Suggestion will become a Warning on 1/29/21.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


[FLOC-2786] Docker plugin get path API

Relevant Docker docs: https://github.com/docker/docker/blob/master/docs/extend/plugins_volume.md#volumedriverpath

LGTM. I don't think this needs another review. But please bounce back if there are changes required to make the tests pass.

Note that the one failing test was coverage which is no longer a required builder. I will merge when the tests have finished.


Icons are required for new Azure integration

The Azure provider and the Azure instance both need an icon. If you search on google images you will find each.
(Instance is a monitor with a sideways cube in it)
(Provider is a tilted rectangle divided into 4)

@miq-bot assign @dclarizio


[Question] Ngx-php internally use forks or threads ?

Hi,
I think that use threads, but I'll be sure.
Thank you.

So every ngx-php is a fork, and only process 1 req at a time.

Yes, sure that.


dep: upgrade redux to 4

Coverage remained the same at 87.282% when pulling 973653a39e853674f4c320949d06de52c0545b50 on dep/redux-4 into d1f0b11dc4b49c537f5b29d8e1b774fcc68a5280 on master.


feat: add mastodon link, resolves #15

PR Checklist

[x] Addresses an existing open issue: fixes #15
[x] That issue was marked as status: accepting prs
[x] Steps in CONTRIBUTING.md were taken

Overview
Added the Mastodon link, this issue is not yet labeled as accepting PRs, but it is a minimal change, so I figured I'd deliver it here, and as long as it works for you, you can decide whether to merge it or not.
Note: I added a target blank to the Slack link because I assume that the anchor tags with arrows are supposed to redirect you outside the app; could you let me know if it should be left as-is?
Screenshots

@allcontributors add @RNR1 for code


F12 goto declaration when invoked at cpp function definition

In Visual studio whith Resharp++, F12 can goto to declration when invoked from cpp function definition, and goto to definition when invoked from cpp declaration

/extC++


Fix ARMViolations for Microsoft.Resources

Fix ARMViolations for Microsoft.Resources

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-node

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

Automation for azure-sdk-for-java

@lmazuel Can you please take a look? Thanks

Hi @zjpjack somehow I missed your PR in my notification, which is unusual :(. Taking a look right now.

@lmazuel Replied your comments. Can you please take a look?

@zjpjack Added comments. Thanks!

@lmazuel For those comments about missing discription for display, I already had them in this PR, it is just below the display

Automation for azure-sdk-for-js


Instance Map class

I can't understand why I can't instantiate class Map.
This is a:

[ ] Bug Report
[ ] Feature Request
[x] Question
[ ] Other

Which concerns:

[x] flow-runtime
[ ] babel-plugin-flow-runtime
[ ] flow-runtime-validators
[ ] flow-runtime-mobx
[ ] flow-config-parser
[ ] The documentation website

What is the current behaviour?
const foo: Map = new Map;
as expected raises
InvariantViolation: Must specify two type parameters for Map.
but this one
const foo: Map <string, string> = new Map;
also raises an error
RuntimeTypeError: Value must be an instance of Map

What is the expected behaviour?
No error in one of examples above.

Which package versions are you using?
0.14.0

Same error here. Latest version of flow-runtime and  babel-plugin-flow-runtime.

I'm sorry to contribute to the infinite notifications that open source project like this has but I am tagging @phpnode (as someone I see as recently active committer) because this is very fundamental problem.
If there's not enough traction in flow-runtime, it would be nice to know so that the project that I use it with doesn't suffer.

In my case it was solved by disabling polyfills in babelrc:
		["transform-runtime", { 			"polyfill": false 		}],
That means, that flow-runtime correctly raises an error on different Map class implementations.
There should be some way to link flow-runtime Map class with polyfilled class, but I found no way to do it. In #82 @phpnode mentioned "libName" config option for "babel-plugin-flow-runtime" plugin, but haven't found it in docs or source code.

Sorry for the delay, as you say this happens because the Map that you're using is polyfilled and flow-runtime is looking for the real, non-polyfilled Map. The same problem happens when using e.g. Mobx. the answer is to override the predicate on the type context, like this:
import t from 'flow-runtime';
t.setPredicate('Map', input => input instanceof YourPolyfilledMap || input instanceof Map)


NIFI-11758: Added FileResourceService and used it in PutAzure*Storage…

… processors for local file upload

Summary
NIFI-11758
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[ ] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 17

Licensing

[x] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[x] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[x] Documentation formatting appears as expected in rendered files

During testing, I found it a bit cumbersome that the File Name and Blob Name name properties are on the processor while the source path is in the service. In my mind, they are logically connected, especially in this case. Purely from the user's point of view, I think it would be better to put these fields into the FileResourceService, though I understand it is not possible as it resides in a separate module. Tbh, I don't have a good idea to solve it atm, but I wanted to point it out.

Thanks for the feedback and testing @nandorsoma! I pushed an update that removes two utility methods and instead uses the functional Optional.map().orElse() approach. This seems more natural under the circumstances.
This optional approach to file transfer is somewhat outside the bounds of normal processing, given that the StandardFileResourceService allows reading directly from the file system, so I understand how the property organization may not be the most intuitive. The correct configuration does require aligning the Service File Path with the expected input values on a given FlowFile, but that seems reasonable given that standard usage patterns will not make use of this feature. There could be room for improvement in subsequent iterations, but at least the current approach avoids introducing new permission restrictions on the existing Processors.

Merging to main and support/nifi-1.x.


not able to mergeProps with connect.

Hi ,
I would like to access the reducer state and dispatch an action in the same component. i am looking for something like this...
const Home = connect((state,dispatch) => ({
createUserList: () => {
invokeUserListSaga('GET_REQUESTED');
},
getUserListState: () => {
return state;
}
}))(HomeContainer)
but when i get an error saying that dispatch is not a function and does not give reducers' state, any work around to this...?

This isn't a React Router issue.


Docs improvements

Some changes included here don't belong to this PR. They will disappear once we merge #2730.

Not ready for review yet. Just marked it as ready for review to see mewmba's docs previews :) (thanks steven @fundthmcalculus for those! <3 )

Why isn't the docs preview action firing?

Why isn't the docs preview action firing?

I need to get the new mkdocs-material token in.

@chiarapaskulin your demo docs site is up!


Implement recv() and recvmsg()

Implement recv() and recvmsg() function. But tls part is not implemented
and needs to be done in the future.

Does this looks better now?


Max known PV is now the Alonzo PV.

Currently was set to Mary, but worked because this was set one too high.

bors merge


I use remote host as kafka server, how can I configure the kafka server ip and port in kafka_spout options.

you can refer the example in setup package


Something wrong with training on lsun bedroom dataset

@ryanrussell @xcnick @feifeibear @junxu @jimmieliu
Hi gays!
Thanks for your great works.
I have train a new model by use of colossalAL, and my dataset is lsun_bedroom. But i seem to have some problems wit it.
This is my config:
model:
base_learning_rate: 1.0e-04
target: ldm.models.diffusion.ddpm.LatentDiffusion
params:
linear_start: 0.00085
linear_end: 0.0120
num_timesteps_cond: 1
log_every_t: 200
timesteps: 1000
first_stage_key: image
# cond_stage_key: txt
image_size: 64
channels: 4
cond_stage_trainable: false   # Note: different from the one we trained before
conditioning_key: crossattn
monitor: val/loss_simple_ema
scale_factor: 0.18215
use_ema: False
scheduler_config: # 10000 warmup steps
  target: ldm.lr_scheduler.LambdaLinearScheduler
  params:
    warm_up_steps: [ 1 ] # NOTE for resuming. use 10000 if starting from scratch
    cycle_lengths: [<PHONE_NUMBER>0000 ] # incredibly large number to prevent corner cases
    f_start: [ 1.e-6 ]
    f_max: [ 1.e-4 ]
    f_min: [ 1.e-10 ]

unet_config:
  target: ldm.modules.diffusionmodules.openaimodel.UNetModel
  params:
    image_size: 32 # unused
    from_pretrained: '/home/dailongquan/110.014/ColossalAI-main/weight/stable-diffusion-v1-4/unet/diffusion_pytorch_model.bin'
    in_channels: 4
    out_channels: 4
    model_channels: 320
    attention_resolutions: [ 4, 2, 1 ]
    num_res_blocks: 2
    channel_mult: [ 1, 2, 4, 4 ]
    num_heads: 8
    use_spatial_transformer: True
    transformer_depth: 1
    context_dim: 768
    use_checkpoint: False
    legacy: False

first_stage_config:
  target: ldm.models.autoencoder.AutoencoderKL
  params:
    embed_dim: 4
    from_pretrained: '/home/dailongquan/110.014/ColossalAI-main/weight/stable-diffusion-v1-4/vae/diffusion_pytorch_model.bin'
    monitor: val/rec_loss
    ddconfig:
      double_z: true
      z_channels: 4
      resolution: 256
      in_channels: 3
      out_ch: 3
      ch: 128
      ch_mult:
      - 1
      - 2
      - 4
      - 4
      num_res_blocks: 2
      attn_resolutions: []
      dropout: 0.0
    lossconfig:
      target: torch.nn.Identity

cond_stage_config:
  target: ldm.modules.encoders.modules.FrozenCLIPEmbedder
  params:
    use_fp16: True

data:
target: main.DataModuleFromConfig
params:
batch_size: 16
num_workers: 16
wrap: False
train:
  target: ldm.data.lsun.LSUNBedroomsTrain
  params:
    size: 256
validation:
  target: ldm.data.lsun.LSUNBedroomsValidation
  params:
    size: 256

lightning:
trainer:
accelerator: 'gpu'
devices: 4
log_gpu_memory: all
max_epochs: 2
precision: 16
auto_select_gpus: False
strategy:
target: lightning.pytorch.strategies.ColossalAIStrategy
params:
use_chunk: False
enable_distributed_storage: True,
placement_policy: cuda
force_outputs_fp32: False
log_every_n_steps: 2
logger: True
default_root_dir: "/tmp/diff_log/"
profiler: pytorch

logger_config:
wandb:
target: lightning.pytorch.loggers.WandbLogger
params:
name: nowname
save_dir: "/tmp/diff_log/"
offline: opt.debug
id: nowname
But the program report that :

Can you help me solve this bug? thanks!!!

@ver217  hello, can you help me solve this problem?

@Fazziekey  hello, can you help me solve this problem?

hi, as indicated by the logs, your input data type is wrong. Can you check if the text you feed in the tokenizer is the correct type (str or List[str])?

the text you fe

hello , I use lsun bedroom dataset to train autoencoder and latent model, but colossalAI seems to not provide a lsun config with us. I refer to latent diffusion git to modify the colossalai config and the text file is shown as follow:

I print the type of text but get tensor type.
Can you share me the lsun bedroom config based on colossalai ?
THanks!!!
I am vey hurry to run colossalai!!!!

may be we can chat with wechat?
My wechat is NLG-wsm
@feifeibear

@binmakeswell  Hi, can you help me solve this problem, i am so hurry to run this code!!!

Hi, can you print the type of the input text?

I have printed the tpye of input, but get tensor type.
Can you share me the config about lsun bedroom dataset?
繁华落尽
@.***

------------------ 原始邮件 ------------------
发件人:                                                                                "hpcaitech/ColossalAI"                                                                                @.>;
发送时间: 2022年11月24日(星期四) 中午1:58
@.>;
<EMAIL_ADDRESS>主题: Re: [hpcaitech/ColossalAI] Something wrong with training on lsun bedroom dataset (Issue #2013)
Hi, can you print the type of the input text?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

We have updated a lot. This issue was closed due to inactivity. Thanks.


AnalogRead() does not accept A0 as pin number

In a unit test I use an analogRead(), however it will not accept A0 etc as typical pin names.
imho users expect these to work

Part of this is covered by #145 -- the need to have the mocking framework respond in a hardware-like way (time passing, etc).  It's a messy problem at any scale, because we'll be working around the fact that Arduino has never really contended with the idea of dependency injection or testability; as a consequence, libraries may contain a lot of loops that assume (e.g.) a clock that increments all by itself.  Which is a reasonable assumption!
The other part of this is to be able to set a timeout for an individual unit test (which should have a sensible default like "60 seconds"), so that the test runner itself can't hang. I'm going to repurpose this issue for that timeout.

@per1234 where should the A0 constants be defined?  I'm not sure whether to tie them to individual boards, a family of boards, or a CPU architecture

where should the A0 constants be defined?

The common convention is in the core variant:
https://github.com/arduino/ArduinoCore-avr/blob/1.8.3/variants/standard/pins_arduino.h#L65

not all boards will have the same set of pin constants. Is that accurate?

Correct. You can see the Uno has A0-A7 defined, the Mega  A0-A15, ESP8266 only A0, and so on.

So the challenge for me will be to either figure out a way to put it (with proper #ifdef logic) into the board mocks, or else shoehorn it into the config file for board definitions.
Long term, the elephant in the room here is that I think I've only solved the hardware mocks/#define stuff for AVR, and not for any other platform.  I'm not even sure how to rectify that.

The common convention is in the core variant
I may be reaching the practical limits of what I can accomplish with hardware mocks.  I don't have any sort of document (nor even a validator) for what macros might be defined across all of the hardware support and port registers, so there's no way to check that the mocks are in sync with those.  And that ignores the problem of what might be included with any given "core install".

How should I be approaching this issue?  @matthijskooijman based on your comments on #147 I'm really curious whether solving that is now the easiest path forward.

imho one could implement all A0..An for all boards to keep it simple and to get started.
I expect most users will not use "out of range" names in their code / test code, why should they?

To really properly mock different platforms and boards, I guess some separation along the same lines as the IDE uses (different platforms, and within platforms, different boards) would be the most powerful approach (i.e. have some AVR-specific stuff that is triggered by __AVR__ or so from the board config, similar for SAMD or ESP32, and then for each board some .h file and/or stuff in the board config, possibly even mimicing the board/variant separation as well). This can get complex quickly, though and doesn't scale well since it's quite a bit of work to get a single board completely right. But if you limit to just a few commonly-used boards, this might still work, though.
An alternative could be to do more extensive mocking of each platform, and then use the variants from the original platforms verbatim. This means that the (undocumented) interface from core to variant should be mocked as well, which will likely include low-level arch-specific stuff (e.g. AVR I/O registers, which you're already mocking now, but this might be more tricky for other architectures). This is more work for a platform, but then likely makes it a lot easier to support all boards of that platform (by copying variant files and board.txt contents, probably with some (automatable) transformations applied to them.
I'm not sure what the best approach is here. Also, my suggestion in #147 does not really help here, since if you make an "ArduinoCI" platform that arduino-cli knows how to compile, you'd still need to define all available boards and variants inside that platform. There's no way to "import" board definitions from other platforms, so you cannot magically get support for all other Arduino boards in this way somehow (and this can't really be implemented either, since board definitions and variants are currently heavily coupled to their platform).

imho one could implement all A0..An for all boards to keep it simple and to get started.
I expect most users will not use "out of range" names in their code / test code, why should they?

This also seems like a valid strategy. Essentially you then just do not try to perfectly mock each board with all its limitations, but instead you try to always mock enough so that most sketches will compile and run, even if the mocking is not perfect (i.e. because more pins are available than in reality).

So the challenge for me will be to either figure out a way to put it (with proper #ifdef logic) into the board mocks, [...]

Note that what you call "board mocks" (io*.h files and things like pgmspace.h) doesn't look like board mocks to me. That's AVR-specific and often MCU-specific header files that are normally provided by avr-libc (through the Arduino AVR core). They are MCU-specific, but not really board-specific. Also, I would recommend not putting extra stuff in those files, to keep them as verbatim as possible to simplify updates later. And adding board-specific stuff in there would conflate board-specific with MCU-specific, which probably only makes things harder...

I expect most users will not use "out of range" names in their code / test code, why should they?

They shouldn't.  Since we allow testing compilation on multiple platforms, the appropriate errors should be raised during that step.  It just feels wrong to me that the unit test compilation would allow something that couldn't be compiled in an actual sketch.

An alternative could be to do more extensive mocking of each platform, and then use the variants from the original platforms verbatim. This means that the (undocumented) interface from core to variant should be mocked as well, which will likely include low-level arch-specific stuff (e.g. AVR I/O registers, which you're already mocking now, but this might be more tricky for other architectures). This is more work for a platform, but then likely makes it a lot easier to support all boards of that platform (by copying variant files and board.txt contents, probably with some (automatable) transformations applied to them.

I'm interested in exploring this option first.  Right now the way I'm copying the source files from Arduino's avr directory and hand-modifying them is too brittle for the long term.


[IMPROVEMENT] Add a option to ignore unknown versions in WinGet when auto update.

Please confirm these before moving forward.

[X] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
[X] This improvement refers to an existing feature. If you want to suggest a new feature, please use this template.
[X] This improvement is not a bug. If you want to report a bug, please use this template.

Describe the improvement
Hi, I recently found this amazing project and thanks for your great work!
I noticed that when I use winget upgrade --all in the WinGet CLI, it ignores packages with an "Unknown" version by default. You need to add --include-unknown to the command to upgrade them. However, UnigetUI includes these "Unknown" version packages regardless of your preference.
I personally have some software showing as "Unknown" version, which is installed via Steam, such as OBS Studio and Blender. I wish there were a way to ignore these upgrades and manage them through Steam instead.
During my research, I also found this issue: GitHub Issue #2631
It explains that Microsoft added this feature because some packages may have a higher version, but WinGet still tries to upgrade them.
Describe how this improvement could help users
Ignoring unnecessary upgrades and avoiding potential version conflicts.

I will check what I can do, but please note that currently UniGetUI already handled this issue by remembering that a package has been updated to version X, so this package is not shown again until a higher version is available


Poor diagnostic for misspelled enum case name in catch clause

Description
No response
Reproduction
enum MyError {
    case firstError(String)
    case secondError(Int)
}

func test() throws {}

func client() throws {
    do {
        try test()
    } catch MyError.notFirstError(_) {
        // Expected
    }
}

<source>:11:35: error: '_' can only appear in a pattern or on the left side of an assignment
 9 │     do {
10 │         try test()
11 │     } catch MyError.notFirstError(_) {
   │                                   ╰─ error: '_' can only appear in a pattern or on the left side of an assignment
12 │         // Expected
13 │     }

Expected behavior
type 'MyError' has no member 'notFirstError', which is what you get if you drop the (_).
Environment
Swift version 6.0-dev (LLVM 4d3f797c4fe4835, Swift 784a7c5e3172c9a)
(via swift.godbolt.org)
Additional information
Also occurs in switch cases, unsurprisingly. catch clauses are just where I ran into it.
Extra search tags: underscore, payload

Smaller test case:
enum E {
    case firstError(String)
}

func test(e: E) {
  if case E.notFirstError(_) = e {}
}


Unable to load any Minilogue files.

I am able to run the program in OSX 10.15.7 but when I attempt to load any files, nothing happens.
I have tried:
.mnlgpreset
.mnlgprog
.mniglib
Each time the main windows remain empty.
Any thoughts?

Hi, I'm sorry I didn't look into this when you first mentioned it, but thank you for highlighting this. It only took me a couple of years to find the time (a couple of solid days) to look into this as part of the latest change I've made 😬. You were correct that a bug was introduced into the last couple of versions that broke minilogue file reading on the mac. In my testing, this version fixes that problem and also now runs on my mac, which runs Big Sur. Hopefully it also runs on more recent macOS versions.


Lasair-RSP synergy

see https://lsst-uk.atlassian.net/wiki/spaces/LUSC/pages/3123544065/Lasair-RSP+Synergy

Meeting took place 25/AUG/23
outcomes are

follow-up meeting at Oxford Lasair meeting
summarise findings and agree a plan

04/OCT/23
@RoyWilliams reported

no specific decisions have been made yet regarding this
still to be resolved

09/JAN/23

Note github link for DP02 is now https://github.com/lsst-uk/lasair-lsst/blob/main/utility/DP02/README.md

14/FEB/24
@gpfrancis at Lasair fortnightly

gave demo of Lasair/RSP connection – both have DP0.2
Widget for object page with links to RSP Portal (Firefly)
Requires user to be logged in on both Lasair and RSP
Still a proof of concept - not sure if we’re doing it the right way technically, still some limitations and rough edges

@smarttgit liked this
aiming to demo at LSST:UK Team meeting on 01/MAR/24


feat: add BitbucketServerEntityProvider (new plugin)

Hey, I just made a Pull Request!
This PR adds a new plugin with the BitbucketServerEntityProvider implementation.
For background see: #10183
Note: this depends on the release of @backstage/integration v1.3.0
Edit: I pinned the dependency of @backstage/integration to '^1.3.0-next.0' as I saw other plugins did the same, I hope that's the correct procedure.
:heavy_check_mark: Checklist

[X] A changeset describing the change and affected packages. (more info)
[X] Added or updated documentation
[X] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[X] All your commits have a Signed-off-by line in the message. (more info)

@ONordander does this provider support the usage of a custom repository parser? Didn't see any references in the docs.
https://backstage.io/docs/integrations/bitbucket/discovery#custom-repository-processing

@ONordander does this provider support the usage of a custom repository parser using the existing processor?
https://backstage.io/docs/integrations/bitbucket/discovery#custom-repository-processing
Didn't see any references in the docs.

Yes it does, however the name has changed to BitbucketServerLocationParser.
I'll go ahead and add it to the docs, thanks!

@ONordander does this provider support the usage of a custom repository parser using the existing processor?

https://backstage.io/docs/integrations/bitbucket/discovery#custom-repository-processing

Didn't see any references in the docs.

Yes it does, however the name has changed to BitbucketServerLocationParser.
I'll go ahead and add it to the docs, thanks!

Thanks, maybe a example of how the parser can be implemented would also be super helpful!

@benjdlambert thanks for the feedback, everything should be updated now, I also added documentation on custom location parsing.

@pjungermann do you just want to give this a quick flick through and we can merge :pray:

Hi @ONordander / @pjungermann,
Question: I currently have a custom parser working using the Discovery Processor, where a fetch a ci.yml  from each repository and generate a component manifest from it. Here is an example of how i fetch the description and map it to the component description, any thoughts on how this would be converted over to using the Entity Provider instead?
import type { BitbucketRepositoryParser } from '@backstage/plugin-catalog-backend-module-bitbucket';
import { processingResult } from '@backstage/plugin-catalog-backend';
import { CustomInterface } from '../../../types';
import { ComponentEntity, Entity } from '@backstage/catalog-model';
import fetch from 'cross-fetch';
import { BitbucketServerIntegration, getBitbucketServerRequestOptions } from '@backstage/integration';
import parseGitUrl from 'git-url-parse';
import { Logger } from 'winston';
import yaml from 'js-yaml';

export const defaultRepositoryParser : BitbucketRepositoryParser = async function* defaultRepositoryParser (
  options,
) {

  const { integration, target, logger } = options;
  const { owner: project, name: slug } = parseGitUrl(target);

  const location = {
    type: 'bitbucket-discovery',
    target: integration.resolveUrl({ url: '.', base: target }),
  };

  logger.info(`Bitbucket Discovery - Autodetect Component: ${project}/${slug}`);

  const components = await discoverComponents(integration, target, logger);
    for (const entity of components ) {
      yield processingResult.entity(location, entity);
    }
  }

async function discoverComponents(
  integration: BitbucketServerIntegration,
  target: string,
  logger: Logger
  ): Promise<Entity[]> {

  const components: Entity[] = [];
  const { name: repo, owner: project } = parseGitUrl(target);
  const ci= 'ci.yml';
  const CustomInterface = await getYmlFile(integration, project, repo, ci);

  if (CustomInterface) {
    const ci: CustomInterface = CustomInterface;
       const description = discoverDescription(ci);

    const component = {
      apiVersion: 'backstage.io/v1alpha1',
      kind: 'Component',
      metadata: {
        name: 'test',
        namespace: 'default',
        description: description,
        annotations: {
          'backstage.io/source-location': `url:${integration.resolveUrl({ url: '.', base: target})}`,
      },
        tags: - test,
      },
      spec: {
        type: 'service',
        lifecycle: 'production',
        owner: 'unknown',
        system: 'unknown',
      },
    } as ComponentEntity;

    components.push(component);
  }
  return components;
};

function discoverDescription(custom: CustomInterface): string {
  const description = custom.description? custom.description || '';
  return description;
}

async function getYmlFile(integration: BitbucketServerIntegration, projectKey: string, repo: string, path: string,): Promise<any> {
  try {
    const base = new URL(integration.config.apiBaseUrl || '');
    const request = `${base.protocol}//${base.host}/projects/${projectKey}/repos/${repo}/raw/${path}`;
    const res = await fetch(request, getBitbucketServerRequestOptions(integration.config));

    if (res.status === 200) {
      const txt = await res.text();
      return yaml.load(txt)
    }
    return;
  }
  catch {
    return
  }
}

Hi @ONordander / @pjungermann,
Question: I currently have a custom parser working using the Discovery Processor, where a fetch a ci.yml  from each repository and generate a component manifest from it. Here is an example of how i fetch the description and map it to the component description, any thoughts on how this would be converted over to using the Entity Provider instead?

I think it would look rather similar with the EntityProvider, however the parser parameters have changed to take a BitbucketServerClient instead of the previous integration. I think we could add a utility function getFile in the client and you can use that to fetch your yaml-files instead of having to create your own client, how does that sound?
@benjdlambert would you agree with this change to make the transition easier to use the EntityProvider?
The parser is also expected to output Entities instead of the previous CatalogProcessorResults.

Hmm - The way I look at it, is that the EntityProvider would just emit the locations for these repositories, but then you would have the processor that could process these locations into Entities with the transforms that you mentioned. Probably want to get some more feedback from @freben here on what he thinks is best. But I don't think that the EntityProvider should do any form of transforming of things into processed kind: Components etc.

Hmm - The way I look at it, is that the EntityProvider would just emit the locations for these repositories, but then you would have the processor that could process these locations into Entities with the transforms that you mentioned. Probably want to get some more feedback from @freben here on what he thinks is best. But I don't think that the EntityProvider should do any form of transforming of things into processed kind: Components etc.

Yup, I agree. I just wanted to add a utility function getFile to BitbucketServerClient so users can use that client directly in their custom parsing instead of having to create their own client.
I can add it to this PR and let you have a look.

@ONordander would you happen to have a sample customLocationParser I could use as reference?

@ONordander would you happen to have a sample customLocationParser I could use as reference?

Hi, sorry for the late reply, I've been on vacation.
The parsing logic will most likely be unique to your specific use-case and setup, are there any specific parts that you need help with?

@ONordander would you happen to have a sample customLocationParser I could use as reference?

Hi, sorry for the late reply, I've been on vacation. The parsing logic will most likely be unique to your specific use-case and setup, are there any specific parts that you need help with?

Thanks for the reply @ONordander
Trying to convert my existing repoParser that’s currently working with the existing BitbucketProcessor to the new EntityProvider, any guidance would be greatly appreciated!
import type { BitbucketRepositoryParser } from '@backstage/plugin-catalog-backend-module-bitbucket';
import { processingResult } from '@backstage/plugin-catalog-backend';
import { CustomInterface } from '../../../types';
import { ComponentEntity, Entity } from '@backstage/catalog-model';
import fetch from 'cross-fetch';
import { BitbucketServerIntegration, getBitbucketServerRequestOptions } from '@backstage/integration';
import parseGitUrl from 'git-url-parse';
import { Logger } from 'winston';
import yaml from 'js-yaml';

export const defaultRepositoryParser : BitbucketRepositoryParser = async function* defaultRepositoryParser (
  options,
) {

  const { integration, target, logger } = options;
  const { owner: project, name: slug } = parseGitUrl(target);

  const location = {
    type: 'bitbucket-discovery',
    target: integration.resolveUrl({ url: '.', base: target }),
  };

  logger.info(`Bitbucket Discovery - Autodetect Component: ${project}/${slug}`);

const components = await discoverComponents(integration, target, logger);
    for (const entity of components ) {
      yield processingResult.entity(location, entity);
    }
  }

async function discoverComponents(
  integration: BitbucketServerIntegration,
  target: string,
  logger: Logger
  ): Promise<Entity[]> {

  const components: Entity[] = [];
  const { name: repo, owner: project } = parseGitUrl(target);
  const ci = 'ci.yml';
  const CustomInterface = await getYmlFile(integration, project, repo, ci);

  if (CustomInterface) {
    const ci: CustomInterface = CustomInterface;
       const description = discoverDescription(ci);

    const component = {
      apiVersion: 'backstage.io/v1alpha1',
      kind: 'Component',
      metadata: {
        name: 'test',
        namespace: 'default',
        description: description,
        annotations: {
          'backstage.io/source-location': `url:${integration.resolveUrl({ url: '.', base: target})}`,
      },
        tags: - test,
      },
      spec: {
        type: 'service',
        lifecycle: 'production',
        owner: 'unknown',
        system: 'unknown',
      },
    } as ComponentEntity;

    components.push(component);
  }
  return components;
};

function discoverDescription(custom: CustomInterface): string {
  const description = custom.description? custom.description || '';
  return description;
}

async function getYmlFile(integration: BitbucketServerIntegration, projectKey: string, repo: string, path: string,): Promise<any> {
  try {
    const base = new URL(integration.config.apiBaseUrl || '');
    const request = `${base.protocol}//${base.host}/projects/${projectKey}/repos/${repo}/raw/${path}`;
    const res = await fetch(request, getBitbucketServerRequestOptions(integration.config));

    if (res.status === 200) {
      const txt = await res.text();
      return yaml.load(txt)
    }
    return;
  }
  catch {
    return
  }
}

@regicsolutions
Firstly the signature has changed quite a lot:
export type BitbucketServerLocationParser = (options: {
  client: BitbucketServerClient;
  location: LocationSpec;
  logger: Logger;
}) => AsyncIterable<Entity>

So you should emit Entity instead of processingResult.entity.
The parser no longer accepts an integration option, but instead accepts a BitbucketServerClient that can be used for API calls, e.g. you can use client.getFile to fetch files, see api-report.
I imagine your parsing function would look something like this:
export const defaultRepositoryParser : BitbucketServerLocationParser = async function* defaultRepositoryParser (
  options: {
    client: BitbucketServerClient;
    location: LocationSpec;
    logger: Logger;
  }
) {

  const { client, location, logger } = options;
  const { owner: project, name: slug } = parseGitUrl(options.location.target);

  logger.info(`Bitbucket Discovery - Autodetect Component: ${project}/${slug}`);

const components = await discoverComponents(client, project, slug, logger);
    for (const entity of components ) {
      .
      .
      .
      yield entity;
    }
  }

In discoverComponents you should use the BitbucketServerClient instead of the integration.

Thanks @ONordander this is was super helpful. I got the Provider and custom parser running but having issues resolving the base api url when using client.getFile
When trying fetching a ci.yml file:
import yaml from 'js-yaml';

const ciInterface = await getYmlFile(client, project, repo, ciFile, logger);

async function getYmlFile(client: BitbucketServerClient, projectKey: string, repo: string, path: string, logger: Logger): Promise<any> {
  try {
    const request = `${client.getFile}/${path}`;
    const res = await fetch(request);

    if (res.status === 200) {
      const ciFile= await res.txt();
      return yaml.load(ciFile, { json: true })
    }
    return;
  }
  catch {
    logger.error(`Error reading ci.yml in ${projectKey}/${repo}`);
    return
  }
}

console output:
request async getFile(options) {
    const base = new URL(this.config.apiBaseUrl);
    return fetch__default["default"](
      `${base.protocol}//${base.host}/projects/${options.projectKey}/repos/${options.repo}/raw/${options.path}`,
      integration.getBitbucketServerRequestOptions(this.config)
    );
  }/ci.yml

my app-config:
catalog:
  providers:
    bitbucketServer:
      host: bitbucket.server.com
      catalogPath: /ci.yml

my catalog.ts
import { BitbucketServerEntityProvider } from '@backstage/plugin-catalog-backend-module-bitbucket-server';

  builder.addEntityProvider(
    BitbucketServerEntityProvider.fromConfig(env.config, {
      logger: env.logger,
      parser: defaultRepositoryLocationParser,
      schedule: env.scheduler.createScheduledTaskRunner({
        frequency: { minutes: 60 },
        timeout: { minutes: 10 },
      }),
    }),
  );

Am i missing something?

Thanks @ONordander this is was super helpful. I got the Provider and custom parser running but having issues resolving the base api url when using client.getFile

async function getYmlFile(client: BitbucketServerClient, projectKey: string, repo: string, path: string, logger: Logger): Promise<any> {
   try {
     const res = await client.getFile({
       projectKey: project,
       repo: repository,
       path: path,
     });

     if (res.status === 200) {
       const ciFile = await res.txt();
       return yaml.load(ciFile, { json: true })
     }
     return;
   }
   catch {
     logger.error(`Error reading ci.yml in ${projectKey}/${repo}`);
     return
   }
 }

Try something similar to this instead, client.getFile does the fetching for you.

Thanks @ONordander finally got it working! Last Question i promise :) is there a way to gain access to the base api url using the client?
Was trying to see if the client can be used to fetch repository labels via the api, looks like the config is private on the client and defaults to https://bitbuckethost/projects/${project}/repos/${repo}
https://${config.host}/rest/api/1.0/projects/${project}/repos/${repo}/labels

Thanks @ONordander finally got it working! Last Question i promise :) is there a way to gain access to the base api url using the client?
Was trying to see if the client can be used to fetch repository labels via the api, looks like the config is private on the client and defaults to https://bitbuckethost/projects/${project}/repos/${repo}
https://${config.host}/rest/api/1.0/projects/${project}/repos/${repo}/labels

No I don't think thats possible unfortunately, you would have to fetch it from the BitbucketServerIntegrationConfig.
Perhaps fetching labels could be added as a utility to the client itself.


in-number: Shadow DOM .activeElement == null in Chrome glitch

Using the in-number.html app page as an example:
When document.activeElement === this && this._dom.activeElement === null in Chrome and you click repeatedly on the spinner buttons, the browser starts selecting text in the next element on the page, the "Font:" label.

A bug should be filed for Chrome.
A workaround should be found until it's fixed or if the bug is rejected.  It's going to be messy, but another element will probably need to take the focus inside the shadow DOM.  Right now the only focusable element is the input.

This stackoverflow answer might be the solution: https://stackoverflow.com/a/28654521/4941356

I have worked around this by calling event.preventDefault() in the mousedown handler when the target is a spin button.  It will be in the next commit.
I am leaving this issue open and labeling it as "browser" so that I am reminded to submit an issue for Chrome.