Cython setup.py including mxnet library, mxnet.libinfo.find_include_path() error

I have already "cythonized" my code declaring in the code int, double, list ecc. But, as my code has data type from the Mxnet library like: (mxnet.io.NDArrayIter, mxnet.ndarray.ndarray.NDArray), I wanted to declare those to speed up the training phase of the code. Searching on the web I find out that, like for numpy.get_include() in the setup.py file, I have to declare the same path for mxnet in "include_dirs=...". The command for mxnet is mxnet.libinfo.find_include_path(), but it gives me this error: RuntimeError: Cannot find the MXNet include path in either C:\Users\pietr\Anaconda3\envs\analysis\lib\site-packages\mxnet\include/ or C:\Users\pietr\Anaconda3\envs\analysis\lib\site-packages\mxnet\../../include/
Therefore, I do not know how to write properly the setup.py file, furthermore what type should I put in for example:
cdef ???? encoder_input = trn_batch.data[0].as_in_context(mx.cpu())
cdef ???? train_iter = mxnet.io.NDArrayIter(train_input, train_output, batch_size=train_bs, shuffle=True)

Sorry, but what exactly are you trying to do? Do you want to directly interface with MXNet C API in your Cython code? Or do you want to use MXNet Python API in your Cython code? In the latter case, you can't release the GIL and the MXNet code will run in standard Python invoked by your Cython code

Sorry, but what exactly are you trying to do? Do you want to directly interface with MXNet C API in your Cython code? Or do you want to use MXNet Python API in your Cython code? In the latter case, you can't release the GIL and the MXNet code will run in standard Python invoked by your Cython code

Exactly I have a python code in which I'm using mxnet functions. Yesterday I found out that if I compile it, it is faster but moreover if I add extension to the .pyx and then compile it, it is even more faster. I got no problem with numpy.ndarray but I've no idea how to add extension to those mxnet arrays type and to declare the get_include path in the setup.py file to compile the .pyx because the function provided by the website is giving me Runtime error.

Exactly I have a python code in which I'm using mxnet functions. Yesterday I found out that if I compile it, it is faster but moreover if I add extension to the .pyx and then compile it, it is even more faster. I got no problem with numpy.ndarray but I've no idea how to add extension to those mxnet arrays type and to declare the get_include path in the setup.py file to compile the .pyx because the function provided by the website is giving me Runtime error.

The python_code.pyx:
`
import mxnet
cimport numpy
cimport mxnet???
def MxNetTrain(net, model_type, trainer, loss_function, train_input, train_output, val_input, val_output, test_input,
test_output, epochs, args_save):
# In case of attention training un-pack the Tuple objects
if (model_type == 'seq2seq - attention') or model_type == 'seq2seq - transformer':
encoder_rnn, attn_decoder = net[0], net[1]
trainer = trainer[1]
# init validation loss as infinity
cdef double best_val
best_val = float("Inf")

# initializing arrays to save parameters through epochs
cdef list learning_rates = []
cdef list validation_losses = []
cdef list test_losses = []
cdef list training_losses = []

with open(args_save, 'w') as fp:  # condition to avoid Jankins/file_directory error
    pass

cdef int train_bs = train_input.shape[0]
cdef int val_bs = val_input.shape[0]
cdef int test_bs = test_input.shape[0]

# creating nd.arrayIter (training, validation and testing)
train_iter = mx.io.NDArrayIter(train_input, train_output, batch_size=train_bs, shuffle=True)
val_iter = mx.io.NDArrayIter(val_input, val_output, batch_size=val_bs, shuffle=True)
test_iter = mx.io.NDArrayIter(test_input, test_output, batch_size=test_bs, shuffle=True)

cdef double total_loss = 0.0
cdef double ntotal_training = 0.0

cdef  ???  encoder_input
cdef ??? decoder_target

# for epoch in tqdm_notebook(range(epochs), desc='epochs'):
iepoch = int()
for epoch in range(epochs):

    train_iter.reset()
    val_iter.reset()
    test_iter.reset()

    for trn_batch in train_iter:

        if (model_type == 'seq2seq - attention') or (model_type == 'seq2seq - transformer'):

            encoder_input = trn_batch.data[0].as_in_context(mx.cpu())
            decoder_target = trn_batch.label[0].as_in_context(mx.cpu())`

Then the setup.py;
`from distutils.core import setup
import numpy
from Cython.Build import cythonize
setup(
ext_modules= cythonize("MxRnnBoosted.pyx"),
include_dirs=[numpy.get_include(), mxnet_get_include_path_]
)`

The python_code.pyx:
`
import mxnet
cimport numpy
cimport mxnet???
def MxNetTrain(net, model_type, trainer, loss_function, train_input, train_output, val_input, val_output, test_input,
test_output, epochs, args_save):
# In case of attention training un-pack the Tuple objects
if (model_type == 'seq2seq - attention') or model_type == 'seq2seq - transformer':
encoder_rnn, attn_decoder = net[0], net[1]
trainer = trainer[1]
# init validation loss as infinity
cdef double best_val
best_val = float("Inf")

# initializing arrays to save parameters through epochs
cdef list learning_rates = []
cdef list validation_losses = []
cdef list test_losses = []
cdef list training_losses = []

with open(args_save, 'w') as fp:  # condition to avoid Jankins/file_directory error
    pass

cdef int train_bs = train_input.shape[0]
cdef int val_bs = val_input.shape[0]
cdef int test_bs = test_input.shape[0]

# creating nd.arrayIter (training, validation and testing)
train_iter = mx.io.NDArrayIter(train_input, train_output, batch_size=train_bs, shuffle=True)
val_iter = mx.io.NDArrayIter(val_input, val_output, batch_size=val_bs, shuffle=True)
test_iter = mx.io.NDArrayIter(test_input, test_output, batch_size=test_bs, shuffle=True)

cdef double total_loss = 0.0
cdef double ntotal_training = 0.0

cdef  ???  encoder_input
cdef ??? decoder_target

# for epoch in tqdm_notebook(range(epochs), desc='epochs'):
iepoch = int()
for epoch in range(epochs):

    train_iter.reset()
    val_iter.reset()
    test_iter.reset()

    for trn_batch in train_iter:

        if (model_type == 'seq2seq - attention') or (model_type == 'seq2seq - transformer'):

            encoder_input = trn_batch.data[0].as_in_context(mx.cpu())
            decoder_target = trn_batch.label[0].as_in_context(mx.cpu())`

Then the setup.py;
`from distutils.core import setup
import numpy
from Cython.Build import cythonize
setup(
ext_modules= cythonize("MxRnnBoosted.pyx"),
include_dirs=[numpy.get_include(), mxnet_get_include_path_]
)`

It's possible that you need to modify the MXNet source to enable cimport mxnet. Your contribution to making this possible would be very welcome

It's possible that you need to modify the MXNet source to enable cimport mxnet. Your contribution to making this possible would be very welcome

Therefore, there is no way to cdef an mx.io.NDArrayIter in a .pyx file?

Therefore, there is no way to cdef an mx.io.NDArrayIter in a .pyx file?

I found out this website https://mxnet.apache.org/versions/1.1.0/doxygen/files.html where this files should be the include folder I have to link to the setup.py file. Am I getting this wrong?

I found out this website https://mxnet.apache.org/versions/1.1.0/doxygen/files.html where this files should be the include folder I have to link to the setup.py file. Am I getting this wrong?


ZEPPELIN-3606. Reduce verbose InterpreterNotFoundException for getEditorSetting

What is this PR for?
Simple PR to reduce the verbose exception for getEditorSetting.
What type of PR is it?
[Bug Fix | Improvement]
Todos

[ ] - Task

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-3606

How should this be tested?

CI pass

Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

Will merge it soon as it is a very easy fix.


[FLINK-33968][runtime] Advance the calculation of num of subpartitions to the time of initializing execution job vertex

What is the purpose of the change
Solve FLINK-33968
Verifying this change
This change is already covered by existing tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

@JunRuiLee @zhuzhurk Could you help to review this PR ? Thanks.


website always go down after downloading big repo

for example, after i download :
https://github.com/Mi5Devs/proprietary_vendor_xiaomi/tree/lineage-16.0/msm8996-common
and then i want to download :
https://github.com/TheMuppets/proprietary_vendor_xiaomi/tree/lineage-16.0/msm8996-common
on this part, the downgit website will down.

Yeah that's happened to me today. I was only testing my DownGit URLs for validity.

Yeah that's happened to me today. I was only testing my DownGit URLs for validity.


Importing DB

I see where you can run warden db import test_db.sql magento but when I run this it just stalls.  I've already verified and installed pv. I ended up just importing via Sequel Pro but would like to know if my syntax is correct for future reference.
Thanks!

The correct syntax is warden db import < test_db.sql. It will automatically use the magento database.

@rsisco is correct (thanks for chiming in!) the import command specifically reads data from stdin (there is also connect; details in warden db -h output, it'll allow passing commands via -e 'query;' but doesn't work for loading sql files).
I typically use pv to pipe a database into it with progress indicator like so (hence the recommendation for pv as a useful addition; cat would work just as well minus the progress indicator):
$ pv /path/to/dump/magento_db-XXXXXXXX.sql.gz | gunzip -c | warden db import
28.4MiB 0:00:40 [ 441KiB/s] [==>                                 ] 13% ETA 0:04:06


basic kubernetes setup

This is the basic setup for runningthe data and curator services in a cluster that talk to each other, no external IP/ELB setup yet until authorization is implemented.
kubectl get deployments
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
curator   2/2     2            2           79m
data      2/2     2            2           117m

kubectl get pods
NAME                       READY   STATUS    RESTARTS   AGE
curator-58969b66f4-f6cps   1/1     Running   0          18m
curator-58969b66f4-vhtqz   1/1     Running   0          14m
data-6d699fcbcc-jbg4j      1/1     Running   0          102m
data-6d699fcbcc-tc2fm      1/1     Running   0          26m

kubectl get services
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
curator      ClusterIP   <IP_ADDRESS>    <none>        80/TCP     40m
data         ClusterIP   <IP_ADDRESS>   <none>        80/TCP     21m
kubernetes   ClusterIP   <IP_ADDRESS>      <none>        443/TCP    86m

Going to submit this now to unblock further work, we can still switch to ECS/pure EC2/whatever other AWS service there is if we want later once we reach concensus in the design options doc I shared. Most likely Spencer will have the last word on that.


Index Startup error

Describe the bug
The app dont start
Expected Behavior
Starting
Screenshots

System Information:

OS: Windows
Version10

Fixed in latest update (Beta v2.1.1)

@Jigsaw88 does this fix the issue?


767 | Reorganize String | C++

Title - Adding code for 767. Reorganize String
What will change - Adding C++ code for leetcode problem 767
Type of Issue -

[x] Adding New Code

Programming Language

[x] C++

Please assign me this.


Reduce the amount of information that we show at Project Creation

Currently we see
» ockam enroll

Enroll Ockam Command's default identity with Ockam Orchestrator:
! First copy your one-time code:  CCZT-GFSF
> Then press enter to open https://account.ockam.io/activate in your browser...
> Opening: https://account.ockam.io/activate
> Tokens received, processing...

Space
  Id: a0f5c1d9-dad4-4f22-aa06-d5d2e9a5e8a4
  Name: 2024000c
  Users: ...

Establishing secure channel...
Project
  Id: 6ee618f3-77b8-4328-9517-28943bae8987
  Name: default
  Users:
  Services:
  Access route: /dnsaddr/a4e562a7c92894a86a7c6be95dacc107-57cfc2b5c9137176.elb.us-west-1.amazonaws.com/tcp/6252/service/api
  Identity identifier: P8d2b4d4fe9990e4ebe4c6270ce34801846cbd4406fb99a046cc6384521081024
  Authority access route: Some(CowStr("/dnsaddr/a4e562a7c92894a86a7c6be95dacc107-57cfc2b5c9137176.elb.us-west-1.amazonaws.com/tcp//service/api"))
  Authority identity: 011d66869dfcf7f0cbe05818495cc34a2bb2e315cc9bebf73641f4118769a141d4010000084f434b414d5f524b00030120000000000000002000e703224639e380b9d370a6a747dc929cb096f86da7c4916ae8bdc092475897034037f7679b8a4cfc7074b107378870721442019673333ee2305d3c34df7add7d74436e5f808f32e43daaddd1f2c71ee791232815f9da278aae8be6fff6fcf19f05b9154549a381303a93dd12a27e173d7f366f1597ca282dace84737fcfb3fa282010140068ba8d818bdd0689c777e339ee36ee569eaf8dc4f6d763fb97fb265f2e5345ceb95ad0b2ba8f02c79d4f6b1685630190d31230a58e5a59001ed8de62551e10c

Desired
Under the Project information, we can remove Identity Identifier, Authority access route and Authority Identity.
» ockam enroll && bats implementations/rust/ockam/ockam_command/tests/commands.bats

Enroll Ockam Command's default identity with Ockam Orchestrator:
! First copy your one-time code:  CCZT-GFSF
> Then press enter to open https://account.ockam.io/activate in your browser...
> Opening: https://account.ockam.io/activate
> Tokens received, processing...

Space
  Id: a0f5c1d9-dad4-4f22-aa06-d5d2e9a5e8a4
  Name: 2024000c
  Users: ...

Establishing secure channel...

Project
  Id: 6ee618f3-77b8-4328-9517-28943bae8987
  Name: default
  Access route: /dnsaddr/a4e562a7c92894a86a7c6be95dacc107-57cfc2b5c9137176.elb.us-west-1.amazonaws.com/tcp/6252/service/api
  Identity identifier: P8d2b4d4fe9990e4ebe4c6270ce34801846cbd4406fb99a046cc6384521081024

The code for the project create is here https://github.com/build-trust/ockam/blob/develop/implementations/rust/ockam/ockam_command/src/project/create.rs

We love helping new contributors!
If you have questions or need help as you work on your first Ockam contribution, please leave a comment on this discussion.
If you're looking for other issues to contribute to, checkout this discussion and labels -  https://github.com/build-trust/ockam/labels/good first issue or https://github.com/build-trust/ockam/labels/help wanted

Hey, can I work on this?

@mohitsaxenaknoldus yes absolutely, all yours. Let us know if you have any questions.

@mohitsaxenaknoldus Are you still working on this ? If not, I would like to take this up :)

@mohitsaxenaknoldus Are you still working on this ? If not, I would like to take this up :)

Go for it!

Okay. I'm taking this up.


It's difficult to navigate through the different Github Pages documentation pages

Since moving the documentation to ASCIIDoc, it's become more difficult to navigate between the various pages.
The index.adoc links to the disruptor.adoc (Technical Paper), changelog.adoc (Changelog) and user-guide/index.adoc (User Guide), but none of these pages have links to the other pages or back to the main page.
There are a couple of ways to address this - the easiest being to stick links between the pages at the top of every document. It's a bit of a rough solution, but it should make things a little better until a better structure for the pages is ready.

I've pushed the simple change to my fork: https://swarren12.github.io/disruptor/ - thoughts on this as a first step would be welcome.

It's definitely better, having links there is a good thing.
Is there no way to make it a global include rather than having to put it in every file? One forgotten include and suddenly there's an orphaned page.
Side-note, having the changelog in there and a project-level markdown file is some less desirable duplication. Didn't even notice it was in added to the doc source since previously there wasn't an obvious link to it.
I am still not 100% sold on asciidoc being better than using jekyll.
The effort spent on adciidoc so far does feel like it could have been better spent improving the content of the documentation rather than the build pipeline for it and attempting to fit a square menu-like peg into a round asciidoc shaped hole?
Maybe we need to start flexing some of the benefits that asciidoc has?

@Palmr Have you actually managed to get Jekyll to work on GitHub pages though? In my experience it was a complete nightmare.

@Palmr Have you actually managed to get Jekyll to work on GitHub pages though? In my experience it was a complete nightmare.

Yes, this was the previous setup we had for github-pages before it got asciidoctored.

It's definitely better, having links there is a good thing.
Is there no way to make it a global include rather than having to put it in every file? One forgotten include and suddenly there's an orphaned page.

There are a few alternatives that don't require it to be included, I'm just trying to work out which one is the nicest.

Side-note, having the changelog in there and a project-level markdown file is some less desirable duplication. Didn't even notice it was in added to the doc source since previously there wasn't an obvious link to it.

Yeah... I don't think I realised there was a Markdown version until the other day. We could probably remove one of them and I have no issue with it being the .adoc.

I am still not 100% sold on asciidoc being better than using jekyll.
The effort spent on adciidoc so far does feel like it could have been better spent improving the content of the documentation rather than the build pipeline for it and attempting to fit a square menu-like peg into a round asciidoc shaped hole?
Maybe we need to start flexing some of the benefits that asciidoc has?

I feel this is very much an "eat the frog". I've started looking at improving the content of the docs, but it's a fairly big job and so it's nice to hack off some other low-hanging bits of fruit on the way. I'll see if I can raise another PR in a day or two that makes a start on addressing this (and will start making use of some ASCIIDoc features!)

@swarren12 What else do you want to do before we close this, if anything? It feels like the frog is somewhat indigestible at this point, or, worse, just not safe to eat at all.


Remove sub-elements property tables

This pull request addresses a common confusion about the table setup throughout the docs. I've merged individual sub-elements that had a property badge, making it listed once under attributes table rather than duplicating them with the same description.
As far I can tell, this was how tables were originally set up at https://docs.oc.tc and no one noticed until recently. Hopefully this makes these pages easier to follow.
note to reviewers

Double check these pages: Spawns (is region an attribute?), Portals, Block Drops

Yeah this makes way more sense. The table should have the attribute and element laid out together.

I have merged spawn <region> and the remaining portal sub-elements. I'm still unsure about block drops <fall-chance>, <land-chance>, and <fall-speed> since I couldn't find any maps with this example or recreate it myself for testing.


Use Aesthetic without Activity

[x] I have verified there are no duplicate active or recent bugs, questions, or requests

[x] I have verified that I am using the latest version of Aesthetic (see the README)

[x] I have given my issue description title

[x] I have read over the documentation (before asking questions on how to do something).

Aesthetic version: 0.4.7

Aesthetic requires an Activity in order to be instantiated & used. This makes sense most of the time, as we're theming the window background, navigation bar, status bar, etc.. Things common to the activity.
However, it's occasionally useful to be able to determine say, the primary or accent color being used by Aesthetic, outside of an Activity (in a Service displaying a notification, or a Widget Provider), or anywhere else where UI is visible outside of an Activity scope.
Calling Aesthetic.get().foo() will fail if there's no Activity around which instantiated Aesthetic.
At this stage, just looking for suggestions on how this might be approached.

The latest release is technically capable of this, Context is now accepted everywhere.
But, it's only halfway towards this issue as a whole; you still have to call attach, resume, and pause like lifecycle methods.


update .aztec-run to run in non-interactive mode if NON_INTERACTIVE is set to non-zero

This lets me do things like run aztec-nargo test in a pre-commit hook

Hey thanks for your contributions - I hope you don't mind the label, really we lack a good way to get CI to run on external contributions and this label was the quickest way


[FRG] - Expose more text settings

Text width, width, underline, strike, font size, and opacity.

Added to both the Print & Band.


fixed typo in metadata section

Fixed typo (changed "last_updat" to "last_update")

this can be closed, I fixed with a commit on that branch


Add error message in URL validation, New/Edit target popup

In New/Edit target popup,
Now is working as expected, but the URL value is getting remove and the user does not know the why. Please, do not delete the url when pressing enter or space keys, just add this error message: Invalid URL format. Ex: www.mydomain.com, mydomain.com
Originally posted by @YanetABUC in https://github.com/reconness/reconness-frontend/issues/170#issuecomment-813212558

Working as expected


Channels require update in fresh install

Bug description
I've just done a fresh install using the latest tarball, but it looks like the channels are missing their data.
sudo nix-channel --update fixes it. But it would be good to include some initial channel data that the image was built from. I can imagine something like this really confusing a beginner.
To Reproduce

Do a fresh install
Run nix-shell -p vim

Expected behavior
It succeeds.
Logs
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)

       at «string»:1:25:

            1| {...}@args: with import <nixpkgs> args; (pkgs.runCommandCC or pkgs.runCommand) "shell" { buildInputs = [ (<nixos>.vim) ]; } ""
             |                         ^
(use '--show-trace' to show detailed location information)

This is the release I used: https://github.com/nix-community/NixOS-WSL/releases/tag/<IP_ADDRESS>

If this sounds like something we'd like to have I'd be happy to make an PR to fix this

But it would be good to include some initial channel data that the image was built from.

I'd rather add the default channels and run a nixos-channel --update or just only use flakes.
Also we already have https://github.com/nix-community/NixOS-WSL/blob/main/modules/welcome.nix#L6 which should instruct users what to do.

I don't seem to get the welcome message. Maybe the release tarballs don't have that setting enabled somehow?
The welcome message seems adequate to me though.

Do you overwrite programs.bash.loginShellInit https://github.com/nix-community/NixOS-WSL/blob/5da7c4fd0ab9693d83cae50de7d9430696f92568/flake.nix#L34 ?

Oh I see I downloaded the most recent release but the welcome message was added after!

I've tried using artefacts from HEAD and it works.
Alright I think there's nothing to do here. Thanks for your help @SuperSandro2000


@cfb response

@cfbに反応します

Codecov Report

Merging #223 into master will decrease coverage by 0.05%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #223      +/-   ##
==========================================
- Coverage   28.19%   28.13%   -0.06%
==========================================
  Files          83       83
  Lines        6700     6707       +7
  Branches     1286     1288       +2
==========================================
- Hits         1889     1887       -2
- Misses       4175     4184       +9
  Partials      636      636

Impacted Files
Coverage Δ

context-free/index.ts
0% <0%> (ø)
:arrow_up:

sushi-bot/index.js
58.08% <0%> (-0.74%)
:arrow_down:

mahjong/index.js
26.58% <0%> (-0.32%)
:arrow_down:

Continue to review full report at Codecov.

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

CoiL氏がCODEOWNER（ファイル上はそうなってないが）なので，自己判断でmerge・master pushして良いという話がある

これに context-free を足すとよくて（このPRとは別のPRでも良いんですが）
https://github.com/tsg-ut/slackbot/blob/41e1978f2e77c4689cbfccb14baf99f850c389b7/CODEOWNERS#L1-L10


Change Checkpoint default to true.  Mesos already did so, we might as well also

To enable this in a pre-existing cluster:

Changing FrameworkInfo (while keeping the FrameworkID) is not handled correctly by Mesos at the moment. This is what you currently need to do to propagate FrameworkInfo.checkpoint throughout the cluster.
--> Update FrameworkInfo inside your framework and re-register with master. (Old FrameworkInfo is still cached at master and slaves).
--> Failover the leading master. (New FrameworkInfo will be cached by new leading master).
--> Hard restart (kill slave and wipe meta data) your slave in batches.
The proper fix for this is tracked at: https://issues.apache.org/jira/browse/MESOS-703


can't send to Native Python REPL with ⇧&⏎ like send to Jupyter

I can't send to Native Python REPL with ⇧&⏎ like send to Jupyter
When I select a piece of code and press the shortcut key ⇧ & ⏎, this piece of code is executed in the repl interface of the terminal instead of Native Python REPL.

What I expect is that this code can be executed in Native Python REPL when I press the shortcut key.
Here is my setting.json config, thanks for help me:
{
  // editor basics

  "editor.accessibilitySupport": "on",

  "editor.fontFamily": "JetBrains Mono NL, MesloLGS NF", //字体部分需要下载相关字体

  "editor.cursorBlinking": "solid",

  "editor.defaultFormatter": "charliermarsh.ruff", // ruff插件的配置项

  "editor.mouseWheelScrollSensitivity": 1,

  "editor.mouseWheelZoom": true,

  "editor.semanticHighlighting.enabled": true, //语义高亮

  "editor.wordWrap": "off",

  "editor.autoClosingBrackets": "languageDefined",

  // python

  "[python]": {
    "editor.formatOnSave": true,

    "editor.codeActionsOnSave": {
      "source.fixAll": "explicit",

      "source.organizeImports": "explicit"
    },

    "editor.defaultFormatter": "charliermarsh.ruff"
  },

  "python.languageServer": "Pylance",

  "python.analysis.typeCheckingMode": "basic", //类型检查

  "python.REPL.sendToNativeREPL": true,

  "interactiveWindow.executeWithShiftEnter": false,

  // theme

  "workbench.colorTheme": "Best Themes - Xcode Catalina Bold",

  "workbench.iconTheme": "material-icon-theme",

  "debug.console.fontSize": 15,

  "editor.fontSize": 15,

  "window.zoomLevel": 1,
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "accessibility.signalOptions.volume": 10
}

Hi @geoqiao Thank you for filing this issue. This is bit weird as I see "python.REPL.sendToNativeREPL" in your settings.json
Can you head over to the settings UI and see you have checked the setting for send To Native REPL to be true?

Check both user and workspace setting. Thanks!

It does look like workspace setting will effectively overwrite your user setting: https://code.visualstudio.com/docs/getstarted/settings#:~:text=Workspace settings are specific to,root in a .vscode folder
Can you make sure you have the setting checked for workspace and see if that changes anything?

Thanks for your help, I checked the user and Workspace settings separately and it seems like nothing is wrong：

I couldn't find the 'Start Python REPL' command in the command palette; I only saw the 'Terminal REPL' command.

@anthonykim1 update：today I update vscode to version 1.93.0  and start Native REPL command can be found in the command palette.  But I still can't use ⇧ + ⏎  to send code to native python repl.

Hi @geoqiao Thanks for the update. Can you try updating the Python extension to the latest version and see if that does anything?

⇧&⏎ Still send code to terminal REPL.
And the Native REPL command doesn't work too, it just open the native repl interface  without running code

@geoqiao Thanks for the screenshot. I really can't repro this.
When you launch the Python Native REPL with that command palette, are you able to type code in the input box and have it run?

Thank you for your help, I have now solved the problem: by completely uninstalling VSCode and its configuration files, and reinstalling and setting all settings through the UI interface instead of the settings.json file (by synchronizing the settings.json file, this bug will still be repeated) , so I guess there may be a problem with my settings.json
anyway，it's fine now ！Thanks again！


fix: #1478 support react class-component hot-update

close #1478

Summary by CodeRabbit

新功能

改进了 React 组件的刷新机制，确保所有识别的组件类型都得到正确注册，从而增强了组件的实时更新能力。

性能优化

优化了组件类型判断逻辑，简化了条件检查，提高了性能和代码清晰度。

测试

更新了测试用例，以验证新的 $RefreshSig$ 分配格式。

here is my two cents:
the reason why class component is not update is it's not registered.
maybe we can try patch ast after swc's react visit,  to register all the component like class.

here is my two cents:
the reason why class component is not update is it's not registered.
maybe we can try patch ast after swc's react visit,  to register all the component like class.

Yeah, I suspect the main issue is that the class component, after being compiled with SWC, becomes a module and can't be registered correctly. Solutions I can think of include:

Handling React class components during the SWC compilation phase.
Manually hardcoding the registration of class components. (That's what I'm doing now.)
Special handling for these class component modules in the HMR runtime.

I still have some issues with my current approach, and I'll make some adjustments later.

what about this case
the class component is not exported, but used by another class component or a function component

what about this case the class component is not exported, but used by another class component or a function component

It works great.


Implement Manim cell preview & tidy up entry points

[!warning]
This PR also includes all changes of #7 as it is a follow-up. #7 must be merged beforehand.

Closes #3.

This is a follow-up of #7 where the Manim Cell detection mechanism was initialized. Here, we implement the actual previewCode() method.
Furthermore, we implement a new command to preview selected text. However, note that I don't think that this is what we actually want (see review comment below).
The extension.ts is cleaned up by outsourcing into individual functions with docstrings.
We also implement the first user setting (clipboard timeout).

Parts of this PR were inspired by #5 by VladimirFokow.
https://github.com/user-attachments/assets/b5b826fc-9b5f-40cd-9156-2a5572e59ec5

When squashing and merging this PR: in the body of the generated message, could you remove all lines up to (including) "Fix spelling mistake"? The first new commit of this branch is "Document all failed attempts to capture terminal output". It's just that GitHub somehow doesn't realize that the prior commits are already included in the base branch.

Cell detection works as expected. This is an awesome contribution.


PowerToys Run启用默认浏览器搜索内容时会自动添加‘/’，引起无法访问此网站

Microsoft PowerToys version
v0.47.1
Running as admin

[X] Yes

Area(s) with issue?
Welcome / PowerToys Tour window
Steps to reproduce

✔ Expected Behavior
1
❌ Actual Behavior
1
Other Software
1

Duplicate of #3245


Urgent

nokia G-120w-f did you progress dude i need help

i got intop it now it asks for Aont login
and pass

@daley1323 I didn't dude. And i dropped the project sometime back.

@daley1323 I didn't dude. And i dropped the project sometime back.

i have gotten lead
wanna check out

@anitsh  wanna check i got lead


Moved documentation on pull request guidelines

Referencing issue #24 in docs repository.
I've deleted the PR guidelines portion from CONTRIBUTING.md as they are planned to be moved to the docs repo.

Alright. Added heading back in and linked it to the doc in the docs repo. Should be good to go :-)

Should be good to go! @kytrinyx I used your suggestion. Hopefully that works :-)

This is great @aosdab, thank you! 🌷


Use clang's C preprocessor as alternative to Boost Wave

Boost Wave is a bit of a pain, in particular it can have problems if compiling OSL with C++11 (as is mandatory now in master) but link against a Boost that was compiled without the C++11 options.
At Chris Kulla's suggestion, we can switch to using the C preprocessing faciliies from clang's internals. Ordinarily, LLVM/clang would be much to painful to add just for this, but since we're already tied to LLVM as a dependency, it's really no additional burden.
So here we are. There's a build time cmake option USE_BOOST_WAVE, which defaults to off, but if problems are discovered with the clang cpp, that gives is a Plan B. Eventually, when we're completely confident in the way I've done it with clang, we may remove the Wave option entirely.
This is not 100% working. It seems to work fine if you are using clang as your compiler, or if you are using gcc 4.8.x, or if you are building against LLVM 3.4/3.5.  But the combination of using gcc >= 4.9 to compile and linking against LLVM >= 3.9 is resulting in crashes with complaints about double-freeing something. Surely it's our error, making a mistake about who owns what allocation or something, but I'm not sure what's wrong and I'm tired of holding up this patch for all the people and cases that it can help. So for now, for the combinations that don't run properly, it automatically falls back to using Boost Wave. We will remove this special case as soon as we figure out why it's failing in that case. (As stated earlier, you can also force use of boost wave with USE_BOOST_WAVE=1.)
Also made some changes to the Travis build matrix to cover various cases of combinations of compiler and LLVM version.

Amended the PR to fall back on Boost Wave if the necessary clang components aren't found (let's consider them an optional dependency) and updated the README to explain this.

LGTM!

OK, I'm going to merge this as it currently is, it seems to work when it works, and fall back to boost wave for the cases where it doesn't work. But I'm still investigating why it crashes with some compiler combinations, and as soon as I have it figured out, I will submit a PR with that patch (which I bet will be fairly minor).


Facial recognition to detect mood and suggest songs accordingly

Please assign me this issue. I want to contribute to this issue

Do we have to use any specific dataset for songs recommendation ?


Add asset/css/js rev'ing

#featureRequest
Hi - great too for my workflow which allows me to quickly create static sites, but I'd love to see rev'ing in the project as well i.e. renaming, as a last build function, all the assets + updating the build css/js/html to reference these new file names.
i.e. main.{css,js,map} > main.45reer3ef35.{css,js,map}
image.{png,svg,gif,etc....} > image.45ff34242we.{png,svg,gif,etc....}
Would also need to be able to not rev certain files, based on folder location.
Thanks in advance.

Asset revisioning is now added in v3.0.0


Add location based on yolov7

For yolov7, which part of the configuration file yolov7.yaml should I add this module to

For any module having regular convolutional layers, you may think on using our ODConv.


HTTP request timeout when deleting numerous events from core-data by device name

🐞 Bug Report
Affected Services [REQUIRED]

 The issue is located in:
core-data
Is this a regression?

 Yes, the previous version in which this bug was not present was: not sure
Description and Minimal Reproduction [REQUIRED]
There are 2,973,356 readings came from a device named "ekuiper" to edgex message bus, and stored in edgex core-data.
I get a warning from  edgex-ekuiper:
level=warning msg="consumer chan full for request id rule1_EdgeXStream_0" file="edgex/edgex_wrapper.go:119"

so I try to clean the consumer edgex core-data by:
$ curl -X 'DELETE'   'http://localhost:59880/api/v2/event/device/name/ekuiper'
It didn't work, and returned the error:
HTTP request timeout

🔥 Exception or Error
$ curl -X 'DELETE'   'http://localhost:59880/api/v2/event/device/name/ekuiper'
HTTP request timeout
🌍  Your Environment
Deployment Environment: Ubuntu 20.04 LTS
EdgeX Version [REQUIRED]: latest/edge snap/(main branch)
Anything else relevant?
There is a workaround that deleting all events by age older than 1 day:
$ curl -X 'DELETE'   'http://localhost:59880/api/v2/event/age/86400000000000'

thanks, @MonicaisHer , it's really a bug.
the original design is to return 202 Accept response immediately and run the deletion in the background

fixed by #4063


Dev Test: Geometric Optics: Basics 1.2.0-dev.2

Dev Test
Mentions: @arouinfar @kathy-phet @ariel-phet
Simulation links

github repository for issues
phet top level directory
sim: all_phet.html
phet-io wrapper index

Test Matrix
Please include all (non-screen reader) feature testing in these records if applicable.

[x] Latest macOS, Safari (Time = 2hrs)
[ ] Windows 10, Chrome (Time = )
[ ] Windows 10, Firefox (Time = )
[ ] Latest iOS, Safari (Time = )
[ ] Windows 11, Chrome (Time = .5)

Light testing, or optionally skip if time crunch:

[ ] Latest macOS, Chrome (Time = )
[ ] Latest Chrome OS, Chrome (Time = )

If PhET-iO is being tested:

[ ] Latest macOS, Safari (Time = )
[ ] Windows 10, Chrome (Time = )
[ ] Windows 10, Firefox (Time = )
[ ] Latest iOS, Safari (Time = )
[ ] Windows 11, Chrome (Time = )

Features included

[x] PhET-iO
[x] Alternative Input
[x] UI Sound
Sonification
Description
Voicing

Focus and Special Instructions
This is the first QA test for Geometric Optics: Basics.   This sim shares the same codebase with Geometric Optics.  The focus of testing is how this sim differs from the full version of the sim (General and PhET-iO features) as described in implementation-notes.md.

For QA...

General features

What to Test

Click every single button.
If there is sound, make sure it works.
Make sure you can't lose anything.
Play with the sim normally.
Try to break the sim.
Try to include browser version numbers
If there is a console available, check for errors and include them in the Problem Description.
Run through the string tests on at least one platform, especially if it is about to go to rc.
Check the Game Up harness on one platform.

PhET-iO features

What to Test

Make sure that public files do not have password protection. Use a private browser for this.
Make sure that private files do have password protection. Use a private browser for this.
Make sure standalone sim is working properly.
Make sure the wrapper index is working properly.
Make sure each wrapper is working properly.
Launch the simulation in Studio with ?stringTest=xss and make sure the sim doesn't navigate to youtube
For newer PhET-iO wrapper indices, save the "basic example of a functional wrapper" as a .html file and open it. Make
sure the simulation loads without crashing or throwing errors.

Accessibility features

What to Test

Specific instructions can be found above.

Make sure the accessibility (a11y) feature that is being tested doesn't negatively affect the sim in any way. Here is
a list of features that may be supported in this test:

Alternative Input
Interactive Description
Sound and Sonification
Pan and Zoom
Mobile Description
Voicing

Test all possible forms of input.

Test all mouse/trackpad inputs.
Test all touchscreen inputs.
Test all keyboard navigation inputs (if applicable).
Test all forms of input with a screen reader (if applicable).

Screen Readers
This sim may support screen readers. If you are unfamiliar with screen readers, please ask Katie to introduce you to
screen readers. If you simply need a refresher on screen readers, please consult the
QA Book, which should have all of the information
you need as well as a link to a screen reader tutorial made by Jesse. Otherwise, look over the a11y view before opening
the simulation. Once you've done that, open the simulation and make sure alerts and descriptions work as intended.

Platforms and Screen Readers to Be Tested

Windows 10 + Latest Chrome + Latest JAWS
Windows 10 + Latest Firefox + Latest NVDA
macOS + Safari + VoiceOver
iOS + Safari + VoiceOver (only if specified in testing issue)

Critical Screen Reader Information
We are tracking known screen reader bugs in
this Google Document. If you find a
screen reader bug, please check it against this list.

Keyboard Navigation
This sim supports keyboard navigation. Please make sure it works as intended on all platforms by itself and with a
screen reader.
Magnification
This sim supports magnification with pinch and drag gestures on touch screens, keyboard shortcuts, and mouse/wheel controls. Please test magnfication and make sure
it is working as intended and well with the use cases of the simulation. Due to the way screen readers handle user input, magnification is NOT expected to
work while using a screen reader so there is no need to test this case.

FAQs for QA Members

There are multiple tests in this issue... Which test should I do first?
Test in order! Test the first thing first, the second thing second, and so on.

How should I format my issue?

We typically assign the developer who opened the issue in the QA repository.

My question isn't in here... What should I do?
You should:

Consult the QA Book.
Google it.
Ask Katie.
Ask a developer.
Google it again.
Cry.

On hold until a studio issue is addressed.

@KatieWoe let’s proceed with QA, using ?phetioDebug with Studio.  We think that will allow useful testing to continue.   Be aware that there are blocking PhET-iO issues that are in various states of “in progress”, and you’re likely to encounter them.  Create sim-specific issues, and I’ll triage them as needed.

Memory test for phet-brand:

Memory test for phet-io-brand:

For comparison, previous memory tests were https://github.com/phetsims/geometric-optics-basics/issues/12 (brand=phet) and https://github.com/phetsims/geometric-optics-basics/issues/13 (brand=phet-io).

QA is done

All issues have been addressed or are being tracked in other issues.  This sim is in good shape, ready for RC testing.


Interaction with shell it's launched from

Typically I write shell scripts to modify the environment that I will continue to work with, such as .zshrc. However, commands executed by Turtle seem to happen in a separate shell, which is internally consistent, but does not have any effects on the shell it was launched from. That might make for more reproducible scripts for complex tasks (backups etc), however it precludes many utility scripts. Is there a way for Turtle to influence the "outer" shell?
For example
-- helper tool for git
{-# Language OverloadedStrings #-}

import Turtle

main = (export "hi" "hello") >> cd "/" >> (view $ ls ".")

Here, the ls runs in /, but when the program is run through runhaskell, after exit, I'm in the same directory, and my shell does not have the "hi" environmental variable set.
My use case right now was writing a small script that enabled me to do g houshuang/folders anywhere on my computer, and have the result git clones to my ~/src folder, and then automatically place me in the resulting folder (something I do many times a week). The first part works, but not the second.

It's a trivial example, but if I got it working, I was thinking of adding more details, for example using the Github API to search for a repo, display the candidates using something like pick (anything similar natively Haskell?), and then proceeding, so that I would be able to do gc turtle, and quickly choose the right turtle and have it cloned etc. To my mind this possibility to go seamlessly from something trivial to something a bit more complex is one of the advantages of shell-scripting in Haskell, rather than starting out with Bash and then if it gets complex enough, deciding to go to a "real" programming language...

I figured out how to get this to work.  The trick is to have your script invoke bash at the end of the script, like this:
#!/usr/bin/env runhaskell

{-# LANGUAGE OverloadedStrings #-}

import qualified System.Process as Process
import Turtle

main = do
    cd "/"
    let cp = (Process.proc "bash" [])
            { Process.std_in  = Process.Inherit
            , Process.std_out = Process.Inherit
            , Process.std_err = Process.Inherit
            , Process.delegate_ctlc = True
            }
    (_, _, _, ph) <- Process.createProcess cp
    Process.waitForProcess ph

Then that newly spawned Bash shell will inherit all changes that you made prior to launching it within the script.
If you want, I can add an interactive command that also inherits from std_in so that you can more easily run interactive shells like bash without having to do the above System.Process dance.

You can also have the current script completely replace the current process.  Just wrap the script in the exec command:
$ exec ./script.hs

I just wanted to check if this solved your problem

This is a very neat solution, thank you!
On Sat, Mar 14, 2015 at 2:10 PM, Gabriel Gonzalez<EMAIL_ADDRESS>wrote:

I just wanted to check if this solved your problem
—
Reply to this email directly or view it on GitHub
https://github.com/Gabriel439/Haskell-Turtle-Library/issues/33#issuecomment-80649841
.

--
http://reganmian.net/blog -- Random Stuff that Matters

Alright, then I'll go ahead and mark this as closed.


CORE-15757 WIP:some initial changes to setup the feature branch with avro objects to begin development

https://github.com/corda/platform-eng-design/pull/560
https://r3-cev.atlassian.net/wiki/spaces/CB/pages/4552491009/Corda+Scalable+Topology+Design.
https://github.com/corda/corda-api/pull/1208

This looks "extensive". Is the idea that it will improve the flow engine's performance? And if so, how quickly will you be able to confirm that this approach is successful?

This looks "extensive". Is the idea that it will improve the flow engine's performance? And if so, how quickly will you be able to confirm that this approach is successful?

This work is part of https://r3-cev.atlassian.net/wiki/spaces/CB/pages/4552491009/Corda+Scalable+Topology+Design. POCs have already confirmed that reducing the messages to only data messages was very successful at improving performance. Mainly through the removal of "pure ack" messages which reduces total session message count by half.


[SPARK-25347][ML][DOC] Spark datasource for image/libsvm user guide

What changes were proposed in this pull request?
Spark datasource for image/libsvm user guide
How was this patch tested?
Scala:

Java:

Python:

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3811/
Test PASSed.

Test build #97141 has started for PR 22675 at commit 887f528.

Test build #97141 has finished for PR 22675 at commit 887f528.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97141/
Test PASSed.

we need this for 2.4?

This do not block 2.4 release. But merge before 2.4 is better.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3840/
Test PASSed.

Test build #97184 has started for PR 22675 at commit cc4c967.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3841/
Test PASSed.

Test build #97185 has started for PR 22675 at commit 994d09d.

Test build #97184 has finished for PR 22675 at commit cc4c967.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97184/
Test PASSed.

Test build #97185 has finished for PR 22675 at commit 994d09d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97185/
Test PASSed.

Test build #97514 has started for PR 22675 at commit ba0d888.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4073/
Test PASSed.

Test build #97514 has finished for PR 22675 at commit ba0d888.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97514/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4096/
Test PASSed.

Test build #97541 has started for PR 22675 at commit 1b54044.

Test build #97541 has finished for PR 22675 at commit 1b54044.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97541/
Test PASSed.

@WeichenXu123  this looks good - one recommendation though, in the examples it might be good to pass the param that ignores bad images so that the not-image.txt is not included in the output, it might confuse people who are new to the API - unless you feel strongly about having the not-image.txt output in the examples

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4383/
Test PASSed.

Merged build finished. Test PASSed.

Test build #97889 has started for PR 22675 at commit 8231cb2.

LGTM, this is great to have!

thanks, merging to master/2.4!


Revert setting selected id and type in component

This project uses semver, please check the scope of this pr:

[ ] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[x] #major# - incompatible API change

CHANGELOG

Fix dummy app environment
Revert handling of selection (id, type) by the component user

onChange should now be required, correct?  Also, I believe this would be a #major#

Approved


[Demo] Open ViViVo links outside iframe

Description
@Joseph-Perkins noticed that if you open up ViViVo on HF in an iframe then the links to github don't work. The reason for this is
https://stackoverflow.com/questions/7649361/github-gist-page-wont-load-in-iframe. The solution is to open these links with ~target="_top" to escape the iframe~ target="_blank".
Screenshot
Notice

[x] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":

I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.
I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorized to submit this contribution on behalf of the original creator(s) or their licensees.
I certify that the use of this contribution as authorized by the Apache 2.0 license does not violate the intellectual property rights of anyone else.
I have not referenced individuals, products or companies in any commits, directly or indirectly.
I have not added data or restricted code in any commits, directly or indirectly.

Surprisingly this fix doesn't actually work. So it's blocked pending https://discuss.huggingface.co/t/allow-navigation-outside-iframe/114755/2.

I've raised the issue on the HF discord also but realistically don't expect them to change anything here, so until we hear otherwise the solution is just to open all these links in a new tab with target="_blank". It's not great for usability but unfortunately it's the only way to get the links to open from inside the iframe.
FYI @nadijagraca @huong-li-nguyen this is what I mentioned yesterday at standup.

HF have said they won't change the settings here so we must continue to open them in a new tab.


Update data_management.md

Update How do I change my data directory in a conda environment - for Unix
The method in the current docs doesn't work or is outdated, the files need to be in etc/conda/, not at the root of the env directory. I also added what the files should look like to make it clearer and added the commands to ensure script execution permissions.

Thank you, @Haitham-ghaida for your contribution! I have now merged it into the main branch 🎉


⚠ Bofrost.lu has degraded performance

In 5088e22, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1766 ms

Resolved: Bofrost.lu performance has improved in 9c115c8 after 14 minutes.


Replace 'dvorak' keyboard description with 'us(dvorak)'

Fixes #3081
In the words of @iskunk
It is no longer possible to refer to the Dvorak layout as just "dvorak" (as when one would run "setxkbmap dvorak"); one must now use either "us dvorak" or "us(dvorak)"
See https://bugs.debian.org/1063725

Thank you @matt335672 and @metalefty! Glad to see this in.


[FEATURE] deploy existing setup to 1-n NEW BUs

request by Christine
special case: what if we want to deploy to a new BU after things have been merged into master branch already? need to rely on info in salesforce user story instead of on git diff.
possible duplicate of #35

might become irrelevant by #35 or rather PR #144

we need to reconfirm this case after testing our #2 pipeline as-is.
once that's all confirmed working, including "mass backpromotions", we can then add a 3rd "prod" environment and try to deploy all previous changes there.


Display the name of the Qt instance on the top as part of the title.

If you're managing multiple instances, it's nice to see which one you're in at the top. Request: jonb.

Updated title on windows to display the wallet data path.


Fix loophole for creating duplicate keys

Scope & Purpose
Backport of https://github.com/arangodb/arangodb/pull/16764
Since ArangoDB 3.8 there was a loophole for creating duplicate keys in the same collection. The requirements were:

cluster deployment

needs at least two collections (source and target), and the target collection must have more than one shard and must use a custom shard key.

inserting documents into the target collection must have happened via an AQL query like FOR doc IN source INSERT doc INTO target.
In this particular combination, the document keys (_key attribute) from the source collection were used as-is for insertion into the target collection. However, as the target collection is not sharded by _key and uses a custom shard key, it is actually not allowed to specify user-defined values for _key. That check was missing since 3.8 in this particular combination and has now been added back. AQL queries attempting to insert documents into a collection like this will now fail with the error "must not specifiy _key for this collection", as they used to do before 3.8.

[x] :hankey: Bugfix

[ ] :pizza: New feature

[ ] :fire: Performance improvement

[ ] :hammer: Refactoring/simplification

Checklist

[ ] Tests

[ ] Regression tests
[ ] C++ Unit tests
[ ] integration tests
[ ] resilience tests

[x] :book: CHANGELOG entry made
[ ] :books: documentation written (release notes, API changes, ...)
[x] Backports

[x] Backport for 3.10: https://github.com/arangodb/arangodb/pull/16765
[x] Backport for 3.9: https://github.com/arangodb/arangodb/pull/16767
[x] Backport for 3.8: this PR

Related Information

[x] Docs PR: TO DO
[ ] Enterprise PR:
[ ] GitHub issue / Jira ticket:
[ ] Design document:

Jenkins run:
https://jenkins.arangodb.biz/view/PR/job/arangodb-matrix-pr/23139/


Mouse-following tooltip and onHide functionality added

Updated dependencies, tests and added the following properties:

followMouse - When the mouse is over the element, the tooltip will follow along (for best results, combine with offset)
onHide - Function to be executed, as soon as the tooltip gets hidden. For best results, combine with onHideDelay.
onHideDelay - Number: Time in milliseconds to wait, before executing the onHide method after the hide sequence has been initialized (e.g. if you use css-transitions to fade out the tooltip after it's been hidden with css)

@Akryum would love to hear your feedback and opinion on this!

Can we merge this?

Can we merge this PR?

@MohdAnas I guess there are too many diverging aspects by now. As this PR did not get any reply, I didn't make an effort to update it so far.

Ohk Got it, Can you please tell how to make v-tooltip follow mouse? I am using https://github.com/Akryum/v-tooltip

maybe @Akryum himself could take a look again and evaluate if it makes sense or not. In that case, the merge could be updated to be aligned with the latest master and then you could eventually use it from the official repo. Other than that, you can fork the repo, try to merge my PR into it and keep a separate repo just for you (which I wouldn't recommend, as it makes updating a lot harder).

Thanks @ivansieder for your quick response. I really appreciate it. Thanks again.


Improve Print Page

Print page currently has "Column 1 has link to details of record; Column 2 can be sorted on First Name; Column 3 can be sorted by event." this applies to the results page, not the print page, so should be removed?
Display of results needs improve,ment - current example

FreeBMD1:

Suggest single line is adopted, with the additional information added after testing has shown its importance to users

see also #423

Removed unwanted text as per request above.

Make the instructions more separate from the listing: call-out, or put a box around it.

As this screenshot (hopefully) shows, the instructions now have a box around them, and they are suppressed completely in the printed output:

Deployed


Added update and orderby to docs, and a requirements.txt for development

Locally I had to install aenum and the sphinx packages when developing the code, so I created a requirements.txt to make this more simple.
Fixes #78 Fixes #76

Coverage remained the same at 98.535% when pulling aee4b0cbd05c29795b07360079527637efe48b55 on mikeengland:master into 682dd00f313725668329448d99ced5b2c8409872 on kayak:master.


[Dependency] "node_modules\minimatch\dist\cjs\index" has no exported member named IMinimatch. Did you mean 'Minimatch'?

Describe the bug
Compilation error (To see more details, there is a screenshot below):
ERROR in<EMAIL_ADDRESS>29:41-49
[tsl] ERROR in P:\dev\nota\node_modules\@types\glob\index.d.ts(29,42)
      TS2694: Namespace '"P:\\dev\\nota\\node_modules\\minimatch\\dist\\cjs\\index"' has no exported member 'IOptions'.
ts-loader-default_e3b0c44298fc1c14

ERROR in<EMAIL_ADDRESS>74:29-39
[tsl] ERROR in P:\dev\nota\node_modules\@types\glob\index.d.ts(74,30)
      TS2724: '"P:\\dev\\nota\\node_modules\\minimatch\\dist\\cjs\\index"' has no exported member named 'IMinimatch'. Did you mean 'Minimatch'?
ts-loader-default_e3b0c44298fc1c14

To Reproduce

In the dev-editor branch, immediately after the PR from the dev (Commit ID: 251fb37cf35207a61c47e46fcab022e1ce8b092a), the above compilation error shows up.

Additional Context

After browsing some solutions on the internet, I found out the following resources are useful to understand the weird behaviour behind it.
This StackOverflow answer do solve my problem by doing the following in package.json:

"overrides": {
	"minimatch": "5.1.2",
	"glob": "8.1.0"
}

This is also a potential correct understanding of the problem (BendingBender's reply): https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/63967
I believe the glob team themselves have already been aware of the issue since last year, they did update to the correct version.
4.1 But since this valuable error is still somehow able to trigger (like in our case), I believe there is a deep hard-to-discover weird dependency-dependency version issue under our package-lock.json that triggers this error without being detected by npm.
4.2 I tried to iterate every dependency that depends on glob and minimatch and fix their version. I couldn't really find it. So I choose to simply override the minimatch version to 5.1.2 and solves the problem.
4.3 glob team related issues:

https://github.com/isaacs/node-glob/issues/490
https://github.com/isaacs/node-glob/pull/489

Screenshots

The issue should be fixed under dev-editor since it only triggers after merging to dev-editor. But I am going to fix this under dev branch since I am currently doing a merge from dev to dev-editor anyway.

Cannot simply override every minimatch or glob to a specific version. I need to find the source of the bug first.

The issue still happens in the dev-editor branch. F myself.

The author of rimraf, glob, and minimatch replied:

Upgrade rimraf, glob, and minimatch to latest. Remove the @types packages for all three. Then it'll work fine.
These three are all written in ts now, the @types packages are causing the problem.
Source: I wrote all three of these.

My plan is to introduce a new script named postinstall.js which will delete node_modules/@types/glob manually after npm install.
Ref: https://stackoverflow.com/questions/75890950/node-modules-minimatch-dist-cjs-index-has-no-exported-member-ioptions#comment137653603_75950982


Number of fields created missing from shard statistics

Looks like statFieldsCreate is not being used in tsdb.Shard.

Fixed via #7302.


add a deadlock test

@realcr @kamyuentse
Hey, I have a deadlock here. The key point is polling task2 before task1.

I try to fix the deadlock by introducing NotPolled state in AcquireFutureState. With this change, acquire() will do nothing, it'll just return an AcquireFuture in NotPolled state. Code in old acquire() is moved into poll().
This change messed up simple and multiple test, which I think is not correctly written. Core::run() only waits for the passed future to complete, it does not wait for all spawned futures to complete. I think we might need to rewrite tests.

@juchiast : I'm checking it.

@juchiast: Hi, what's up?
Don't worry about being new to futures and tokio. You were assigned this issue so that you can experiment with it. I also think that it was a good idea to introduce a test that fails. This way we can help you out solve the problem.
I first checked out commit: https://github.com/realcr/async_mutex/pull/9/commits/5518db0226b1079e09baf13b12ebc34f0a022ab0 , just before you added the NotPolled state.
Next, I added some prints to see what happens:
    #[test]
    fn deadlock() {
        use tokio::timer::Deadline;
        use std::time::Duration;
        use std::time::Instant;

        let mut core = Core::new().unwrap();

        let async_mutex = AsyncMutex::new(NumCell { num: 0});

        let task0 = async_mutex.acquire(|mut num_cell| -> Result<_, (_, ())> {
            println!("Enter task0");
            num_cell.num += 1;
            println!("Leave task0");
            Ok((num_cell, ()))
        });

        let task1 = async_mutex.acquire(|mut num_cell| -> Result<_, (_, ())> {
            println!("Enter task1");
            num_cell.num += 1;
            println!("Leave task1");
            Ok((num_cell, ()))
        });

        let task2 = async_mutex.acquire(|mut num_cell| -> Result<_, (_, ())> {
            println!("Enter task2");
            num_cell.num += 1;
            println!("Leave task2");
            Ok((num_cell, ()))
        });

        fn timeout() -> Instant {
            Instant::now() + Duration::from_secs(1)
        }

        core.run(task0).unwrap();
        println!("Done task0!");
        core.run(Deadline::new(task2, timeout())).unwrap();
        core.run(Deadline::new(task1, timeout())).unwrap();
    }

This is what I got:
$ cargo test deadlock
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
     Running target/debug/deps/async_mutex-4fef7cbd0580d665

running 1 test
test tests::deadlock ... FAILED

failures:

---- tests::deadlock stdout ----
Enter task0
Leave task0
Done task0!
thread 'tests::deadlock' panicked at 'called `Result::unwrap()` on an `Err` value: DeadlineError(Elapsed)', libcore/result.rs:945:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

So, initially we tried to acquire in this order: task0, task1, task2
According to the prints, we did manage to enter task0 and leave it successfully, so task0 is out of the picture. The waiters for the resource are now task1, task2.
Next, we have this code:
core.run(Deadline::new(task2, timeout())).unwrap();
core.run(Deadline::new(task1, timeout())).unwrap();

The first line says: I will wait for task2 to finish, or cancel with a deadline error. task2 can not obtain the resource because it is waiting for task1, which is the correct behaviour. Therefore after a while the first line returns a deadline error which is unwrapped.
To fix the problem, I think that we should swap the two lines, to be:
core.run(Deadline::new(task1, timeout())).unwrap();
core.run(Deadline::new(task2, timeout())).unwrap();

If we do that, the test passes. However, I'm not sure we are testing something very interesting this way. What did you originally intend to test with the deadlock test?
Some other thing: Note that almost none of our test have a timer inside of it. This is on purpose. Time is not very deterministic, and using time inside a test could give non deterministic results (The test sometimes passes and sometimes fails). For the same reason we try to avoid having real random inside tests.
The other side of this is that if we make the time intervals longer we can get more accurate results, at the cost of having a slow test.
If you want to design a special test that checks some special order of events, the proper way to do it is probably to use messages (For example, with a bunch of oneshots: https://docs.rs/futures/0.1/futures/sync/oneshot/index.html), or combinators (like and_then etc). I can probably help you out with that if you have a specific idea in mind (:
What I currently propose to do is to remove the deadlock test and continue working on https://github.com/realcr/async_mutex/pull/8

I see this deadlock while thinking about the new design for #8.
I'm really bothered about the fact that AcquireMutex takes the resource immediately in acquire(), this deadlock is an effect of it. Why do you think this is a correct behavior? Futures should do nothing unless polled, here it acctually do something.
Other thing:
With the fix in bf75932,  I noticed that we are using Core::run() the wrong way. According to the doc, run() wait for the passed future to complete, here we use it to wait for all the spawned futures too (Core also has turn(), which is said to be used with spawned futures).
Also, in multiple test, we assume that spawned futures will be completed in order, which is true in this code, but that not how futures behave in general. Futures are free to be completed whenever they want, that is the point of asynchonous programming, right? This kind of task is usually done with a combinator, not a plain for loop.
My points are:

We should reconsider the behavior of acquire(). It should do nothing unless polled.
Rewrite tests in a more correct way.
These points are not related to deadlock anymore, we might open an issue to discuss.

I'm really bothered about the fact that AcquireMutex takes the resource immediately in acquire()

@juchiast: I agree that this is somewhat strange, but it did not cause me any problems with our code.
Regarding the tests: If we assume that the method acquire() function adds a waiter immediately to the queue, then we can be sure about the order of the tasks. This is because the async_mutex itself enforces the order. This is true for all the current tests.
However, if we do somehow manage to change the implementation so that AcquireMutex does not take the resource immediately, then I agree that we should rewrite the tests, because we can not be sure about the order of the execution of the tasks any more.
Do you have any example where the behaviour of adding a waiter immediately when acquire() is called could be a problem? The only one I can think of is the case where someone runs acquire() but never runs the resulting Future. To avoid this, we could add a warning that requires using the resulting Future. (I think it is called must_use).
If you think that this behaviour is really a problem, I think that I might have some ideas about how to solve it. But first I think that we should find out if this is really a problem.

However, if we do somehow manage to change the implementation so that AcquireMutex does not take the resource immediately

I already done that in bf75932, I moved the code in acquire() into poll().

Do you have any example where the behaviour of adding a waiter immediately when acquire() is called could be a problem?

I can think of one: you create some futures, store it somewhere or maybe moving to another function, then poll later. Now you have to poll in the exact order you created it. I'm not sure if this is a realistic one.

I can think of one: you create some futures, store it somewhere or maybe move it to another function

Sounds reasonable to me. I didn't think about it.
I'm always up for trying something interesting. If you can make this work, I probably vote for the new design.  What is the current state of your work on this?
I suspect we might need to take a handle to the Core at AsyncMutex::new if we want to make this new design work. I'm not fully sure about it though.

What is the current state of your work on this?

Did you miss my previous comment?

I already done that in bf75932, I moved the code in acquire() into poll().

Anyway, I think that the code in bf75932 will work properly. You might want to have a look at it.

Did you miss my previous comment?

No, sorry! I didn't realize I should look at https://github.com/realcr/async_mutex/commit/bf7593294f4bc1d92b80939e958d61f2e14210fc because the the tests didn't pass there.
It looks like it will work. Nicely done with the NotPolled state!
Only now I understand what you said about the tests. We should rewrite them if we want to work with the new design.
If you want consistent results, don't work with timers. Use oneshot instead.
For example, if you have two futures, f1, f2. If you want to make sure f1 happens before f2, do the following (Pseudocode):
let (tx, rx)  = oneshot::new();
spawn(f1.and_then(tx.send());
spawn(rx.and_then(f2));

In other words, when f1 finishes a message is sent, and only when the message is received f2 will start running. Messages are the formal way of defining time in an async world (:

@realcr Thanks for suggestion, I'm not sure how this is used to replace timeout.
Currently I'm using timeout to catch the deadlock. I run the Futures and set the timeout, if it fails to poll after 1 second, it will return Err().
I don't think this can be done via message passing.

@juchiast : Try this line for deadlock():
core.run(task0.and_then(task2).and_then(task1)).unwrap();

Please tell me if it works for you.

@realcr No, it doesn't work. It just blocks the process forever.
The problem here is not executing futures in order.
Using:
core.run(task0).unwrap();
core.run(task2).unwrap();
core.run(task1).unwrap();

is not different from:
core.run(task0.and_then(|_| task2).and_then(|_| task1)).unwrap();

The problem is having a way to panic when there is deadlock. If there is deadlock, the above code will just hang forever. The purpose of deadlock test is to catch this deadlock, so it must have a way to panic when deadlock happens.
Using Timeout here is just like calling Core::turn with appropriate max_wait.

The problem is having a way to panic when there is deadlock. If there is deadlock, the above code will just hang forever

I understand now, you want that the test will fail, and not block forever. Don't worry about this. The test suite will report a failure if a test hangs for too long. It's not your test's job.
Write the code that fixes the test and commit it together with the test. As said earlier, I propose to avoid using timers in your tests, because they either make the tests suite slow, or create non deterministic tests.

@realcr okay. I replaced core.spawn with core.run in simple and multiple test.
In deadlock I use:
core.run(task0).unwrap();
core.run(task2).unwrap();
core.run(task1).unwrap();

Should be okay to merge now.


Docker Portability

I have an instance of this running in a Docker container. I modified the src in Configuration.java in my copy so that the ports are configurable. Maybe this is something you could add or allow me to submit a PR if it is useful to others? Thanks.
Here's the gist:
String webserverPort = settings.getProperty("webserverPort");
String httpsWebserverPort= settings.getProperty("httpsWebserverPort");

// Overrides the default ports if the ENV VARS exist
if ( System.getenv("HTTP_WEBSERVER_PORT") != null )
{
   webserverPort = System.getenv("HTTP_WEBSERVER_PORT");
}
if ( System.getenv("HTTPS_WEBSERVER_PORT") != null )
{
   httpsWebserverPort = System.getenv("HTTPS_WEBSERVER_PORT");
}

HTTP_WEBSERVER_PORT = Integer.parseInt(webserverPort);
HTTPS_WEBSERVER_PORT = Integer.parseInt(httpsWebserverPort);](url)```

I'm still getting used to git, but my understanding is that you can fork it from the original git and your own project on github, check in your changes to your project, then make the PR back to me. It seems to be easier to integrate your changes.
It's nice that you're interested in the issue. Personally I think that web-based DIS is important, and has been for years. There's lots of things on the application code side changing fast, though.

Fixed in #2

Thanks. Man, the email deliveries don't show up for 24+ hours around
here. It's awful.

From: Leif Gruenwoldt<EMAIL_ADDRESS>Sent: Monday, November 13, 2017 12:10:01 PM
To: open-dis/DISWebGateway
Cc: McGregor, Donald (Don) (CIV); Comment
Subject: Re: [open-dis/DISWebGateway] Docker Portability (#1)
Fixed in #2https://github.com/open-dis/DISWebGateway/pull/2
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/open-dis/DISWebGateway/issues/1#issuecomment-344042472, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADBlZorsAqPrsCx4gFJUmxdT297ZJiomks5s2KIZgaJpZM4QYTDp.


az keyvault create removes existing access policies

If I run the command az keyvault create on an existing resource, the existing access policies are removed and replaced with a new one for the Azure DevOps project that ran the script.
azure-cli                          2.3.1 *

command-modules-nspkg              2.0.3
core                               2.3.1 *
nspkg                              3.0.4
telemetry                          1.0.4

Extensions:
azure-devops                      0.18.0

@bim-msft please take a look

this is service idempotent issue. let's feedback and see what's right solution @bim-msft

@Cam-Borrowell Hi, according to our test, it turns out that the KeyVault service for creating operation is not idempotent. I'm not sure if service team is willing to change this behavior, or it might take a long time to change... I will let them know. Thanks for the report!
For short term to unblock you quickly, using update command is recommended to update vault properties, and you can use show command to check if there is already an existing vault with the same name.
Feel free to let me know if you have any concern.

Thank you @bim-msft . I've already implemented a workaround using az keyvault list to check for an existing Key Vault before running az keyvault create

@Cam-Borrowell Good to hear that!
Since this might take a long time to change, I would like to close the issue temporarily. If you have anything unresolved, feel free to reopen it and ping me again.


Too much space around text in syntax diagram in PDF; same diagram in HTML5 output (SVG) looks okay

Screenshot from a PDF:

Screenshot of corresponding SVG file (from HTML5 output) presented in Chrome:

Same DITA input. I'm just switching --format=pdf to --format=html5.
In PDF, text in diagrams has too much space around it.
It's as if the PDF processing is "expecting" a larger font. Acrobat reports the text in the PDF as 8pt; the CSS in the SVG file created for HTML5 output specifies 8pt.
I've tried experimenting with the font-family in plugins/com.moldflow.dita.syntaxdiagram2svg/xsl/syntaxdiagram2svg.xsl, but to no avail so far.
Am I doing something wrong?

If I take a syntax diagram SVG file (that looks fine when opened in a web browser) that was generated using the HTML5 output, and I refer to that SVG file in an <image> element in a DITA topic, and then I format that DITA topic to PDF, then the diagram in the resulting PDF exhibits the same problem as a <syntaxdiagram> rendered directly to PDF: too much space around the text.

The actual width of the text box is determined by a JavaScript interpreter (run from Batik), which gives different results based on the fonts that it finds on your system + the fonts listed in the diagram file. I remember that it tends to give too much space for some cases, but removing that space meant some other text boxes gave too little, which could not be allowed.
The last time I looked at this code it was set up to render HTML versions inline (not referencing the files), so it's also possible that the HTML version is picking up the font from the HTML page itself, while PDF is using some other default.
Beyond that, I'm not really able to help -- this is one of the harder to work with parts of the code, and I know at different times we got different PDF results from seemingly identical servers (but which turned out to have a slightly different set of system fonts installed).


Irregular size of SUBMIT and RESET button

ISSUE :
The size of the Submit and Reset buttons is not the same.
STEPS TO REPRODUCE :
Open the website of water.css and scroll down in the " Element Demos " section. You will get to see both of the buttons.
EXPECTED UI :
The size of both the buttons should be the same.
SCREENSHOT :

@poswalsameer  we resolve it please asign me

Hi @kognise, I have already made a PR for this issue. Can you please merge it to the main branch after reviewing it?

@kognise I have a strong foundation on front-End and UI/UX .. can you please assign me this project
Thank you:)

I am comfortable with  frontend. @kognise Please assign me the task!

@kognise im a full stack web developer please assign this issue to me


refactor(traverse)!: enter node before entering scope

Closes #4200.
Align Traverse's behavior with Visit and VisitMut. For types with scopes, call enter_* before entering scope, and call exit_* after exiting scope.

#4685
#4684  👈
main

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

Join @overlookmotel and the rest of your teammates on  Graphite

Actually, this needs further changes. Tests aren't picking it up, but it breaks a few things.

Fixed now and ready for review.

I removed the ! minor version bump because this is a bug fix and not user facing breaking change.


Add a link to the blog to the top nav

Do we want to set up a new wordpress blog for this project (like blog.sciencegossip.org) or use an existing Wellcome blog?

Good question - I'm not sure about this stuff. Will follow up with Sally and return with an answer

As per Grant's email, he's setting up a blog for this project - so I guess it needs to link to that one.


TabMonConfgiBuilder Utility in Mast

Commit to merge the TabMonConfigBuilder utility and some minor TabMon config changes into master.

I need to fix the csproj. Will create another after.


Expose HTTP Code through GitlabAPIException

Current implementation includes no way of handling the returned http error codes. This PR introduces a GitlabAPIException class which extends from IOException but includes the error code. The changes are 100% backwards compatible.
This is probably the last one of my series of PRs for now :-)

Wait.. a little naming adjustment..

Ready to be judged or merged.


Bump version and minor tweaks

Bump to 1.5.4
Change .desktop category to fix desktop-file-validation warnings
Use bundled libffmpeg library instead of requiring external repositories

https://github.com/keeweb/keeweb/issues/572

Thank you! :)


always build with -L and check all systems

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#42
#46  👈 (View in Graphite)
#45
main

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


Ros2 plugin

Changed kinematics plugin to match kdl CMakeFiles and classes.
Can be loaded via: kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin.
Renamed kinematic_plugin folder to to kinematics, so it more closely matches moveits repo.
Tested on ros2 galactic.
One has to download nlopt and build it by hand though.

@ravnicas thanks a lot for the contribution! Before I actually review it, I'm going to approve the PR so that CI can run - just to see if CI complains about anything (other than linters). I will be reviewing the PR shortly after CI has run.

I took the liberty to update references to the old package name trac_ik_kinematics_plugin to the new package name trac_ik_kinematics (I have no objections to this change by the way) in https://github.com/aprotyas/trac_ik/pull/34/commits/f624c016b54b61e5a94dc9e160844017f9b8eb55. The plugin should now actually be built/tested in CI.

If I get the CI correctly, it doesnt like the dependency on moveit packages. e.g moveit_ros_planning.

I took the liberty to update references to the old package name trac_ik_kinematics_plugin to the new package name trac_ik_kinematics (I have no objections to this change by the way) in f624c01. The plugin should now actually be built/tested in CI.

What version of ROS are you using it on? I had some problems seeing the interactive marker as well, but i'm also commanding the robots via console. The interactive marker does work on version 2.4.0 from the master repository of moveit.

@ravnicas  i use ros foxy. but when i try to use it via console, i get an error
[ERROR] [1656591386.436187807] [kinematics_plugin_loader]: The kinematics plugin (arm) failed to load. Error: Failed to load library /home/dp/tidy_manipulation/tidy_ws/install/trac_ik_kinematics/lib/libmoveit_trac_ik_kinematics_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library LoadLibrary error: libnlopt.so.0: cannot open shared object file: No such file or directory, at /tmp/binarydeb/ros-foxy-rcutils-1.1.3/src/shared_library.c:84
[move_goal_node-1] [ERROR] [1656591386.436227947] [moveit_ros.robot_model_loader]: Kinematics solver could not be instantiated for joint group arm.
Best Regards
Dp

It can't find nlopt, afaik you can install it from their homepage or as package.
https://nlopt.readthedocs.io/en/latest/
This is what I have installed, since the other nlopt package from ros wasn't ported.

it should look like this:
colcon_ws/src/trac_ik/
├── nlopt
├── trac_ik
├── trac_ik_examples
├── trac_ik_kinematics
├── trac_ik_lib
└── trac_ik_python
also:
colcon_ws/src/
├── your_pkg_1
└── your_pkg_whatever

@ravnicas  i did git clone -b ros2_plugin https://github.com/ravnicas/trac_ik/tree/ros2_plugin in my src folders and ofcourse it is not building, because i see there is no CmakeLists.txt or package.xml directly under trac_ik package as you mentioned. How could you colcon build it?.

well, i cannot reproduce your error in any configuration, im sorry
also cloning the whole folder to your src directory of your ws does indeed compile

when I run “colcon”，I got these：
...
/home/yong/Desktop/trac_ik/src/trac_ik-ros2_plugin/trac_ik_kinematics/trac_ik_kinematics_plugin/src/trac_ik_kinematics_plugin.cpp:387:30: error: ‘const IKCallbackFn’ {aka ‘const class std::function<void(const geometry_msgs::msg::Pose_<std::allocator >&, const std::vector<double, std::allocator >&, moveit_msgs::msg::MoveItErrorCodes_<std::allocator >&)>’} has no member named ‘empty’; did you mean ‘_M_empty’?
387 |       if (!solution_callback.empty())
|                              ^~~~~
|                              _M_empty
...
It seems that std::function has no member named 'empty'. How can I solve this problem?

when I run “colcon”，I got these： ... /home/yong/Desktop/trac_ik/src/trac_ik-ros2_plugin/trac_ik_kinematics/trac_ik_kinematics_plugin/src/trac_ik_kinematics_plugin.cpp:387:30: error: ‘const IKCallbackFn’ {aka ‘const class std::function<void(const geometry_msgs::msg::Pose_<std::allocator >&, const std::vector<double, std::allocator >&, moveit_msgs::msg::MoveItErrorCodes_<std::allocator >&)>’} has no member named ‘empty’; did you mean ‘_M_empty’? 387 | if (!solution_callback.empty()) | ^~~~~ | _M_empty ... It seems that std::function has no member named 'empty'. How can I solve this problem?

@G-Yong this PR is not ready to land, so you won't be able to compile it.
As for this specific issue -- kinematics::KinematicsBase::IKCallbackFn is now a type alias for std::function<>. Previously, it used to be a type alias for boost::function<>. So, previously, the IKCallbackFn::empty() method would return a boolean value indicating whether the function object was empty or not.
Since IKCallbackFn now type aliases std::function<> instead, the workaround here is to replace IKCallbackFn::empty() calls with IKCallbackFn::operator bool() calls as so:
- if (!solution_callback.empty())
+ if (solution_callback)

Unfortunately, I don't have the bandwidth to actually finish this work. If you want to take a drive-by shot at it, I'd be happy to do brief code reviews!