Create modular versions of extensions

Converts extensions to ES6 classes and modules.

I think I told Becky, but I didn't tell you (sorry): I started using prettier when almost all files had to be moved and modified anyway, so you could use https://github.com/prettier/prettier-vscode to auto-format your code now. Maintainers typically set up a pre-commit hook that runs prettier automatically (e.g. using Husky), but I didn't do that yet; If you agree, I can push that to modularization once this is merged.

@bjoluc @becky-gilbert I feel like this is in pretty good shape now. The main issue remaining is that I haven't actually tested the webgazer extension, since (a) I'm not sure if there is a smooth way to use webgazer in jest tests and (b) writing mocks for webgazer sounds painful.
What I did during development was manually test things with the plugins I had created. If I want to do that then either I should wait for @becky-gilbert to update those plugins or I should do that update myself.

Hi @jodeleeuw, I've been going through the plugins and example files in alphabetical order, but I can convert the webgazer plugins now and commit those separately so that you can test this. Do you want me to just push the plugins into the modularization branch or do a pull request?

@becky-gilbert I think you could just push them directly into the modularization-extensions branch. Even if you just do one of them and push it then I can see the changes and match them for the rest. I was cautious about doing it because I haven't been working on that piece of it at all yet.

@jodeleeuw ok will do ASAP!

@jodeleeuw I just pushed a commit to modularization-extensions with the modularized webgazer plugins. I also modified the examples/webgazer.html file so that you can use it for testing, and included the modularized html-button-response plugin (the example file uses both html-button-response and html-keyboard-response, and the latter has already been modularized).
The webgazer plugins are compiling successfully, but I couldn't test whether there are runtime errors. I tried running the webgazer.html example file but got stuck because I couldn't figure out how to initialize jsPsych with the webgazer extension, or how to add the extension to a trial. I assume this now needs to be done with a variable rather than the 'webgazer' string?
Also, I commented out the webgazer bits in the example file so that you can see that it runs without the extension. So I think what you need to do is: (1) fix the initialization with webgazer, (2) fix the extensions parameter for the trial object, and (3) add the webgazer plugin trials back onto the timeline.

Thanks @becky-gilbert! I'm having trouble running the build command. I'm running npm run build from the root of the repository. Is that what I should be doing, or should I do something else?

@jodeleeuw I've been running npm run build from the root of each package directory needed for the example file, so in:

packages/jspsych
packages/extension-webgazer
packages/plugin-html-button-response

etc.
Does that work for you?

Yep! I forgot that most of the plugins won't build correctly yet. This makes sense!

I am running into an issue here that I am hoping @bjoluc knows how to fix...
webgazer.js has a method to invoke a callback when a new gaze prediction is made. My extension hooks into this:
https://github.com/jspsych/jsPsych/blob/d2e92ec1a6c9ad420754cf9f56aa96e50ffd9a3b/packages/extension-webgazer/src/index.ts#L200
I pass this function as the callback, defined in the extension class as a private function:
https://github.com/jspsych/jsPsych/blob/d2e92ec1a6c9ad420754cf9f56aa96e50ffd9a3b/packages/extension-webgazer/src/index.ts#L291-L310
But it looks like the scope of this no longer refers to the instance of the extension when this function is invoked. Instead this is undefined. I'm not sure how to solve this. Any ideas?

@jodeleeuw ES6 classes are just syntactic sugar for the old-style function-based class concept and do not behave much differently. Member functions have the same old this behavior as any other function. When you detach the member function from the class instance and call it on its own, this will be undefined. Two options here:

Use an arrow function for the callback:private handleGazeDataUpdate = (gazeData, elapsedTime) => {

Bind this to the function – I like to use auto-bind to do it for all function members and be safe (whatever users may do with the functions, this will be the class instance then). auto-bind is already a dependency of the jspsych package, so you can justimport autoBind from "auto-bind";

Got it! For some reason I thought that the way I was declaring it was equivalent to an arrow function, but I had no good reason for thinking that. I've resolved it now.

@jodeleeuw Would you like to squash-merge this into modularization? We could also pull the commit into #2078 then.

@bjoluc I think this is ready to merge into modularization


Using/Creating a Project Context

This epic has the goal of providing the notion of "Projects" for the system. A project is a context for WIs, WITs and other structures already defined.
We first need some thinking about the information architecture for the intended system:

What entities are part of the project context?
What is the behaviour in comparison with other "higher" contexts like "Users"? Are users also part of the project context? Are users per-installation or per-project?
Is there a hierarchy of project contexts? Can there be sub-projects?

Based on the IA, what of the identified requirements are part of a baseline implementation for the next 2-3 sprints?
A current preliminary list of baseline userstories might be:

Create a project with basic data (title, description).
Selecting the "active" project for the logged in user to be used as the base context for following user actions. No authN/authZ considerations yet.

Feel free to discuss..
Userstories

Userstory #357
Userstory #358

@Mgranfie is creating the Information Architecture a story on the same level as the short-term userstories above (in the notion of, "lets do the baseline, but let's think of a proper architecture in parallel") or is the IA a precondition for even the baseline?
That is important because if the IA is a precondition, we can not put the basline stories in the next sprint, we have to get the IA finished beforehand.

I would say we need to do this work iteratively and in collaboration - cannot define the IA separate from the development team IMO.

@michaelkleinhenz I'd like to point out that the project namespace should eventually have entities like

the associated source code repo (the GitHub repo for now). I suspect this is needed for the build SPI to take shape.
the build definition related entities for the project. Too early to comment on specifics for this - you may start off with only one pipeline definition per project in the beginning, and then maybe support multiple pipeline definitions, if you need them to support project hierarchies (say, every project component has it's own pipeline). Better to discuss this as part of #352, and then decide what entity is managed on this side of the fence and needs to go into the project namespace, and/or other entities under the project namespace, and what entities are managed by a build provider and may only be cached and synced on this side.

There are couple of others that also need to be added, but I don't see any stories in these feature areas in the next 2-3 sprints, so I'm putting them down to decide whether architectural runway stories need to be created:

any deployment related entities for the project. As stated above, too early to comment on this. Functionally, as a user I'm expecting to see how a build artifact has made it's way to an environment - dev, staging, production etc. Projects may need to manage or know the container deployment namespaces and other details like the DNS name for a hosted project (as an example, store demo.almighty.io). I'd suggest creating an architectural runway story for deployment, if one is needed.
experiments or hypothesis under test for the project. This is for managing results from various A/B tests that are running in the production environment. Again too early to consider this as part of the baseline implementation you want in the next 2-3 sprints. An architectural runway story is very likely needed to understand this further - I'm working on a very simple example to demonstrate an A/B test to help the team understand what parts of the entire system would be involved; I suspect this to be a combination of responsibilities shared by ALM+build+deploy. A/B testing frameworks have their own dashboards and reporting solutions that may not play well with us.

@VineetReynolds great remarks, thanks! I would suggest we keep this epic open and source the future stories for all related areas from this one and the discussion here.

@VineetReynolds as far as I remember, projects can have multiple repos. So no 1:1 relationship.

+1 this is what I recall too
On Tue, Oct 18, 2016 at 5:19 AM, Thomas Mäder<EMAIL_ADDRESS>wrote:

@VineetReynolds https://github.com/VineetReynolds as far as I remember,
projects can have multiple repos. So no 1:1 relationship.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/almighty/almighty-core/issues/355#issuecomment-254452942,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARTwqwMAVN8ktRYlA7ntZBHG_0AIti35ks5q1I8agaJpZM4KU0yl
.

+1 A "single" project may include multiple binaries (such as a UI and a server) and each may be in a separate repo.

+1, that is also important info for the build stuff!

Note: new story needed later: adding/removing users from projects.

@tsmaeder @Mgranfie No disagreements on project having multiple repos - I was considering the simplest possible scenario, but real world is quite different.
I recall from the sprint backlog grooming, this is somewhat tied to the project hierarchy (each project could have a 1:1 repo mapping), and the role of components in a project (does each component also have it's own repo?).
The reason why I prefer the 1:1 approach with a hierarchical project structure or even project groups/collections, is: projects, repositories and builds are related in a very important way - project versions or releases. Projects have versions, and so do source repository tags. With a 1:M mapping, the question would be - what repositories do I build and tag (say v3.y.z of Acme at github.com/acme), in order to release a new version of the project?
The question I'd like the team to address is: Who are the users who need multiple repositories to be linked to a project, and why? If the related feature set requires 1:M mapping, then we implement that. But if it means the UX works out better throughout the overall system, because of a simpler model (1:1 mapping, but with project groups/collections/hierarchies), then we should consider that.

To answer my own question above, multiple repositories against a single project would be required when a single work item like a story needs work to be performed in multiple repositories.
For instance, to complete a single story, work needs to be done in a UI repo and in a service/api/backend repo. The story itself could be broken down into two separate tasks, assigned to two different people, but the story has to reside in one project - splitting the story into two and linking it across two separate projects would make it difficult to track completion and also break the expectation of what is a story.

@michaelkleinhenz consider this done?


Persist elasticsearch.keystore or add data before the first container starts?

Hi, ist there anyway to persist the elasticsearch.keystore or add things to the keystore before the container starts elasticsearch?
My problem is, i need to add a client.secret before the container starts the first time and also want to persist this data after a docker-compose stop.

I tried:

docker-compose run elasticsearch bin/elasticsearch-keystore add xpack.security.authc.realms.oidc.oidc1.rp.client_secret

But data is gone on the next startup.

I tried to add the following to the docker-compose.yml

elasticsearch:
...
  volumes:
    ...
    - type: bind
      source: ./elasticsearch/config/elasticsearch.keystore
      target: /usr/share/elasticsearch/config/elasticsearch.keystore

Also does not work, because keystore must exist before the startup. Creating an empty file before does not help, because its the wrong format.

I think the easiest way would be

Initialize the keystore using Docker, without Compose:$ docker run --rm -v $(pwd)/config/:/usr/share/elasticsearch/config/ docker.elastic.co/elasticsearch/elasticsearch:7.11.1 elasticsearch-keystore create

Mount the pre-created keystore via the Compose file using a bind mount, like you tried to do.

That's a fair point, we should persist the keystore by default. That would be quite easy to do if we could define its location, but apparently that's not possible. Maybe I'm wrong?

@cebor were you successful using the approach I suggested?

No, then the build does not work anymore.
What i do now is, i wrote a routine which restores the keystore on every startup. ^^
Thx anyway.

@cebor it works fine for me but I noticed some java.nio.file.FileSystemException errors in Docker for Windows, if that's what you use.
I'll write a more detailed procedure in the README but here is what I did, step by step:
1. Create keystore
$ docker run --rm -v $(pwd)/elasticsearch/config/:/usr/share/elasticsearch/config/ docker.elastic.co/elasticsearch/elasticsearch:7.11.2 elasticsearch-keystore create
Created elasticsearch keystore in /usr/share/elasticsearch/config/elasticsearch.keystore

2. Change ownership
The created keystore is owned by root, unless you run the previous command with -u <user>, which I didn't.
We need to change its owner to 1000, which is the uid of the elasticsearch user inside the Elasticsearch image.
$ ls -l elasticsearch/config/elasticsearch.keystore
-rw-rw---- 1 root root 199 Mar 27 18:09 elasticsearch/config/elasticsearch.keystore

$ sudo chown -v 1000 elasticsearch/config/elasticsearch.keystore
changed ownership of 'elasticsearch/config/elasticsearch.keystore' from root to 1000

3. Mount the keystore in the expected location
$ git diff
diff --git a/docker-compose.yml b/docker-compose.yml
index 669e337..a9ee0ea 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -11,6 +11,10 @@ services:
         source: ./elasticsearch/config/elasticsearch.yml
         target: /usr/share/elasticsearch/config/elasticsearch.yml
         read_only: true
+      - type: bind
+        source: ./elasticsearch/config/elasticsearch.keystore
+        target: /usr/share/elasticsearch/config/elasticsearch.keystore
+        read_only: false
       - type: volume
         source: elasticsearch
         target: /usr/share/elasticsearch/data

4. Run
$ docker-compose up elasticsearch
elasticsearch_1  | {"type": "server", "timestamp": "2021-03-27T17:40:17,308Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "51691320c358", "message": "version[7.11.2], pid[7], build[default/docker/3e5a16cfec50876d20ea77b075070932c6464c7d/2021-03-06T05:54:38.141101Z], OS[Linux/4.19.128-microsoft-standard/amd64], JVM[AdoptOpenJDK/OpenJDK 64-Bit Server VM/15.0.1/15.0.1+9]" }
...

$ curl -D- localhost:9200 -u elastic:changeme
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 542

{
  "name" : "51691320c358",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "ZUQ-rbdUR_20YCN6Qe4fOA",
  "version" : {
    "number" : "7.11.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "3e5a16cfec50876d20ea77b075070932c6464c7d",
    "build_date" : "2021-03-06T05:54:38.141101Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

@antoineco, i tried your workaround (create a the keystore with uid 1000 and mount/bind it as a read-write volume) but i get also a java.nio.file.FileSystemException error on Linux, was your error the same ?
$ docker-compose up
[...]
Creating elasticsearch ... done
Attaching to elasticsearch
elasticsearch    | Exception in thread "main" java.nio.file.FileSystemException: /usr/share/elasticsearch/config/elasticsearch.keystore.tmp -> /usr/share/elasticsearch/config/elasticsearch.keystore: Device or resource busy
elasticsearch    |      at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
elasticsearch    |      at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
elasticsearch    |      at java.base/sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:415)
elasticsearch    |      at java.base/sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:267)
elasticsearch    |      at java.base/java.nio.file.Files.move(Files.java:1426)
elasticsearch    |      at org.elasticsearch.common.settings.KeyStoreWrapper.save(KeyStoreWrapper.java:523)
elasticsearch    |      at org.elasticsearch.common.settings.AddStringKeyStoreCommand.executeCommand(AddStringKeyStoreCommand.java:101)
elasticsearch    |      at org.elasticsearch.common.settings.BaseKeyStoreCommand.execute(BaseKeyStoreCommand.java:57)
elasticsearch    |      at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75)
elasticsearch    |      at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116)
elasticsearch    |      at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:80)
elasticsearch    |      at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116)
elasticsearch    |      at org.elasticsearch.cli.Command.main(Command.java:79)
elasticsearch    |      at org.elasticsearch.common.settings.KeyStoreCli.main(KeyStoreCli.java:32)
elasticsearch exited with code 1

@jeansalama yes I had the same error. I was convinced it was due to the way Docker for Desktop shares files across WSL instances, but you're saying it happens also on a regular Linux host?

Yep, and i have just found a warning about it in elastic official documentation and how to do it

So i finally choose to do like @cebor , ovverriding the entrypoint for elasticsearch docker image on startup. It is much simplier than copying all orginal config files, then modify elasticsearch.yml and the keystore to commit them all :/

No, then the build does not work anymore.
What i do now is, i wrote a routine which restores the keystore on every startup. ^^
Thx anyway.

@LeoNaveen10 You could inject some initialization logic to copy the keystore from a mounted directory using the following technique:
#docker-compose.yml

version: 3.7

services:

  elasticsearch:
    volumes:
      # ...
      - ./keystore/my.keystore:/my/mounted/directory/my.keystore:ro,z
    entrypoint:
      - /bin/tini
      - --
      - bash
      - -c
      - >
        cp /my/mounted/directory/my.keystore /usr/share/elasticsearch/config/elasticsearch.keystore;
        exec /usr/local/bin/docker-entrypoint.sh;
  # ...

[disclaimer - I'm completely new to docker and ELK]
Hi there, facing the same issue as LeoNaveen10 and jeansalama could anyone provide a working solution or starting point that would allow storing secrets in the elasticsearch keystore  ?
To sum up i've tried the offical method to generate keystore containing my secrets and then bind the file as a volume but it won't work, later on, i've found that mounting the file directly to /usr/share/elasticsearch/config/elasticsearch.keystore would cause issues and that it would be better to bind the whole config directory instead but can't manage to do that as i would overwrite other file generated and placed in that directory such as elasticsearch.yml, i'm a bit confused on how to proceed.
Thanks.

@antoineleguillou the message right above yours provides a ready to use solution☝ Just replace the file name in the example with the name of your local keystore file.
You still need to create the keystore yourself, but instead of mounting it inside Elasticsearch's config directory, you mount it in another location of your choice (anywhere), then copy it to Elasticsearch's config directory right before calling Elasticsearch's startup script.
With this approach, the keystore isn't mounted as a single-file volume, so Elasticsearch can manipulate it without complaining.
Just make sure the keystore is group-writable before starting Elasticsearch (chmod g+wr my.keystore) otherwise Elasticsearch might not be able to overwrite it on start.

@antoineco thanks a lot for your message i'm sorry for my misunderstanding, could you enlighten me on the difference between copying a file and mounting a volume in that case ? Thanks a lot.

In theory there isn't much difference, but upon startup Elasticsearch does something unusual: instead of updating the keystore file in place, it creates a temporary version of it called elasticsearch.keystore.tmp, then tries to move it to elasticsearch.keystore.
Translated to filesystem operations, this means that elasticsearch.keystore.tmp and elasticsearch.keystore are represented using different inodes, and when a single file is mounted, its inode cannot change.

Here are a series of commands you can execute anywhere on your Docker host to reproduce the behaviour:
Create a temporary file to be mounted inside a container:
$ touch inode_test

Display the inode of the mounted file inside a container:
$ docker container run --rm -v "$PWD"/inode_test:/inode_test alpine ls -i inode_test
      5 inode_test

Try to move the mounted file from within a container:
$ docker container run --rm -v "$PWD"/inode_test:/inode_test alpine mv inode_test inode_test_new
mv: can't rename 'inode_test': Resource busy

From within a container, create a new file and try to overwrite the original mounted file with it:
$ docker container run --rm -v "$PWD"/inode_test:/inode_test alpine sh -c 'touch inode_test_new; ls -i inode_test*; mv inode_test_new inode_test'
      5 inode_test
    784 inode_test_new
mv: can't rename 'inode_test_new': Resource busy

Try to edit the mounted file in place from within the container:
$ docker container run --rm -v "$PWD"/inode_test:/inode_test alpine sh -c 'echo hello >inode_test'
(it works, in-place writes do not change the inode)

@antoineco is correct. To illustrate the problem further, here are some examples of block operations succeeding on the keystore prior to attempting the mv command.
These commands will be run in an ephemeral Docker container that does not have a running Elasticsearch process. Here's my setup leading into the examples:
# demonstrate that no containers are running
$ docker container ls
CONTAINER ID   IMAGE                     COMMAND

# create a temporary container. copy the volume mounts from a production container that is stopped
$ docker run --rm --name=demo --volumes-from=my-prod-container -it --user 0 elasticsearch:8.5.3 /bin/bash`
root@d742001961f2:/usr/share/elasticsearch# cd config
root@d742001961f2:/usr/share/elasticsearch/config#

The examples themselves:
# duplicate the keystore to a temporary file
root@d742001961f2:/usr/share/elasticsearch/config# cp elasticsearch.keystore elasticsearch.keystore.bak

# commands that use block copying to overwrite the original keystore will succeed
root@e63e906af8e0:/usr/share/elasticsearch/config# cp elasticsearch.keystore.bak elasticsearch.keystore
root@e63e906af8e0:/usr/share/elasticsearch/config# dd if=elasticsearch.keystore.bak of=elasticsearch.keystore
1+1 records in
1+1 records out
699 bytes copied, 9.7396e-05 s, 7.2 MB/s

# mv will fail because it doesn't attempts a block copy
root@d742001961f2:/usr/share/elasticsearch/config# mv elasticsearch.keystore.bak elasticsearch.keystore
mv: cannot move 'elasticsearch.keystore.bak' to 'elasticsearch.keystore': Device or resource busy

The solution isn't as simple as asking the Elasticsearch developers to always require a full block copy though. mv is normally preferred in this scenario to avoid read operations being attempted prior to the writes completing. By relinking the file in place with one that is already present on the same filesystem, the cutover from the new data to the old is an instant operation. Read operations are either hitting the old inode or the new inode, and the filesystem doesn't actually free the blocks associated with the old inode until all the running programs release their file handles.
This is a very long way of saying that the developers can't use something other than mv without creating different, potentially much bigger problems. Even if the elasticsearch-keystore command was over-engineered to see if the old file is currently in use (not always feasible), a read operation could still start in the middle of the block copy, resulting in seeks against a malformed/truncated file.
That said, I think some more helpful verbiage in the exception that nudges people toward https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_elasticsearch_keystore_device_or_resource_busy would still help steer users to the actual problem faster.


Missing Files

Thanks. Can you please tell the the files namely android/assets/camera_preview.frag
android/jni/convert_image_hl.cxx
android/jni/convert_output_hl.cxx
Where these can be found?
These are mentioned in readme file in Android portion.

@FatimaNiazi01  where did you get the Android code？ seems not release from this repo


Cannot undo "Move x.ts" because changes were made to x.ts

I keep running into this while trying to move files around

Move a file to a new folder in the explorer
The imports get updated
Change my mind, cmd+Z
Can't undo, apparently because of imports being updated

lmk if you need a log for this

@jrieken Assigning you because I don't think this is a TS specific issue. We are using a normal workspace edit

We use onDidRenameFiles because TS needed the on disk state to be updated before it can handle the rename. Computing the rename edits can also take some time and we didn't want to block the file rename itself while this was happening

Than it's two workspace edits of different operations. I believe that explains why undo isn't working.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Webhooks

I cannot find any documents to show where to enter the url for web hooks?

Yeah we should have this info available through README. It should be just this configuration:
https://github.com/edgurgel/poxa/blob/master/config/poxa.conf#L16-L17


Add end_date parameter to notebook

ready for test : https://colab.research.google.com/drive/1-kcLiys6TpfI1WIRcsLjuWnJuoa_3j86?usp=sharing

Exchange: Ascendex
pair: FIDA/USDT
range: 8/1/2021 - 9/1/2021

missing orders 2 on colab notebook

Exchange: KuCoin
pair: DIVI/USDT
range: 8/27/2021 - 9/22/2021

filled trades is available within the range
the first filled trade date is 9/3/2021

Exchange: Ascendex
pair: FIDA/USDT
range: 8/1/2021 - 9/1/2021

missing orders 2 on colab notebook

After Investigation I noticed a weird behavior from the API, the dates order and filter is not respected in some cases as you can see here this filled order should not be included in this request, this can cause some missing or some duplication.

Exchange: KuCoin
pair: DIVI/USDT
range: 8/27/2021 - 9/22/2021

filled trades is available within the range
the first filled trade date is 9/3/2021

This is also a weird behavior from the Kucoin API, the start_date should be the closest possible to the real trading start date, if there is more than 5 days of a gap the api return nothing,.
Here we have 8-27 and the trading started the 9-03 so more than 5 days we will get no result back from the API.


Update and rename call-diagnostics.md to user-facing-diagnostics.md

Changing the API with the new released version, and updating with the new UFDs

@fizampou: I'm sorry - only the author of this article, @, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

In review.
The PR Review team is reviewing your PR. As part of this process, we might make minor changes.
Don't make any commits during this review. When we finish, we’ll tag the PR creator in a comment if we find issues we can't address.
#label:"review-in-progress"
#assign: @denrea

@fizampou @mikben I see that a file is renamed in the PR. The update will need to be moved to the private repo so a redirect and TOC update can be made. @mikben do you want to do that, or I could. #hold-off


Cannot debug

Applies To

[X] Notebooks (.ipynb files)
[ ] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
Suddenly debugging does not work anymore. All notebooks, all cells. It was working before. And I didn't do anything.

It cannot hit even the first line. Just counting time but nothing starts.
VS Code Version
Version: 1.85.1 (user setup) Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2 Date: 2023-12-13T09:49:37.021Z Electron: 25.9.7 ElectronBuildId: 25551756 Chromium: 114.0.5735.289 Node.js: 18.15.0 V8: <IP_ADDRESS>-electron.0 OS: Windows_NT x64 10.0.19045
Jupyter Extension Version
Jupyter v2023.11.1003402403
Jupyter logs
Visual Studio Code (1.85.1, undefined, desktop)
Jupyter Extension Version: 2023.11.1003402403.
Python Extension Version: 2023.22.1.
Pylance Extension not installed.
Platform: win32 (x64).
Workspace folder ~\Desktop\temp, Home = c:\Users\mugi
06:41:53.696 [info] Start refreshing Kernel Picker<PHONE_NUMBER>696)
06:41:53.698 [info] Using Pylance
06:41:53.811 [info] Start refreshing Interpreter Kernel Picker
06:41:55.672 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd01fa163922eb0b3709bbb5d8082b2465c9de796dbaacca80cbaa600e7fff3e4fe.d:\Python310\python.exe.d:\Python310\python.exe.-m#ipykernel_launcher  (Python Path: d:\Python310\python.exe, Unknown, 3.10.11) for 'd:\OneDrive\code\candle\candle.ipynb' (disableUI=true)
06:41:55.674 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd01fa163922eb0b3709bbb5d8082b2465c9de796dbaacca80cbaa600e7fff3e4fe.d:\Python310\python.exe.d:\Python310\python.exe.-m#ipykernel_launcher  (Python Path: d:\Python310\python.exe, Unknown, 3.10.11) for 'd:\OneDrive\code\candle\candleYear.ipynb' (disableUI=true)
06:41:56.134 [warn] Failed to get activated env vars for d:\Python310\python.exe in 676ms
06:41:56.202 [info] Process Execution: d:\Python310\python.exe -c "import site;print("USER_BASE_VALUE");print(site.USER_SITE);print("USER_BASE_VALUE");"
06:41:56.403 [info] Process Execution: d:\Python310\python.exe -m pip list
06:41:56.504 [warn] Failed to get activated env vars for d:\Python310\python.exe in 774ms
06:41:56.511 [info] Process Execution: d:\Python310\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
06:41:56.519 [info] Process Execution: d:\Python310\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2023.11.1003402403-win32-x64\pythonFiles\vscode_datascience_helpers\kernel_interrupt_daemon.py --ppid 17612
    > cwd: ~\.vscode\extensions\ms-toolsai.jupyter-2023.11.1003402403-win32-x64\pythonFiles\vscode_datascience_helpers
06:41:56.524 [warn] Failed to get activated env vars for d:\Python310\python.exe in 767ms
06:41:56.531 [info] Process Execution: d:\Python310\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
06:41:56.707 [info] Process Execution: d:\Python310\python.exe -m ipykernel_launcher --f=~\AppData\Roaming\jupyter\runtime\kernel-v2-17612MWqthQzef056.json
    > cwd: d:\OneDrive\code\candle
06:41:56.719 [info] Process Execution: d:\Python310\python.exe -m ipykernel_launcher --f=~\AppData\Roaming\jupyter\runtime\kernel-v2-176125dE8xawcbwGy.json
    > cwd: d:\OneDrive\code\candle
06:41:57.738 [info] End refreshing Kernel Picker<PHONE_NUMBER>696)
06:41:58.028 [info] Process Execution: d:\Python310\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2023.11.1003402403-win32-x64\pythonFiles\printJupyterDataDir.py
06:42:19.541 [info] Handle Execution of Cells 0 for Untitled-1.ipynb
06:42:19.543 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd01fa163922eb0b3709bbb5d8082b2465c9de796dbaacca80cbaa600e7fff3e4fe.d:\Python310\python.exe.d:\Python310\python.exe.-m#ipykernel_launcher  (Python Path: d:\Python310\python.exe, Unknown, 3.10.11) for 'Untitled-1.ipynb' (disableUI=false)
06:42:19.591 [warn] Failed to get activated env vars for d:\Python310\python.exe in 46ms
06:42:19.595 [info] Process Execution: d:\Python310\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
06:42:19.600 [info] Process Execution: d:\Python310\python.exe -m ipykernel_launcher --f=~\AppData\Roaming\jupyter\runtime\kernel-v2-17612yGVeBkkZO3fB.json
    > cwd: ~\Desktop\temp
06:42:20.492 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>492
06:42:20.498 [info] End cell 0 execution after 0.006s, completed @<PHONE_NUMBER>498, started @<PHONE_NUMBER>492
06:42:38.890 [info] Disposing kernel .jvsc74a57bd01fa163922eb0b3709bbb5d8082b2465c9de796dbaacca80cbaa600e7fff3e4fe.d:\Python310\python.exe.d:\Python310\python.exe.-m#ipykernel_launcher for notebook Untitled-1.ipynb due to selection of another kernel or closing of the notebook
06:42:38.890 [info] Dispose Kernel 'Untitled-1.ipynb' associated with 'Untitled-1.ipynb'
06:42:38.891 [info] Dispose Kernel process 20660.
06:42:38.896 [info] Process Execution: c:\Windows\System32\taskkill.exe /F /T /PID 20660
06:42:39.197 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd01fa163922eb0b3709bbb5d8082b2465c9de796dbaacca80cbaa600e7fff3e4fe.d:\Python310\python.exe.d:\Python310\python.exe.-m#ipykernel_launcher  (Python Path: d:\Python310\python.exe, Unknown, 3.10.11) for 'd:\OneDrive\code\candle\test.ipynb' (disableUI=true)
06:42:39.249 [warn] Failed to get activated env vars for d:\Python310\python.exe in 49ms
06:42:39.254 [info] Process Execution: d:\Python310\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
06:42:39.261 [info] Process Execution: d:\Python310\python.exe -m ipykernel_launcher --f=~\AppData\Roaming\jupyter\runtime\kernel-v2-17612umTwLTvUX3P5.json
    > cwd: d:\OneDrive\code\candle
06:42:42.262 [info] Starting debugging with mode 1
06:42:43.289 [info] Handle Execution of Cells 0 for d:\OneDrive\code\candle\test.ipynb
06:42:43.297 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>296
06:42:43.311 [info] End cell 0 execution after 0.015s, completed @<PHONE_NUMBER>311, started @<PHONE_NUMBER>296
06:42:43.366 [info] Ending debug session ae44b1aa-acac-4ca6-8bfb-c64efe07ae71
06:42:43.404 [warn] StdErr from Kernel Process [IPKernelApp] ERROR | Exception in control handler:
Traceback (most recent call last):
  File "d:\Python310\lib\site-packages\ipykernel\kernelbase.py", line 354, in process_control
    await result
  File "d:\Python310\lib\site-packages\ipykernel\kernelbase.py", line 1028, in debug_request
    reply_content = await reply_content
  File "d:\Python310\lib\site-packages\ipykernel\ipkernel.py", line 511, in do_debug_request
    return await self.debugger.process_request(msg)
  File "d:\Python310\lib\site-packages\ipykernel\debugger.py", line 740, in process_request
    self.stop()
  File "d:\Python310\lib\site-packages\ipykernel\debugger.py", line 445, in stop
    self.debugpy_client.disconnect_tcp_socket()
  File "d:\Python310\lib\site-packages\ipykernel\debugger.py", line 280, in disconnect_tcp_socket
    self.debugpy_stream.socket.disconnect(self._get_endpoint())
  File "zmq\backend\cython\socket.pyx", line 668, in zmq.backend.cython.socket.Socket.disconnect
zmq.error.ZMQError: No such file or directory
06:42:45.867 [error] Canceled: Canceled
    at o.Q (vscode-file://vscode-app/c:/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:920:38833)
    at vscode-file://vscode-app/c:/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:920:38760
06:42:45.905 [info] Ending debug session ae44b1aa-acac-4ca6-8bfb-c64efe07ae71
06:42:45.905 [info] Ending debug session ae44b1aa-acac-4ca6-8bfb-c64efe07ae71
06:42:46.243 [info] Starting debugging with mode 1
06:42:46.543 [info] Handle Execution of Cells 0 for d:\OneDrive\code\candle\test.ipynb
06:42:46.549 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>549

Coding Language and Runtime Version
Python 3.10.11
Language Extension Version (if applicable)
No response
Anaconda Version (if applicable)
No response
Running Jupyter locally or remotely?
Local

I've done some further looking into this after running into the problem myself and it appears to be related to ipykernel v6.28. I can successfully run the debugger when using python 3.11.7 & ipykernel 6.26, and when using python 3.12.1 & ipykernel 6.28, but NOT python 6.11.7 & ipykernel 6.28.
VSCode version:
Version: 1.85.1 (user setup)
Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
Date: 2023-12-13T09:49:37.021Z
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22000

Jupyter Extension version:
v2023.11.1003402403
The only seemingly relevant change I could find in ipykernel 6.28 is discussed here: https://github.com/ipython/ipykernel/pull/1184
Looks to be some further discussion around the change (in relation to jupyter & tornado apps which I think vscode is?) here: https://github.com/jupyter/jupyter_core/pull/382

@nataziel @szmcdull Can you debug the same code using the debugger in Jupyter Lab
I.e. plese try installing Jupyter Lab into the same python environment you are using for testing (using python -m pip install jupyterlab) and then see if it works.
Let me know how this goes.
@nataziel Thanks for the analysis, please let me know if this repros in JupyterLab as well.

@DonJayamanne yes i can debug in jupyterlab

@DonJayamanne yep I can confirm that debugging worked fine for me with all previously metioned combinations in JupyterLab, but still fails in VSCode with python=3.11.7 & ipykernel=6.28

I can also confirm there seems to be a problem with the ipykernel hanging with debug when i use anything above ipykernel 6.26 ... i am using python 3.10.10 ... i had to downgrade to 6.25 and it works again

@QuantFreedom1022 @nataziel @szmcdull
Please can you try using IPyKernel 6.29.0 and ipython 8.20.0
I've tested this at my end and it works with python=3.11.7 & ipykernel=6.28
Perhaps some other package is causing issues.
Please can you try a vanialla Python environment (python -m venv .venv) or similar.
Then install the relevant packages and test again, if it still doesn't work, then list pip list to see what versions you have and I can try taht at my end as well.

@DonJayamanne I just checked with python 3.10.10 with the package versions you suggested and the debug seems to be working now

Is most likely an issue with the ipykernel package
Closing as resolved
Please update to the latest version


Replace aioredis pkg by redis

In order to improve the compatibility for python 3.11, aioredis is replaced by redis. The package has been deprecated in Feb 21, 2023 since the introduction of aioredis into redis package with the 4.2.0rc1 release.
For more info see:

https://github.com/redis/redis-py/pull/1899
https://github.com/aio-libs/aioredis-py#-aioredis-is-now-in-redis-py-420rc1-

If you want 3.11, maybe you should add the CI to run python 3.11 too ?

Codecov Report

Merging #1 (9ff5ccc) into main (02c2cce) will not change coverage.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff            @@
##              main        #1   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            9         9
  Lines          292       292
=========================================
  Hits           292       292

Impacted Files
Coverage Δ

src/dj_blacksmith/client/_async/middleware.py
100.00% <100.00%> (ø)

src/dj_blacksmith/client/_sync/client.py
100.00% <100.00%> (ø)

src/dj_blacksmith/client/_sync/middleware.py
100.00% <100.00%> (ø)

...c/dj_blacksmith/client/_sync/middleware_factory.py
100.00% <100.00%> (ø)


0.8.8 - Character sheet does not open

Describe the bug
After a (stupid!) update to 0.8.8 clicking a character in the actors sidebar doesn't open the character sheet. Only one character. Same thing when you doubleclick the corresponding token.
Chrome Console throws this on click:
TypeError: An error occurred while rendering ActorSheetdsa5Character 109: Cannot set property 'extensions' of undefined
    at Actordsa5.prepareItems (actor-dsa5.js:644)
    at Actordsa5.prepareSheet (actor-dsa5.js:322)
    at ActorSheetdsa5Character.getData (actor-sheet.js:108)
    at async ActorSheetdsa5Character._render (foundry.js:2042)
    at async ActorSheetdsa5Character._render (foundry.js:2729)
    at async ActorSheetdsa5Character._render (actor-sheet.js:19)
(anonymous) @ foundry.js:2006
Promise.catch (async)
render @ foundry.js:2004
render @ foundry.js:3223
_onClickEntityName @ foundry.js:23645
_onClickEntityName @ foundry.js:32052
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2

To Reproduce
Steps to reproduce the behavior:
not every character is affected. This one has karma energy, which also doesn't seem to be root cause of the issue (as imported chars from godsofaventuria do work). Maybe its some item?
Expected behavior
character sheet opens on click
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Windows
Browser: chrome, Firefox
Version: 91.04472

Additional context
Add any other context about the problem here.

Update:
Recreating the character within foundry did solve this issue.


[WIP] Fix OpenMP on Windows

Working on https://github.com/AMReX-Codes/amrex/issues/3795

[x] run OpenMP tests
[ ] try https://github.com/AMReX-Codes/amrex/pull/3910

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

So strange that the OpenMP tests pass here but not in a dependent repo:
(%BUILD_PREFIX%) %SRC_DIR%>ctest --test-dir build --build-config Release --output-on-failure -R OpenMP
Internal ctest changing into directory: D:/bld/amrex_1714368890030/work/build
Test project D:/bld/amrex_1714368890030/work/build
    Start 105: OpenMP_atomicAdd_1d
1/3 Test #105: OpenMP_atomicAdd_1d ..............   Passed    0.06 sec
    Start 106: OpenMP_atomicAdd_2d
2/3 Test #106: OpenMP_atomicAdd_2d ..............   Passed    0.03 sec
    Start 107: OpenMP_atomicAdd_3d
3/3 Test #107: OpenMP_atomicAdd_3d ..............   Passed    0.08 sec

100% tests passed, 0 tests failed out of 3

Total Test time (real) =   0.23 sec

@isuruf I am installing the import lib .lib into bin/ while installing the .dll into lib/ ... is that a problem?
2024-04-29T06:01:10.1934787Z -- Installing: D:/bld/amrex_1714368890030/_h_env/Library/lib/amrex_3d.lib
2024-04-29T06:01:10.2011064Z -- Installing: D:/bld/amrex_1714368890030/_h_env/Library/bin/amrex_3d.dll

https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#why-does-find_library-not-find-dll-libraries-under-win32

I am installing the AMReX import libs amrex_.lib into lib/ while installing the dynamic symbols amrex_.dll into bin/ ... is that a problem?

Nope

I noticed that I cannot find a symbol for omp_lock_t in neither libiomp5md.dll nor libomp.dll of the conda-forge llvm-openmp package...

Types don't have symbols in dynamic libraries. Only functions and global data variables.

I'll try patching in https://github.com/AMReX-Codes/amrex/pull/3910 to the 24.05 release.

In parallel, I contributed to CMake 3.30+ the support for OpenMP from LLVM in MSVC (instead of Clang-Cl), which we can try as well once released: https://gitlab.kitware.com/cmake/cmake/-/merge_requests/9475

Testing the patch for the 24.05 release via #24

Patch in upstream for 24.05+


Discussion: To Allow autoplay and delay in amp-carousel in AMP for Email

Currently, these two attributes are not allowed in AMP for Email.
If these were available, the fact that carousels are actually there could be highlighted. With these AMP components being such a new concept in email, we could see many users not recognizing that the carousel functionality is there and able to be interacted with.
These feature could also help balancing the exposure of elements in different positions of a carousel in an email.
Could this be added to the spec?

We discussed this with the AMP for Email working group today, and everyone agreed that we can allow autoplay and delay for amp-carousel. I will take the action item to whitelist these two attributes in the spec.

This is done in https://github.com/ampproject/amphtml/pull/23384/files
@fstanis Can we close this issue now? (Apparently I don't have access to close issues)


BUG REPORT: The "Add your expenses to see meaningful insights here!" is getting wrapped in two lines.

Describe the bug
When there is no expense transactions hence no expense chart, the  "Add your expenses to see meaningful insights here!" text is getting wrapped in a second line.
To Reproduce
Steps to reproduce the behaviour:

Go to https://spendwise-seven.vercel.app/
Login to your account (or signup) if not already
delete all your expense transactions (if any)
See error

Expected behaviour
The text should not be wrapped, it should be in the same line.
Screenshots

Can I work on this issue as well?

@gautamjuyal this issue has been solved by someone else. please find yourself some other issues.


Bless Error: Error Domain=CFErrorDomainLaunchd Code=4 "(null)"

Hi Eric
this is really awesome thats you help us to use it , thank you
now issue No : 1
Helper: Bundle Version => 1.0.3
2018-03-25 19:13:11.077457+0530 MyApplication[2122:36235] Bless Error: Error Domain=CFErrorDomainLaunchd Code=4 "(null)"
2018-03-25 19:13:11.077690+0530 MyApplication[2122:36158] XPC Connection Invalidated

Issue No: 2
SMJobBlessUtil.py: tool designated requirement (identifier "com.github.erikberglund.MyApplicationHelper" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: ****** (827NYLK373)" and certificate 1[field.1.2.840.1136<IP_ADDRESS>.1] /* exists */) doesn't match entry in 'SMPrivilegedExecutables' (anchor apple generic and identifier "com.github.erikberglund.MyApplicationHelper" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] /* exists */ or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] /* exists */ and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] /* exists */ and certificate leaf[subject.OU] = 827NYLK373 ))

i just change team id , rest everything is intact ..
question : do i need to create a identifier at itunes connect ?
Thanks

Hello.
Yes, issue no: 1 is because the signing isn't correct. Nothing will install or work until  the SMJobBlessUtil.py tool returns with an ok.
Issue no: 2 is probably because you have used a "Mac Developer" certificate, where I used a "Developer ID Application" certificate.
The strings in the Info.plist inside the brackets are OIDs for certificates that defines the option and settings that are required for the certificate to be valid. And as I have used a Developer ID Application-cert for this test project, I only included those OIDs.
If you want to use a Mac Developer-cert, you also need to update the OIDs to something like this:
In the applications Info.plist, for the field Tools owned after installation, replace the string there with the string below and replace Mac Developer: ********* (74QXZ7SQ7K) with your own certificate name and id like the one in your output above (but without the ** ofc):
identifier "com.github.erikberglund.MyApplicationHelper" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: ********* (74QXZ7SQ7K)" and certificate 1[field.1.2.840.1136<IP_ADDRESS>.1] /* exists */

In the MyApplicationHelper-Info.plist, for the field Clients allowed to add and remove tool, replace the string there with the string below and replace Y7QFC8672N  with your own certificate id:
anchor apple generic and identifier "com.github.erikberglund.MyApplication" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] /* exists */ or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] /* exists */ and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] /* exists */ and certificate leaf[subject.OU] = Y7QFC8672N)

Also to note, I just wrote and tested those strings now, but it might be wise to maybe add some more checks to the first string in the application Info.plist, to check for more things like the apple certs. I don't have time to test or check that now, but that might be a good idea for security.

great you are so quick , actually i was using automatic manage signing , just removed it and did as you said ,
it seems fine now

i need to perform some sudo task , but in example it just check for file with auth
Thank you

Yes, the example is just hardcoded to the command /bin/ls and as it says in the label: List contents of folder at path: and expects a path to run ls on. So with that you can test to list contents of folders that only root has access to for example.
So to run another command, you need to update the helper. But remember, for the application to know that you have a new helper to install (with new code), you HAVE to update the helper's version in it's info.plist, otherwise it will never update.

So to run another command, you need to update the helper.

found it , have to do lots of work here

But remember, for the application to know that you have a new helper to install (with new code), you HAVE to update the helper's version in it's info.plist, otherwise it will never update.

got it
Question : do you know Objective-C port of this or similar ?
you are so great :)
Thank you

Absolutely, all guides and examples online were (are?) for Objective-c, therefor I made this to help some friends.
Apple has this themselves that you can look at, or just google: https://developer.apple.com/library/content/samplecode/EvenBetterAuthorizationSample

Absolutely, all guides and examples online were (are?) for Objective-c, therefor I made this to help some friends.

oops it looks i forgot ,actually , i found many projects but im always get stuck at same situation with this , now i can use them too
thanks alot

hi @erikberglund, should I just change developer ID in
anchor apple generic and identifier "com.github.erikberglund.MyApplication" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] /* exists / or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] / exists / and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] / exists */ and certificate leaf[subject.OU] = **********)
Or do I need to change followings as well. If so which fields I should I use
field.1.2.840.1136<IP_ADDRESS>.9
field.1.2.840.1136<IP_ADDRESS>.6
and field.1.2.840.1136<IP_ADDRESS>.13
I am signing as Developer ID, app compiles fine but when I use SMJobBlessUtil.py the output is
SMJobBlessUtil.py: tool designated requirement (anchor apple generic and identifier "com.github.erikberglund.MyApplicationHelper" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] /* exists / or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] / exists / and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] / exists / and certificate leaf[subject.OU] = "********")) doesn't match entry in 'SMPrivilegedExecutables' (anchor apple generic and identifier "com.github.erikberglund.MyApplicationHelper" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] / exists / or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] / exists / and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] / exists */ and certificate leaf[subject.OU] = **********))
thanks in advance,
-mohac

I am able to build this app using my free self-signed Apple Mac Developer cert based on my apple id. However, I am not able to install the helper tool when providing my password. Does one have to have a paid Mac Developer or Developer ID cert to install the helper tool successfully? I get the same error reported here and followed, as best I could I thought, the suggested remedies for @insanelydeepak above, but to no avail. The codesign cli indicates it is signed ok. Again, it just won't install. I haven't yet paid for a Mac Developer or Developer ID cert as I was hoping to just try some things out first before committing. Thanks for your helpful content @erikberglund , really appreciated!

The long string you have to edit that looks like this: anchor apple generic and identifier "com.github.erikberglund.MyApplication" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] /* exists */ or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] /* exists */ and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] /* exists */ and certificate leaf[subject.OU] = Y7QFC8672N) contains a requirement for a specific certificate type. This one is for a MacDeveloper Apple certificate that must be signed by the Apple intermediate developer cert.
If you use the SMJobBlessUtil.py on your built app, that will actually print the string it expects, and you can just copy that and put it in the correct place to have it be happy. Or, if it gives you any other error those have to be solved first.

And as a note, i will rewrite this tool completely today to update it to modern Swift and make it A LOT simpler and it will use automatic signing, so if you can wait a day or two, I will update this repo with a much better example.

@erikberglund awesome thanks once again

"This one is for a MacDeveloper Apple certificate that must be signed by the Apple intermediate developer cert."  I've searched and searched and haven't found a resource for how to sign my free Mac Developer cert with the Apple intermediate developer cert (which I can see in Keychain Access). Any idea how to do this? Is it possible to do this without committing yet to the $99 Apple program?

@analyticd @insanelydeepak Sorry for the delay, but now it's updated with some improvements.
First, the signing is automated, so you should not have to update the code requirements with your own singing information.
I also added some mitigations for a common attack vector where the helper not validates the calling application's code signature to match the helper.
So, please try the newer version and open a new issue for any issues you run into.

So, please try the newer version and open a new issue for any issues you run into.

sure
thanks you

@erikberglund Keep getting this error when tying in the helper to a different app:
Delete: Entry, "SMPrivilegedExecutables", Does Not Exist Command PhaseScriptExecution failed with a nonzero exit code
I know it's got to be something simple, but not sure what is failing.  This happens when I am trying to build the app to test.

Ah yes this is from my script to make the certificate requirements easier but it looks like it errors if the expected key in the info plist doesnt already exist. I should fix that in the script but the script is also more of an easier to use thing for trying this out and you might want to always use the same cert when developing for produktion. The script will work with that too but if an error occurs it might be good to know what its doing.
But to fix this you have to add the missing key to the info plist, i think in the app info plist.
Also you should download the Apple example project that has some descriptions on how it all should be set up but its not entirely clear which is why i made this :) but if you need to learn more that could be good.

@erikberglund I got it to build, but once running it keeps giving the error in the title.
I changed the bundle identifiers everywhere, have a valid cert, changed the certs for both projects etc.
SMBlessUtil says SMJobBlessUtil.py: tool designated requirement (identifier "$(PRODUCT_BUNDLE_IDENTIFIER)" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Jari Zwarts (GZXL2VN3E9)" and certificate 1[field.1.2.840.1136<IP_ADDRESS>.1] /* exists */) doesn't match entry in 'SMPrivilegedExecutables' (anchor apple generic and identifier "io.jari.AkkuHelper" and (certificate leaf[field.1.2.840.1136<IP_ADDRESS>.9] /* exists */ or certificate 1[field.1.2.840.1136<IP_ADDRESS>.6] /* exists */ and certificate leaf[field.1.2.840.1136<IP_ADDRESS>.13] /* exists */ and certificate leaf[subject.OU] = JHKDY4UQ72))
I can't really resolve where it got JHKDY4UQ72 from (it's not in SMPrivilegedExecutables in the Info.plist), or what I'm doing wrong.
The project worked fine earlier when I only change the certs, but now that I changed the bundle ID's it starts acting up. I checked all bundle ID's everywhere, and they've all been changed.
Kind of running out of options. Any ideas?

@jariz Did you follow the steps in the project read me here: https://github.com/erikberglund/SwiftPrivilegedHelper#note-changing-bundleidentifier to also change the bundle identifier in the included script.
That script is only included to help people test this without having to change anything other than the signing certs. If you change the bundle identifiers the script has to be updated as well. The script steps could be removed from the build phases and the values set manually in the info plists.

@erikberglund
I did. Did an entire search of the old bundle id's and there wasn't a single string left in the project pointing to them.
I just ran ./SMJobBlessUtil.py setreq and now it works, maybe make it part of the readme? (or I did something wrong, but I can't seem to pinpoint what exactly)
Thanks regardless, for answering my dumb questions :)

The error message you got said that it had set "$(PRODUCT_BUNDLE_IDENTIFIER)" as the bundle identifier for the helper, and that should not be possible if you did not create a new info plist for the helper, or changed that manually.
I have also found that this variable works normally to ge the bundle identifier, but in the helper it's not expanded to the correct value so one has to set that string explicitly.
If you used Xcode to change the bundle identifiers it might have been "smart" and done that for you and that could also have made it not work.
When I tested only changing the bundle identifier for the project and in the script it has worked as expected, so I have not been able to reproduce this.
I should probably add a message that the script is only to make things easier to test as automatic signing is enabled.
Thanks for your report


Issues installing CoreOS to disk using Matchbox

I'm re-posting this from the Google group by request:
I'm trying to get Matchbox up and running to get automated installs of CoreOS working in my environment, and I'm running into two issues that have me lost.
First off, I was able to get the latest version (1353.7.0 as of now) installed, and it boots up, but if I reboot the server, it drops into emergency mode and never boots up. It get stuck on "a start job is running for dev-disk (cut off)" and stays there.
Then I tried to downgrade to 1298.7.0, and when I boot up a new server, I get an error that says "No matching profile" even though I have no selectors at all on my default group.
Thanks in advance if anyone can help me with this!

Ignition will intentionally crash to the emergency shell if something is wrong (to prevent the false conclusion a machine was provisioned correctly). Wait for the emergency shell
journalctl --identifier ignition

Concerning "no matching profile", if you've manually written groups, ensure that the JSON is correctly formatted (use jq). Invalid configs are ignored. Creating groups through the API requires they validate.

Were you able to make progress?

Not yet. I've been quite busy with stuff and I'm getting some help from other teammates. I'll keep you posted.

I suspect the first issue is due to the Container Linux config or Ignition being invalid or missing and the later issue is a syntax error in hand-written group config?
You might try the terraform-based simple install tutorial which uses the API to add configs so machines perform a disk install and set your SSH key (very minimal). Or if you're not a terraform user, checkout https://github.com/coreos/matchbox/tree/master/examples#manual-examples to be sure your profile, group, and container linux config look similar.

Please re-open if you get more details.

@dghubble I see the same error No matching profile. From the docs is not clear how Is possible to configure a default group. Any hints?
Thanks

A group without a selector is a "default" group. Have a look through the examples.
https://github.com/coreos/matchbox/blob/master/Documentation/matchbox.md#groups
https://github.com/coreos/matchbox/blob/master/examples/groups/simple-install/install.json
https://github.com/coreos/matchbox/blob/master/examples/groups/etcd3-install/install.json
https://github.com/coreos/matchbox/blob/master/examples/groups/bootkube-install/install.json
https://github.com/coreos/matchbox/blob/master/examples/groups/etcd3/gateway.json
If you're adding groups to /var/lib/matchbox/groups by hand, be sure your JSON is valid.

Same problem for me:
No matching profile
with this simple defualt group:
{   "id": "install",   "name": "Simple CoreOS Container Linux Install",   "profile": "vm",   "metadata": {} }


Add change log file.

Hi, as I can see, you are carefully fill tags and labels for issues in your repo.
For such cases I create a github_changelog_generator, that generate change log file based on tags, issues and merged pull requests from :octocat: Issue Tracker.
This PR add change log file to your repo (generated by this script).
You can check, how it is look like here: Change Log
Some essential features, that has this script:

it exclude not-related to changelog issues (any issue, that has label question duplicate invalid wontfix )
Distinguish issues according labels:

Merged pull requests (all merged pull-requests)
Bug fixes (by label bug in issue)
Enhancements (by label enhancement in issue)
Issues (closed issues w/o any labels)

Generate neat Change Log file according basic change log guidelines.

You can easily update this file in future by simply run script: github_changelog_generator brigade/overcommit in your repo folder and it make your Change Log file up-to-date again!
Hope you find this commit as useful. :wink:
P.S.
I know that you already has CHANGELOG.md file but give this script a chance and compare it with yours change log. Hope, you will love it! :blush:

:+1:

Hey @skywinder, thanks for the pull request.
github_changelog_generator is an interesting project, and I like the goal of making it easier for open source projects to provide high-quality documentation for changes in a project.
I'm less excited about adopting this format for the Overcommit project at this point in time. Some quick reasons:

There is a lot of "air" (unnecessary blank lines) in the resulting output, which there doesn't appear to be a flag to control. I could write a script that does some post-processing to correct this to my desire, however.
I would like tighter control over the markup used (e.g. using headings instead of <strong> tags via **..** Markdown). This is solvable by passing an ERB file (or any template format) describing the desired format, but that is not a feature currently supported. I could also do some post-processing in a separate script.
Even with the --exclude-labels option, there is still a lot of noise for the Overcommit project (lots of issues with incorrect labels). This can be fixed by making a pass at re-labelling everything in the project, but that will take some time and I can't say I'm terribly excited about the idea.
In order to make the changelog more readable, I will also have to go through and rename issues/pull requests so that they read sensibly when inserted in the changelog (the format of changelog entries is structured so that all changes start with a verb in the imperative form, which is good practice). I'm also not excited by the thought of this work.

Having said all that, were none of these an obstacle I would be excited to utilize this tool for generating changelog entries automatically. I applaud your efforts to make it easier for open source maintainers to maintain better documentation for the changes in tools. Given that the Overcommit project (in my opinion) has a clear, concise changelog without information overload, I don't see this as something we need to address just yet, but I would like to address it in future.
I would also love to be able to adopt this format going forward, rather than take it on wholesale (as it would avoid a lot of the problems mentioned above). It looks like implementing https://github.com/skywinder/github-changelog-generator/issues/211 would solve this issue, so once that is implemented we can revisit this topic.

@sds Thank you for great description and review. I very appreciate that!

Can you clarify, which of blank line is "unnecessary"? I agree with you, it can be more compact.

about converting all markdown syntax to html tags - you're right. I believe, that should be formatters, that can convert markdown syntax to html.
It can be implemented as a feature, if there is will be another requests for such option. (however I can't imagine a reason reason convert it in html. Why are you want to do this?)

Even with the --exclude-labels option, there is still a lot of noise for the Overcommit project.

Can you provide example of such "noise issues"? And I will try to figure out how to handle it.

This can be fixed by making a pass at re-labelling everything

No way! This genereator is tend to eliminate any special actions from the user (even in case when issues labels filled correctly (like in yours repo).
And finally, about renaming - yes, it's hardest part, but if you will pay attention to maintain it a little bit (even for important issues, that should appear in change log) - it will not be a problem  anymore.

Ok, I will let you know,when I will implement  skywinder/github-changelog-generator#211. :wink:
For now- you can try to run github_changelog_generator --unreleased-only before place a tag and have ability to get a quick brief, which issues was closed since last version.

And finally, your change log get me one more idea, how to make it better. Look at https://github.com/skywinder/github-changelog-generator/issues/241 it will help you to not break your change log format.

Regarding 2) Sorry, I didn't mean supporting HTML output. I mean that right now the different headings are output with a specific markdown format, e.g.
Implemented enhancements
versus:
Implemented Enhancements
Again, this is a small point, but it is solvable by allowing arbitrary templates.
Regarding "noise", I'm referring to issues like this: https://github.com/skywinder/overcommit/blame/add-change-log-file/CHANGELOG_AUTO.md#L29
In my mind, this isn't something that needs to be communicated to users of the tool in a change log (it doesn't reflect a change in behavior of the tool itself, but is merely a change in documentation). This can be solved by relabeling that issue with a label like chore or something else, so it doesn't show up under enhancements.

@sds

according spaces - yep, they doesn't make sense in markdown output, but it's quite easy to read raw file with this spaces. I will make an option to disable it.

Yes, I also thinking about such improvement. I added issue for that ability  skywinder/github-changelog-generator#242

regarding "noise" issues - the more suitable solution for such issues - is  just add tag wontfix (or smth like chore) for example. You're right.

BDW:
You can put more, than 1 tag per issue. And excluded labels have more priority than included.
So if generator find issue with one of "included" and "excluded" labels together - it exclude this issue.

Ok, since 1.6.1 you can set custom labels for sections:
For your chane log format the script should be running with this options:
github_changelog_generator --bugs-label "Bug Fixes" --enhancement-label "New Features" --issues-label "Changes"


how can i use a custom FlxSprite class in another state in mods?

for example when i wanted to add a custom extended FlxSprite class i would to do something like this in the source code:
package states;

Class CoolStuffState extends MusicBeatState
{
	var characterSprite:CharSprite = new CharSprite();
	add(characterSprite)
	// stuff...
}

Class CharSprite extends FlxSprite
{
	// other stuff...
}

but in the mods folder idk how to do that, any help?

for example when i wanted to add a custom extended FlxSprite class i would to do something like this in the source code:
package states;

Class CoolStuffState extends MusicBeatState
{
	var characterSprite:CharSprite = new CharSprite();
	add(characterSprite)
	// stuff...
}

Class CharSprite extends FlxSprite
{
	// other stuff...
}

but in the mods folder idk how to do that, any help?

As far as I'm aware, you don't really define packages and classes when softcoding; that's not really how it entirely works. The game loads everything at particular points in time, so doing this might give you problems.
With that said, why would you need to define these, isolated from the rest of the scripts in this format? A package setup likely won't work in this context, since HScript doesn't really use packages. If you needed a new state, you would simply make the file for it but use Codename callbacks such as create() or update() and then load into it as a ModState with the first parameter in the constructor being the respective file (starting from the states folder).

oh that was just for an example i forgot to delete the "package states" dont mind that
i just want to know how to call/use another state(class) into another state in the mods folder

oh that was just for an example i forgot to delete the "package states" dont mind that i just want to know how to call/use another state(class) into another state in the mods folder

For that, you would need to switch to a fresh ModState with the state script being within the data/states directory for your mod. For example, if your state's filename was GorillaState.hx and was located within the root of the states directory, you would use this function:
FlxG.switchState(new ModState("GorillaState"));

i dont think your understand what i mean
i want to use a custom "FlxSprite" class in a "MusicBeatState" state
just like the example showen

but in the mods folder idk how to do that, any help?

https://codename-engine.com/wiki/modding/scripting/custom-classes

but in the mods folder idk how to do that, any help?

https://codename-engine.com/wiki/modding/scripting/custom-classes

thanks you!


"Model disposed" error on code completion

While creating the extension for testing #79814 I experienced the following "Model disposed" problem:

https://github.com/microsoft/vscode/issues/79949


FP mode

For the AC climate im missing mode: FP (Frost protection) I have this option in the nethome plus app and this is the option I mainly use.
FP is used to keep the temperature as low as 8°C to keep it from freezing temperatures while saving energy, perfect for a garage at winter in my case

Same here, I also mainly use that FP mode because it's in the Summer house where only seldom someone is. When someone is supposed to arrive then I can warm up the house via home assistant, but when they leave there is no way of putting it to FP mode via home assistant and I need to do it via the NetHome Plus app. The app has it's own problems, for example it does not let me share access to the heatpump with my family, which I rather wanted to do via HomeAssistant anyway.

Should be enabled in versioon 0.9.2


Calling any of the libraries' extension methods will throw: System.NullReferenceException: 'Object reference not set to an instance of an object.'

I tried to use this library in my asp.net core/ef core 8 project, but calling any of these methods BulkInsert/Update/Merge/Async will throw below exception:
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=N.EntityFrameworkCore.Extensions
StackTrace:
at N.EntityFrameworkCore.Extensions.DbTransactionContext..ctor(DbContext context, Nullable1 commandTimeout, ConnectionBehavior connectionBehavior, Boolean openConnection)    at N.EntityFrameworkCore.Extensions.BulkOperation1..ctor(DbContext dbContext, BulkOptions options, Expression1 inputColumns, Expression1 ignoreColumns)
at N.EntityFrameworkCore.Extensions.DbContextExtensionsAsync.d__71.MoveNext()    at N.EntityFrameworkCore.Extensions.DbContextExtensionsAsync.<BulkInsertAsync>d__61.MoveNext()
at Server.Data.EfRepository`1.d__10.MoveNext() in C:\Users\Mahdi\source\repos\Mahdi7s\Server\Data\EfRepository.cs:line 69
This exception was originally thrown at this call stack:
[External Code]
Server.Data.EfRepository.InsertRange(System.Collections.Generic.IEnumerable, bool) in EfRepository.cs

What version of EntityFrameworkCore are you using?

What version of EntityFrameworkCore are you using? Are you using the latest version of N.EntityFrameworkCore.Extensions?

8.0.2

Are you using the latest version of N.EntityFrameworkCore.Extensions?
You may need to download the source code from Github and then debug against it to get the full call stack information. You will also be able to see exactly where the exception is being thrown.
There is a unit test project that covers all the operations, and all of the test cases pass without any exceptions. I even added one for passing in entities using IEnumerable but it also passed.  Once we figure out what is causing this issue, I will add a new test case for it.

faced the same thing in v<IP_ADDRESS>

hongjs,

What version of .NET are you targeting for your application?
What version of EF core are you using?
What version of N.EntityFrameworkCore.Extensions are you using?

@Mahdi7s , @hongjs
This issue will be closed if no response is given within 10 days.

@hongjs,

What version of .NET are you targeting for your application?
What version of EF core are you using?
What version of N.EntityFrameworkCore.Extensions are you using?

I went ahead and tested the latest version of N.EntityFrameworkCore.Extensions (v<IP_ADDRESS>) and I was not able to replicate this issue.

Thanks for response, here is my info

Name
Version

MySQL
8.3.0

Microsoft.EntityFrameworkCore
8.0.1

Dotnet
8.0.101

OS
Mac M2 Pro - OS X 14.3 - arm64

N.EntityFrameworkCore
<IP_ADDRESS>

// Code
using N.EntityFrameworkCore.Extensions;
...
_dbContext.BulkInsertAsync(insertItems)
...

// Error
Object reference not set to an instance of an object.
   at N.EntityFrameworkCore.Extensions.DbTransactionContext..ctor(DbContext context, Nullable`1 commandTimeout, ConnectionBehavior connectionBehavior, Boolean openConnection)
   at N.EntityFrameworkCore.Extensions.BulkOperation`1..ctor(DbContext dbContext, BulkOptions options, Expression`1 inputColumns, Expression`1 ignoreColumns)
   at N.EntityFrameworkCore.Extensions.DbContextExtensionsAsync.BulkInsertAsync[T](DbContext context, IEnumerable`1 entities, BulkInsertOptions`1 options, CancellationToken cancellationToken)
   at N.EntityFrameworkCore.Extensions.DbContextExtensionsAsync.BulkInsertAsync[T](DbContext context, IEnumerable`1 entities, CancellationToken cancellationToken)
   at MyProject.Infrastructure.Repositories.MyRepository.MyBulkSave(IList`1 insertItems, IList`1 updateItems) in /Users/path/to/project/src/MyProject.Infrastructure/Repositories/MyRepository.cs:line 150

I've got the same error
What version of .NET are you targeting for your application? NET 8
What version of EF core are you using? EF Core 8
What version of N.EntityFrameworkCore.Extensions are you using? <IP_ADDRESS>
error on this line
await _dbContext.BulkInsertAsync(list);

https://github.com/NorthernLight1/N.EntityFrameworkCore.Extensions/issues/29#issuecomment-1703997443
I see you've stated that only works with SQL Server here @NorthernLight1. You need to make this clear in the repository readme, or I think you'll be getting more issues like this moving forward 😆

signlar,
Thanks for pointing that out. I will update the README.md file so that it is clear it only support SQL Server.

signlar,
Thanks for pointing that out. I will update the README.md file so that it is clear it only support SQL Server.

Thanks for your confirmation


Add Github Action for testing on Windows

See https://github.com/Senzing/template-go/issues/90

Pull requests:

https://github.com/Senzing/serve-grpc/pull/179


Label alignement after text changed

Trying to change text after object alignement, the alignement is not recalculated
Using the following code: "15" is correctly aligned bottom right
    lv_obj_t *label_timer = lv_label_create(root, NULL);
    lv_label_set_text(label_timer,  "15");
    lv_obj_align(label_timer, root, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);

Next, using this code, "1" is not fully aligned to the right
    lv_label_set_text(label_timer,  "1");

Did I missed a function call to force alignement recalculation?

Hi,
yes, lv_obj_align aligns the object only once and doesn't move it again when the coordinates are changed.
So you have to call lv_obj_alignagain after lv_label_set_text.

Don't know how difficult it is to implement, but  it good be an improvement for a next major release, to be able to call a function 'lv_obj_relayout' and to have all the recalculation done automatically. That would make code updating part of the screen easier o write.

Thank you for the good idea. I agree, it could help in a lot of cases.
As this feature needs some extra memory in every object (align type, x and y offset, base object) it could be an option in lv_conf.h to enable. E.g. LV_OBJ_REALIGN   1. It can enable to store the settings and add the lv_obj_realign function.
It's also easy to implement.
What do you think?

That sound great

In v6.0 the style system will be updated which also effects positioning of objects (See #302). So it's more reasonable to implement it in v6.0.

This feature is implemented in dev-5.3.
See: https://github.com/littlevgl/lvgl/pull/576


what should we do with the old manual?

if this one is the uptodate one, people will still go to the old one, in few weeks, it will be a big problem.

It should be kept as is, according to Kristof. we will not be updating it

are we duplicating a lot of stuff in manual vs in here?
maybe we should remove the ones that are updated here?

Good question.
The new mdbook is way faster.
We can also take what is good in the old manual and update the new.
I can work on this if needed. Let me know.

We could also create a second mdbook for the Library.
We can simply transfer the actual library to a new mdbook.
It's just faster compared to publish tools. And publish tools isn't updated/ready to work fast.

@Mik-TF hi mik thanks a lot, will contact you on telegram, maybe we can have a chat on how to move forward

me and karoline discussed with kds , he wanna  take down the old one and just keep the new one @rkhamis @xmonader @sabrinasadik @Mik-TF and please let dev know.

and here is my proposal on how we could move forward:
we need to slowly take down the old manual instead of taking it down at once, just in case we still need some information on the old one, that havent been transferred yet to the new manual.
- suggesting users to go to new manual

[ ] add the new manual link on the old manual homepage for now and suggest users to go to the new manual
[ ] replace the old manual links on TF website with the new one

- proofread old manual

[ ] get web team and support team to proofread old manual, find duplicated articles that have been transferred to new one, as well as the articles that have not been transferred to the new one
[ ] transfer old issues from old manual repo to the new one
[ ] provide list of old articles that have not been transferred to the new one, and discuss with dev team on what's deemed necessary to include to the new manual
[ ] transfer old articles to the new one , only if necessary

deactivate the old manual

[ ] after transfer is finished, ask ops to redir manual.threefold.io to the new manual.grid.tf
[ ] keep old manual repo as archived

In "documentation", I think the first point is already done:
"make a tutorial on how to use mdbooks and add it to the new manual"
See this section of the new manual: https://www2.manual.grid.tf/contribute/contribute.html
If this is sufficient, we can check this task.
@sasha-astiadi

based on our research, its shown that all displayed files in old manuals form the navbar  are successfully migrated


Is Geo supported in this release?

Hi , thank you all for your effort in this project.
And I want to know if the Geo function been supported by redis-py-cluster?
thank u

@Andy320 The library uses all the functions that is supported in the redis-py version you are using by default. If it is implemented there you can use it here. However in the cases where a new command tries to run a command on multiple keys then we need to make a special implementation of it in this library. Examples is the MGET that can fetch multiple keys and because of this i need to make a client side implementation to get the same functionality but it will perform slower.
My best suggestion is that you install the latest redis-py and redis-py-cluster and you try the functions out and report back your findings. If the commands do not exists in redis-py you have to submit that to that project. If there is something i have blocked or not implemneted in this lib i can help you out.
I have never used the GEO functions in a cluster or non cluster env.

Just for what it's worth, redis-py 2.10.6 and redis-py-cluster 1.3.4 worked well together as far as a quick check of most of the GEO commands

@Andy320 Becuase this issue was stated as a question and me and angusp answered it, i will now close this one becuase the question was answered. In the case you find some practical error with any GEO commands or anything else, then please open up a new issue with your problem in there.


Production-ready React module setup

Just a repeat of #13 for reference.
I reckon we are not going to merge it at once, but still good to have this history.

Closing this since this diverged too much, and since we got lots of things in already

We basically have almost everything from here already.


max_context_tokens for pr_code_suggestions

I am just wondering what is this set to 14000 while max_model_tokens = 32000 under config. while most new ai models nowadays support >100K context,
is it ok for me to change the max context token for "improve" case, Anything I need to know

Your are welcome to change
Models do support large context, but the quality may degrade.
We limit the number of tokens (and enable multiple calls) trying to increase quality
But maybe you would find a better tradeoff


add URL recognition to Ddoc spec

Document enhancement https://github.com/dlang/dmd/pull/7043

FYI @s-ludwig

@WalterBright: In dlang/dmd#7043 you stated that code like $(LINK http://www.foo.com) won't be affected, but the spec just says that URL recognition happens before macro substitution. I'm missing a link between the two. Is there some intermediate state, where the text is separated into macro and non-macro parts and only the latter are searched for URLs? Also:

$(LI This is a http://example.com test) - is the URL recognized there?
$(LI URL: http://example.com) - is the trailing ) part of the URL?

@s-ludwig The recognition happens on the raw text. Macro invocations are part of that.

$(LI This is a http://example.com test) - is the URL recognized there?

Yes. It must, as the entire Ddoc text is often in a macro.
https://github.com/dlang/dmd/blob/master/src/ddmd/doc.d#L2429

$(LI URL: http://example.com) - is the trailing ) part of the URL?

No. https://github.com/dlang/dmd/blob/master/src/ddmd/doc.d#L1935

Rebased and set to auto-merge as this is now the behavior of DMD.

It looks like now the build is failing because it can't reach code.dlang.org. @wilzbach can you rebase again tp restart the build?


Client Allocation Request for: Codoonhealth

Client Allocation Questions
Core Information

Name: Codoonhealth
Website / Social Media: https://www.codoonhealth.com/
Region: Greater China
DataCap Requested: 5TiB
Addresses to be Notarized: f1xcnjnqld23o7hrgqooimvdnw5mjvrcmbatljcba
Notary Requested: steven004

Hey @zhaoleistar  , thanks for your request. Can you kindly add more information / context here on:

yourself/ your organization (with links to official website/social media/news mentions etc)
Your history working on IPFS/Filecoin (notable contributions to the community, type of engagement shown over time etc)
Use case: type/source/quantity/diversity/scarcity of the data you plan to store on Filecoin
Miners you intend to allocate DataCap with allocation proportion(with redundancy/location/specific requirement of storage miners)
What's your next plan for the data you plan to store in Filecoin Network? For-profit or not?
Would you be OK in posting deal transactions here?

Thanks

Hey @steven004 , Happy New Year.  I will add more information about the request：

I am now working at Condoon Health. I am the director of technology and algorithm in the R & D department. I have been engaged in software development and big data / AI area for more than 8 years.
Condoon Health was founded in 2017 and it located in Chengdu, China.  Our company is committed to improving health problems caused by hypertension, hyperglycemia and unbalanced diet. It is a sports and diet health service platform based on AI and big data technology. We have now more than 100,000 + users in our platform.
Here is some information about our company:
https://pitchbook.com/profiles/company/434192-95
https://www.codoonhealth.com
https://www.lieyunwang.com/archives/405465

2.Because we have a large number of user generated data, we have been looking for efficient, highly available and low-cost storage services. Since 2019, we have participated in some IPFS/Distributed storage summits and got some valuable information. We hope that the storage services provided by filecoin miners can help us solve the problem about cold data storage for users.
At the same time, we notice the filecoin plus project, which will guarantee the service effectively，and we want to be a part of the project and community.
3.Some  data is generated by the users. We have the data usage agreement with users. This data is used to optimize our platform services and algorithms. Data will be anonymous which is related to users info.
There are a variety of data types, including: exercise data, GPS trajectory data, body state data, diet records, photos and videos. And another data is  generated by our content generate team.
Currently, it contains 50TiB data, and 90% is cold data for AI training，statistical analysis and backup. We will store the public/anonymous data set, firstly.
4.We select active and reputable miners according to ranking, cost, location. Some website infos will be used as reference , such as https://filfox.info/zh, https://storage.codefi.network.
Redundancy: maybe 3 copies;
Location: China (Chengdu best and other cities such as Beijing)
5.We will evaluate whether we achieve our goal after using the storage of Filecoin. And We will decide whether to store more data with the right miners in the future. If we meet our wants, we are willing to upgrade our technology stack and pay for it.
6.Yes,We will  posting deal transactions here.
Thanks you.

Hey @zhaoleistar , thanks very much for your clarification on all these questions. And I am very glad to see companies like Condoon Health are interested in storing data into Filecoin network. To better understand the status, I have a few more questions:
a) any proof document you could provide to show you are from Condoon Health, e.g. business license, or any news/docs to show your connection. For privacy, you could send me a mail to show what you'd like to expose.
b) You mentioned that you have participated in some IPFS/Distributed storage summit since 2019. Do you have any tools / applications for you to store data to IPFS or Filecoin, or you need to develop, or directly try filecoin client software?
c) Any help you want to get from the filecoin eco-system to make your work move on smoothly?
Thanks.

Thanks @steven004,  here are our new answers:

i send  a mail to your gmail from my working email-address, there are some more informations about our company.

At the beginning, we will use the lotus client to store our data directly. And the same time, our team is developing our own application based on Powergate and Textile Buckets to store data on ipfs/filecoin.

Yes, looking for the provider with stable storage and fast retrieval will allow us to use  ipfs/filecoin storage tech better.

Thanks @zhaoleistar for your quick response. I got your information from the mail, which is good.
I tried to grant you 5TiB datacap, however, it looks the address you provided already have datacap. I could do it when the current datacap is used up if you still need more.

Close this request since the datacap had been granted by other notaries.
There could be new application after the previous datacap is used up.


nixos-generate-config: is the code for kvm-intel/kvm-amd still needed?

Describe the bug
nixos-generate-config checks CPU features and adds modules kvm-intel or kvm-amd to boot.kernelModules .
To Reproduce
Run nixos-generate-config, observe boot.kernelModules in the generated file.
Expected behavior
udev loads modules based on the alias embedded in the module, no additional configuration needed.
Additional context
The code for kvm-intel / kvm-amd detection can be traced back to installer/nixos-hardware-scan.sh added in Subversion r10221 in 2008.
The commit message does not tell why these modules are singled out.
Notify maintainers
@edolstra

I just checked on my (intel) machine removing kvm-intel from boot.kernelModules, and it was still loaded.

Still happens

Still happens.

I've removed the module and so far have noticed no ill effects.
If this does get removed, it should come with a stopping / critical (whatever the Nix terminology is) warning upon nixos-generate-config with kvm-* in the existing hardware-configuration.nix
Its been a default so far, and if it ceases to be a default, users who depend on it for a remote system and do a nixos-generate-config will lose remote access.


feat(cellcard): Add suggest change

Reason for Change

#4931
If the reason for this PR's code changes are not clear in the issue, state value/impact

Changes
Add "Suggest Change" button and link out to the form
Testing steps

RDEV: https://thuang-cell-feedback-frontend.rdev.single-cell.czi.technology/cell-guide/CL_0000115
Go to rdev link above to view a cell card
Click on "Suggest Change"
It should open the form in a new tab
Resize window to skinny mode
The Search box should move above the card title
That's it!

Notes for Reviewer
Regular mode Figma:

Skinny mode Figma:

ACTUAL:
https://github.com/chanzuckerberg/single-cell-data-portal/assets/6309723/a81ab7a1-9edd-4002-ad6c-77e6ae6e2c19

Thanks so much for the quick review, @ashin-czi 🙏
I'll ping Harley for design approval!

actually Harley approved in Slack, will wait for Meg's approval too!


when  will the CARAFE source codes can be release?

https://github.com/open-mmlab/mmdetection/pull/1583


"No conversion from array(float64, 2d, A) to array(float32, 2d, C) for 'knn_dists'" when calling .transform() in 0.4.0rc1

After installing umap-learn from (what looked to me like) the dev branch like so:
pip install https://github.com/lmcinnes/umap/archive/0.4dev.zip

I get a weird error apparently about the data type of some internal value. Example code with stack trace included below.
This code works fine for me (in the same environment) with 0.3.10 installed instead. Strangely, it also works when I install the 0.4dev_fix#306 branch (with the pip/github zip method mentioned above). But I couldn't decipher from looking at the compare interface if 0.4dev_fix#306 is actually newer than 0.4dev?
>>> import numpy as np
>>> import umap
>>> X = np.random.uniform(size=(10000, 100))
>>> mapper = umap.UMAP().fit(X)
>>> mapper.transform(X[:10])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/allison/tmp/umap-testing/env3/lib/python3.7/site-packages/umap/umap_.py", line 1972, in transform
    rows, cols, vals = compute_membership_strengths(indices, dists, sigmas, rhos)
  File "/Users/allison/tmp/umap-testing/env3/lib/python3.7/site-packages/numba/dispatcher.py", line 401, in _compile_for_args
    error_rewrite(e, 'typing')
  File "/Users/allison/tmp/umap-testing/env3/lib/python3.7/site-packages/numba/dispatcher.py", line 344, in error_rewrite
    reraise(type(e), e, None)
  File "/Users/allison/tmp/umap-testing/env3/lib/python3.7/site-packages/numba/six.py", line 668, in reraise
    raise value.with_traceback(tb)
numba.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
No conversion from array(float64, 2d, A) to array(float32, 2d, C) for 'knn_dists', defined at None

File "env3/lib/python3.7/site-packages/umap/umap_.py", line 440:
def compute_membership_strengths(knn_indices, knn_dists, sigmas, rhos):
    <source elided>
    """
    n_samples = knn_indices.shape[0]
    ^

This is in a fresh Python 3.7.0 venv (MacOS 10.14.6). My pip list:
Package      Version
------------ --------
joblib       0.14.1
llvmlite     0.30.0
numba        0.46.0
numpy        1.17.4
pip          10.0.1
scikit-learn 0.22
scipy        1.3.3
setuptools   39.0.1
tbb          2019.0
umap-learn   0.4.0rc1

This is due to some signatures that got added recently for the numba compilation. This shouldn't be too hard to fix, and I'll try to get it done soon. Thanks for the report; I definitely missed this one. Sorry.

It should work now if you rebuild from master. Let me know if this fixes the issue for you.

Didn't fix it for me, unfortunately :( I took the liberty of poking in the code and making a pull request on 0.4dev which seems to work for me—see #327. (Disclaimer: I know my way around Python code but have no idea how any of the math in here works, so I'm not 100% sure that I didn't break anything!)

I see you fixed it yourself. Thanks for that! It works fine (and there are tests that happily check that things still work). I'm definitely happy to have people who know their way around Python code working on this, so please feel welcome make more PRs.


labels seems not to be installed

I installed your plugin following your description on the readme :
<?php
// config/bundles.php
return [
    // ...
    Flagbit\Bundle\TableAttributeBundle\FlagbitTableAttributeBundle::class => ['all' => true],
];

# config/packages/table.yml
akeneo_storage_utils:
    mapping_overrides:
        -   original: Akeneo\Pim\Structure\Component\Model\AttributeOption
            override: Flagbit\Bundle\TableAttributeBundle\Entity\AttributeOption

Than I ran the following commands
php bin/console --env=prod cache:clear
php bin/console --env=prod doctrine:schema:update --force
NO_DOCKER=true make cache assets css javascript-prod

Because also tried on a test instance the 2 other doctrine commands, but they seem to just create errors, so I didn't roll them out here.
The plugin seems to work, but labels and icons are missing:

My system setup is :

never mind, seems the browser just need to be restarted.


CIV-69 General Application Creation : Screen 4 : inform other party for un-consented application

Before creating a pull request make sure that:

[X] commit messages are meaningful and follow good commit message guidelines
[X] README and other documentation has been updated / added (if needed)
[X] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-69
Change description
General Application Creation : Screen 4 : inform other party for un-consented application. Fix the typo in previous screen.
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[X] No

Locally tested

Closing this PR as all the changes will now be integrated on an Integration branch.


Hearts dont stack horizontally

Hearts just go right; players with lots of hearts will be hard to see due to it continually going right.

Added in 1.1.0