feat(caip): add osmosis lp asset id to pool id adapter

adds a caip adapter to convert Osmosis LP AssetIds to Osmosis pool ids

⏳ This pull request is set to merge as part of a Graphite merge job
Job ID: 3AJtQWyYMdKLw7T5cjkH.
See details on graphite.dev


Find/add various polygon equivalents for Canada - Yukon Territory

I believe what we're looking for here is National Hydro Network Watersheds. SHP download available here: https://ftp.maps.canada.ca/pub/nrcan_rncan/vector/geobase_nhn_rhn/shp_en/ other formats here: https://open.canada.ca/data/en/dataset/a4b190fe-e090-4e6d-881e-b87956c07977

Rough equivalent of Alaska Native Corporations: First Nation Traditional Territories 1M. .shp Location: https://map-data.service.yukon.ca/GeoYukon/First_Nations/First_Nation_Traditional_Territories_1M/

Rough equivalent of Alaska Fire Management areas should be "Fire Districts". Location: https://map-data.service.yukon.ca/GeoYukon/Administrative_Boundaries/Fire_Districts/
GMU-equivalent will be "Game Management Subzone", referred to in shapefiles as game management areas. location: https://map-data.service.yukon.ca/GeoYukon/Administrative_Boundaries/Game_Management_Areas_250k/
Yukon Planning regions may be a good include. Most recent info suggests that only the boundaries of North Yukon, Peel, Dawson, and Inuvialuit are officially settled though. Location: https://map-data.service.yukon.ca/GeoYukon/Land_Planning/Yukon_Planning_Regions_250k/

What is accounted for right now in main or in other branches that will have PRs incoming:

[x] Yukon Watersheds
[x] First Nations
[x] Yukon Fire Districts
[x] Yukon Game Management
[ ] Yukon Planning Regions

I'm going to create a separate issue to consider / monitor Yukon Planning Regions so that this issue can be closed by a PR.

ACTUAL HUC-8 equivalents come from here: http://nwb.ualberta.ca/downloads.html via email chain with Kim Lisgo at UAlberta. I believe this was a NWBLCC project/product.


Fix broken links in CONTRIBUTING.md

What's Changed?

Fix a bunch of broken link in CONTRIBUTING.md

PR Checklist

[ ] Updated unit tests
[ ] Ran unit tests

Ahh, thanks Girish, I was just working on this as well. See https://github.com/privateai/pai-thin-client/pull/34, I think it does everything your PR has but some additional fixes


[Feature] Automatically provide feedback to improving configuration based on GPU utilization during fine-tuning

Problem
When I first started using axolotl I was frequently adjusting the configuration depending on the GPU utilization and model needs. I was recommended on Discord to execute nvidia-smi and continue tweaking the config.
With ChatGPT's help I found a new command to live-update GPU usage:
nvidia-smi --loop=1 --format=csv,noheader,nounits --query-gpu=utilization.gpu,utilization.memory

Proposed Solution

[ ] Automatically logging GPU utilization and memory usage during training
[ ] Provide recommendations for config changes (e.g. increase batch_size, etc)

Much of this can be exposed via torch as well without making external calls to nvidia-smi.
I do like the general idea though to expose this type of data during training and to make recommendations.

This could be taken a step further and automatically adjust based on current set-up. I really like llm-foundry's option to have the setting device_train_microbatch_size: auto and auto gradient accumulation. [1] (https://www.mosaicml.com/blog/billion-parameter-gpt-training-made-easy) [2] (https://github.com/mosaicml/llm-foundry/blob/7b1e4eadcf52f42da20e2faa194eecfc2c8cdf40/scripts/train/README.md?plain=1#L370)


Replace host.ReportFatalError with ReportStatus

Update rcvr_namedpipe.go and rcvr_unicsocket.go to replace calls to host.ReportFatalError() with ReportStatus().
I've taken the commits from:  https://github.com/git-ecosystem/trace2receiver/pull/21
and added the same change for Windows.
While I was at it, I noticed that the collector released a new version yesterday, so I'll update that to 0.96.0.

FYI @maxious
I'll merge this an emit a new tag when it finishes cooking.
Thanks again!


[PROPOSAL] Disable extensions by workspace

Hi... I'm using VSCode and many extensions because i have many different projects...
These projects can be of different languages, like, JS, Swift, Python and can be use Docker o Vagrant...
If i'm working in an Python project, i don't need Swift or JS extensions like eslint for example.
Should be nice and useful load only the required extensions for every project, this config can be saved in the workspace (.vscode folder)

You can disable extensions per workspace: In the extensions viewlet (on the left), click on the gear icon of any extension and chose 'Disable (Workspace)'.
Does that address your request?

@chrmarti My idea consist in save inside .vscode the enabled or required extensions for that particular project, something like whitelist, so, i can share this file in a repository, or simple open the project to other computer and .vscode enabled or disabled the extensions based on that configuration.

You can have recommended extensions in your workspace: https://code.visualstudio.com/docs/editor/extension-gallery#_workspace-recommended-extensions
You will be prompted to install these when you open the workspace. You would then still have to manually disable extensions you do not want to run in that workspace.

Ok. thanks :D...


Set keyring-backend in setup script

default keyring-backend is different for keys add and add-genesis-account

@joeabbey this script is for testing purpose.

Ah cool, consider my comments all resolved :)


Automatically put java project dependencies on the sourcepath; #12

Set appendProjectDependenciesToSourcepath = true to add the java srcDirs of all project dependencies to the sourcepath for j2objc.

+1 great idea

Thanks @advayDev1.
One thought, I haven't got a project with dependencies yet. Would it be sensible in the future to have this true by future?

Yes in the future depending on how you version this code - it seems you
don't have release tags yet.  Also I'm trying to figure out how to do this
for all dependencies automatically, after that it should be default true.
On Mon, Apr 6, 2015, 5:55 PM Bruno Bowden<EMAIL_ADDRESS>wrote:

Thanks @advayDev1 https://github.com/advayDev1.
One thought, I haven't got a project with dependencies yet. Would it be
sensible in the future to have this true by future?
—
Reply to this email directly or view it on GitHub
https://github.com/brunobowden/j2objc-gradle/pull/22#issuecomment-90299420
.

If you use jar dependencies in your project they should only be added to the sourcepath if they are source jars.

@brunobowden You can merge the pull request.


feature: colour customisation for QR codes

Related Issue (if any)

Closes: #29
Describe the add-ons or changes you've made

Added an input type="color" as color picker. On color change event clearing the QR code, setting the color value, and
re-drawing the QR code.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
It was tested by uploading various files and folders.

A new color picker was visible beside the QR code and working fine.
Checklist:

[x] My code follows the "contribution guidelines" of this project.
[x] I have performed a self-review of my own code.
[x] I have commented on my code, particularly wherever it was hard to understand.
[x] My changes generate no new warnings.
[x] Any dependent changes have been merged and published in downstream modules.

Screenshots (Only for Front End and UI/UX Designers)

Original
Updated

Original Screenshot
Updated Screenshot

@akhileshthite can you please add the “hacktoberfest-accepted” label?

@akhileshthite can you please add the “hacktoberfest-accepted” label?

They didn't mention anything specific this time.

Can you refresh your hacktoberfest dashboard?
If they're not counting this PR then let me know, I'll add hacktoberfest-accepted label.

Okay cool, thanks 👍🏻


Add coveralls badge support

Add code coverage report to CI script.
POC (but without caching RocksDB library):
https://gist.github.com/c4pt0r/567b3d08a82aabd95ddf7db0ffb641f8

@BusyJay  I need your help! :)

Get it. I will continue your work today later.


#201 - Null-Safety support

This PR aims to bring null-safety support to the package - as per #201 request.
The approach taken was to change as little as possible in terms of logic:

Places where @required tag was used were replaced with required keyword and became non-nullable.
Parameters that are checked for nullability somewhere down the line were set as nullable.
If none of these two scenarios applied, used a default value.

On slider.dart and range_slider.dart, the onPanUpdate method declarations have had to be updated, as context.findRenderObject() no longer yields a RenderBox
(lib/src/widget/slider.dart:143, lib/src/widget/range_slider.dart:168). Instead, the tap position is now using DragUpdateDetails.localPosition.
Secondly, I couldn't ascertain how to regenerate the lib/generated/i18n.dart file, but I don't see it being used anywhere. Maybe it should be dropped?
@florent37 I hope this helps bringing the package to Null-Safety, let me know if you think I should change anything. Thanks in advance!

Please merge @florent37

I am getting this error when trying to run app depending on your branch brenodt:158-null-safety-support

This works - please fix @brenodt
  static double? embossDepth(BuildContext context) {
    return currentTheme(context).depth != null
        ? -(currentTheme(context).depth!.abs())
        : null;
  }

I will publish a new verison <3


Incompatible CUDA versions installed from Pip

Description
When using the default install command:
pip install -U "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

it tries to install CUDA 12.3 libraries. However, the most recent stable version of PyTorch (2.1.2) is pinned to 12.1, and that's what I have on my machine. (I'm compiling flash-attn, TransformerEngine and MS-AMP on this machine after installing the main package dependencies, and the compilation appears to be sensitive to CUDA version.)
What jax/jaxlib version are you using?
0.4.23
Which accelerator(s) are you using?
GPU, Nvidia A100
Additional system info?
1.24.4 3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0] uname_result(system='Linux', node='7e72bd4e-01', release='5.15.0-91-generic', version='#101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023', machine='x86_64')
NVIDIA GPU info
Mon Jan 22 11:32:43 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08              Driver Version: 545.23.08    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A100-SXM4-80GB          On  | 00000000:11:00.0 Off |                    0 |
| N/A   29C    P0              62W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA A100-SXM4-80GB          On  | 00000000:12:00.0 Off |                    0 |
| N/A   27C    P0              60W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   2  NVIDIA A100-SXM4-80GB          On  | 00000000:13:00.0 Off |                    0 |
| N/A   26C    P0              61W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   3  NVIDIA A100-SXM4-80GB          On  | 00000000:14:00.0 Off |                    0 |
| N/A   28C    P0              62W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   4  NVIDIA A100-SXM4-80GB          On  | 00000000:21:00.0 Off |                    0 |
| N/A   29C    P0              61W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   5  NVIDIA A100-SXM4-80GB          On  | 00000000:22:00.0 Off |                    0 |
| N/A   27C    P0              61W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   6  NVIDIA A100-SXM4-80GB          On  | 00000000:23:00.0 Off |                    0 |
| N/A   26C    P0              62W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   7  NVIDIA A100-SXM4-80GB          On  | 00000000:24:00.0 Off |                    0 |
| N/A   29C    P0              62W / 400W |      5MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

Hi - thanks for the question. You'll find some relevant info here: https://github.com/google/jax/issues/18032#issuecomment-1755389043
Our general approach is to provide two JAX CUDA builds: one at the most recent release (currently 12.3) and one older version that seeks to maintain compatibility with pytorch's requirements. Currently that is our cuda11 build.

I'm going to close this, since it's essentially a duplicate of #18032. Thanks!

I'll note that the safest thing to do in general is use two separate venvs. Different frameworks have different version requirements. JAX tracks CUDA versions faster than PyTorch does.


Add a license

Either I'm not allowed to use it, or you made an oversight.

You aren't allowed to use the src code exept if we make special contracts.

@Ad5001 you should get PocketMineTools copyrighted

Yes. @jasonwynn10. Although it would not be useful just use a DMCA

@NFGamerMC it's a good idea to add a license because technically you have to prove that person was in the wrong, or they can counter it saying you probably weren't bothered to add it.

I'll write a license when I'll have the time to.

@Ad5001 How about MPL-2.0?

MPL is too permissive and isn't adapted for a website. We'd need a license to allow private instances of the website and allowing contributions while retaining the rights to prevent "fork-and-take"

@Ad5001 How about dual-licensing? This is a new trend in the open source community where you have a what you were talking about licence then a paid one that gives you more permissions.


Observable is not assignable to type QueueingSubject

I am talking about this example:
https://www.npmjs.com/package/angular2-websocket-service
1- Here the package is angular2-websocket-service but on github it is rxjs-websockets
2- In the example share is not defined; missing rxjs/share import
3- The second parameter of this.socketFactory.connect requires Observable. QueueingSubject is not accepted. Gives compile error (ng build)
4- When I pass an Observable and try to subscribe, gives "property subscribe of undefined not found" error.

That is a different package that includes my package as a dependency. It is a good idea to minimally educate yourself before raising github tickets.
Because you didn't learn how to import rxjs operators or that package is using an old rxjs-websockets package that doesn't require rxjs as a peer dependency.
QueueingSubject is an Observable. All subjects are. You can also call toObservable() on them to restrict the interface.
Well that's not my package and you didn't include any code?

Gets rxjs-websockets not that ancient package.


Implement stale issues report

Every Monday the bot should generate a report for stale issues and post the report to Telegram group
What should be done:

Add parameter stale_issues_report_enabled, stale_issues_report_telegram_group to the github action config. Example:

- name: Ubiquity Bounty Bot
  uses<EMAIL_ADDRESS>  with:
    stale_issues_report_enabled: true
    stale_issues_report_telegram_group: UbiquityDevPool

By default stale_issues_report_enabled should be disabled.

Every Moday find all issues that have not been resolved for at least 7 days since their creation, generate a report from them and post to Telegram group. If there were no unresolved issues then do not post anything.

Issue info that should be posted:

title
URL
price

Example:
Check our latest stale issues

Twitter Bot Account
https://github.com/ubiquity/bounty-bot/issues/56
Pice: 100 USD

CI to RELEASE on merge to main
https://github.com/ubiquity/bounty-bot/issues/52
Price: 100 USD

Update README.md with bot config docs.

I'm a bit skeptical on every bounty related to posting to the Telegram group. Although I think its great for the short term while we're getting started; when we have partners on board it's going to become a mess.
We should modularize the implementation where the core logic is to compile this data, but then we have interface adapter modules (telegram, dashboard etc) so that we can dump the data in different locations.
Telegram is great for low volume, but after getting a couple partners on board we will certainly need some type of webapp with views/filters because there will be a LOT of bounties.

An important point of the "DevPool" concept is that we're creating a community. The only common location for the community is @UbiquityDevPool Telegram chat. This is where updates were planned to be posted. It seems like you're talking about allowing the Telegram bot to be added to partner groups and for partners to be able to associate their repos with the Telegram bot. Its a good idea but it also sounds like it will be a larger project (we would need to probably setup more bot infra)

you're talking about allowing the Telegram bot to be added to partner groups and for partners to be able to associate their repos with the Telegram bot

exactly
Then I don't get the concept of "partners". In my terms partner is an organization which uses the bot for their own needs. This partner organization simply adds a new CI action with the bounty bot and starts using it.

Your understanding is correct. To clarify our offering:

We want to connect a pool of developer talent to partner projects. (DevPool)
We want to increase efficiency of partner projects to manage the developers. (bounty-bot aka 'UbiquiBot')

I think we'll try and get by with 1. being "free of charge" with the idea that we can profit in some indirect ways e.g. incentivize partners to find more talent to bring into our DevPool (which we can tap into as well) and have payments be settled with our Ubiquity Dollars which we can collect swap fees on (this is easier to do as part of our bot to automate payments and only support our dollar.)
We'll charge a direct fee (like monthly, or ideally based on usage) for using our bot. I think this is easier to pull off because we can eventually close the source of the bot. Closing the source is a bit against my ethos, but its far easier to charge for it if they can't just fork and steal it.

Ok, I got it. Partner organization uses the bot on their side but there is only one developer pool that is shared across all organizations (including ubiquity).

Ultimately your idea is good but I think it needs more specs to accomodate the new features

This issue is just a simpler version of a "Weekly reviews every week in the DevPool" subtask from here https://github.com/ubiquity/bounty-bot/discussions/69
As far as I understand, we don't have any partner organizations right now, so, if we have dev resources and there are no issues with a higher priority we could keep this issue "as is". Anyway there is the stale_issues_report_enabled option which can disable this report at any time. When we have more partners then we'll refactor this report (or remove at all).

That's correct we currently do not have partners. However I want to simulate "adding a partner" so that we are forced to think through how the onboarding process is like. The steps I have in mind are:

promoting more of our own repositories (ubiquity-dollar, bounty-bot, scraper-kernel) to the DevPool and then soon after moving to
another unrelated project of mine (its from my last startup) my expectations with this is that we can treat it like a totally separate project and experiment. I don't have a preference on whether the product becomes stable or not, but I think it's a good experiment for me to role play as a partner and see how tedious it is to onboard.

Then we can have some other team members focus on the operational side of onboarding while we have the engineers focus on making config/setup easier.

Ok lets hold it off for a while until things are more clear


Add Tukey outlier detection

https://github.com/dgryski/go-onlinestats/blob/master/tukey.go

tukeyAbove() is done as part of https://github.com/dgryski/carbonapi/commit/4c2452b7aa463b17be398d9d0074f35f38a0c5b8
tukeyBelow() would probably still be ncie.

Migrated tukeyBelow() to a new issue #100 to close this general one.


AWS: Use availability prober in capi provider

The AWS capi provider currently always errors for some time during
startup when a new cluster is created, because there is no token,
because the KAS is not up yet so the token minter sidecar can't mint
one. This change makes us use the availability prober init container to
avoid going into backoff due to this.
Using the availability prober required two new things to be available to
the provider:

The HCP in case it uses a non-default apiserver port
The Availability prober image

For the first, the existing provider interface was extended, as we only
have construct the hcp right before calling CAPIProviderDeploymentSpec.
For the static availability prober image we avoid extending the
interface for every provider for something that is only needed by AWS by
passing it into the provider at construction time.

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

Not strictly needed and might impact time to node at cluster creation but it's also true that no node will join unless the kas is available

I think for platforms that don't need it it might delay things, because the update of the node image can happen before the api is ready or not?

/lgtm


"503 Backend Error" when connecting to App Engine local datatstore

There doesn't appear to be any documentation on how to connect a local compute engine application to a local app engine datastore.
datastore.set_default_dataset_id('dev~myapplicationid') causes a ServiceUnavailable: 503 Backend Error

@nlokare You mean a local gcd application?
You can set it via the DATASTORE_DATASET environment variable (we need docs for that, thanks for pointing out).
To point to the correct server, you need to set the DATASTORE_HOST environment variable.

@dhermes Thanks for the feedback. I followed the directions in the documentation you linked to, but I appear to have trouble connecting still. If my app engine application is running on localhost:8080 and my flask app is running on localhost:5000. What's the correct values for the environment variables you mentioned above?
I logged the request URI in the _request function in gcloud/datastore/connection.py which is "http://localhost:8080/datastore/v1beta2/datasets/dev~my--appengine-id/runQuery" and now I am getting a GCloudError: 302
Any help would be greatly appreciated. Thanks

So are you running gcd or a local App Engine app via dev_appserver?

@dhermes I am running a local app engine application through dev_appserver on port 8080 and then a flask app on a local gcd running on port 5000. I am having trouble configuring the flask app to connect to my local app engine datastore.

Why do you have both of them running? You can run a flask app with dev_appserver.

The datastore associated with the app run through dev_appserver cannot be accessed with this library because that backend has no protobuf API (or any public API for that matter)
The GCD backend can be communicated with via my previous comments. If the gcd server is running on port 5000, use localhost:5000. If the flask app is running on port 5000, you still need to determine which port the gcd server is running on.

Sorry for the misunderstanding.
In production and staging, I have an App Engine application and a Flask app on Compute Engine using the same datastore. However, I cannot replicate this configuration during local development.
Essentially, my App Engine application makes requests to the Compute Engine app, which then accesses the data it needs from NDB (our Compute Engine app does the heavy lifting, while App Engine, which handles the business logic, passes along the data Compute Engine needs to query in NDB via a POST request).
This configuration is easily set up on production, but there is no way to do so during development. This is a pretty important feature for us, as we are building a complex application using this integrated architecture and it makes our workflow much more productive to have this work in a local environment.
Thanks again.

@dhermes Is there a way through the gcd tool to connect both applications to the same local datastore?

@nlokare Thanks. I was just in the process of writing about your second question
@pcostell Is it possible to hook up gcd as the datastore for an app run with dev_appserver?
From
https://github.com/GoogleCloudPlatform/google-cloud-datastore/issues/21
http://stackoverflow.com/a/21129453/1068170
it's unclear how one might do such a thing.

Unfortunately there isn't support for that right now. We are working to unify the two backends but right now gcd and dev_appserver have two entirely different Datastore stacks.

@dhermes @pcostell Thanks for clarifying, guys. Looking forward to the version that unifies the two!

@pcostell Maybe it will be moot if we are able to unify some of the GAE RPC code from ndb into gcloud-python.

That may work, but may be less than optimal. It would mean in development you'd have to run gcloud-python inside an App Engine app. the App Engine runtime plays lots of gross games with python -- I'd prefer if users could run a local Datastore service without having to mess with any of that stuff.

@pcostell I didn't mean we'd disable the current support of hitting a local gcd instance, just that users who wanted fast code in GAE could test locally with dev_appserver. The desire for fast code in GAE necessitates us using a the GAE RPCs when available, right?

Ah yes -- This would definitely be good for testing running gcloud-python inside of App Engine.
But it sounds like the use case you want is:
gcloud-python (outside GAE) ----> Local Datastore <---- App Engine app in dev_appserver
In this case, you don't want to force the gcloud-python code to run inside a dev_appserver since it prevents you from doing other things (like including SWIG libraries that aren't allowed inside GAE).

Yeah that is somewhat separate. @nlokare will be most-helped by allowing a gcd backend to work with dev_appserver.

@pcostell @dhermes The scenario that @pcostell illustrated is exactly what we are looking for.

@pcostell How is the unification of the gcd and dev_appserver backends coming?
RE:

We are working to unify the two backends but right now gcd and dev_appserver have two entirely different Datastore stacks.

PS I'm doing a bug sweep. Sorry if it's annoying.

There are several complications due to the need to install java to run gcd (whereas unnecessary if you are running the dev_appserver with a non-java app). But it's still on our radar as something important to do.

What do you think I should do about this issue? There's not really anything we can act on.

If you'd like you can open an issue on
GoogleCloudPlatform/google-cloud-datastore and close this as a dup of that
one.
On Thu, Aug 27, 2015 at 4:58 PM Danny Hermes<EMAIL_ADDRESS>wrote:

What do you think I should do about this issue? There's not really
anything we can act on.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/gcloud-python/issues/947#issuecomment-135587593
.

GoogleCloudPlatform/google-cloud-datastore#21 is already there
Closing out


Error Message after (successful) Logon

As the title says ...
I have screenshot, but it seems that I cannot attach it.

@MarkowEduard Maybe it is because we are publishing new features today. Do you still have the similar problem?

@MarkowEduard Do you still have the issue? Didn't get your response for a while. I will close it so far. If you can provide more details later, we can reopen it and continue the discussion.


Stop stealing tasks from zombie workers.

This seems to be fixing #8863.
This prevents new steals from starting while we wait for workers to reach zombie state.
What I don't understand at the moment is whether this always prevents ongoing steals from continuing past the point where the victim reaches zombie state. That's what I want to prevent, and this seems to be prevented in 1000 runs of tests with TSan, but I don't understand if that's guaranteed to be prevented.
I can make up half rationales of the form "a worker only reaches zombie state if it had nothing to work on anymore, so it has nothing to steal from at that point" but the fine details of how that's synchronized with try_steal are not clear to me. I understand that try_steal won't start a steal if the load-acquire of worker_live_mask returns 0 for this worker's bit, but I don't understand what happens if try_steal was already past that point by the time we clear that bit.
Fixes #8863.

github tip: if you write "fixes #xxx" or "closes #xxx" then github will automatically link things for you:

(there's also "duplicate of #xxx" and a few others I think)

Thanks for the tip. @benvanik do you understand the answer to my question in the PR description?

Interesting~ I think what you're saying is correct and will be an issue - let me trace through the code!

I think the solution is to take the notification wait in iree_task_worker_deinitialize and make that a separate iree_task_worker_join - then we request exit of all workers, join on all workers (ensuring they are all zombies), and then deinitialize all workers. It removes some of the concurrent shutdown ability but I don't think that really matters anyway - if you're creating/deleting threads in the middle of your performance sensitive code you've got bigger problems, and the max time is still the same as before (worst case reverse OS scheduling of threads).
I think that may remove the need for this change. I can do that now if you wanted to confirm?

Yes, please do take over :-)
While you are at it, please take a look at Issue #8871. It's an issue localized in this code right here so i wonder if it may need to be thought about at the same time as you'll be rewriting this code. https://github.com/google/iree/blob/4afc558d1ab45e5aec48e403706e08ea8f5e6c27/iree/task/worker.c#L123-L128
Once we call iree_task_worker_request_exit here, nothing is preventing the worker thread from immediately exiting before we do the iree_notification_await at the next line. We probably need to lock the state condition mutex where we change it to zombie, so that will be implicitly atomically unlocked where iree_notification_await starts waiting (in the way pthread_cond_wait atomically releases the lock and enters the wait).

Fixed by #8873 instead.


URL encode next href

Related Issue(s):

closes #213

Description:
URL encode the next href
PR Checklist:

[x] Code is formatted and linted (run pre-commit run --all-files)
[x] Tests pass (run make test)
[x] Documentation has been updated to reflect changes, if applicable
[x] Changes are added to the changelog

@jamesfisher-gis I updated the CHANGELOG to reference the PR.


Offset on Pagerduty API Call does not increase

Hey guys,
in my current project I need to import ~150 Pagerduty services as terraform state and config.
I encountered an issue with the current implementation. To find the issue, I modified the go code locally to test some stuff. Here is what I did:
// Copyright 2019 The Terraformer Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package pagerduty

import (
	"fmt"
  "log"

	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
	pagerduty "github.com/heimweh/go-pagerduty/pagerduty"
)

type ServiceGenerator struct {
	PagerDutyService
}

func (g *ServiceGenerator) createServiceResources(client *pagerduty.Client) error {
	var offset = 0
        var i = 0
	options := pagerduty.ListServicesOptions{}
	for {
		options.Offset = offset
		resp, _, err := client.Services.List(&pagerduty.ListServicesOptions{})
		if err != nil {
			return err
		}

		for _, service := range resp.Services {
			g.Resources = append(g.Resources, terraformutils.NewSimpleResource(
				service.ID,
				fmt.Sprintf("service_%s", service.Name),
				"pagerduty_service",
				g.ProviderName,
				[]string{},
			))
      i += 1
      log.Println(fmt.Sprintf("iteration is %s and id is %s and limit is %s", i, service.ID, resp.Limit))
		}

		if resp.More != true {
			break
		}
		offset += resp.Limit
    log.Println("Offset: ", offset)
	}

	return nil
}

func (g *ServiceGenerator) createServiceEventRuleResources(client *pagerduty.Client) error {
	resp, _, err := client.Services.List(&pagerduty.ListServicesOptions{})
	if err != nil {
		return err
	}

	for _, service := range resp.Services {
		rules, _, err := client.Services.ListEventRules(service.ID, &pagerduty.ListServiceEventRuleOptions{})

		if err != nil {
			return err
		}

		for _, rule := range rules.EventRules {
			g.Resources = append(g.Resources, terraformutils.NewSimpleResource(
				fmt.Sprintf("%s.%s", service.ID, rule.ID),
				fmt.Sprintf("%s_%s", service.Name, rule.ID),
				"pagerduty_service_event_rule",
				g.ProviderName,
				[]string{},
			))
		}
	}

	return nil
}

func (g *ServiceGenerator) InitResources() error {
	client, err := g.Client()
	if err != nil {
		return err
	}

	funcs := []func(*pagerduty.Client) error{
		g.createServiceResources,
		g.createServiceEventRuleResources,
	}

	for _, f := range funcs {
		err := f(client)
		if err != nil {
			return err
		}
	}

	return nil
}

then built this with go run build/main.go pagerduty and tested with ./terraformer-pagerduty plan pagerduty -r service -t <MY_PAGERDUTY_API_TOKEN> -v -m 5.
I see the following:
2021/07/21 15:48:23 iteration is %!s(int=651) and id is P5TX9GF and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=652) and id is PW58J87 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=653) and id is P2R0SPR and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=654) and id is PL2J12O and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=655) and id is PDH9MAY and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=656) and id is PPNY6K8 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=657) and id is PQHWCDX and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=658) and id is PJ3IVON and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=659) and id is PDUSNPG and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=660) and id is P15N5SN and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=661) and id is PGS8504 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=662) and id is PRBYS27 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=663) and id is PCFK4NE and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=664) and id is PZ6Z3YR and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=665) and id is P3GBPL4 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=666) and id is PVTX4SI and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=667) and id is P7YA2OF and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=668) and id is PVXO2J1 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=669) and id is PRL026B and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=670) and id is POOC1UO and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=671) and id is PJ3ZPVL and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=672) and id is PDPQ8G6 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=673) and id is PKP1U00 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=674) and id is PZD283G and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=675) and id is PD3SSYN and limit is %!s(int=25)
2021/07/21 15:48:23 Offset:  675
2021/07/21 15:48:23 iteration is %!s(int=676) and id is P5TX9GF and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=677) and id is PW58J87 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=678) and id is P2R0SPR and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=679) and id is PL2J12O and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=680) and id is PDH9MAY and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=681) and id is PPNY6K8 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=682) and id is PQHWCDX and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=683) and id is PJ3IVON and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=684) and id is PDUSNPG and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=685) and id is P15N5SN and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=686) and id is PGS8504 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=687) and id is PRBYS27 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=688) and id is PCFK4NE and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=689) and id is PZ6Z3YR and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=690) and id is P3GBPL4 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=691) and id is PVTX4SI and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=692) and id is P7YA2OF and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=693) and id is PVXO2J1 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=694) and id is PRL026B and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=695) and id is POOC1UO and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=696) and id is PJ3ZPVL and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=697) and id is PDPQ8G6 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=698) and id is PKP1U00 and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=699) and id is PZD283G and limit is %!s(int=25)
2021/07/21 15:48:23 iteration is %!s(int=700) and id is PD3SSYN and limit is %!s(int=25)
2021/07/21 15:48:23 Offset:  700

While the offset variable appears to increase with each loop iteration, we still get the same 25 results from the Pagerduty API

I fixed the issue, pull request is on its way

I opened https://github.com/GoogleCloudPlatform/terraformer/pull/993 which addresses this issue

PR got merged. I‘ll close


uv_pipe_t, uv_write2(), uv_pipe_pending_{count,type}(): why is it designed the way it is?

Hi there,
I'm interested in using libuv inside of sandboxed applications (Capsicum). One of the things I was happy to see is that libuv provides some support for UNIX file descriptor passing (i.e., sendmsg() and recvmsg() with SCM_RIGHTS). That said, the way it's been designed, it has some restrictions:

There is only support for attaching a single file descriptor to a write. uv_write2() doesn't take an array of file descriptors; just a single descriptor.
On the receiving side, file descriptors have to be fetched using uv_accept(). This function can only accept streams; not arbitrary handles. This means you can't use this approach to pass in regular files, directories, etc.

Before sending pull requests or discussing any API changes, I'm actually interested in knowing what the intended use case of this API is. Is any piece of software out there making use of this?

Is any piece of software out there making use of this?

Most certainly.  Node.js, its child_process and cluster modules in particular, are pretty much built around it.
The answer to your other question, why it works the way it does, is essentially 'Windows.'

The answer to your other question, why it works the way it does, is essentially 'Windows.'

That explains things. Thanks for clarifying!
For now I'll be able to make use of uv_poll_t + sendmsg()/recvmsg(), so there's no immediate rush to address this. I'll keep this on my (by now infinitely long) todo list... ;-)


Dropdown on IOS not focus

There are some issues when using the dropdown on IOS. It seems the problem is that the dropdown is positioned before the soft-keyboard is removed and therefore centered outside the screen. Also sometimes dragevents are sent to the page below.

Hi @bastaware thanks for reporting this issue! Version 2.0 includes support for a new native property that you should be able to use to make it work much better on mobile devices. This release is currently in beta since it depends on the upcoming material-ui v4 update, but you can test it if you'd like by installing material-ui-phone-number@next


Determine why Sendgrid User Updates are hanging

There seems to be a blockage in the SendGrid User Update table with almost 6000 records 'stuck' there with create dates of the last 2 days

Well that's no good. Very sorry to hear that.

Sorry, I logged this in the wrong git hub project...


feat: add sill images (2)

I've added a few more images! Please check.😎

Thank you for adding pictures! Can you change the recommended technology to a modified version?

Can you check if these images are changed correctly?😥

I checked! Thank you for the modification! I'll merge!


Make package type module

The commit Make package type module sets the package.json to type: "module", and makes the required changes throughout the codebase. This means all files now use ESM by default, and files using CJS have to be explicitly marked as such.
The commit Restore test environment reuse does just that, making npm run test run about 4 times as fast again.
The other two commits just fix some inconsistencies: a few files used double quotes and not all internal node modules imports were marked as such.

Like this?

Yup, thanks!


Replace ?? with || in provider-s3

Or if the ?? is really necessary, then maybe specifying a minimum node version would be better?

You are right, the || seems much more fitting here!


Twitter: Fix parsing of email addresses as Twitter usernames

The current regular expression that "linkifies" Twitter @mentions will also parse email addresses (example@not-a-mention.com). This is a potentially critical problem because it generates nested  tags that can break the whole HTML of a rendered page.
For example, consider this text returned from querying Twitter: "Contact us<EMAIL_ADDRESS>The tweet is first run through Django's urlize(), which returns: <a href="mailto:foo<EMAIL_ADDRESS>Then, the regex substitution comes in and replaces pretty much anything starting with the @ character, which returns: <a href="mailto:foo<a<EMAIL_ADDRESS><EMAIL_ADDRESS>At this point, it's already invalid HTML.
The fix modifies the regex to only catch the @ character when it is the first thing in the string or preceded by whitespace. In my tests it ignores email addresses fine.
Note: Perhaps we need to do the same for the hashtag regex. However, the only instance where the # character is used is when linking to anchors in pages, and Twitter already shortens all url's, so it shouldn't be an issue.

Ace, thanks Ed.


[PlayState] Minimize on Suspend

Extension name
PlayState
Feature Description
If possible, could the PlayState process suspend function optionally minimize the game automatically?
I was playing Lena's Inception, and suspending the game makes it not interactable (as expected) but it was also stuck always on top. To fix this I had to un-suspend, minimize, and re-suspend. I see that alt-tabbing is suggested in the FAQ, but I'm wondering if it could be rolled into the button combination instead.
Screenshots
No response

Implemented and available as an option in v2.72 update.


callback argument is a Buffer

The response should be parsed into object before sending to the callback.

Hi! I'm looking into it.

Hi Ben,
It looks like the fix is easy enough, but we're going to have to make separate release versions since this change would break existing integrations.
I have a pull request opened for this: https://github.com/wepay/NodeJS-SDK/pull/6


Fix for subscribing to large messages

Includes fixes from macdiesel and myself to fix large message
subscription.  Rebased to latest copy (as of 2/23/2013) version of
node_redis.  This is an updated pull request of pull 284.

There were a couple of parser fixes since Feb 2013 and no one has ever reported something like that again. The changes as they are in here can't run properly right now, as the try catch is still mandatory. I'll also refactor the pub sub system soon and if I find any issues with large messages I'll have a closer look at this.


Add function to remove a volume if its state is ready

Volumes can only be removed when in a certain state.
This function can be used to check if a volume can be removed before
actually removing it.
Note that this function will remove the volume if it's ready.
API doc:
https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded=delete-a-volume-detail#delete-a-volume

aside from silly nitpick, /lgtm

@jtopjian for review. Thanks!

Is it possible to confirm whether the statuses listed in the documentation are still the most up-to-date statuses?
Here are all the possible statuses of a volume: https://github.com/openstack/cinder/blob/master/cinder/objects/fields.py#L168-L190
I spent about an hour browsing through the Cinder code, but couldn't find an obvious place where a volume's status is compared against a list valid deletable statuses. Maybe someone else would have better luck?
This isn't a blocker. The code could be amended in the future and acceptance criteria for gophercloud/utils is much more open than Gophercloud core. But if someone can confirm the known states now, it would save some work in the future.

Is it possible to confirm whether the statuses listed in the documentation are still the most up-to-date statuses?
Here are all the possible statuses of a volume: https://github.com/openstack/cinder/blob/master/cinder/objects/fields.py#L168-L190
I spent about an hour browsing through the Cinder code, but couldn't find an obvious place where a volume's status is compared against a list valid deletable statuses. Maybe someone else would have better luck?
This isn't a blocker. The code could be amended in the future and acceptance criteria for gophercloud/utils is much more open than Gophercloud core. But if someone can confirm the known statues now, it would save some work in the future.

I'm actually thinking solving this problem in Cinder instead: https://review.opendev.org/c/openstack/cinder/+/805027
Let's hold this patch for now, so we avoid creating functions that wouldn't be that useful, if we can have the wanted logging into the right place (Cinder API).

And to answer your question @jtopjian , have a look here: https://github.com/openstack/cinder/blob/master/cinder/volume/api.py#L454-L455

have a look here:

ah-hah! That's exactly what I was trying to find - thank you!
In this case, should in-use be removed from one of the valid statuses?

Let's hold this patch for now

No problem. Just let me know when you want to proceed.

@jtopjian ready when you are :-)

I am worried by the fact that this convenience function limits the user’s action based on a set of rules that may fall out of sync with OpenStack.
Ultimately, the purpose of this convenience function is to clearly write why an operation failed, if it failed. But then, if its interesting logic only exists in a failed operation, we may avoid adding execution time to a successful operation.
My suggested alternative is to first try the deletion. If it fails, then we can modify the returned error to add information. This way, successful operations get no time penalty, and we do not risk applying rules that are no longer valid (if OpenStack changes the name or the logic connected to volume states).
WDYT?

I also have doubts on merging this. From my point of view this function shouldn't be placed in this repo. The responsibility should be on the end app side and app developer can reuse https://pkg.go.dev/github.com/gophercloud/gophercloud?utm_source=godoc#WaitFor to meet the needs of the app logic.

I'm pretty flexible with what gets merged into this utils repo. If a function is useful for more than one person, it can be added here.
With that in mind, my experience mirrors @kayrus where the more event-driven WaitFor is commonly used for this. As an example: https://github.com/gophercloud/gophercloud/blob/513734676e6495f6fec60e7aaf1f86f1ce807428/openstack/blockstorage/v3/volumes/util.go (though I just realized that these still exist in Gophercloud "core" and should be moved to this repo).
I may be making an incorrect assumption that @EmilienM and @pierreprinetti are coworkers. If the assumption is true, I'll let you two discuss what this function may ultimately be used for. If it's agreed to keep this function, I'm happy to merge it.

@EmilienM To be clear, here's an example of what I propose:
type ErrVolumeStatus struct {
	gophercloud.ErrDefault400
	Status string
}

func (e ErrVolumeStatus) Unwrap() error {
	return e.ErrDefault400
}

// VolumeDeleteVerbose attempts volume deletion. In case the error is
// attribuable to the current volume status, this function stores the volume
// status in the returned error.
//
// Example usage:
//
//
//    if err := VolumeDeleteVerbose(computeClient, volID, volumes.DeleteOpts{}); err != nil {
//    	var gerr ErrVolumeStatus
//    	if errors.As(err, &gerr) {
//    		log.Printf("%v Volume status: %q", err, gerr.Status)
//    	} else {
//    		log.Print(err)
//    	}
//    }
func VolumeDeleteVerbose(client *gophercloud.ServiceClient, id string, opts volumes.DeleteOpts) error {
	err := volumes.Delete(client, id, opts).ExtractErr()

	// Add some information in case of failure
	var gerr gophercloud.ErrDefault400
	if err != nil && errors.As(err, &gerr) {
		vol, err1 := volumes.Get(client, id).Extract()

		// if something goes wrong, just return what the normal
		// call would have returned
		if err1 != nil {
			return err
		}
		return ErrVolumeStatus{gerr, vol.Status}
	}

	return err
}

Is that what you want to achieve?

closing for now, will re-open if it has more traction.


fix format man-commit

Signed-off-by: Sally O'Malley<EMAIL_ADDRESS>

added DOCKERFILE INSTRUCTIONS to make [] more informative/less ugly but in any case the '[]' needs to be escaped to fix bold formatting

LGTM

LGTM, thanks again!


Update http4s-blaze-client, ... to 0.21.20

Updates

org.http4s:http4s-blaze-client
org.http4s:http4s-blaze-server
org.http4s:http4s-circe
org.http4s:http4s-dsl

from 0.21.3 to 0.21.20.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Applied Migrations

dependency:v0_21@org.http4s:http4s-scalafix:0.21.5

Documentation:

https://github.com/http4s/http4s/releases/tag/v0.21.5

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, semver-patch, scalafix-migrations

Superseded by #271.


Add example application(s)

As seen on https://github.com/jaegertracing/jaeger-operator/pull/52#issuecomment-428474043 , we need a simple application that generates traces. This application can then be used in the different deployment scenarios and e2e tests.

Could we use the HOTRod application here?

depends for what we need it. If it's to showcase operator then yes. If it's for e2e tests I would rather have something simpler. The hotrod can change and it would break tests.
We could even use more sophisticated app to generate spans like - https://github.com/jaegertracing/jaeger/pull/1245 or https://github.com/yurishkuro/microsim

We have a sample CR based on the image we use for e2e tests. This might be sufficient for now.

https://github.com/jaegertracing/jaeger-operator/blob/master/deploy/examples/business-application-injected-sidecar.yaml


[WIP][ISSUE #199] Support Kafka connector plugin and Kafka as event store #199

close #199

@ruanwenjun good job!

hi, @ruanwenjun I try to use pub/sub message with kafka connector, but I can't use this kafka plugin. Here are some problem below.
1.This pr code version behind latest code version, try to pull the latest code may be better. such as some packages name still contains webank in eventmesh-common module and eventmesh-api module.
2.when I try to use kafka plugin to pub/sub messages, the problem is:

jdk spi can't load this plugin, please help take a look, I'll continue to follow up related questions.

OMSConsumerAdaptor and OMSProducerAdaptor these two adaptors implementations need constructor without parameters for jdk spi requirements, moving the constructors configuration to init method may be better. Except for the problem above, here also have problem below, please take a look ,thanks @ruanwenjun .

hi, @ruanwenjun I try to use pub/sub message with kafka connector, but I can't use this kafka plugin. Here are some problem below.
1.This pr code version behind latest code version, try to pull the latest code may be better. such as some packages name still contains webank in eventmesh-common module and eventmesh-api module.
2.when I try to use kafka plugin to pub/sub messages, the problem is:

jdk spi can't load this plugin, please help take a look, I'll continue to follow up related questions.

@xwm1992 Hi, I have a question. Currently, the branch 1.3.0 is behind the development very much, can I checkout directly from develop branch and push to 1.3.0?

@xwm1992 Hi, I have a question. Currently, the branch 1.3.0 is behind the development very much, can I checkout directly from develop branch and push to 1.3.0? Thanks.

It's ok, you are welcome to do so. You can also update your branch code version first, because we try to do the full test under this branch you submit.

@xwm1992 Please help me test again, thanks a lot.

Codecov Report

Merging #376 (f43d36e) into 1.3.0 (a101b82) will increase coverage by 1.36%.
The diff coverage is 16.71%.

@@            Coverage Diff             @@
##             1.3.0    #376      +/-   ##
==========================================
+ Coverage     2.93%   4.30%   +1.36%
- Complexity      89     149      +60
==========================================
  Files          224     235      +11
  Lines        10754   11135     +381
  Branches       921     967      +46
==========================================
+ Hits           316     479     +163
- Misses       10392   10583     +191
- Partials        46      73      +27

Impacted Files
Coverage Δ

...mesh/connector/kafka/MessagingAccessPointImpl.java
0.00% <0.00%> (ø)

...he/eventmesh/connector/kafka/common/Constants.java
0.00% <0.00%> (ø)

...onnector/kafka/common/OpenMessageDeserializer.java
0.00% <0.00%> (ø)

.../connector/kafka/consumer/KafkaMQConsumerImpl.java
0.00% <0.00%> (ø)

...h/connector/kafka/consumer/OMSConsumerAdaptor.java
0.00% <0.00%> (ø)

.../connector/kafka/producer/KafkaMQProducerImpl.java
0.00% <0.00%> (ø)

...h/connector/kafka/producer/OMSProducerAdaptor.java
5.55% <5.55%> (ø)

.../connector/kafka/consumer/KafkaConsumerConfig.java
35.13% <35.13%> (ø)

.../connector/kafka/common/OpenMessageSerializer.java
42.85% <42.85%> (ø)

.../connector/kafka/producer/KafkaProducerConfig.java
48.38% <48.38%> (ø)

... and 22 more

Continue to review full report at Codecov.

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

@ruanwenjun   hello，I can’t send and receive messages normally with the Kafka module. It seems that the production of messages cannot be monitored. Can you see that messages are sent and received normally when you start project monitoring?

@Jackzeng1224 Yes, I can see the log that the message has been sent to kafka.
You can use AsyncSyncRequestInstance to send async requests, and I find a bug in LiteProducer line 218.
https://github.com/apache/incubator-eventmesh/blob/737c0f09efeba61a62653d33fd553491af7d0deb/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/http/producer/LiteProducer.java#L207-L219
This method should be async, but it sends a sync command, I will fix in another pr.
And you can modified the line 218 to
requestParam.addHeader(ProtocolKey.REQUEST_CODE, String.valueOf(RequestCode.MSG_SEND_ASYNC.getRequestCode()))

Then you will see below log in runtime module:
2021-07-27 19:28:37,824 INFO  [kafka-producer-network-thread | producer-1] message(SendAsyncMessageProcessor.java:196) - message|eventMesh2mq|REQ|ASYNC|send2MQCost=4ms|topic=TEST-TOPIC-TCP-ASYNC|bizSeqNo=920594188447336930612967879404|uniqueId=243186356065686374194669481534

But the response in AsyncSyncRequestInstance is also failed, I think it might be another issue.
2021-07-27 19:48:40,956 DEBUG [main] AsyncSyncRequestInstance(AsyncSyncRequestInstance.java:81) - sendmsg failed
org.apache.eventmesh.common.EventMeshException: com.alibaba.fastjson.JSONException: syntax error,except start with { or [,but actually start with error
	at org.apache.eventmesh.client.http.producer.RRCallbackResponseHandlerAdapter.handleResponse(RRCallbackResponseHandlerAdapter.java:94) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.eventmesh.client.http.producer.RRCallbackResponseHandlerAdapter.handleResponse(RRCallbackResponseHandlerAdapter.java:41) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:222) ~[httpclient-4.5.2.jar:4.5.2]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164) ~[httpclient-4.5.2.jar:4.5.2]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139) ~[httpclient-4.5.2.jar:4.5.2]
	at org.apache.eventmesh.client.http.http.HttpUtil.post(HttpUtil.java:149) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.eventmesh.client.http.producer.LiteProducer.request(LiteProducer.java:240) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.eventmesh.http.demo.AsyncSyncRequestInstance.main(AsyncSyncRequestInstance.java:73) ~[main/:?]
Caused by: com.alibaba.fastjson.JSONException: syntax error,except start with { or [,but actually start with error
	at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:684) ~[fastjson-1.2.71.jar:?]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:396) ~[fastjson-1.2.71.jar:?]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:300) ~[fastjson-1.2.71.jar:?]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:573) ~[fastjson-1.2.71.jar:?]
	at org.apache.eventmesh.client.http.producer.RRCallbackResponseHandlerAdapter.handleResponse(RRCallbackResponseHandlerAdapter.java:89) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	... 7 more

@Jackzeng1224 Yes, I can see the log that the message has been sent to kafka.
You can use AsyncSyncRequestInstance to send async requests, and I find a bug in LiteProducer line 218.
https://github.com/apache/incubator-eventmesh/blob/737c0f09efeba61a62653d33fd553491af7d0deb/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/http/producer/LiteProducer.java#L207-L219
This method should be async, but it sends a sync command, I will fix in another pr.
And you can modified the line 218 to
requestParam.addHeader(ProtocolKey.REQUEST_CODE, String.valueOf(RequestCode.MSG_SEND_ASYNC.getRequestCode()))

Then you will see below log in runtime module:
2021-07-27 19:28:37,824 INFO  [kafka-producer-network-thread | producer-1] message(SendAsyncMessageProcessor.java:196) - message|eventMesh2mq|REQ|ASYNC|send2MQCost=4ms|topic=TEST-TOPIC-TCP-ASYNC|bizSeqNo=920594188447336930612967879404|uniqueId=243186356065686374194669481534

But the response in AsyncSyncRequestInstance is also failed, I think it might be another issue.
2021-07-27 19:48:40,956 DEBUG [main] AsyncSyncRequestInstance(AsyncSyncRequestInstance.java:81) - sendmsg failed
org.apache.eventmesh.common.EventMeshException: com.alibaba.fastjson.JSONException: syntax error,except start with { or [,but actually start with error
	at org.apache.eventmesh.client.http.producer.RRCallbackResponseHandlerAdapter.handleResponse(RRCallbackResponseHandlerAdapter.java:94) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.eventmesh.client.http.producer.RRCallbackResponseHandlerAdapter.handleResponse(RRCallbackResponseHandlerAdapter.java:41) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:222) ~[httpclient-4.5.2.jar:4.5.2]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164) ~[httpclient-4.5.2.jar:4.5.2]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139) ~[httpclient-4.5.2.jar:4.5.2]
	at org.apache.eventmesh.client.http.http.HttpUtil.post(HttpUtil.java:149) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.eventmesh.client.http.producer.LiteProducer.request(LiteProducer.java:240) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	at org.apache.eventmesh.http.demo.AsyncSyncRequestInstance.main(AsyncSyncRequestInstance.java:73) ~[main/:?]
Caused by: com.alibaba.fastjson.JSONException: syntax error,except start with { or [,but actually start with error
	at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:684) ~[fastjson-1.2.71.jar:?]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:396) ~[fastjson-1.2.71.jar:?]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:300) ~[fastjson-1.2.71.jar:?]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:573) ~[fastjson-1.2.71.jar:?]
	at org.apache.eventmesh.client.http.producer.RRCallbackResponseHandlerAdapter.handleResponse(RRCallbackResponseHandlerAdapter.java:89) ~[eventmesh-sdk-java-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
	... 7 more

OK！I will continue to pay attention.

@ruanwenjun Could you please submmit this feature to branch kafka-connector?

@ruanwenjun Could you please submmit this feature to branch kafka-connector?

OK

@Jackzeng1224 Hi, I have updated the code, please help me test, thanks.
Currently, it just supports the async send message method as the same withe rocketmqProducer, so you can just use the publish method to send message.

@Jackzeng1224 Hi, I have updated the code, please help me test, thanks.
Currently, it just supports the async send message method as the same withe rocketmqProducer, so you can just use the publish method to send message.

OK 👌.

@ruanwenjun   hello,The latest code, I run SpringBootDemoApplication and an exception occurs. I think it is a package usage problem.I use rocketMq will not appear.

@ruanwenjun  hello,New code, still did not solve the problem.

@Jackzeng1224 I don't have this problem, could you please clean the local cache, and start again.

Since the PR's code has not been updated for a long time, I will close this PR.


Use AuthorizationPolicy in instructions

The instructions reference AuthenticationPolicy which I couldn't find anywhere. However, there's AuthorizationPolicy`. I've tested this on my cluster and it's working.

We reverted the PR which caused this issue in PR: https://github.com/kubeflow/website/pull/3079

/close


ui: display switch name in the topology whenever available

Issue opened in NApp topology #127
Currently, the topology map shows each switch with its datapath-id instead of the switch name. There is an option to change this behavior and show the switch description, but not to show the switch.metadata.node_name, and even the description is not persistent.
My suggestion is that by default, we try to display the switches with switch.metadata.node_name, then switch.id. Then we can leave the other options as non-persistent choices.


Bottom alignment of footer and adding scrollbar in all pages

HI @Sameep002 !
Would love to work on this.
Kindly assign me this issue under the GSSOC '23

HI @Sameep002 ! Would love to work on this. Kindly assign me this issue under the GSSOC '23

I am Contributor too :)

@anmode
Kindly assign me this issue under the GSSOC '23.
Would love to be a part of this.


Allow to torrent a single file

#464

Mostly looks good. See inline comments.

@feross I've addressed your comments in the last commit. I do not have OS X to check it there, but it should be alright.

Merged -- nice work!


Fix save notes in metadata

Several commands have a --notes parameter for the user to provide information about the analysis being run but the notes were not being saved.  Updated the save_objects() method in KBaseStore.pm to look at the input parameters stored in the provenance data and if there is a "notes" parameter the notes are also set in the meta data for the object being saved.  The user can then view the notes in the workspace browser.  Saving the notes is implicitly done for any command that has a "notes" parameter.  There is a limit to the size of the provenance data so a very long string in the "notes" parameter could cause an error when saving the object.  Also updated three command scripts that were missing the "notes" parameter in the translation dictionary.

Already added the notes part to provenance. I want to handle the scripts another way.


Quote bugfix

related: query_selector cannot parse meta[property=og:title]

Can you also apply this logic to the Some(c @ b'~' | c @ b'^' | c @ b'$' | c @ b'*') => { match arm, so it also accepts quotes in p[id~="test"]?

Thanks for your suggestion. I applied it on the other match arm (Some(c @ b'~' | c @ b'^' | c @ b'$' | c @ b'*').

I published a new version on crates.io with this fix.


Return flag indicate if a date or time has been found in the string

Right now there is no indicator of what was parsed, it would be useful to return with each match something like this:
foundTime: true,
foundDate: false

Upon reviewing this, it doesn't seem like a good idea. Since we already have isValid check.


Number of posts should be smaller and grey

The number of posts in the categories widget between brackets, should be in a smaller front and the color should be lighter

Added class and merged to develop


Multiple Files Upload issue in using addmore option.

Hi,
I have found an issue in Multiple file upload using option addMore: true,
If you add files one by one into file upload, and then when you submit form you get only last file in $_FILES array.

Please correct this issue.
Regards:
PHP developer.

@arif-medialinker can you try please on demo_page - Example 3. If it works there, you will need to:

set to null the options dragDrop and uploadFile
or
update jQuery.filer plugin to v1.2

@CreativeDream  thanks for quick reply, Before posting this issue, I tried this demo Example 3, and get same results, with only last file, but not other files.
let me try your suggestions.
Regards:

thanks latest Demo is working correctly.


configure azure pipelines

This pipeline coThis pipeline configuration builds the application and produces a build for the Release configurationnfiguration builds the application and produces a build for the Release configuration

 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.:x: manukuro sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Add Path2D utilities (from_outline, add_outline)

Adds two simple utilities to Path2D:

from_outline enables creating a Path2D from an Outline
add_outline should be essentially equivalent to add_path

@bors-servo r=s3bk

:pushpin: Commit e8c3eda has been approved by s3bk

:lock: Merge conflict

:umbrella: The latest upstream changes (presumably #491) made this pull request unmergeable. Please resolve the merge conflicts.

@kognise can you update the Cargo.lock or remove it from the PR?


fixfix type convert for paimon

Proposed changes
fix type convert for paimon

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Fix icon consistency for dark theme

Sorry to say but this bugs the hell out of me 😁  Which one doesn't belong:

Can you change it to be more consistent or add an option for it?

Omg... accidentally opened an issue to the wrong repository. It seems there's a lot of hummingbirds out there. I meant this one... sorry!

Haha yes we do converters for ML models, not temperatures :-D


WebSocketConnection is not being destroyed causing memory leak.

I have been using this library version: 1.0.18 for server and for Client side[C# application] I using WebSocket4Net's WebSocket.
Design is such a way that whenever user has to send some data to server I am creating a new connection [Client side] and send it. After sending I am disposing connection from client side which is firing connection close event on server side but on server side what I have observed that all connections are existing in memory.
My Server code:
            // create the server
            wsServer = new WebSocketServer({
                httpServer: server
            });

            // WebSocket server
            wsServer.on('request', function(request)
            {
                connection = request.accept(null, request.origin);

                console.info('Remote Connected: '+ request.origin);
                connection.on('message', function(message)
                {
                    // Calling some function to handle message
                    processData(message.utf8Data,connection);
                });

                connection.on('close', function(reasonCode, description)
                {
                    // close user connection
                    console.info('Connection closing for: ' + request.origin + ' reasonCode: ' + reasonCode);
                });
            });

With every connection following objects are increasing:
Socket, WebSocketConnection, WebSocketRequest, WebSocketFrame
Am I missing something?

This issue has been resolved. I was storing the connection in a map and was not removing ever.
Closing this issue.


NaNs output from the policy network

Hi, I was training the model for one of the minigames. And after about 60000 episodes, the policy for the actions probabilities output all NaNs,  I haven't been able to track down the problem yet, as it takes long to get to that point for debugging. Just wonder if you have encountered such problem before?

Which of the games are you training? Yes, we also encountered it occasionally in DefeatRoaches and DefeatZerglingsAndBanelings (if i remember correctly), however it only was for some runs and i also wasn't able to identify the source of the problem.

I am also encountering NaN while running DefeatZerglingsAndBanelings and CollectMineralShards as well. Is there any updates on this issue?


feat: add fluentbit

Which issue(s) this PR fixes

Fixes #62
Additional comments

This PR introduces Fluentbit installation / configuration.
I have configured the default fluent_bit_configuration property to render the same /etc/fluent-bit/fluent-bit.conf as the one installed by the RPM.
The synthax for fluent-bit.conf.j2 is hard to read but it's because Fluentbit uses a weird format for configuration.
Agreements

[X] I hereby declare this contribution to be licensed under the Apache License Version 2.0, January 2004.
[X] I hereby agree to grant TOSIT a copyright license to use my contributions.

Closing in favor of https://github.com/TOSIT-IO/tdp-observability/pull/24


Add selector property ".index" to capture the index of the element under its parent in the DOM

What is your Scenario?
I am writing tests for several user-specified, dynamically generated tables. It is challenging to retrieve data from a specific table column when the columns are not always in the same order.
I want to get the DOM index of a given column header, then use that index to locate table data in the same column.
(e.g., I want to read the Country from the first row of a table. So I would like to get the index of the Country <th> element, and then get .innerText from the <td> element in the same column for a given row.)
While I can use .child(n) to find the nth element under its parent, I have not found a way to do the reverse -- i.e., to get the index of an element under its parent.
What are you suggesting?
I would like for .index to be added as a selector property (ideally zero-indexed for consistency).
This example should return 1 for columName.index, indicating the second of three columns in this table:
import { Selector } from 'testcafe';

fixture `Fixture`
    .page('https://www.w3schools.com/html/html_tables.asp');

test('test', async t => {
    const columnName = Selector('th').withText('Contact')
    await t.expect(columnName.index).eql(1);
});

What alternatives have you considered?
When .innerText returns text from multiple child elements, a newline character separates the different elements. Using that information, I can theoretically use .split('\n') to create a string array, then use .indexOf() to get the index of the column name.
const columnList = (await this.tableHeader.innerText).split('\n');
columnIndex = columnList.indexOf(columnName);

The trouble is, in this situation, .innerText also returns a lot of "junk" such as empty strings, hidden text, and other bits. This crowds out the header names I'm looking for.
I'm still looking for another workaround.
Additional context
No response

Hi @nathanbeme13,
Thank you for the suggestion. This use case is quite rare and we can't accept it. Keep in mind that you can achieve the required behavior on your own by using theaddCustomDOMProperties method. For example:
import { Selector } from 'testcafe';

function getColumnIndex(el) {
  return el.cellIndex;
}

const customDOMProperties = {
  index: getColumnIndex,
}

fixture`Fixture`
  .page('https://www.w3schools.com/html/html_tables.asp');

test('test', async t => {
  const columnName = Selector('th').withText('Contact').addCustomDOMProperties(customDOMProperties);

  await t.expect(columnName.index).eql(1)
});


QtGui.QGuiApplication

Implemented Qt.py to port tools using Pyside2 to Maya 2025.
QtGui.QGuiApplication was missing, I added to _common_members and it appeared to work.
New to Qt.py, not sure if this is the correct implementation.

This will work just fine, except it will break compatibility with PySide and PyQt4. See here for latest status on that:

https://github.com/mottosso/Qt.py/issues/413


[WIP][TACHYON-868] Remote read should manage block locks by the stream

https://tachyon.atlassian.net/browse/TACHYON-868

@calvinjia is this change what you were expecting?
In the JIRA you said "instead of the remote reader", does that mean currently there is another lock managed by the remote reader?
Do you mind pointing out where that is? I assume you were talking about NettyRemoteBlockReader and TCPRemoteBlockReader, right?

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/Tachyon-Pull-Request-Builder/4506/
Test PASSed.

@miasantreble I think this approach would work, since the block lock acquired is a read lock and we just end up double locking the block (once by the remote stream and once by the data server). It would be good to clean up the code on the data server side though (for example see DataServerHandler.java)

@calvinjia thanks for the input! I checked DataServerHandler.java, looks like readBlockRemote needs lockId to proceed . Shall I come up with another version of getBlockReader that doesn't require a lockId? thanks!

@miasantreble Since this is a design type of a question, I've replied on the JIRA ticket.

since wip_master_client has been merged into master, closing this PR and will open a new PR towards master later


Added failing test of config time not being updated. This will close #335

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 5 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+2.5%) to 39.612%

Totals

Change from base Build<PHONE_NUMBER>:
2.5%

Covered Lines:
347

Relevant Lines:
876

💛  - Coveralls


use babel-node to run javascript(.js) file inside docker

When we run mybot.js by Docker, we might get this error message:
Executing node mybot.js
/bot/mybot.js:1
import {
^^^^^^
SyntaxError: Unexpected token import

This is because Wechaty use node instead of babel to run js code, which does not support import.
Solution:
use Babel Node to run javascript code inside docker to support ES6/7.
Thanks @ jaf(weixin://wxwswjws) report this.

Let's use babel-node by default, and use node only when NODE_ENV is production.
See: http://stackoverflow.com/questions/16978256/what-is-node-env-in-express
According to http://babeljs.io/docs/usage/cli/#babel-node

Not meant for production use
You should not be using babel-node in production. It is unnecessarily heavy, with high memory usage due to the cache being stored in memory. You will also always experience a startup performance penalty as the entire app needs to be compiled on the fly.
Check out the example Node.js server with Babel for an idea of how to use Babel in a production deployment.

Done.
https://circleci.com/gh/Chatie/wechaty/1661
ok 3 javascript es6 import should success
ok 4 javascript es6 import with NODE_ENV=production should fail


Show the PagerTabStripViewController with the selected sub-controller (default tab)

Solves the issue and another one

@bivant
i just tested this again and it seems its not working correctly. Its not showing the default viewcontroller.
the line where you set the 'currentIndex = preCurrentIndex' in viewDidLoad shows the first viewController.

@xmartlabs please merge this PL into master.

Hello @Alexookah
Is it ok now or I messed it up? My update works as expected if I test with/without it the example app after the merge (critical to call moveToViewCmoveToViewController(at: indexTo, animated: false) before the super.viewDidLoad() )

Hello @Alexookah
Is it ok now or I messed it up? My update works as expected if I test with/without it the example app after the merge (critical to call moveToViewCmoveToViewController(at: indexTo, animated: false) before the super.viewDidLoad() )

it's ok. just added how to test it so that this get's merged into master.

@mtnbarreto Is this can be merged? Anyone?

Would love to see this merged! :D

Would be nice to see this get merged! We have an issue in our app that depends on this fix.

Fix for another user case with sub-controllers switch  https://github.com/xmartlabs/XLPagerTabStrip/pull/746 for anyone interested


fixed external library source jar population

This change fixes a small bug that prevents library source jars from populating properly in the libraries model.
Tested manually on the latest plugin codebase.

Hi again @brendandouglas.
I have a working patch that implements a AttachSourcesProvider for Scala. For the sake of the POC, I simply copied the existing com.google.idea.blaze.java.libraries.BlazeAttachSourceProvider and LibraryActionHelper, adjusted the later to look for libraries in BlazeScalaSyncData instead of BlazeJavaSyncData and that's pretty much it.
Before I proceed with that approach, I would like to get feedbacks and discuss other possible approaches. From what I understand so far, that are two main directions we can take here (might be relevant to other JVM languages shared features):

Have a separate implementation for Scala (similar to what I did)
Refactor the Java specific code to be able to locate any jar library, no matter which language imports it or contribute it.

I believe we can take the second approach only in specific area (possibly lift it to the base package), such as Java-like libraries management.
@chaoren @ittaiz told me that you might also be familiar with the Scala related area of the plugin - would love to get your feedback as well.
Many thanks for your support guys!

Sorry for the delay, just taking a look now.
So if I'm reading this correctly, the reason the scala use case isn't already handled by LibraryActionHelper#findLibraryFromIntellijLibrary (via BlazeJavaSyncData) is that scala targets don't populate jdeps? (otherwise BlazeScalaWorkspaceImporter would unnecessary)
As a simpler solution here, how about either:

convert BlazeScalaWorkspaceImporter to a BlazeJavaSyncAugmenter (in which case BlazeScalaSyncData, BlazeScalaWorkspaceImporter, etc. should be unnecessary, and this will all be handled by the generic java code, as we do for kotlin)

add a setting to automatically attach source jars by default on sync. For projects which aren't truly huge, indexing source jars up front doesn't hurt performance much, and is a much simpler solution.

If you're already happy to index the transitive classpath via BlazeScalaWorkspaceImporter, I'm guessing performance isn't the critical problem here.

@brendandouglas thanks for your response!
Option 1 might be good, but I need to better understand why things were implemented the way they are now for Scala, before I can choose that direction.
Regarding option 2, we do have some very big projects, as I'm sure many Bazel users do, so I wouldn't go that route.
Anyways, I'm working on other tasks now and it will take me some time to get back to this. Please leave that PR open for now and I'll get back to it, hopefully soon.
@ittaiz please let me know if you have any thoughts on this.

What about a third option?

generate jdeps output from scala_* rules

Based on this comment it seems like jdeps is both meant for this kind of thing and here to stay:

The use-case for jdeps is distinct: we still want a way for actions that enforce strict deps to output which dependencies were actually used.

This would also open the door to interoperability with other tooling, like unused_deps, which consume jdeps.

Thanks @ceason!
I do not understand how jdeps are generated and used well enough to tell whether or not it will solve, or help solve this problem, but after debugging and reading some code to better understand what jdeps are, it definitely looks like a good idea to have them generated for Scala, regardless of this issue..
@ittaiz maybe you have some background regarding why rules_scala doesn't generate jdeps and whether or not it would be helpful here?

@brendandouglas I checked the possiblity of replacing the BlazeScalaWorkspaceImporter with a BlazeJavaSyncAugmenter for Scala and I really like the idea of using the existing Java model. There was only one obstacle I encountered in order to match the implementation to that of the current workespace importer - I need access to the TargetMap in order get the transitive dependencies of the source targets...
The code below shows a full implementation of a possible Scala sync augmenter, with the required change to the public interface. I left the original method unimplemented and added a new one with an added parameter of type TargetMap. In BlazeJavaSyncAugmenter the new method has a default implementation that calls the old version of the method, to keep the existing code working. However, that is just for the sake of the POC. Wanted to get your feedback and maybe other ideas of how I can get the transitive deps.
class BlazeScalaJavaSyncAugmenter implements BlazeJavaSyncAugmenter {

  @Override
  public void addJarsForSourceTarget(
      WorkspaceLanguageSettings workspaceLanguageSettings,
      ProjectViewSet projectViewSet,
      TargetIdeInfo target,
      Collection<BlazeJarLibrary> jars,
      Collection<BlazeJarLibrary> genJars) {}

  @Override
  public void addJarsForSourceTarget(WorkspaceLanguageSettings workspaceLanguageSettings,
                                     ProjectViewSet projectViewSet,
                                     TargetMap targetMap,
                                     TargetIdeInfo target,
                                     Collection<BlazeJarLibrary> jars,
                                     Collection<BlazeJarLibrary> genJars) {
    if (!workspaceLanguageSettings.isLanguageActive(LanguageClass.SCALA)
            || target.getKind().getLanguageClass() != LanguageClass.SCALA) {
      return;
    }

    JavaIdeInfo javaInfo = target.getJavaIdeInfo();
    if (javaInfo == null
            || javaInfo.getFilteredGenJar() != null
            || !javaInfo.getGeneratedJars().isEmpty()) {
      return;
    }

    // Add every jar in the transitive closure of dependencies.
    // Direct dependencies of the working set will be double counted by BlazeJavaWorkspaceImporter,
    // but since they'll all merged into one set, we will end up with exactly one of each.
    for (TargetKey dependency : TransitiveDependencyMap.getTransitiveDependencies(target.getKey(), targetMap)) {
      TargetIdeInfo depTarget = targetMap.get(dependency);
      if (depTarget == null
              || depTarget.getJavaIdeInfo() == null) {
        continue;
      }

      depTarget.getJavaIdeInfo()
              .getJars().stream()
              .map(BlazeJarLibrary::new)
              .forEach(genJars::add);
    }
  }
}

@ceason regarding jdeps, according to my understanding, rules_scala implements an API which is considered to be the next generation of jdeps (although it seems like jdeps are not going anywhere). I don't see that change happening soon enough, so I'm trying to avoid that at the moment. Regardless of that matter, I like the augmenter approach proposed by @brendandouglas, because I see no reason to maintain a separate model from the existing Java model. I think it only makes things more complicated and I would like to remove now, before more functionality is built on top of it and it becomes impossible.
@chaoren I was told that you were involved in the implementation of BlazeScalaWorkspaceImporter and I would really appreciate your inputs here!
Thanks for your time guys!

@brendandouglas any thoughts on my previous message?

@sha1n the main issue I see with that BlazeScalaJavaSyncAugmenter implementation is that it's going to potentially have O(n^2) performance on the number of targets (something we try hard to avoid throughout the plugin), because you're searching the transitive closure of each target.
BlazeScalaWorkspaceImporter avoids that by searching the transitive closure once for the entire list of scala targets, rather than once per target.

@brendandouglas I agree, but I feel somewhat limited with the current extension points and hooks I have (at least the ones I'm aware of). I really like the idea of removing the BlazeScalaWorkspaceImporter and populating the existing Java models, like you suggested, but that seems challenging with the current extension points I have. This can obviously be solved with an appropriate extension point, do you think we can have something like that?
We can always go with the original solution I implemented, if that's not an option.
Thanks.

Hi folks, any chances this can be moved forward? It is blocking external jar source support in Scala projects.

@brendandouglas @jin for context @liucijus has volunteered to work on the IntelliJ plugin for Wix ( for a few months now and hopefully for a few more months).
We've solved this issue internally and we'd like to upstream it.
We understand there were different technical takes on this issue and are open to implementing it again in a different way.
How do you think it would be best to advance?
Btw, part of our interest in upstreaming it (apart from advancing the community) is that we'd like to fix other issues with scala sources like source-root detection and would rather not diverge too much from upstream.

Any updates on this? we're running into this issue as well.

Hello @sha1n, Could you please resolve the above branch conflicts to move this PR in further good state. Thanks!

Hello @sha1n, Could you please resolve the above branch conflicts to move this PR in further good state. Thanks!

Hey @sgowroji, unfortunately I no longer have the right tools and context to handle your request properly. This PR is almost four years old and I'm sure a lot has changed... However, since we've never reached consensus regarding how this should be implemented, maybe it would be more effective to discuss it first, agree on the approach and then invest in a proper solution, otherwise I feel that it might be a waste of everybody's time.
@ittaiz FYI - in case the @wix team wants to comment or step in here.

Thanks @sha1n !!!
@liucijus wdyt?

This PR is still relevant, I guess there are a few options to go forward:

@sha1n solves the conflict, probably also rebase may be needed to see if latest tests pass. It should not be hard, as the code base in the area of change almost did not change since this PR was opened
@sha1n closes PR, and someone (me?) opens another PR

This PR is still relevant, I guess there are a few options to go forward:

@sha1n solves the conflict, probably also rebase may be needed to see if latest tests pass. It should not be hard, as the code base in the area of change almost did not change since this PR was opened
@sha1n closes PR, and someone (me?) opens another PR

Given @sha1n hasn't responded in over a month, is it possible for you to carry this forward?

as per discussion with @liucijus we'll close this and he will submit a similar followup PR


[Packaging][CentOS] Migrate Centos 7 and Centos Stream 8 packaging jobs to use vault.centos.org

Describe the enhancement requested
https://github.com/apache/arrow/pull/41395 and https://github.com/apache/arrow/issues/41401 discuss dropping support for Centos 7 and Centos Stream 8 (respectively) as they have both gone EOL. Continuing to support each platform was discussed and @kou mentioned that we may be able to keep each packaging job working by migrating to vault.centos.org. This would allow us to continue testing packaging on these two platforms and keep them in the support matrix.
We should update these two Dockerfiles to pull packages from vault.centos.org and evaluate whether this will work for our needs:

[ ] https://github.com/apache/arrow/blob/main/dev/tasks/linux-packages/apache-arrow/yum/centos-7/Dockerfile
[ ] https://github.com/apache/arrow/blob/main/dev/tasks/linux-packages/apache-arrow/yum/centos-8-stream/Dockerfile

Component(s)
Packaging

I initially tried updating just the AppStream repo definition as mentioned in https://github.com/apache/arrow/issues/41401#issuecomment-2156194716 but it looks like all repo definitions need updating because a yum update gives me:
CentOS Stream 8 - BaseOS                                                        81  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'baseos': Cannot prepare internal mirrorlist: No URLs in mirrorlist

After updating all the repos to point to vault.centos.org, update works:
find /etc/yum.repos.d/ -type f -iname *repo | xargs sed -i 's/mirrorlist/#mirrorlist/'
find /etc/yum.repos.d/ -type f -iname *repo | xargs sed -i 's/#baseurl/baseurl/'
find /etc/yum.repos.d/ -type f -iname *repo | xargs sed -i 's/mirror.centos.org/vault.centos.org/'

However, when I try to install all the packages we need for the job, I find we're missing some:
Error: Unable to find a match: ccache json-devel re2-devel rapidjson-devel thrift-devel

I'm looking into that now.

Yes. We need to update all CentOS based repositories.
FYI: We can use one sed for it:
sed -i \
  -e 's/.../.../g` \
  -e 's/.../.../g` \
  ... \
  /etc/yum.repos.d/*.repo

However, when I try to install all the packages we need for the job, I find we're missing some:
Error: Unable to find a match: ccache json-devel re2-devel rapidjson-devel thrift-devel

I think EPEL provides them. So we may need some adjustments for EPEL too.

FYI: We can use one sed for it:

Nice, thanks.

I think EPEL provides them. So we may need some adjustments for EPEL too.

Good pointer, thanks.

That was the trick, thanks @kou. Both images now build locally for me with the changes in https://github.com/apache/arrow/pull/42129. Can you have a look?

Issue resolved by pull request 42129
https://github.com/apache/arrow/pull/42129


Broadcast source unit test inval delete

@Thalley also merge conflict, needs a rebase

Rebased to solve merge conflicts

Rebased to solve merge conflicts

@cvinayak @larsgk please re-review

Rebased to solve merge conflicts


binds not working

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
No
System Info and Version
 System/Version info
<Paste the output of the command here>
```Hyprland, built from branch  at commit 4520b30d498daca8079365bdb909a8dea38e8d55  (version: bump to 0.44.1).
Date: Wed Oct 9 12:54:39 2024
Tag: v0.44.1, commits: 5309
built against aquamarine 0.4.2

flags: (if any)

System Information:
System name: Linux
Node name: cachyos-pc
Release: 6.11.4-3-cachyos
Version: #1 SMP PREEMPT_DYNAMIC Fri, 18 Oct 2024 20:23:08 +0000

</details>

### Description

bind = alt, up, sendshortcut, ,pageup
bind = alt, down, sendshortcut, ,pagedown
not working

### How to reproduce

bind in `~/.config/hypr/hyprland.conf`.

### Crash reports, logs, images, videos

_No response_

correct
#bind = alt, up, sendshortcut, , page_up,
#bind = alt, down, sendshortcut, , page_down,


docs(README.md): fix atoms.json example

The current README.md example for an atoms.json file doesn't include the outer brackets, leading to a parsing issue:
python3 compose_reaction atoms.json reaction.json test_reaction
Traceback (most recent call last):
  File "compose_reaction", line 87, in <module>
    name = atom.get('name')
AttributeError: 'str' object has no attribute 'get'

@rc-grey also on the https://redcanary.com/blog/chain-reactor-framework-for-linux/ page the atoms.json example doesn't have the list brackets :)