Unlike "Items" tab, "child classes" tab does not display description nor image thumbnail

Steps to reproduce:

Run this branch: https://github.com/commons-app/apps-android-commons/commits/structured-data
Have Android in English locale
Tap "Explore" in the left menu
Tap the search tool
Type "bow"
Tap "Items"
Look at the archery item: It has a description and an image. Tap it
Tap "Child classes"
Look at the "composite bow" item: It has no description nor image, despite its item having both: https://www.wikidata.org/wiki/Q653015

Hi Nicolas,
I tried to load structured-data branch in Android studio but I could not see this in the list of branches displayed. Am I missing something?

I tried to locally download the code using Git Bash from my forked repo but that was not successful too. The branch does not seem to get listed on my forked repo as well
$ git clone --single-branch --branch structured-data https://github.com/vvijayalakshmi21/apps-android-commons
Cloning into 'apps-android-commons'...
warning: Could not find remote branch structured-data to clone.
fatal: Remote branch structured-data not found in upstream origin

Does that mean I have to load the branch from the main repo?

You have to create a branch in your local repo that tracks structure-data
Then create a sub-branch to it for each pull request.
Maybe try this? https://www.git-tower.com/learn/git/faq/track-remote-upstream-branch

@vvijayalakshmi21 You can also try this:
# Add new remote for the upstream repo which contains `structured-data` branch
# Can be skipped if a remote already exists
git remote add upstream https://github.com/commons-app/apps-android-commons

# Fetch the branches present in the `upstream` remote
git fetch upstream

# Checkout a local branch that tracks the remote's structured-data branch
git checkout -b structured-data upstream/structured-data

# Your local branch which tracks the structured-data branch should be checked out now
# You can try building an app and checking if it works

# After some testing. Create another branch for your fix with a name of your choice
git checkout -b fix-issue-3526

Hi @nicolas-raoul I started to debug the depicts code and for some time the Images were displaying for Items but soon after I started seeing the default barcode image for Items as well despite changing nothing but just introducing more debug points.
Not sure if this is something relevant to the issue but could this be because of unstable response?
Also, I was checking the below code snippets for analysis.

Am I going in the right direction?
Please could you help me on how to verify the response for an entityId? We are fetching the URL using fetchThumbnailForEntityId() and I would like to compare the fields involved in the mapping the response.
Is it sufficient to look at getUrl(String title) function in DepictsClient file?

I think the issue is with the entity id being entityId = "y/Q186476" format rather than entityId = "Q186476" as seen in the cases where we are able to successfully get the information.
I tried a quick dirty fix where I removed the y/ prefix as below:
if (entityId.startsWith("y/")){
entityId = entityId.substring(2);
}
Now I see images being displayed for child classes:

wow congratulations, nice find!
Even if substring fixes the bug, I am sure you will agree that instead, creating a valid entityId in the first place would be a better solution.
Where does this entityId come from? Why does it include extra characters before the Q? Can you fix it? Thanks :-)

Hi @nicolas-raoul
The problem is with the getChildQIDs() in OkHttpJsonApiClient.java file.
From the response the entityId = "http://www.wikidata.org/entity/Q186476"
But we are trying to fetch the ID as below:
String entityId = binding.getSubclass().getValue(); ---> has value "http://www.wikidata.org/entity/Q186476"
entityId = entityId.substring(entityId.lastIndexOf("/") - 1); ---> has value "y/Q186476"

For fetching the parent QID in the same file, we are using the below line of code:
                           entityId = entityId.substring(entityId.lastIndexOf("/") + 1);

Wonderful!
Please send a pull request fixing that :-)

@sivaraam thanks for the info. I will follow the steps outlined in your reply. How do I do the following?
Your local branch which tracks the structured-data branch should be checked out now
You can try building an app and checking if it works
Sorry I'm still familiarizing myself with GitHub. So please help me.

@nicolas-raoul I think fixing this will only fetch the image urls
I checked the output after changing the - to + and the below is the screenshot:

The description is still not displayed although it gets displayed when we search for the same through Explore->Items

I will check the description part and commit the changes together if thats okay?
Or would you suggest committing changes separately?

@sivaraam thanks for the info. I followed the steps outlined in your reply and I was able to set up tracking the structured-data branch.
I will make the changes and commit it using a new sub-branch.

Glad to be of help :)

Thanks so much for your guidance.

My pleasure.

I will check the description part and commit the changes together if thats okay?
 Feel free to commit often. It's good to have several revisions of the code that work. They would only help you get back to a previous working code easily when things go awry. That's one of the main points of committing changes, isn't it?
Here's a related article: Do your commits pass this simple test? - DEV Community 👩💻👨💻

Hi @nicolas-raoul I have been trying to locate where we are fetching the description field for the "Items". I can see that we are making a call in getMediaListFromSearch() and getting the values in the response
2020-04-01 15:42:11.317 25493-25581/fr.free.nrw.commons.beta D/OkHttp: <-- 200 https://commons.wikimedia.beta.wmflabs.org/w/api.php?action=query&format=json&formatversion=2&generator=search&gsrwhat=text&gsrnamespace=6&prop=imageinfo&iiprop=url|extmetadata&iiurlwidth=640&iiextmetadatafilter=DateTime|Categories|GPSLatitude|GPSLongitude|ImageDescription|DateTimeOriginal|Artist|LicenseShortName|LicenseUrl&gsrsearch=bow&gsrlimit=10 (621ms)
2020-04-01 15:42:11.836 25493-25564/fr.free.nrw.commons.beta D/OkHttp: {"searchinfo":{"search":"bow"},"search":[{"repository":"local","id":"Q46311","concepturi":"http://www.wikidata.org/entity/Q46311","title":"Q46311","pageid":48453,"url":"//www.wikidata.org/wiki/Q46311","label":"bow","description":"ranged weapon system consisting of an elastic launching device and long-shafted projectiles","match":{"type":"label","language":"en","text":"bow"}},

But I could not find where we are exactly fetching the value. I think I am overseeing it.
Could you please help me identify?

The sub classes for an item are fetched by the URL:
https://query.wikidata.org/sparql?query=SELECT %3Fsubclass %3FsubclassLabel WHERE {
    %3Fsubclass wdt%3AP279 wd%3AQ186476.
    SERVICE wikibase%3Alabel { bd%3AserviceParam wikibase%3Alanguage "en". }
}
&format=json
The parent classes are fetched using the URL:
https://query.wikidata.org/sparql?query=SELECT %3FparentClass %3FparentClassLabel WHERE {
    wd%3AQ186476 wdt%3AP279 %3FparentClass.
    SERVICE wikibase%3Alabel { bd%3AserviceParam wikibase%3Alanguage "en". }
}
&format=json
These are the outputs we get:
get_parent_q_id_response.txt
get_child_q_id_response.txt
As these do not include the description for the child classes and parent classes as well, they are not being displayed. I believe we need to make a call like we do for Items to fetch the description details. What are your thoughts on this?

Thanks for the investigation!
Please send a first pull request for thumbnails only.
Descriptions can be a second pull request later.
To get descriptions, you will need to modify the SPARQL query template to include ?parentClassDescription as seen in this screenshot, in app/src/main/resources/queries/parentclasses_query.rq and app/src/main/resources/queries/subclasses_query.rq:

Hi @nicolas-raoul
I've created a PR from my branch for the thumbnail fix.
I've received an automatic reply asking for testing. Kindly let me know what I need to do to complete the pr process

Unit tests would be required if this was about merging a new feature into master, but for this issue it is OK, don't worry.
Looking forward for a pull request about the description :-)

Hi @nicolas-raoul I have created a PR for fetching description from the server and displaying it for Parent and Child classes where available.

Please have a look and let me know if the changes are fine,

Looks great!
The source code is also good.
Just rebase to fix the conflict, and I will merge :-)

Both fixes merged, thanks @vvijayalakshmi21 ! :-)

Hi @nicolas-raoul can you please assign the next issue? Or can I work on the tooltip one mentioned by @misaochan

@vvijayalakshmi21 I assigned the tooltip issue to you. If you want a different one it is OK too.


/event participants displayed similar as /watchlist

So people can check participants by just quick look on the channel

I don't think this would be viable to implement at the moment.
Events are meant to be managed by any users, so at a given time, a server might have multiple events going on. So this means that many events would be listed in the channel
This implies having to manage which message corresponds to which event, to keep the message updated when changes occur, and also remove the event once it passes.
This would require a system to manage all these messages and since events are meant to be something ephemeral, I don't think the effort needed for this is worth it. At least not at the moment.


Why manual control doesn't work ?

First all of thank you for your amazing work. i'm working with the compiled version of carla and i only changed the carla directory of PythonClient to follow the changes you made on the project, when i run the python client from manual_controle.py the manual control does not work.

Hi @peter-jean1,
Our GitHub master branch contains already what's going to be version 0.8.0 of CARLA. We have changed few things in the server-client protocol that make it incompatible with previous versions. I'm afraid that if you want to use the latest version of the manual control you'll need to compile CARLA from source, or wait for the coming 0.8.0 release that will be ready in the coming days.

Hi @nsubiron,
Thank you for your answer, I found a solution except the pygame window which is displayed in black.
Other than that, I see a lot of work on optimizing the graphics quality level.

@peter-jean1 Release 0.8.0 is out now.

@nsubiron Thank you for your tag.


Adjustable RPC Content Type

Add adjustable RPC content type to be compatible with other services.
Our default Content Type is set to application/json; charset=utf-8
While e.g. ElectrumX only accepts application/json

Changes LGTM

Hmm looks like the test failed @zeptin


debug menu error

Describe your problem here.
when i press 7 during song this error appearce

Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
added new characters, images, notetypes, mechanics etc

not a bug
your dad health icon is broken

close this issue


More than 19 colors/gradients = "TypeError: Cannot read property '0' of undefined"

Using default options on a webpage that has more than 19 unique users, I encountered a "TypeError: Cannot read property '0' of undefined".  This error caused only the first 19 icons to be generated and everything after was an unrendered invisible DIV.  If I disable the gradient option and use fill: 'color', no error is throw, but all users over the count of 19 appear on a black background.
Is this a bug or are developers required to identify the maximum unique users being displayed and specify an array of colors that meets or exceeds that amount? (I was under the impression that additional icon colors would start over at the beginning of the array of colors.)
Thanks.

Thanks for the report 👍
That was a bug, fixed now.


Scan images for missing emoji

There might be emoji we don't have in the catalog, but have images for from one of the sources. Let's scan those to be sure.

This is definitely the case for flags (see #20) but might also apply elsewhere

now doing this and everything looks dandy


Stub check endpoint parameter also

Hi, is it possible to check stub condition including the parameters using isPath("")? Currently I have a code to check only for Host and Endpoint, and for endpoint it works only for something:

endpoint1
endpoint2, etc...

What I want to check also is the query params on it, like : endpoint1/configId=XXX, or endpoint1. Both of them should return a different json response based on given stubFileName. Can I achieve that? Thanks..
    static func stubNetwork(forConnector connector: NSObject.Type, endpoint: String, stubFileName: String) {
        if let apiBaseURL = URL(string: HttpConnector.sharedFCHTTPClient().getKAPIBaseUrl()),
                let urlHost = apiBaseURL.host {
            stub(condition: isHost(urlHost) && isPath("/".appending(endpoint))) { request in
                guard let path = OHPathForFileInBundle(stubFileName, Bundle.init(for: TestsHelper.classForCoder()))
                    else {
                        preconditionFailure("Stub not found!")
                }

                return OHHTTPStubsResponse(
                    fileAtPath: path,
                    statusCode: 200,
                    headers: ["Content-Type":"application/json"]
                )
            }
        }
    }

You have multiple options there:

there's a matcher helper called containsQueryParams(…) so you can combine isHost(…) && isPath(…) && containsQueryParams(…) and so on
remember that the matcher parameter (the first parameter of the stub method) is actually just a closure taking the request and returning a boolean. Helpers like isPath(…) etc are just helper functions to construct closures for common use cases but if you need more control you can always provide a custom closure to fit advanced needs.

In your use case you could also either:

prefer install two different stubs with 2 different conditions (one with some containsQueryParams(xx) and another with containsQueryParams(yy))
or stub all request, and return a different value in the trailing closure (using a simple if) depending on req.url?.query or similar

So really you have a lot of options to do that!

Wow okay, will try that! Thanks for the suggestion @AliSoftware :)


Dropdown should open UP instead of DOWN, when there is not enough space to render fully

When there is not enough space for dropdown to render fully, it should be rendered to the top of the element, as it is default behaviour for select2.

+1

+1 - I would enjoy being able to also force it to render upwards always, if possible.

+1

+1

+1

+1

This would definitely be nice to have.
This could also be a solution for the list falls behind overflow:hidden or overflow:auto containers #591.
"move drop down to base of  to stop it from being cut off (drop.js) #591"

Might want to update the milestone here if this hasn't been addressed yet.

do want

I've created a PR with code that adds an up direction depending on how much vertical space is left for rendering.  This works well for my local build.
Feel free to try it out on your own builds and upvote the PR if it works for you!

:+1:

:+1:
Just a simple question: As this issue is 9 months old, should I

wait hoping that you're going to fix/merge the PR soon
fork this repo (which I really don't want..)

?
Thanks!

@cyrilf brianfeister self-assigned PR #836 about 10 days ago, so it may get merged soon.  Maybe you can leave a comment in the PR itself to generate more activity.

Merged! Thanks again @JeromeLam :wink:

@JeromeLam, hi
offsets calculated wrong when I have scroll on "body" element instead of "html"
offset.top + offset.height + offsetDropdown.height > $document[0].documentElement.scrollTop + $document[0].documentElement.clientHeight
should be replaced with
offset.top + offset.height + offsetDropdown.height > $document[0].documentElement.scrollTop + $document[0].body.scrollTop + $document[0].documentElement.clientHeight

Same issue as @SerjoPepper -- and btw thanks for commenting the issue

Looks like if you use ui-select inside directives, on Chrome browsers the dropdown always goes up instead of dropping down.

@kwantopia I'm having the same issue

Is there any option/setting to disable this feature?

same question than  @danduh : Is there any option/setting to disable this feature?

Seeing the same issue as @kwantopia in Chrome, doing my head in. Any suggested fix?

Would love the ability to force it to always open down. Currently it's opening up no matter what I do.

@hyrumwhite +1

@hyrumwhite +1

@hyrumwhite +1

Same issue here, inside a modal, it always opens up and goes slightly out of the window. Would like to force 'direction-down'.

+1

with @calwi , please add the ability to force 'direction-down'

@hyrumwhite +1

with @hyrumwhite and @calwi  and @pgeez I also want to force either direction-down or direction-up.

I also really need the option to force "direction-down".

Related to https://github.com/angular-ui/ui-select/pull/1212

Just for anyone who found this issue looking for a way to force dropdowns to go down, this is now possible with #1213 :relaxed: - you just need to add position='down' to your <ui-select-choices> or globally:
yourApp.config(function(uiSelectConfig) {
  uiSelectConfig.dropdownPosition = 'down';
})

@alexpeattie :+1: thanks

select2 dropdown position want to down only display


Website down?

The website seems to be down at the moment.
http://www.downforeveryoneorjustme.com/whatisthor.com

The website appears to be fixed.


pissarro-LineageOS-lineage-19.1-Kartik-91

Heyy buddy are u trying to develop rom for pissarro?

Heyy buddy are u trying to develop rom for pissarro?

Yes, we already booted it but have some problem with display

Heyy buddy are u trying to develop rom for pissarro?

Yes, we already booted it but have some problem with display

So glad can't wait to try it ,can i get your insta?

Heyy buddy are u trying to develop rom for pissarro?

Yes, we already booted it but have some problem with display

So glad can't wait to try it ,can i get your insta?

U can contact me on Telegram https://t.me/Kartik11i


Mismatch between Docker pgbouncer user and security group

I have a simple Pooler added to my cluster:
apiVersion: postgresql.cnpg.io/v1
kind: Pooler
metadata:
  name: pg-pooler-rw
  labels:
    app: pg-pooler-rw
spec:
  cluster:
    name: pg-cluster
  instances: 1
  type: rw
  pgbouncer:
    poolMode: transaction
    parameters:
      max_client_conn: "10000"
      default_pool_size: "30"
      client_idle_timeout: "600"

I'd like to connect to the pgbouncer database to get access to the connection pooler stats. However, when I try to access the pod using kubectl exec, I see that I am user 998 (I have no name! it says), and pgbouncer is expecting user 1000 (given the Dockerfile):
I have no name!@pg-pooler-ro-79684b945c-stzx7:/$ cat /etc/passwd | grep pgbouncer
pgbouncer:x:1000:1000:,,,:/home/pgbouncer:/bin/bash

I have no name!@pg-pooler-ro-79684b945c-stzx7:/$ whoami
whoami: cannot find name for user ID 998

If I look at the generated Pod yaml (using k9s's edit command) I see that the pod has been started with:
  securityContext:
    fsGroup: 996
    runAsGroup: 996
    runAsNonRoot: true
    runAsUser: 998

Which is where the 998 is coming from. Is anyone else experiencing this? Is there a way to override that runAsUser to match pgbouncer's 1000 UID? I tried specifying a securityContext in the spec part of the Pooler but it didn't override the definition. Many thanks!

As an update, I was able to get this to work with a slightly customized Dockerfile for PGBouncer:
diff --git a/Dockerfile b/Dockerfile
index ef262b1..91a2d93 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -54,7 +54,7 @@ RUN  set -ex; \
      apt-get -y clean ; \
      rm -rf /var/lib/apt/lists/*; \
      rm -fr /tmp/* ; \
-     adduser  pgbouncer ;  \
+     adduser --uid 998 pgbouncer ;  \
      mkdir -p /var/log/pgbouncer ; \
      mkdir -p /var/run/pgbouncer ; \
      chown pgbouncer:pgbouncer /var/log/pgbouncer ; \

Happy to put it up as a PR in the pgbouncer-containers repo, if that seems like the best approach. The other option would be to update pkg/specs/pgbouncer/deployments.go to specify UID 1000 rather than 998.

Hi, thanks for reaching out, just to be clear, the pooler is working properly, the only issue is that accessing the container you get the I have no name! message, right? If that's the case, it would still be nice to have the two uid's match for sure, so feel free to create a PR with the fix you suggested above :wink: :pray:

Hi, thanks for reaching out, just to be clear, the pooler is working properly, the only issue is that accessing the container you get the I have no name! message, right? If that's the case, it would still be nice to have the two uid's match for sure, so feel free to create a PR with the fix you suggested above 😉 🙏

That's correct, the pooling all works but it makes it impossible to get at the pgbouncer stats database because that uses Peer auth. Will cook up a PR, thanks!

Thanks @phisco, PR at https://github.com/cloudnative-pg/pgbouncer-containers/pull/25

Awesome thanks! Btw, the stats should be exposed as Prometheus metrics!

Closing as the associated container issue has been merged


Removed unnecessary text and backslashes

Code blocks had extra backslashes from legacy docs which are unnecessary in Markdown docs.  Also removed "Execute" and prompt character from last code block.

@joshuaalm Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@kaarins PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@kaarins PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Improve code style

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.21%. Comparing base (804eef6) to head (a76a446).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #676   +/-   ##
=======================================
  Coverage   99.21%   99.21%
=======================================
  Files          26       26
  Lines        2042     2042
  Branches      295      295
=======================================
  Hits         2026     2026
  Misses         16       16

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update to 1.0

Hi, it would be nice if the tutorial can be updated to 1.0
constructs like
https://github.com/langium/langium-minilogo/blob/79406874b705099ac61f638214a21c6ccbda2ce4/src/language-server/minilogo-validator.ts#L8
wont work there anymore

Thanks for bringing this up @cdietrich . We should definitely update this to work with the most recent Langium release. I would be happy to put some time aside to update this repo to the new spec, when I get a moment. We should also update the tutorials pages as well based on the diffs. I'll assign myself to tackling this in the meantime.

@cdietrich updated this example to use Langium 1.0.1 a couple weeks ago. Closing this out as resolved in the meantime.


🤔 If we no-go QuickSight, do we sunset the tactical solution?

User Story
As a Analytical Platform engineer
I want us to come to a decision on the future of QuickSight if we decide to no-go it
So that we don't still end up maintaining QuickSight if its not our tool of choice
Value / Purpose
We (Analytical Platform) provide QuickSight in a tactical offering, as in its not part of core product.
Useful Contacts
No response
User Types
No response
Hypothesis
If we decide to no-go QuickSight
Then sunset QuickSight
Proposal
No response
Additional Information
No response
Definition of Done

[ ] decision made

Let's rewrite this to cover the migration plan instead.


Tm4 c1294 can char dev

Summary
Implementation of TI Tiva TM4C1294 launchpad character device driver. The driver was taken over from the 1293 launchpad. Minor modifications were added to the configuration file. Bugfix of typo in the arch/tiva/tiva_can.c file
Impact
Added support for missing CAN implementation on the TM4C1294XL launchpad
Testing
The implementation was tested using TM4C1294XL launchpad against the PEAK USB CAN converter using can0 device on the lauchpad.

@dvosahlik please squash the last patch to the second one.

@xiaoxiang781216, I did the squash as requested.


User can enable location

1 - var x is inside every function in enable_location.js. need to refactor so that it's more DRY, but timeboxing for MVP sake and moving on


Swagger spec 1.2 inconsistency

I noticed that swagger 1.2 recently gained Info Object:
https://github.com/swagger-api/swagger-spec/blob/master/versions/1.2.md#513-info-object
https://github.com/swagger-api/swagger-spec/blob/master/schemas/v1.2/infoObject.json
However, Info Object was not part of the original 1.2 spec:
https://raw.githubusercontent.com/wordnik/swagger-spec/master/schemas/v1.2/apiDeclaration.json

Closing this for now. Please reopen if required.


Add an option to import an identity from a private key instead of a wallet file

Would it be possible to add an option to import an identity based on a private key instead of an encrypted wallet?
This would be quite useful for automation, see https://github.com/ethersphere/beeload-action/issues/13#issuecomment-1020013257 for example.
I'd happy to write a PR for it.

Currently swarm-cli supports two types of identities (wallets): password-protected and keypair-only. The password protected ones are in standard JSON V3 format, but the keypair-only identities are just storing the private keys as plain text. Therefore it is not recommended in general to use the keypair-only identities for security sensitive use-cases.
I would maybe either extend the identity import command to accept a private key argument with an additional required password argument to convert it internally a password protected identity. I can imagine also an optional argument to omit the password, in that case it would be only imported as keypair-only identity.
However that may mess up the internal logic of the identity import command so it may be better to introduce a new identity import-key command with the semantics described above. Wdyt @Cafe137 ?

Having a single import command which works intuitively is very much worth the implementation upon the existing internal logic IMO. It can be refactored easily to keep the code clean.
import identity
This is the minimal UX I think:

Handles V3 wallets
Handles private keys
Can take either a path or a private key as the argument
Path may point to a V3 file or a file with a private key
0x prefix may be omitted for all private keys

Now for security, I would not make it mandatory to have the private keys converted to V3 wallets.
However, when running in interactive mode (which is the normal use case and the default), I would print a y/n prompt "This is not secure, you should set up a password and convert this private key into a wallet, would you like to do it now" which then provides a wizard or just imports as keypair-only.
We already have similar wizards for identity and feed commands, so this is nothing new to swarm-cli.
If this gets accepted I would also like to open a new issue for extracting this conversion flow as an identity convert standalone command.

BTW, I allocated 2-3 days for swarm-cli this week with the same plan, to revisit the identity commands, since we added some features to bee-dashboard which are currently not supported here just yet. So I can gladly take on this since this was among my current todos. 🙂

So I can gladly take on this since this was among my current todos. 🙂

That would be awesome, thank you!


Improve reduce duplicated memory consumption for column name and column path

… column name and column path
Both could be reference to related field in TabletColumn.And use shared_ptr for TabletColumn in TabletSchema for later memory reuse
Proposed changes
Issue Number: close #xxx

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

run buildall

run buildall

run buildall


Shader directory found '/snap/meshlab/183/usr/bin/shaders', and it contains 0 gdp files

Is this something to be considered about and if so, what do you suggest as a fix?
(focalpose) mona@ard-gpu-01:~/focalpose$ bash preprocess_data.sh
Setting OMP and MKL num threads to 1.
Traceback (most recent call last):
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/mona/focalpose/focalpose/scripts/cars_to_urdf.py", line 74, in <module>
    copy2(obj.as_posix(), obj.with_name(f'{cls.name}').with_suffix('.obj'))
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 266, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 104, in copyfile
    raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '/home/mona/focalpose/local_data/StanfordCars/models/eaeabed4e984364868ebd0cfefbb61e9/eaeabed4e984364868ebd0cfefbb61e9.obj' and PosixPath('/home/mona/focalpose/local_data/StanfordCars/models/eaeabed4e984364868ebd0cfefbb61e9/eaeabed4e984364868ebd0cfefbb61e9.obj') are the same file
Setting OMP and MKL num threads to 1.
Traceback (most recent call last):
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/mona/focalpose/focalpose/scripts/pix3d_to_urdf.py", line 77, in <module>
    copy2(files.as_posix(), files.with_name(f'{obj.name}_{cls.name.upper()}').with_suffix('.obj'))
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 266, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 104, in copyfile
    raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '/home/mona/focalpose/local_data/pix3d/model/tool/SS_3/SS_3_TOOL.obj' and PosixPath('/home/mona/focalpose/local_data/pix3d/model/tool/SS_3/SS_3_TOOL.obj') are the same file
Setting OMP and MKL num threads to 1.
100%|███████████████████████████████████████| 8144/8144 [01:54<00:00, 71.41it/s]
100%|███████████████████████████████████████| 8041/8041 [01:52<00:00, 71.73it/s]
Setting OMP and MKL num threads to 1.
100%|███████████████████████████████████████| 3798/3798 [00:59<00:00, 63.31it/s]
100%|███████████████████████████████████████| 1898/1898 [00:30<00:00, 61.63it/s]
Setting OMP and MKL num threads to 1.
Working on the mesh: /home/mona/focalpose/local_data/models_urdf/pix3d/tool/SS_2_TOOL/SS_2_TOOL.obj
Qt: Session management error: Could not open network socket
propsReply "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.1108\" (uid=1002 pid=176867 comm=\"/snap/meshlab/183/usr/bin/meshlab -i /home/mona/fo\" label=\"snap.meshlab.meshlab (enforce)\") interface=\"org.freedesktop.DBus.Properties\" member=\"GetAll\" error name=\"(unset)\" requested_reply=\"0\" destination=\"org.freedesktop.NetworkManager\" (uid=0 pid=827 comm=\"/usr/sbin/NetworkManager --no-daemon \" label=\"unconfined\")"
nmReply "An AppArmor policy prevents this sender from sending this message to this recipient; type=\"method_call\", sender=\":1.1108\" (uid=1002 pid=176867 comm=\"/snap/meshlab/183/usr/bin/meshlab -i /home/mona/fo\" label=\"snap.meshlab.meshlab (enforce)\") interface=\"org.freedesktop.NetworkManager\" member=\"GetDevices\" error name=\"(unset)\" requested_reply=\"0\" destination=\"org.freedesktop.NetworkManager\" (uid=0 pid=827 comm=\"/usr/sbin/NetworkManager --no-daemon \" label=\"unconfined\")"
"Object path cannot be empty"
Shader directory found '/snap/meshlab/183/usr/bin/shaders', and it contains 0 gdp files
Shader directory found '/snap/meshlab/183/usr/bin/shaders', and it contains 0 gdp files

Hi, I've never ran Focalpose on Ubuntu (only RHEL systems), but could you please try to install MeshLab AppImage from here https://www.meshlab.net/#download and try it?

Thanks a lot. It worked.
Do you know how long does it take approximately for this script to finish? Also are the two errors seen beginning of the script OK?
(focalpose) mona@ard-gpu-01:~/focalpose$ bash preprocess_data.sh
Setting OMP and MKL num threads to 1.
Traceback (most recent call last):
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/mona/focalpose/focalpose/scripts/cars_to_urdf.py", line 74, in <module>
    copy2(obj.as_posix(), obj.with_name(f'{cls.name}').with_suffix('.obj'))
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 266, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 104, in copyfile
    raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '/home/mona/focalpose/local_data/StanfordCars/models/eaeabed4e984364868ebd0cfefbb61e9/eaeabed4e984364868ebd0cfefbb61e9.obj' and PosixPath('/home/mona/focalpose/local_data/StanfordCars/models/eaeabed4e984364868ebd0cfefbb61e9/eaeabed4e984364868ebd0cfefbb61e9.obj') are the same file
Setting OMP and MKL num threads to 1.
Traceback (most recent call last):
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/mona/focalpose/focalpose/scripts/pix3d_to_urdf.py", line 77, in <module>
    copy2(files.as_posix(), files.with_name(f'{obj.name}_{cls.name.upper()}').with_suffix('.obj'))
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 266, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/home/mona/anaconda3/envs/focalpose/lib/python3.7/shutil.py", line 104, in copyfile
    raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '/home/mona/focalpose/local_data/pix3d/model/tool/SS_3/SS_3_TOOL.obj' and PosixPath('/home/mona/focalpose/local_data/pix3d/model/tool/SS_3/SS_3_TOOL.obj') are the same file
Setting OMP and MKL num threads to 1.
100%|██████████████████████████████████████| 8144/8144 [01:19<00:00, 102.63it/s]
100%|███████████████████████████████████████| 8041/8041 [01:21<00:00, 99.15it/s]
Setting OMP and MKL num threads to 1.
100%|███████████████████████████████████████| 3798/3798 [00:43<00:00, 88.16it/s]
100%|███████████████████████████████████████| 1898/1898 [00:21<00:00, 88.08it/s]
Setting OMP and MKL num threads to 1.
Working on the mesh: /home/mona/focalpose/local_data/models_urdf/pix3d/tool/SS_2_TOOL/SS_2_TOOL.obj
Using OpenGL 4.5

As you can see the command is kinda stuck here so it would be great to know what we are expecting as there's no output or progress bar.

Hi with respect to the issue in #6  it is a bit weird to see this error, since I don't recall seeing it. The issue is caused by this line: https://github.com/ponimatkin/focalpose/blob/db1363ee2c87e499caf5df1305d428f3de71413b/focalpose/scripts/cars_to_urdf.py#L74. In essence, the script creates a copy of the obj file and then makes URDF using it. I'm not sure why it happens. You may want to fix it using something like that: https://stackoverflow.com/questions/57083594/disable-samefileerror-exception-in-shutil-copy
As for the last part, focalpose.scripts.patch_uv is a hacky script created to pach uv maps of some 3D models using meshlab as some of them have troubles. But you can skip this step, it is not mandatory.


Schema tools

Type of change

Refactoring

Description
This PR:

adds a maven plugin which is able 'compile' (tell transpile really) a subset of Wright draft 4 JsonSchema into Java
applies that plugin to the config classes for the KMS and RecordEncryption plugins

As such it means that Wright draft 4 JsonSchemas are the source of truth for the configuration accepted by those plugins.
This PR is a stepping stone to towards a bigger objective of being able to generate (another maven plugin) CRDs for plugins using the configuration schemas, and also for the rest of our CRDs.

As this PR adds our second code generation maven plugin, I think the time is here to add a kroxylicious-codegen top level maven model and move the new modules introduced by this PR and the existing kroxylicious-krpc-plugin to it.

As such it means that Wright draft 4 JsonSchemas are the source of truth for the configuration accepted by those plugins.

What was the thinking behind the use of draft 4? I mean, why not a newer/newest schema spec?

Couple of nits, but on the whole lgtm.  Thanks for taking this on @tombentley

As this PR adds our second code generation maven plugin, I think the time is here to add a kroxylicious-codegen top level maven model and move the new modules introduced by this PR and the existing kroxylicious-krpc-plugin to it.

That can be done in a later PR.

As such it means that Wright draft 4 JsonSchemas are the source of truth for the configuration accepted by those plugins.

What was the thinking behind the use of draft 4? I mean, why not a newer/newest schema spec?

Because Kubernetes Custom Resource Definitions are limited to Wright-00. The point of using schemas for plugin configs is compatibility with CRDs, so it wouldn't make any sense to support a more recent version for plugins. Doing so would create the problem of needing to convert plugin config schemas to Wright-00 while generating a CRD for the filter. Such conversion is impossible to do with full fidelity.

@k-wall the situation is more complex than simply saying Wright-00 though.

Kube's CRD rules are composed of two sets of rules which must both be satisfied:

OpenAPI v3 schemas, with some Kube specific changes
The additional rules added for "structural schemas"

OpenAPI v3 is defined in terms of Wright 00 but with its own changes.

This means it's not simple to figure out what the actual rules are for a given keyword (see below for a summary table). And even then, they've often described vaguely.
We basically have to define what we want for Kroxy plugins. The closer aligned to the Kube CRD rules the better in terms of being able to easily convert a filter config schema to a CRD schema (and for a user to convert a filter config to a CR). But we don't want to adopt exactly the rules for CRDs, for at least a couple of reasons:

The rules for CRDs prohibit referencing named other schemas (i.e. using $ref is prohibited). This means you have repeat whole subschemas if you can to use the same structure in a different place. This is very painful when you're wanting to generate Java classes (which follow Java's nominal type system), and maybe write function to handle "the same" structures in the same way. E.g. if we have a KafkaProxy CRD with a Condition in its status we really want that Condition to be the same Java class as the Condition in a KafkaRoute CRD, so we can write the code for building and manipulating Conditions once. Similarly we see the same thing going on with PasswordProvider and Tls. And we'd likely encounter more over time. For these reasons we'd like to be able to use $ref in our config schemas if possible, and have a mechanical tool which expands a $ref in a filter schema when converting to a CRD schema.
We might not want our schemas to directly make use of Kubernetes-specific keywords (x-kubternetes-*), or maybe not all of them. Because although we want to make Kroxy work really well on Kube we don't want the core proxy to depend on kube. So, for example, we could allow a filter schema to say type: [string, integer] and when generating a CRD schema we could convert that to x-kubernetes-int-or-string: true.

There are other consequences of coupling plugin schemas to CRD schemas like this, chiefly compatibility: Kubernetes's CRD compatibility and versioning requirements propagate back to plugin authors, which could be quite onerous.

Should we require plugin authors to explicitly version their schemas?

If we don't then we need some way to decide what the CRD schema version(s) are for a given plugin.
If we do then how should we handle code generation? Two schemas (different versions) implies two sets of Java classes, and the plugin must handle both. Or you try to somehow generate a single set of Java classes (but this is kinda impossible to do in general, if the schemas can be arbitrarily different).

Kube expects people to use a conversion webhooks if they introduce breaking changes to their CR APIs. If we wanted to respect Kube's rules on this then we'd need some mechanism to write such a webhook.

We could foist it onto plugin authors. Concretely this would mean they had to write the conversion code when they wanted to support two or more schema versions which weren't trivially compatible. That would allow us to write a conversion webhook that used plugins, rather than having to hard code knowledge of plugins schemas. Which is neat, but feels like a lot of effort that's not our core problem.
Simpler would be to only provide that for our own plugins (i.e. hard code it), and only when we actually find we need to break compatibility of a plugin schema.
Simplest (from our PoV) is just to say they plugin schemas must always be backwards compatible. Which is a bit like telling the tide not to come in.

To be clear, I think all these problems are hypothetical right now, I'm just trying to explain the consequences of schemas and contracts. I think the compatibility problems exist in some form no matter what we do. For example, if we didn't put the plugin schemas into CRDs (e.g. we had a generic KroxyFilter CRD, whose spec was essentially arbitrary JSON, or a JSON string) then compatibility and config validation still exist as problems. But they manifest during upgrade of the proxy container image as the proxy crash looping until a human has fixed the CRs to be acceptable. i.e. what could have been a control plane problem becomes a data plane problem which is visible to clients.
Here's the summary table that I mentioned.

Keyword
Wright Draft 00
OpenAPI v3
CRD
Kroxy Plugin

$schema
Yes

$ref
Yes

Not allowed
De-referenced during build

id
Yes

Not allowed
Drop during build

multipleOf
Yes
Per Wright
Per OAS
Yes

maximum
Yes
Per Wright
Per OAS
Yes

exclusiveMaximum
Yes
Per Wright
Per OAS
Yes

minimum
Yes
Per Wright
Per OAS
Yes

exclusiveMinimum
Yes
Per Wright
Per OAS
Yes

maxLength
Yes
Per Wright
Per OAS
Yes

minLength
Yes
Per Wright
Per OAS
Yes

pattern
Yes
Per Wright
Per OAS
Yes

items
Yes
Value MUST be an object and not an array. items MUST be present if the type is array
Per OAS
Per OAS

additionalItems
Yes
Per Wright
Per OAS
Yes

maxItems
Yes
Per Wright
Per OAS
Yes

minItems
Yes
Per Wright
Per OAS
Yes

uniqueItems
Yes
Per Wright
Cannot be set to true
Per CRD

maxProperties
Yes
Per Wright
Per OAS
Yes

minProperties
Yes
Per Wright
Per OAS
Yes

required
Yes
Per Wright
Per OAS
Yes

properties
Yes
Property definitions MUST be a Schema Object
Per OAS
Per OAS

patternProperties
Yes
Per Wright
Not allowed
Not allowed

additionalProperties
Yes
Value can be boolean or object.
Cannot be set to false. mutually exclusive with properties.Not within junctor.
Per CRD

dependencies
Yes

Not allowed
Not allowed

enum
Yes
Per Wright
Per OAS
Yes

type
Yes
Value MUST be a string (not array)
Single value required, unless x-kubernetes-int-or-string, or x-kubernetes-preserve-unknown-fields.Not within junctor
Per OAS

allOf
Yes
Must be OAPI schema objects
properties and items must be lifted
Per CRD

anyOf
Yes
Must be OAPI schema objects
properties and items must be lifted
Per CRD

oneOf
Yes
Must be OAPI schema objects
properties and items must be lifted
Per CRD

not
Yes
Must be OAPI schema object
properties and items must be lifted
Per CRD

definitions
Yes
Per Wright
Not allowed
De-referenced during build

title
Yes
Per Wright
Per OAS
Yes

description
Yes
CommonMark syntax MAY be used
Not within junctor
Yes

default
Yes
The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level.
Not within junctor
Per CRD

format
Yes
OAS offers a few additional predefined formats
Per OAS, but unclear whether API server validates even the defined ones
Yes?? But how validated??

nullable
No
Yes
Not within junctor
Per CRD

discriminator
No
Yes
Not allowed

readOnly
No
Yes
Not allowed

writeOnly
No
Yes
Not allowed

xml
No
Yes
Not allowed

externalDocs
No
Yes
Per OAS

example
No
Yes
Per OAS

deprecated
No
Yes
Not allowed

x-kubernetes-validations

Yes

x-kubernetes-list-type

Yes

x-kubernetes-map-keys

Yes

x-kubernetes-int-or-string

Yes

x-kubernetes-preserve-unknown-fields

Yes

x-kubernetes-embedded-resource

Yes

@k-wall the situation is more complex than simply saying Wright-00 though.

Thanks for the detailed write up.

The code generation is generating superfluous classes such as io.kroxylicious.kms.provider.hashicorp.vault.config.HashicorpVaultConfigKey.

8k lines to review!!! There is no way to sensibly or meaningfully do that!

The code generation is generating superfluous classes such as io.kroxylicious.kms.provider.hashicorp.vault.config.HashicorpVaultConfigKey.

Good spot! The reason is that the schema for that object is in the YAML. but is reached only via one of the existingClasses. We don't generate .java for any of the classes in existingClasses, but don't apply that exclusion transitively.
We could add code to figure out the transitive exclusion (i.e. the reachability of each schema from the root schema, taking account of the existingClasses). But we can't know for certain that another schema (in a different file) doesn't reference schemas excluded in that way in the YAML we're generating code for (nor can we assume, for example, that if that code was compiled it would have the same existingClasses).
I think the real solution is to generate the Tls and PasswordProvider classes from a schema, and just $ref to that. That would remove the need to mention them in the existingClasses, and provide a path to all the config classes being generated, including these "common" types.

I think the real solution is to generate the Tls and PasswordProvider classes from a schema, and just $ref to that. That would remove the need to mention them in the existingClasses, and provide a path to all the config classes being generated, including these "common" types.

This turns out to be rather hard to do properly.
When we're compiling a schema (such as AwsKmsConfig.yaml) which references a schema for PasswordProvider and Tls that are declared in a common resource:
* What even is that $ref? JSONSchema says it can be any URI. Using http:// or https:// schemes is pretty ubitquitous. But we don't want to actually use that as as a URL.
* How then are we going to resolve that $ref? We could provide a mapping of http(s):// URIs to file each time we configure the <plugin>? But that's going to be fragile, and it sucks even more for 3rd parties.
* Does it also mean the referrer generates classes for those schema afresh. e.g. do we end up with a Tls.java in the AWS module, and a separate one in the Vault module, and so on, based on the schema we resolve at compile time (but which might change afterwards)?
* If we don't want that then we would need to generate the .java in the module where we keep the common schema resource, and then when generating code in the referring schema we need to know what java types were generated. That's so we know that the tls field in the AWS config should have type common.pkg.Tls.
So I've been investigating the idea of including sufficient schema and java information along with the .java code when we generate the common.pkg.Tls. The idea is that we would package the JSON Schema alongside the .class files in the common.jar, and use that when generating the AWS config.
This has some desirable properties for a plugin architecture like ours:

It avoids having to configure some kind of schema URI mapping when declaring a <plugin>; instead we'd be using the compile time classpath to look up the schemas.
Distributing both the Java and the Json Schema together makes it "impossible" (or at least really difficult) to mix up the schema and the java code (e.g. accidentally using a newer Json schema than the java was compiled for, because you forgot to regenerate the java).
It enables having a tool which constructs a CRD from a filter jar, because the filter jar would necessarily contain the configuration schema.

I like this idea, but it's heavy going trying to implement it properly. We don't know that the compiler used to compile the common schema arrived at the same Java type and method names as the compiler being used to compile the schema referencing the common schema. This means that just including the json schema as a resource isn't enough to do the job while providing a guarantee for binary compatibility of the resulting java code even in the absence of schema changes.
I think I have something more-or-less working, but it's needs more tests before it's really ready to push.


Provide a CliMain variant that doesn't call System.exit

Using the Prospero CLI as part of a maven build (e.g. with the exec-maven-plugin) doesn't work because CliMain calls System.exit. Provide a variant, e.g. CliMainNoExit, that doesn't call System.exit.
CliMain actually exposes createCommandLine as a public method so it's simple enough for other projects to create such a class, which is what I'm doing in WF to work around this. But that requires some hackiness in the WF build.

Just to confirm - does that apply to error scenarios as well or just the successful execution?

BTW, that class is way too complicated; it includes useless stuff I forgot to remove after adding config like https://github.com/wildfly/wildfly/pull/17470/files#diff-ab7939563ab2ed2a32ec4f069f5755fe052e9555777de64f3c0dbe8489bbdde3R495
That said, there is something happening with CliMain where a couple daemon threads don't stop, which results in needing that exec-maven-plugin section. I'll try to recreate and post details.


@jeffmcmahan I'm only seeing it on the first require:

@jeffmcmahan I'm only seeing it on the first require:

I saw what you're seeing once but can't find it again.
Originally posted by @gcphost in https://github.com/microsoft/vscode/issues/47299#issuecomment-379330925

/needsMoreInfo


Revert "Null safety migration of packages/flutter_tools/bin"

Reverts flutter/flutter#110706
Reverting for https://github.com/flutter/flutter/issues/111482

Adding autosubmit to this without tests as it is a straight revert to fix a flake


MoveIt! integration

[ ]     Display list of planners in Slicer, rosparam or yaml file?
[ ] Export scene to MoveIt!   Simon has some experience with this.
[ ] Ability to define a cartesian goal in Slicer. RViz has 3D markers which can be moved around in the scene with a regular mouse.  Does Slicer provide something similar?
[ ] While the cartesian goal is moved around, RViz shows the robot in real time.  We assume this is done using an IK service.  We would likely want to implement something similar in Slicer.
[ ] Preview trajectory.  We assume MoveIt! Sends joint positions to a simulated robot with its own robot_state_publisher and then RViz shows the simulated robot on top of the real one.   This needs to be validated.  That would be a good reason to support multiple robots in Slicer.


Review Hotel Page

https://www.caesars.com/caesars-palace/hotel
vs
https://main--caesars--hlxsites.hlx.page/caesars-palace/hotel

Deals

Theirs is missing deals and not a carousel
Theirs is not consistent with deal as displayed on other pages

Question to customer posed

Stats

Ours description isn't width constrained and therefor doesn't wrap as much

Rooms
See similar in #130

Amenities

spacing/padding is off
title font is off and should be styled as all caps

Luxury

fonts are off
padding and spacing are off but i like ours better

Hotels

vertical sizing off

More than hotels and footer....
see simlar in #130


Develop pipeline visualization

This may be something similar to the IR visualization.  However, we probably need some notional feedback such that the user can edit it.

Works as of 3f16eb0; passed all initial devel tests.


JavaScript support

Hi there,
This is just what I was looking for, really appreciate the good work <3
I noticed the JavaScript code might need a little work following the issue to get this into Django admin itself. I am the dude who merged select2 into the admin and have some experience with Django's love hate relationship with JavaScript. If you are looking for some help improving your JS code and potentially paving the way to get this into Django itself, I'd be happy to help.
Best,
Joe

Hi @codingjoe,
I was wondering what was the work required to merge this extensions functionality inside django core?

Since Django dropped the citext integration, I don't know how people would feel about adding JS code for hstore support. A good first step would be to create an issue.
However, a working 3rd party solution with community interested helps.
I'd love to invest some time here, but I haven't really heard back from the maintainer.

I'd love to invest some time here, but I haven't really heard back from a maintainer.

This seems to be the problem, i think the better alternative here is to fork it and continue development that way.
I would really like to contribute to this repository but everything seems very inactive here

Hi, @codingjoe, sorry for ping.
I have decided to hard fork the project ( the code was quite old and very error prone to be honest ).
Here is :

The repo
Pypi Package
My reasoning :

https://github.com/PokaInc/django-admin-hstore-widget/issues/27#issue-2582951879


k8s managing sidecar container lifecycles

Request Details
We'll be doing some stuff around managing container lifecycles for sidecar-ish containers. I would have found this article useful this week.

Closing, and this issue dates and may be covered partially here: https://airbyte.com/blog/scaling-data-pipelines-kubernetes


change insight auth in docs

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR updates the documentation and code for using the insight API, specifically regarding authentication and the structure of the fetch request.
Detailed summary

Updated documentation to specify using the x-client-id header for authentication.
Modified the fetch request in the getUsdtTransfers function to include the x-client-id header.
Removed the placeholder <client-id> from the URL in the fetch request.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#5681  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Fixed problem when some visual artifacts may appear after resize

I have menu hidden by default and observed visual artifacts after pressing Alt. Menu appears after I press Alt and editor area is resized, but not the whole area is redrawn, so I see 2 neovim's status bars. I also can reproduce similar behaviour by resizing Oni window.
See video with this problem
After investigation I've found that method CanvasRenderer.redrawAll is called before neovim is really resized so it draws state of neovim before resize. So I've changed code so it called only when Promise returned by NeovimInstance.resize method is resolved. Which is actually Promise returned by Session.request method, so should be resolved when neovim finished resizing itself.

Sorry for the slow delay! If nobody else has got this, I'll take a look at the Weekend.


Attempt to support macOS system clipboard integration

@brauliomartinezlm Can you please confirm whether this fixes #30 ?

FTR: got confirmation is working in macOS.


Support for Android ?

Any idea if I want to use it on My android phone?

Hello @DavidMGT,
We do not have plans to support Android. You can obviously fork/clone the project repository and modify the code and CMake configuration to suit your needs (Android does support usage of CMake). The toolkit's license is Apache 2.0, so free for academic/research and commercial usage.

how about ITK.does it ?

Good question, don't know. This is a question for the primary ITK developers, so you should ask either on the ITK GitHub issues or the ITK discourse (assuming you haven't already done so).

aha，tks anyway ，they don'nt offer any advice too。 I think they havn'nt done this work too


REVERSE_BAT_SYMBOL 0  Bug

I modified the makefile by setting the :REVERSE_BAT_SYMBOL modification to 0
and I have to report 2 bugs.

I think thats' fixed now. Thank you for letting me know


feat: add node run ability to builder CLI

Closes #29

Ready for review & ready to merge after https://github.com/essential-contributions/essential-node/pull/93 goes in and node version is bumped.

Included in #31


Moonphase

Hello
Is the moonphase everywhere the same on earth?
Location does not matter?
Would be nice on my thermostat
Http://www.Arduino.TK
Greet luberth

Yes and no.
For example.
https://en.wikipedia.org/wiki/Full_moon
Full moon is defined as  the moment the center of the sun, the center of the earth and the center of the moon are in line.
(or 180° out of phase which is the same)
So to calculate you use UTC which is the time at the center of the earth.
But the apparent full moon is just a little depended on where you are on earth.
The same goes for any other moment during a moon phase.
But this difference is minuscule.

Yes and no.
For example.
https://en.wikipedia.org/wiki/Full_moon
Full moon is defined as  the moment the center of the sun, the center of the earth and the center of the moon are in line.
(or 180° out of phase which is the same)
So to calculate you use UTC which is the time at the center of the earth.
But the apparent full moon is just a little depended on where you are on earth.
The same goes for any other moment during a moon phase.
But this difference is minuscule.


Adding input and output files

I replaced standard in with the example log files and created another file for reports to go in to replace standard out. I also wrote "\n>>>>>>>>>> a report has been reported <<<<<<<<<<\n" to the out_stream after each analyzer reports so that the output file is more readable; I'm sure we'll want to have something more formal/descriptive later, but I just wanted to add something for now.

Adding the "a report has been reported" message made the echo analyzer test fail because it ran the analyze_log_stream method instead of the echo analyzer read_log_line and report methods, so I changed that. I also wrote a dedicated test for analyze_log_stream as Ben said that was the original reason he wrote the echo analyzer.


static return might fail with switch statement

I have this:
const onUpdate = function (v: string, o: any) : Promise<any> {

  const finalName = String(v || '').split('.')[1]; // collection name
  const _id = o && o.o2 && o.o2._id;
  let key;

  switch (finalName) {

    case 'categories':
      return Category.findOne({_id}).exec().then(function (cat: any) {
         // ....
      });

    case 'acquisitions':
        return Acquisition.findOne({_id}).exec().then(function (acq: any) {
         // ...
      });

    case 'functionalTeams':
      return FunctionalGroup.findOne({_id}).exec().then(function (ft: any) {
           // ...
      });

    default:
      log.error('document collection did not match a pre-defined name');
      // nothing is returned here, but can TS check to see if it does/doesn't
  }

};

can TypeScript check to see if a Promise fails to be returned in the default or after the switch statement? Right now it's compiling even though a Promise is not returned in all cases.

You probably just need --strictNullChecks enabled.

Issue

Or alternatively --noImplicitReturns. Enabling --strictNullChecks is often very difficult to add in old code bases, but --noImplicitReturns is a no-brainer.

ok understood, to move this in a more productive direction, is there a way to never allow null/undefined in the place of a defined value? In Java, all those NullPointerExceptions are caused by allowing null to exist.

Yes... That is pretty much what strictNullChecks is for. And related to that the strictPropertyInitialization feature (works only together with strictNullChecks.

@MartinJohns  thanks for the info...I still think strictNullChecks should be the default behavior, and that users should have to specifically set it to false, but nbd I guess


Add dll injection to WindowsUtils

@dpallotti, @danielfenner thanks for the review! I addressed all the comments, please take another look, thanks.

Something weird happened in this pull request. As you said, you didn't see a comment. Well, multiple comments are only visible to me, but they are not pending. I can see they don't show up if I open this page in incognito mode. Some GitHub bug. I added them again. Sorry for the inconvenience.

Actually I think they are only visible in the "Files changed" view. But when expanding the "# hidden conversations" in the main page, they don't show up. So use the "Files changed" view I guess.

@dpallotti thanks for coping with the Github mishap. I addressed the remaining comments. Cheers.


Feature/idp 1613

Hi @Infra-Workleap @meziantou, I changed the code of the application to return a JWT token that can be successfully ingested by the classes ot the azure.identity Python package. This fixes #38  Please approve the PR. Meanwhile, I will use my version.

Thanks! I'll take care of merging it

I though it would have been ok with the new branch name, but the secrets are not available in a fork. So, I've created another PR with your commits. I've merged it and the new version will be available soon https://github.com/gsoft-inc/azure-cli-credentials-proxy/actions/runs/9370131154
Note: While I've created a new PR, I kept your commits, so your name is in the commit history :)

Thanks a lot for your contribution and patience 🙏 I hope we'll fix our contribution workflow soon to better accept external contributors

@meziantou sounds good 🐶 what is important is that your solution now works also with Python apps that use azure.identity package.


GEOSwift with Google Maps iOS SDK (Draw a polygon)

I am using GEOSwift library and I need help in:
1 - How can I draw polygon geometry data on Google Maps? I want to draw following geometry (polygon) on google map as an overlay:
let geometry = try! Geometry(wkt: "POLYGON((35 10, 45 45.5, 15 40, 10 20, 35 10))")
2 - How can I get Coordinates (lat, long) from the Geometry (geometry) back in form of string or CLLocationCoordiantes
I also posted a question on SO, but I need urgent help, thanks
https://stackoverflow.com/questions/57738403/geoswift-with-google-maps-ios-sdk-draw-a-polygon

I'll assume you're using Google Maps SDK for iOS version 3.3.0 and GEOSwift version 5.1.0.
As an aside, creating a GEOSwiftGoogleMaps add-on library would be a great addition to the GEOSwift family.
Now to your question. You have a polygon (without holes) represented as WKT and you want to show it on a Google Map.  Polygon(wkt: "POLYGON((35 10, 45 45.5, 15 40, 10 20, 35 10))")

If you can't guarantee that, you can do what you wrote initially
let geometry = try! Geometry(wkt: "POLYGON((35 10, 45 45.5, 15 40, 10 20, 35 10))")

and then extract the polygon using if case let/guard case let/switch case let:
switch geometry {
case let .polygon(polygon):
    // Do something with polygon
default:
    // handle other types of Geometry or fail here
}

Check the definition of Geometry that shows the other cases you might care to handle.
Once you have polygon: Polygon, you can get the points that represent its exterior:
let points = polygon.exterior.points

Polygon.exterior gives you a Polygon.LinearRing and Polygon.LinearRing.points gives you an array of Point.
Now that you have points, you can map them into an array of CLLocationCoordinate2D
let coords = points.map { p in CLLocationCoordinate2D(latitude: p.y, longitude: p.x) }

Note that y goes with latitude and x goes with longitude.
The rest of the process is basically info about how to use the Google Maps SDK, so I'll answer that part on StackOverflow instead.

@macdrevx Thanks a lot for your help. I am able to solve this problem now. 🥇

@macdrevx can you guide me to the equivalent functions for:
    Geometry .fromGeoJSON(_ URL: Foundation.URL) throws -> [Geometry]?
    Geometry.fromGeoJSONDictionary(_ dictionary: [String: AnyObject]) -> [Geometry]?

in GEOSwift 5.
Thanks

Sure. The first step is to get a representation of the JSON as Data. If you're starting with a file URL, you can say Data(contentsOf: URL). If you have dictionary: [String: AnyObject] you'd need to use NSJSONSerialization or similar to convert it to Data.
Once you have data: Data, you can decode using:
let decoder = JSONDecoder()
let geoJSON = try decoder.decode(GeoJSON.self, from: data)


Update LuaJIT patch - remove MAP_32BIT

Description: Update LuaJIT patch-file to disable use of MAP_32BIT flag in mmap calls.
Risk Level: Low
Testing: Manual
Docs Changes: n/a
Release Notes: n/a
Fixes #10865

Seeing a network related failure (downloading deps).
/rerun

/retest

/azp run envoy-presubmit


multiple queries in a single rule

Can someone please explain me whether the below two are equivalent? I would expect them to be yet I am seeing different results in each case.
RULE 1
es_host: host
es_port: port

name: <"name">
description: <"Description>
generate_kibana_link: true
use_kibana4_dashboard: <"kibana_dashboard">
index: <index>
use_local_time: False

run_every:
  hours: 3
buffer_time:
  hours: 3

type: flatline
threshold: 1
timeframe:
 hours: 3

filter:
- query:
    query_string:
      query: 'source:"source" AND NOT message: "message" AND NOT name: "name"'

alert:
- email

email: <"email">
alert_subject: "<subject>"
alert_subject_args:
- key
alert_text_args:
- "kibana_link"

smtp_host: "smtp_host"
smtp_auth_file: "auth_yaml"
from_addr: "from_addr"

realert:
  minutes: 0

query_key: host

RULE 2
es_host: host
es_port: port

name: <"name">
description: <"Description>
generate_kibana_link: true
use_kibana4_dashboard: <"kibana_dashboard">
index: <index>
use_local_time: False

run_every:
  hours: 3
buffer_time:
  hours: 3

type: flatline
threshold: 1
timeframe:
 hours: 3

filter:
- query:
    query_string:
      query: 'source:"source"'
- query:
    query_string:
      query: 'NOT message: "message"'
- query:
    query_string:
     query: 'NOT name: "name"''

alert:
- email

email: <"email">
alert_subject: "<subject>"
alert_subject_args:
- key
alert_text_args:
- "kibana_link"

smtp_host: "smtp_host"
smtp_auth_file: "auth_yaml"
from_addr: "from_addr"

realert:
  minutes: 0

query_key: host

Note for the RULE 1 the
query contains all 3 query conditions
while
for RULE 2
the queries are separated
Thanks!

thanks @Qmando !


CASSANDRA-19832: Build a public CI for Apache Cassandra Java Driver

Committed with https://github.com/apache/cassandra-java-driver/commit/692a92279210cdf11c08bb7f15b91191b6f3a0d7 and https://github.com/apache/cassandra-java-driver/commit/2c753aaad276e64cf10845437dfedc16ede418e2


[Tiered caching] Framework changes (#10753)

Description
Backport https://github.com/opensearch-project/OpenSearch/pull/10753
Related Issues
Resolves #[Issue number to be closed when this PR is merged]

Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[] Public documentation issue/PR created

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@Bukhtawar @msfroh Can you help in merging this backport PR?

Add backport in the title following the convention ?

Looks like a build is failing, can try to restart the build


[STG93] Made List Handles Client Name Public

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Storage.Files.Shares


wip: add images from helm chart template

Please check below, if the PR fulfills these requirements:

[x] Commit(s) and code follow the repositories guidelines.
[ ] Test(s) have been added or updated to support these change(s).
[ ] Doc(s) have been added or updated to support these change(s).

Associated Links:

https://github.com/hauler-dev/hauler/issues/379

Types of Changes:

Modify the way some values get passed and iterate over helm chart to save images found within the manifests.

Proposed Changes:

Proposing to add additional flag to support users to iterate over helm charts they store and automatically add the images the helm chart references.

Verification/Testing of Changes:

Utilize the --add-images flag to hauler store add chart [chart]

Additional Context:

hey @wcrum... I do like the idea of being able to include images referenced in charts, and a lot of of users and customers  have asked for it, but it might take a bit more thought on how to support the most amount of charts since there could be various ways they include images and then you can also get into dependent charts...
Additionally, a lot of charts require checking the k8s version when using helm template so if you don't have a cluster up or a kubeconfig to a cluster, then it won't be able to template it. See some of the tests below...
Maybe more reliable results would come from yaml parsing with gopkg.in/yaml.v3? Open to ideas...
zackbradys@Zacks-MacBook-Pro hauler % ./dist/hauler_darwin_arm64_v8.0/hauler store add chart hauler-helm --repo oci://ghcr.io/hauler-dev --add-ima
ges
2024-12-13 23:03:57 INF adding 'chart' [hauler-helm] to the store
Pulled: ghcr.io/hauler-dev/hauler-helm:1.1.1
Digest: sha256:3957fc2bf560f2ccd64e38b59651b097dddb38863124745df264053cae1b807a
2024-12-13 23:03:58 INF successfully added 'chart' [hauler/hauler-helm:1.1.1]
2024-12-13 23:03:58 INF adding 'image' [hauler/hauler-debug:1.1.1] to the store
2024-12-13 23:04:04 INF successfully added 'image' [index.docker.io/hauler/hauler-debug:1.1.1]
2024-12-13 23:04:04 INF adding 'image' [hauler/hauler:1.1.1] to the store
2024-12-13 23:04:09 INF successfully added 'image' [index.docker.io/hauler/hauler:1.1.1]
2024-12-13 23:04:09 INF adding 'image' [rancher/kubectl:v1.31.3] to the store
2024-12-13 23:04:12 INF successfully added 'image' [index.docker.io/rancher/kubectl:v1.31.3]
zackbradys@Zacks-MacBook-Pro hauler % ./dist/hauler_darwin_arm64_v8.0/hauler store info
+-------------------------------------------+-------+-----------------+----------+----------+
| REFERENCE                                 | TYPE  | PLATFORM        | # LAYERS | SIZE     |
+-------------------------------------------+-------+-----------------+----------+----------+
| hauler/hauler-helm:1.1.1                  | chart | -               |        1 | 3.8 kB   |
| index.docker.io/hauler/hauler-debug:1.1.1 | image | linux/amd64     |        8 | 73.0 MB  |
|                                           | image | linux/arm64     |        8 | 68.7 MB  |
| index.docker.io/hauler/hauler:1.1.1       | image | linux/amd64     |        9 | 67.1 MB  |
|                                           | image | linux/arm64     |        9 | 62.4 MB  |
| index.docker.io/rancher/kubectl:v1.31.3   | image | linux/amd64     |        3 | 17.2 MB  |
|                                           | image | linux/arm64     |        3 | 15.7 MB  |
|                                           | image | unknown/unknown |        1 | 8.4 kB   |
|                                           | image | unknown/unknown |        1 | 8.4 kB   |
+-------------------------------------------+-------+-----------------+----------+----------+
|                                                                        TOTAL   | 304.0 MB |
+-------------------------------------------+-------+-----------------+----------+----------+

zackbradys@Zacks-MacBook-Pro hauler % ./dist/hauler_darwin_arm64_v8.0/hauler store add chart rancher --repo https://releases.rancher.com/server-charts/stable --add-images
2024-12-13 23:07:23 INF adding 'chart' [rancher] to the store
2024-12-13 23:07:25 INF successfully added 'chart' [hauler/rancher:2.10.0]
2024-12-13 23:07:25 INF adding 'image' ["rancher/shell:v0.3.0"] to the store
2024-12-13 23:07:25 ERR unable to parse 'image' ["rancher/shell:v0.3.0"]: could not parse reference: "rancher/shell:v0.3.0"

zackbradys@Zacks-MacBook-Pro hauler % ./dist/hauler_darwin_arm64_v8.0/hauler store add chart vault --repo https://helm.releases.hashicorp.com --add-images
2024-12-13 23:20:31 INF adding 'chart' [vault] to the store
2024-12-13 23:20:32 INF successfully added 'chart' [hauler/vault:0.29.1]
Error: template: vault/templates/server-statefulset.yaml:27:14: executing "vault/templates/server-statefulset.yaml" at <semverCompare ">= 1.23-0" .Capabilities.KubeVersion.Version>: error calling semverCompare: Invalid Semantic Version
Usage:
  hauler store add chart [flags]

Examples:
# fetch local helm chart
hauler store add chart path/to/chart/directory --repo .

# fetch local compressed helm chart
hauler store add chart path/to/chart.tar.gz --repo .

# fetch remote oci helm chart
hauler store add chart hauler-helm --repo oci://ghcr.io/hauler-dev

# fetch remote oci helm chart with version
hauler store add chart hauler-helm --repo oci://ghcr.io/hauler-dev --version 1.0.6

# fetch remote helm chart
hauler store add chart rancher --repo https://releases.rancher.com/server-charts/stable

# fetch remote helm chart with specific version
hauler store add chart rancher --repo https://releases.rancher.com/server-charts/latest --version 2.9.1

Flags:
      --add-images                 (Optional) Add images referenced in helm template
      --ca-file string             (Optional) Location of CA Bundle to enable certification verification
      --cert-file string           (Optional) Location of the TLS Certificate to use for client authenication
  -h, --help                       help for chart
      --insecure-skip-tls-verify   (Optional) Skip TLS certificate verification
      --key-file string            (Optional) Location of the TLS Key to use for client authenication
      --password string            (Optional) Password to use for authentication
      --repo string                Location of the chart (https:// | http:// | oci://)
      --username string            (Optional) Username to use for authentication
      --verify                     (Optional) Verify the chart before fetching it
      --version string             (Optional) Specifiy the version of the chart (v1.0.0 | 2.0.0 | ^2.0.0)

Global Flags:
  -d, --haulerdir string   Set the location of the hauler directory (default $HOME/.hauler)
      --ignore-errors      Ignore/Bypass errors (i.e. warn on error) (defaults false)
  -l, --log-level string   Set the logging level (i.e. info, debug, warn) (default "info")
  -r, --retries int        Set the number of retries for operations (default 3)
  -s, --store string       Set the directory to use for the content store

2024-12-13 23:20:32 ERR template: vault/templates/server-statefulset.yaml:27:14: executing "vault/templates/server-statefulset.yaml" at <semverCompare ">= 1.23-0" .Capabilities.KubeVersion.Version>: error calling semverCompare: Invalid Semantic Version

zackbradys@Zacks-MacBook-Pro hauler % ./dist/hauler_darwin_arm64_v8.0/hauler store add chart gitea --repo https://dl.gitea.com/charts --add-images

2024-12-13 23:22:24 INF adding 'chart' [gitea] to the store
2024-12-13 23:22:25 INF successfully added 'chart' [hauler/gitea:10.6.0]
Error: template: gitea/charts/redis/templates/master/service.yaml:23:10: executing "gitea/charts/redis/templates/master/service.yaml" at <semverCompare ">=1.22-0" (include "common.capabilities.kubeVersion" .)>: error calling semverCompare: Invalid Semantic Version
Usage:
  hauler store add chart [flags]

Examples:
# fetch local helm chart
hauler store add chart path/to/chart/directory --repo .

# fetch local compressed helm chart
hauler store add chart path/to/chart.tar.gz --repo .

# fetch remote oci helm chart
hauler store add chart hauler-helm --repo oci://ghcr.io/hauler-dev

# fetch remote oci helm chart with version
hauler store add chart hauler-helm --repo oci://ghcr.io/hauler-dev --version 1.0.6

# fetch remote helm chart
hauler store add chart rancher --repo https://releases.rancher.com/server-charts/stable

# fetch remote helm chart with specific version
hauler store add chart rancher --repo https://releases.rancher.com/server-charts/latest --version 2.9.1

Flags:
      --add-images                 (Optional) Add images referenced in helm template
      --ca-file string             (Optional) Location of CA Bundle to enable certification verification
      --cert-file string           (Optional) Location of the TLS Certificate to use for client authenication
  -h, --help                       help for chart
      --insecure-skip-tls-verify   (Optional) Skip TLS certificate verification
      --key-file string            (Optional) Location of the TLS Key to use for client authenication
      --password string            (Optional) Password to use for authentication
      --repo string                Location of the chart (https:// | http:// | oci://)
      --username string            (Optional) Username to use for authentication
      --verify                     (Optional) Verify the chart before fetching it
      --version string             (Optional) Specifiy the version of the chart (v1.0.0 | 2.0.0 | ^2.0.0)

Global Flags:
  -d, --haulerdir string   Set the location of the hauler directory (default $HOME/.hauler)
      --ignore-errors      Ignore/Bypass errors (i.e. warn on error) (defaults false)
  -l, --log-level string   Set the logging level (i.e. info, debug, warn) (default "info")
  -r, --retries int        Set the number of retries for operations (default 3)
  -s, --store string       Set the directory to use for the content store

2024-12-13 23:22:25 ERR template: gitea/charts/redis/templates/master/service.yaml:23:10: executing "gitea/charts/redis/templates/master/service.yaml" at <semverCompare ">=1.22-0" (include "common.capabilities.kubeVersion" .)>: error calling semverCompare: Invalid Semantic Version

Hey @zackbradys - I am pretty easily able to fix all of these things.
9e0a56bce012a568094f6a31043efb21373cecdf fixes an issue with my strip image logic, just forgot to remove / replace double quotes.
b6faa3cc1c87d43b5deb700a0f9418c991813115 somewhat resolves the issue seen within your shared logs. When using the helm function chartutil.ToRenderValues(chrt *chart.Chart, chrtVals map[string]interface{}, options chartutil.ReleaseOptions, caps *chartutil.Capabilities) it does not actually pull in the current kubeconfig as context, it looks for caps *chartutil.Capabilities which has the KubeVersion as a property which we can simply fake.
What would you think is the best way forward on this? KubeVersion could be something that is passed as an additional flag, the default could be the latest Kubernetes release.

🐛 @zackbradys there is a bug around the search for image: some CRDs, ConfigMaps with data and other things use the image: in some other context... this isnt the same as a initcontainer or container image reference so it causes several errors.


Allow to embed modules into one executable

This PR integrates functionality into cython command. New parameter --embed-modules is introduced which embeds multiple modules into one executable. Command
cython --embed --embed-modules=lcmath combinatorics.pyx

generates C file which can be compiled and staticaly linked with lcmath module to produce one single executable.
The PR is not migrating the functionality of -p switch of cython_freeze. Moreover, the scope of this PR is not adding documentation and removal of cython_freeze. It
will be done in later PRs.
fixes #2849

PR published as draft for review of general approach and review of usage/ergonomics of CLI interface.
TODO:

[ ] CLI code needs polishing, description is missing etc.
[ ] Unittests needs to be implemented.

In general I haven't personally been keen to push cython_freeze type functionality too far. Mainly because I think it has limited use without being able to bundle external non-Cython modules. And supporting that is a huge task that I don't think Cython should be taking on. (I actually think the whole --embed feature was probably a mistake because it gives the expectation that building a "single application" works when mostly it really doesn't)
So I don't know. This extra addition is fairly minor, but I'm not sure if it's a direction Cython really wants to go.
Ignoring that: what commands should I be using here? Is it cython lcmath.pyx first to build lcmath then your command with --embed-modules?

Commands:
cython --embed --embed-modules=lcmath combinatorics.pyx   # creates combinatorics.c
cython lcmath.pyx # creates lcmath.c

In general I haven't personally been keen to push cython_freeze type functionality too far. Mainly because I think it has limited use without being able to bundle external non-Cython modules. And supporting that is a huge task that I don't think Cython should be taking on. (I actually think the whole --embed feature was probably a mistake because it gives the expectation that building a "single application" works when mostly it really doesn't)

Here is my humble point of view:

definitely bundling all dependencies is totally out of scope of cython
embedding can be interesting for someone who does not want distribute source code
Currently in cython there is half-baked support of embedding - there is no easy way to compile it (e.g. cythonize or setuptools). I think it should be decided to make it usable or remove it as out of scope for cython.

I've seen people use --embed on the ML from time to time, so I'd not consider it unhelpful as it is.
I concur that it shouldn't cover more complex use cases, though.
I think we can leave the feature in. It doesn't hurt and seems to have a purpose. I also don't think we keep others from building something better by having the simple feature included.

To clarify, I definitely wasn't suggesting removing any existing features.

This can be easily fixed by documenting --embed properly and adding one warning bar there.

I did add a bit more details on the limitations to the docs a few months ago (https://github.com/cython/cython/commit/76b22ac750531919194c4334150dea4c51d67f44). So hopefully that's a little better

there is pretty popular question in stackoverflow regarding embed [...]

And the fact it's popular is exactly why I don't like it. Lots of people want to use Cython to create applications, but we can't actually do what they want (often).

So the question here is: is this PR a small enough extension to the existing feature that we can justify adding it. My current view is that I don't think it is (but I don't feel strongly).


Uses an enum class for the Mgmt OpType

This fixes an issue where the behavior of va_start is undefined when using
the enum as the 'th argument (before the ...). Switching to the enum class
fixes this issue, and is also nicer (as per previous enum class changes).

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/135/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/149/

AU check failed! https://ci.trafficserver.apache.org/job/autest-github/132/

FreeBSD11 build successful! https://ci.trafficserver.apache.org/job/freebsd-github/1831/

Linux build successful! https://ci.trafficserver.apache.org/job/linux-github/1722/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/261/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/393/

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/136/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/150/

AU check successful! https://ci.trafficserver.apache.org/job/autest-github/133/

RAT check failed! https://ci.trafficserver.apache.org/job/RAT-github/154/

clang format successful! https://ci.trafficserver.apache.org/job/clang-format-github/140/

RAT check successful! https://ci.trafficserver.apache.org/job/RAT-github/155/

AU check failed! https://ci.trafficserver.apache.org/job/autest-github/137/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/265/

FreeBSD11 build successful! https://ci.trafficserver.apache.org/job/freebsd-github/1836/

AU check failed! https://ci.trafficserver.apache.org/job/autest-github/138/

Linux build successful! https://ci.trafficserver.apache.org/job/linux-github/1727/

Intel CC build successful! https://ci.trafficserver.apache.org/job/icc-github/266/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/397/

clang-analyzer build successful! https://ci.trafficserver.apache.org/job/clang-analyzer-github/398/


Added support to combineReducers to make the coding of loading state easier.

With the existing implementation of combineReducers if you try to add an action to load
the state every reducer will get the entire state passed to them and would need to have
knowledge of where they are in the state tree to lookup their new state.
I've added a special HYDRATE action type (@@redux/HYDRATE) which combineReducers looks for and handles as a special case passing down only the state for each reducer.
This means that each reducer can opt in to the load and choose how it wants to handle it.
Usually this will just be returning action.state.

This strikes me as serving too specific a use case. We try to keep these features in userland, rather than modify core APIs that affect everybody.
Here's a way you could implement the same feature by composing the existing implementation of combineReducers:
const makeHydratable = (reducer, key) => (state, action) => {
  let appliedAction = action.type !== HYDRATE
    ? action
    : { type: HYDRATE, state: action.state[key]}
  return reducer(state, appliedAction)
}

const combineReducersWithHydration = reducersMap =>
  combineReducers(mapValues(reducersMap, makeHydratable))