Electron path in 1.3.5 doesn't exist

With the latest update, I am getting this error. Electron is clearly installed, but bytenode is unable to find it. Line 49 in lib/index.js was changed recently which seemed to break it. Console logging electronPath returns just 'cli.js'. Downgrading to 1.3.4 fixes the issue.

I've tested 1.3.5 in both via the Mocha tests in the bytenode repo and via electron-bytenode-example. I can't replicate this error. Maybe @OsamaAbbas will have an idea. But is there a simplified version of the problem that you post somewhere?
It sounds like require.resolve('electron') is returning an empty string for some reason.

I guess the problem is because your electron is locally installed and you are trying to use the globally-installed bytenode.
With the latest change, (global) bytenode will look for the globally-installed electron, not the local one.
This is not the desired behavior in my opinion. Bytenode should always use the locally-installed electron first. I'm not sure if it should look for the global one at all. (This depends on how electron apps building tools work though).
So, as a proposed fix, we can tell the require.resolve function where to look:
const modulePaths = [process.cwd(), ...require.resolve.paths('electron')];
const electronPath = path.join(path.dirname(require.resolve('electron', { paths: modulePaths })), 'cli.js');

Another workaround is to use the locally-installed bytenode: $ ./node_modules/.bin/bytenode -c -e index.js.

I have neither bytenode nor electron installed globally. Both are local to the project. It does seem to be returning an empty string, but I'm not sure why.

If both are installed locally, then I cannot reproduce your issue. If you can create a minimal setup that shows the error, then we can look into it.


Update vsock-proxy command in README.md

Issue #, if available:
old command is no longer functioning
Description of changes:
updated to the new command
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @delonx,
Thank you for the fix.
Best regards,
Alex Gheorghe


Stable output across multiple invocations

If the source code didn't change, it would be helpful if the obfuscated output would stay the same across multiple invocations.

Hi. Check seed option

Thanks. Sorry, I missed it in the docs.


feat: answer validation

Use inline jinja2 templates for validating answers. The template must
return an empty string if valid and a non-empty string used as the error
message if invalid.
Closes #398 .

Continuing from our previous discussion.
I've tried to follow your advice @yajo . However, I am not sure I understand the copier tool in all the ways it is used. I only use it as an interactive application, so that's the use case I've tried to implement.
I did write a few interactive tests, although they are quite simple due to my hardship using the pexpect library to check the tty buffer. I tried to have one test where both invalid cases where checked before finally inserting the valid string, but these intermediary checks would fail and I found it hard to reason with the buffer check, even when dumping the buffer to a log file. So instead I just copied the simple testing scheme that was already laid out and checked both cases individually.
I also tried to implement the library feature, but it is not clear to me how raising a ValidationError can be implemented while also ensuring that the interactive use case works, where validation either returns True or a string used as the interactive error message. This is the interface expected by the library.

Codecov Report

Merging #698 (9767c55) into master (b0b4d31) will decrease coverage by 17.03%.
The diff coverage is 25.00%.

@@             Coverage Diff             @@
##           master     #698       +/-   ##
===========================================
- Coverage   96.65%   79.61%   -17.04%
===========================================
  Files          41       41
  Lines        2896     2943       +47
===========================================
- Hits         2799     2343      -456
- Misses         97      600      +503

Flag
Coverage Δ

unittests
79.61% <25.00%> (-17.04%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

copier/user_data.py
68.88% <21.42%> (-25.04%)
:arrow_down:

tests/test_complex_questions.py
30.10% <27.27%> (-69.90%)
:arrow_down:

tests/test_prompt.py
13.09% <0.00%> (-76.20%)
:arrow_down:

tests/test_updatediff.py
57.02% <0.00%> (-42.98%)
:arrow_down:

tests/test_tools.py
52.00% <0.00%> (-40.00%)
:arrow_down:

tests/test_templated_prompt.py
72.13% <0.00%> (-27.87%)
:arrow_down:

copier/cli.py
81.17% <0.00%> (-16.48%)
:arrow_down:

tests/conftest.py
80.00% <0.00%> (-15.00%)
:arrow_down:

... and 9 more

Continue to review full report at Codecov.

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


Add back config generator test

This was accidentally removed in commit
9da818e054e42975b93c9ecb2c74d279532353cc (#18)

lgmtm

"looks good much to me"


fix typo in javadoc

Cherry-picked into 4.1 (95ee705e17d5829c46a99a95d5cba62858d6e1d5) and 4.0 (1e333f5)


Update UnityProjectInfo to avoid the build break

https://github.com/microsoft/MixedRealityToolkit-Unity/pull/8259/files led to a CI pipeline break in the msbuildforunity project generation step - in particular it looks like the system has some indigestion when dealing with new Oculus.VR.* packages that we've added dependencies on in a few cases.
Since we've turned down the public NuGet updates in favor of upcoming UPM work for 2.5, I've made a tweak to the project generation step to ignore any asmdefs that we have that reference Oculus.VR packages (which should unblock the build)

/azp run


ng-change event doesn't get triggered when using uif-searchbox

Hi,
I am using uif-searchbox and I want to do something on ng-change of uif-searchbox.
but the ng-change event doesn't get triggered on change
ng-cahnge event getting called on click on close button of uif-searchbox

please see in the following js
https://jsfiddle.net/bhosalemahesh899gmailcom/owv9fw4f/27/

Correct... ATM this control like many others does not emit this event. It does use it internally to change the $isDirty flag on the component. Therefore this would be an enhancement.


Update README

Sorry guys I was experiencing issues with the old repository, that's the reason that I've created a new one.
Here you have the first PR about README, let me know if you agree with the stack.

I think we can not wait for more time, then I'm going to merge this branch into develop just to move forward the project.


Install button for extensions opening links to GitHub

SQL Operations Studio Version: 0.29.3
OS: Ubuntu 18.04 using Linux 4.16.7 x64 kernel
Steps to Reproduce:

Attempt to install an extension such as MSSQL Instance Insights, a link to the repo hosting it will appear. I expected sqlops to just download and install the extension just like VSCode does.

@borgdylan this is currently the "By Design" behavior for 3rd-party extensions.  The reason here is that we don't currently have a real extension marketplace, so publishers haven't agreed to a "Terms of Service" and we don't have infrastructure to virus scan the 3rd-party bits.
We're working through the legal compilance story and determining how best to implement marketplace functionality.  In the meantime, the best we could come up with is to launch the extender's landing page and allow users to make a determination if they'd like to install the extension.  We plan to improve this experience overtime.

Closing out older issues.  This is by design until we have proper marketplace integration.  Hopefully that will land sometime this year.  Thanks for reporting this suggestion!


Create pipeline version upload modal

JIRA: RHOAIENG-269
Description

Create a modal which allows user to upload a version for a specific pipeline
Implementation:

When the pipeline is selected, it will automatically generate the name for the version, user can edit it, too

Added a split button on the global pipelines page, which supports both uploading the pipelines and uploading the pipeline versions

Add a dropdown item in the pipeline row action menu, which allows the user to upload new version to a specific

On create run page, add 2 link buttons to support uploading pipelines and pipeline versions on this page

How Has This Been Tested?

Go to the global pipelines page
Try to upload a version or upload a pipeline
You could verify where the version is successfully uploaded in the create run page, if you successfully upload it, you should be able to select it when you create a run
Try to upload a version in the create run page, it will be auto-selected after you create it
Try the upload new version button in the pipeline table row action, it will auto-fill the pipeline selection in the modal

Test Impact

Added a storybook test for the modal, mainly test whether it could generate the version name based on the change of the pipeline selection.
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[x] Included any necessary screenshots or gifs if it was a UI change.
[x] Included tags to the UX team if it was a UI/UX change (find relevant UX in the SMEs section).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

Should we be restricting what one can upload and add validation for the upload input?

I don't know if it makes sense to be able to upload a file type that isn't a .yaml.

Should we be using inline validation on the inputs to preemptively catch errors like these?

and display error text below the fields?

@jpuzz0

Should we be using inline validation on the inputs to preemptively catch errors like these?
I prefer to leave the validation for the pipeline proxy server and show whatever error they return back. We are not sure the exact rule of the naming (though we could possibly find it somewhere), I don't think it worth the effort to do so, and we are lacking of mockup and wording here. So don't worry about this for now, we will do it when we get the customer feedback or feature request from the PMs.

Should the modal inputs be disabled or should we show a loading symbol of some kind while the import is in-progress on submission of the modal? On slower networks, one might experience the modal showing inputs that are still editable while waiting for the request to finish.
At the very least, I believe the Import button could utilize a isLoading flag that PF offers to display a spinner inline with the button text.

/lgtm


[Request] Exclude files

I know nothing about Python or else I would try to contribute to this project, but I think it would be useful to be able to exclude certain files/paths from the generated list of recent changes.
Example:
# mkdocs.yml plugin configuration example
    plugins:
      - git-latest-changes:
          limit_to_docs_dir: True  # [True|False], defaults to False
          repo_vendor: gitea  # [github|gitlab|gitea], defaults to `repo_name`
          enabled_on_serve: True  # [True|False], defaults to True
          exclude: # list of files/paths to exclude from generated list of recent changes, defaults to none
            - index.md
            - notes/*

ChatGPT suggested this:
from pydantic import BaseModel, fields

class GitLatestChangesPluginConfig(BaseModel):
    limit_to_docs_dir: bool = False
    repo_vendor: str = 'repo_name'
    enabled_on_serve: bool = True
    exclude: fields.List[str] = []

You can already restrict the scope of this plugin so that it only tracks changes in/under the docs directory (https://github.com/tombreit/mkdocs-git-latest-changes-plugin/issues/2#issuecomment-1889628931).

Thanks for your response.
I'm aware of that, but I would like to be able to exclude specific files/paths within the docs directory.

Dear @rmscode , I'll close this for now, as this feature is not currently planned.


Added a Project!

I have added a Project: Covid...

update project_doc.md file with the description of your project or add another readme file in your project folder and raise another PR.


Update instructions and/or screenshots

In these instructions, there is a screenshot for the Configure Script step with steps to "provide values" for the parameters. Unfortunately when I add the UpdateManagement-TurnOnVms script, there is indeed a "Parameters" label, however there are no input objects as shown in the example.

Select the script you want to use, in this example, you used the UpdateManagement-TurnOnVms runbook. When you select the runbook the Configure Script page opens, provide values for the parameters, and choose Pre-Script. Click OK when done.

This script no longer takes parameters (then why have the Parameters label?).
This script does take Parameters and they are missing.

If scenario 1) above is true, please remove the "Parameters" label. If scenario 2) above is true, then there may be a bug hiding the correct boxes.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 443146ec-fc40-657f-69fc-55c3b8ce3c8f
Version Independent ID: 8c340541-5b88-b8a3-c547-791189d32c6b
Content: Configure pre and post scripts on your Update Management deployment in Azure
Content Source: articles/automation/pre-post-scripts.md
Service: automation
Sub-service: update-management
GitHub Login: @georgewallace
Microsoft Alias: gwallace

@geglne Thanks for reaching out.. You are correct the runbooks have changed.. I will update the doc. Once I submit the updates the issue will automatically close.

Also...I would think about hiding the “Parameters label when a script has none - feels like something is missing, otherwise.
Thank you,
G. Gallaher
On May 17, 2019, at 12:19 PM, George Wallace <notifications<EMAIL_ADDRESS>wrote:
@geglnehttps://github.com/geglne Thanks for reaching out.. You are correct the runbooks have changed.. I will update the doc. Once I submit the updates the issue will automatically close.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/31501?email_source=notifications&email_token=AFC2XY3UEAKCK3UZ4XSZ6CDPV4ALLA5CNFSM4HNXKFMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVVUJPI#issuecomment-493569213, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFC2XY6DRXWVCXOMZWY6DNLPV4ALLANCNFSM4HNXKFMA.

@geglne Thanks I will pass this info to the team.

We will now close this issue. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


feat(Subject): implement hasObservers

Description:
Related with https://github.com/ReactiveX/rxjs/pull/2279#discussion_r98346733.
I was originally under assumption of Subject::observers is publicly exposed as readonly to allow check Subject has observer or not, But since it's encapsulated, current implementation of subject does not have way to check if it has observers or not. This PR implements Subject::hasObservers corresponds to RxJS v4.
Related issue (if exists):

Coverage increased (+0.0007%) to 97.688% when pulling cfedb62968a1c761deb0986187485d9b804d24d5 on kwonoj:feat-subject-hasobserver into 023d436b3beead009bbbb24593775b51c9b97623 on ReactiveX:master.

@kwonoj ... I think for the purposes of our unit tests, we can just cast as . I don't think this addition is necessary, as whether or not any Subject or Observable has observers is a very imperative API to expose that almost boils down to an implementation detail.

@blesh so you're thinking v5 no longer need https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/subjects/subject.md#rxsubjectprototypehasobservers and shouldn't expose any details related with observers?

To clarify: I'm indifferent of having this interfaces, but observed some cases ppl looking this in v5 since .net / Java / RxJS v4 binding has equivalent interfaces. (https://github.com/ReactiveX/rxjs/issues/2232, http://stackoverflow.com/questions/41410452/what-replaces-subject-prototype-hasobservers) and trying to make ppl to not to access observers directly for those purpose by lacks of interfaces. If there's recommended pattern (either replaces hasObservers or more better pattern do not require hasObservers) then I think it'll be fine. Just need to ensure Subject::observers is encapsulated and should not be accessed in general.

@benlesh old doesn't mean this doesn't go away - v5, v6 both don't have equivalent of v4's interfaces, while it does seem like it's just not picked up and it's breaking changes. If we think those breaking change was intended we could close issue, but in that case we may need some documentation of how-to achieve same behavior without this interface. (or other reasoning why we dropped vice versa)

hasObservers was omitted for a few reasons:

I'm not sure it existed at the time we started writing v5 (because then it wasn't "v5" it was really going to be "v3" haha)..
Imperative examination of a Subject's state is a bit of a smell.
It's not a feature anyone has asked for or missed that I'm aware of
I'm not sure what solid use cases it has.

@kwonoj can we close this?

closing's fine but plz update migration docs at least.


Can it depend on xml ^5.0.0 ?

Hi! I'm currently trying to use the package but I'm having problems on solving dependencies. Seems like flutter_svg package uses a newer version of xml package and that generates an inconsistence. See my output below:
[pvsadmin] flutter pub get Running "flutter pub get" in pvsadmin...                         Because excel >=1.0.4 <2.0.0-null-safety depends on xml ^4.1.0 and flutter_svg 0.22.0 depends on xml ^5.0.0, excel >=1.0.4 <2.0.0-null-safety is incompatible with flutter_svg 0.22.0. And because no versions of flutter_svg match >0.22.0 <0.23.0, excel >=1.0.4 <2.0.0-null-safety is incompatible with flutter_svg ^0.22.0. So, because pvscontrol depends on both flutter_svg ^0.22.0 and excel ^1.1.5, version solving failed. pub get failed (1; So, because pvscontrol depends on both flutter_svg ^0.22.0 and excel ^1.1.5, version solving failed.) exit code 1
So currently I cant use both packages at the same time. But I would love to try yours!

You can ref to version 2.0.0 -null-safety-3. It works for me.


update of jboss-parent to version 21

@lordofthejars just to track what was done in core and other extensions while ago

Thanks


Keyboard gtk

2 commits...
1st is fixing #158
2nd is handling weird GTK behaviour of making difference between lower and upper case letters

@ncarrillo @kekekeks


Add Jolly-Hampton stratification section

This supersede #281.

@brandynlucca : This PR is ready for review. I used the form of equations from the original paper. I have not tried to add the DOF condition for the $n^t=1$ case, but can do that if you think we should have it.

Hey @brandynlucca - could you review this? Thanks!

Everything looks good to me, so I'll go ahead and merge this!


Code-insider: downloading update never completes

VSCode Version: Code-insider 1.30.0-insider
OS Version: macOS 10.12.x

Steps to Reproduce:
It's always in downloading status, but never completed.

Does this issue occur when all extensions are disabled?:
Yes
Is this because there's a previous broken download? Where can I clean it to retry the update?

Had the same issue today, but it eventually downloaded and updated itself. (OS Win10)

@usernamehw thanks, I'll retry and leave it for a longer time.

no luck after I kept it there for one day...
I guess there was a previous broken download causing the downloading would never complete... just want to know the directory where the downloaded files are located so I can clean it first and retry another update.

I uninstalled the broken one and reinstalled code-insider, the problem is gone.
closing this then.


Bell-Bag Rug

The Bell-Bag rug is missing from the rug collections.

I can’t confirm this. Found it on the top of the rug collection


Knee CLipper graphics bug

Dear chkhld,
Sometimes when I load Knee Clipper, the graphics look like this instead of the I/O levels.

Thank you for an awesome plugin, though!

Hi @cue-zephyr
I know it's been a while, but I finally had some time to spend to look into this. I could recreate the problem here, and I believe I could fix it. Please update your installation to the latest version, and let me know if you still experience this issue.
Here's a link to the plugin code directly:
https://github.com/chkhld/jsfx/blob/main/Clipper/knee_clipper.jsfx
And of course, since the latest update, you can now also install this via ReaPack.

I was going to create a new issue but found this was already reported. It seems the problem is still present in the latest version, I noticed the fix added in 9cda735de2cdbf282a33bddec8a44c5354a32123 was later removed in 07a0be084c99b278e868146bc7eb7892b2434390.
This bug happens when pressing play, but resizing the plugin's window afterwards seems to fix it (this has to be done each time after pressing play), perhaps this problem is related to gfx recalculation?


tests:cgroups: add tests to emulate k8s hierarchies

Signed-off-by: Djalal Harouni<EMAIL_ADDRESS>

Goes on top of this: https://github.com/cilium/tetragon/pull/471
This handles k8s cgroup hierarchy emulation on both cgroup unified and hybrid modes, without exec+cgroupID context that one will be in a follow PR as it will include some fixes. We have some cgroup helpers that were before this work and they never worked, fix will be in this follow up PR.

Thanks Djalal!
Please find some comments bellow.

Did the changes, much appreciated @kkourt ! hope it will be green ;-)

Thanks! Generally LGTM! I have some questions/nits.

Much appreciated! all answered and changes done.


[Accordion Menu] is-active class on inactive ul not getting removed

What should happen?
When closing a accordion-menu-item via a subtoggler in a accordion-menu, the class is-active should be removed from the ul within the list-item.
What happens instead?
The class is-active stays on the element, even if you close the item via a subtoggler.
Possible Solution

The class is added in the "down" event:
https://github.com/zurb/foundation-sites/blob/develop/js/foundation.accordionMenu.js#L243
The class should be removed in the "up" event, but its missing:
https://github.com/zurb/foundation-sites/blob/develop/js/foundation.accordionMenu.js#L266
...
Test Case and/or Steps to Reproduce (for bugs)

Test Case:
You can check out the docs at:
https://foundation.zurb.com/sites/docs/accordion-menu.html#submenu-toggle
Just inspect the <ul> and check out the is-active class.
Here is a code pen of the same examples from the doc using 6.5.0. Same thing as above inspect the <ul> and notice is-active class does not disappear when the menu is closed. This includes submenus as well
https://codepen.io/Bakuryu/pen/RqRRNK?editors=1000
Context

I want to style the active state of menu elements, this is impossible without the proper behavior pattern of the toggled element.
Your Environment

Foundation version(s) used: 6.5.0
Browser(s) name and version(s): All
Device, Operating System and version: Windows 10

Checklist

[x] I have read and follow the CONTRIBUTING.md document.
[x] There are no other issues similar to this one.
[x] The issue title and template are correctly filled.

According to https://github.com/zurb/foundation-sites/issues/11383 it should have been fixed in 6.5.0 RC3 and later but it seems it was not fixed there.
A regression or did it not land in the new releases @ncoden?
Also I think we can catch this with a unit test.

The patch is still there in v6.5.0:
https://github.com/zurb/foundation-sites/blob/e83e18899b4949a15d1f09dd34c53e201605a507/js/foundation.util.nest.js#L60
I remember having tested this manually. I'll check that again and add some unit tests if necessary. Thank you for the report @Bakuryu @DanielRuf

Ok so https://github.com/zurb/foundation-sites/pull/11469 removed the is-active class when menus where destroyed. But the bug in this issue and #11383 is for when the a submenu is closed.
Closing as duplicate and reopening the old issue.

Duplicate of https://github.com/zurb/foundation-sites/issues/11383


Error while exporting Slices on a Druid datasource

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.11.1-py2.7.egg/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.11.1-py2.7.egg/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.11.1-py2.7.egg/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.11.1-py2.7.egg/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/Flask-0.11.1-py2.7.egg/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python2.7/dist-packages/caravel-0.12.0-py2.7.egg/caravel/views.py", line 907, in download_dashboards
    models.Dashboard.export_dashboards(ids),
  File "/usr/local/lib/python2.7/dist-packages/caravel-0.12.0-py2.7.egg/caravel/models.py", line 577, in export_dashboards
    database_name=slc.datasource.database.database_name,
AttributeError: 'DruidCluster' object has no attribute 'database_name'

@bkyryliuk: can you link the related PR in which this has been fixed ?

@bkyryliuk @mistercrunch: Any followup available?  Was this issue addressed?

Still facing this issue. @mistercrunch any proposed work around for this?


Content displays, then loading animation plays for a moment before content reappears

When I view any component page, the content from NPM displays for a flash before being replaced by the loading animation, which plays for a moment before being replaced again by the NPM content.

Thanks for reporting. There seems to be some slight, subtle differences with our markdown parser when running it on the server and in the browser. We'll look into it and try to get a fix out soon.

FYI, this seems to not be happening for me any more


Support for expo.io

Expo now supports both random and crypto modules, making possible a native integration with the platform.

@imetallica, @shauntrennery
I looked at the expo modules as part of the library refactor.
There are 2 issues at the moment:

While random is fine, the crypto module doesn't seem to support hmac generation, which is what is needed for OTP.
There isn't a simply way for me to add tests for it outside of the expo ecosystem.

I might be missing something since I ain't familiar with expo.io as a platform.
Any thoughts?

Sorry for the delay, I got stuck at working on something else.
Yeah, maybe the lack of hmac support is a huge blocker for the implementation. Not sure what should we do in this case.

Looks like dependency on external libraries like crypto-js will still have to proceed until native support comes.
Just need to keep an eye on it.

I have working in react-native-web with expo and crypto-js. However when I try to put on iOS or Android I've run into an issue where Buffer is a Node primitive and is not part of React Native. Either Buffer needs a shim for React Native or a refactor.

Hi @smithydll  Which package are you using at the moment? it it the browser version?

Using @otplib/core returns missing variable Buffer when trying to build on iOS and Android using expo, I think this is related to what @smithydll said @yeojz
import { createDigest, createRandomBytes } from '@otplib/plugin-crypto-js';
import { keyDecoder, keyEncoder } from '@otplib/plugin-base32-enc-dec';

const authenticator = new Authenticator({
  createDigest,
  createRandomBytes,
  keyDecoder,
  keyEncoder
});```

These are my React Native imports if that helps.
import { totpToken, totpOptions, KeyEncodings } from '@otplib/core';
import { keyDecoder, keyEncoder } from '@otplib/plugin-base32-enc-dec';
import { createDigest, createRandomBytes } from '@otplib/plugin-crypto-js';
import QRCode from 'react-native-qrcode-svg';

I then try to generate a one time code from a token.
      const totp = totpToken(
        keyDecoder(totp_token, KeyEncodings.HEX),
        totpOptions({
          createDigest,
          encoding: KeyEncodings.HEX
        })
      );

Then get the issue reported by @Oliyy
I have now resolved my issue by importing feross/buffer.
npm i buffer
then in app.tsx
import { Buffer } from 'buffer';

global.Buffer = Buffer;

see https://github.com/feross/buffer/issues/206


Use full paths, especially in setup and utils.build_interface

Currently, the code uses paths relative to the source root directory. However, it is very possible that the user has a different current-directory when calling functions from this code.
For use outside of the setup function (in build_interface), can have a util.getRootSourceDir() function, to get the path to append to relative paths, using fullfilename.
However, during setup, our code is not yet on the path, so there will have to use a local variable.
In both cases, will use mfilename('fullpath'), with the correct amount of fileparts() calls around it, to get the root source directory path.
E.g. in setup, instead of addpath neuron, have
rootSourceDir = fileparts(mfilename("fullpath"));
addpath(fullfile(rootSourceDir, 'neuron'));

Closed by pull request #42


feat: center around active tab

Would it be possible to add an option to center the tab bar around the active tab? I have limited space on my top bar and would like to only see a few tabs around the current active tab, rather than just the first five or ten.

Did you change the amount of characters inside preferences?
And maybe remove the spaces around the tab seperator for more space.
But I like your idea, maybe i will look into something like that.

I did mess around with the spacing and the character max, but it seems like that wouldn't be a consistent fix as would still be dependent on the number of tabs open. I can see if I can put a PR together if I figure out a fix.

I think this might work havent tested.
Just have to active this when more than some number of tabs are present.
it also need to do some check when activeTab.index-TABS_SHOW_AROUND < 0
also need to truncate title
TABS_SHOW_AROUND = 2; function aroundTabs(){     getCurrentWindowTabActive().then((activeTab) => {         getCurrentWindowTabs().then((tabs) => {             let tabsList = '';             for (let tab of tabs){                 if(tab.index >= activeTab-TABS_SHOW_AROUND && tab.index <= activeTab.index+TABS_SHOW_AROUND){                     if(tab.active){                         tabsList += || >>${tab.title}<< ;                         continue;                     }                     tabsList += || ${tab.title} ;                 }             }             changeTitleWindow(tabs[0].windowId, tabsList);         });     }); }

I think this might work havent tested.
Just have to active this when more than some number of tabs are present.
it also need to do some check when activeTab.index-TABS_SHOW_AROUND < 0
also need to truncate title
TABS_SHOW_AROUND = 2;
function aroundTabs(){
    getCurrentWindowTabActive().then((activeTab) => {
        getCurrentWindowTabs().then((tabs) => {
            let tabsList = '';
            for (let tab of tabs){
                if(tab.index >= activeTab-TABS_SHOW_AROUND && tab.index <= activeTab.index+TABS_SHOW_AROUND){
                    if(tab.active){
                        tabsList += `|| >>${tab.title}<<` ;
                        continue;
                    }
                    tabsList += `|| ${tab.title}` ;
                }
            }
            changeTitleWindow(tabs[0].windowId, tabsList);
        });
    });
}

function getCurrentWindowTabActive(){
    return browser.tabs.query({currentWindow: true, active: true});
}

@aaronclimbs I see you forked, but i added a cycle mode you can enable in settings.
If you are working on it I would like to see how you would do it.


Cant upload media when language is changed

Hey I just finished translation for german which can be grabbed from my fork.
When changing the default language to german, I'm no longer able to upload media.
A red info window will apprear on the upper right hand side, stating "There was an AJAX error. Try again".
But nothing changes until I do revert the language back to english again.
Feel free to also test this on my testbed available @ http://staging.amc-idstein.de
Let me know if I can be of any help.

This should now be fixed.


Broken @oasisprotocol/sapphire-hardhat installation

SUMMARY
Following https://docs.oasis.io/dapp/sapphire/quickstart#init-a-new-hardhat-project fails when invoking
pnpm add -D @oasisprotocol/sapphire-hardhat

 ERR_PNPM_WORKSPACE_PKG_NOT_FOUND  In : "@oasisprotocol/sapphire-paratime@workspace:^" is in the dependencies but no package named "@oasisprotocol/sapphire-paratime" is present in the workspace

This error happened while installing the dependencies of<EMAIL_ADDRESS>
Packages found in the workspace:
Progress: resolved 3, reused 1, downloaded 1, added 0

Similarly, yarn add -D @oasisprotocol/sapphire-hardhat requires from you to select a version, which seems awkward:
[1/4] Resolving packages...
Couldn't find any versions for "@oasisprotocol/sapphire-paratime" that matches "workspace:^"
? Please choose a version of "@oasisprotocol/sapphire-paratime" from this list: (Use arrow keys)
❯ 1.2.2
  1.1.4
  1.1.3
  1.1.1
  1.1.0
  1.0.15
  1.0.14
  1.0.13
  1.0.11
  1.0.10
  1.0.9
  1.0.7
  1.0.6
  1.0.5
  1.0.4
  1.0.3
  1.0.2
  1.0.1
  1.0.0

ISSUE TYPE

Bug Report

STEPS TO REPRODUCE

Follow https://docs.oasis.io/dapp/sapphire/quickstart#init-a-new-hardhat-project
ACTUAL RESULTS

Returns error, see above.
EXPECTED RESULTS

Should install @oasisprotocol/sapphire-hardhat without issues.

cc @ptrus

This should be resolved with sapphire-hardhat v2.19.4 and sapphire-paratime v1.3.0

Worked for me. (re-tried it some hours ago)


Code examples in docs link to master regardless of doc version

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
Browsing v4-7-2. docs, the code example points to master: https://v4-7-2.material-ui.com/components/snackbars/#customized-snackbars
Browsing the latest version of docs, the code examples point to master and not to the latest released version: https://material-ui.com/components/snackbars/#customized-snackbars
In this particular case, the code example is not usable as the Alert component hasn't been released yet.
Expected Behavior 🤔
A specific version of the doc should reference the same specific version of the code. The current version should reference the latest release.

This sounds relatively simple to fix. Thanks for raising.

Based on #19112, we are going with a different plan of action:

We will keep the link to master, to help contributors
We will move the GitHub link away from the toolbar, hiding it in the menu, as it should rarely be used
We will move the copy link from the menu to the toolbar.


Feedback on error generating the preview

I think, it would be nice, if the user gets a feedback as a message box, when you fail to generate the preview. At least for me right now, it's the most common problem.
I see the error in the command window, but when you start python without command window, you don't get any feedback and your program just doesn't react to the click on preview
I'm talking about these errors:
Traceback (most recent call last):
  File "noteorganiser\NoteOrganiser.py", line 145, in previewNotebook
    self.preview.loadNotebook(notebook)
  File "c:\_programmierung\noteorganizer\fork\noteorganiser\noteorganiser\frames.py", line 391, in loadNotebook
    os.path.join(self.info.level, notebook), tags)
  File "c:\_programmierung\noteorganizer\fork\noteorganiser\noteorganiser\frames.py", line 416, in convert
    path, input_tags=tags)
  File "c:\_programmierung\noteorganizer\fork\noteorganiser\noteorganiser\text_processing.py", line 236, in from_notes_to_markdown
    title, posts = extract_title_and_posts_from_text(text)
  File "c:\_programmierung\noteorganizer\fork\noteorganiser\noteorganiser\text_processing.py", line 211, in extract_title_and_posts_from_text
    posts[index] = normalize_post(post)
  File "c:\_programmierung\noteorganizer\fork\noteorganiser\noteorganiser\text_processing.py", line 146, in normalize_post
    dashline_index = post.index(dashes[0])
IndexError: list index out of range

in this case, the problem was generated by this text:
-	--  nicht moeglich

it's a list-item with two dashes in the listitem-text but it looks like your code ignores the whitespace and sees three dashes. When i change it to
-	-\-  nicht moeglich

it works again.
It's no problem, but I run into these problems from time to time and it would be nice to get a feedback, when i click on preview

I agree something is needed, instead of the current silent failure. Would a popup, with the error message, work? I think this is the most logical solution for the interface.

Yes, I think, a popup would be the logical thing. The question is what to put in as message. Just the error text? Can a user interpret that?

Well, there are two cases.
Either it is a foreseen error (for instance, many possible errors have been taken into account in text_processing.py), and display a relatively clear error message at the end of the trace.
Or it is an unexpected error, in which case the stack trace is still a better information than none, and it will eventually be caught and processed to give a better error.
So: stacktrace! That might be scary for a few people, but it is cleaner than a silent failure with no indication.

Yes, I totally agree
Am 22. April 2015 13:58:31 MESZ, schrieb Benjamin Audren<EMAIL_ADDRESS>
Well, there are two cases.
Either it is a foreseen error (for instance, many possible errors have
been taken into account in
text_processing.py), and display a
relatively clear error message at the end of the trace.
Or it is an unexpected error, in which case the stack trace is still a
better information than none, and it will eventually be caught and
processed to give a better error.
So: stacktrace! That might be scary for a few people, but it is cleaner
than a silent failure with no indication.

Reply to this email directly or view it on GitHub:
https://github.com/baudren/NoteOrganiser/issues/18#issuecomment-95148919

There you go. I realised, while improving error messages, that there are some things still going wrong, like if you mess up a little bit your underlining of a post title, it is ignored completely:
...
A very nice post
--------_-----------
# mistakes, can, happen
...

But maybe this belongs to a new issue

ok, i'll try to test this

@baudren some errors are handled nicely by a popup
I found one that isn't handled yet:
If you have an empty line where the tags should be
test
----

*25/04/2015*

this is the post

Traceback (most recent call last):
  File "C:\_Programmierung\noteorganiser\fork\NoteOrganiser\noteorganiser\NoteOrganiser.py", line 190, in previewNotebook
    if self.preview.loadNotebook(notebook):
  File "c:\_programmierung\noteorganiser\fork\noteorganiser\noteorganiser\frames.py", line 410, in loadNotebook
    os.path.join(self.info.level, notebook), tags)
  File "c:\_programmierung\noteorganiser\fork\noteorganiser\noteorganiser\frames.py", line 445, in convert
    path, input_tags=tags)
  File "c:\_programmierung\noteorganiser\fork\noteorganiser\noteorganiser\text_processing.py", line 249, in from_notes_to_markdown
    tags, post = extract_tags_from_post(post)
  File "c:\_programmierung\noteorganiser\fork\noteorganiser\noteorganiser\text_processing.py", line 95, in extract_tags_from_post
    return tags, post[:2]+post[3:]
UnboundLocalError: local variable 'tags' referenced before assignment

Indeed. Now it is done, but the next step is to make these traceback more verbose. I reopen the issue to address this, because currently, it is more like a workaround than anything.

With 8f0c24d and  ef83c07, I caught properly the two possible errors mentionned in this thread. One was actually due to the function is_valid_post which was not completely working as expected. I replaced a bunch of find to their more robust regular expressions counterparts. Overall, error messages should be less painful now.
Feel free to close the issue if you think it is ok now.

The changes look good.
I'll test a bit tomorrow and close it then.
Just out of interrest, wouldn't it be easier to actually test for a date instead of the regex? There should be a method, right? something like toDate(string) != null

@egolus, as far as I know, the datetime module allows you to parse a date in a predefined format. It can not interpret any valid date string into a date, because of the different possible conventions.
Of course, in the situation 23/01/2015, there is no possible concern on which entry is the day/month/year, but for many other cases, you have to impose a format for the date, essentially boiling down to a regex (which was faulty previously, by the way :disappointed: ). So I think that I can keep my painfully constructed regex.
What I could do, however, is specify the expected date format somewhere in the error message!

I've found some cases that problably don't behave as intended:
you generate a tag ' ' (empty string) if there is no text in the tag-line:
test
--------
#

*25/04/2015*

this is the post

you generate an empty post, if there is no empty line after the tag-line:
test
--------
#tag
*25/04/2015*

this is the post

Can we close this? All issues I found are fixed, right?

Yes! The releqse is done, by the way. Onwards to 0.3!


external vs view into shared buffer?

@nselliott pointed out an issue with reading external buffers in the VisIt Blueprint plugin.
The files were created with src/axom/sidre/examples/sidre_createdatastore.cpp
I found the issue with the VisIt plugin, however I am still a bit confused b/c I did not expect these fields to be written out as "external".
Here is the snippet that creates the views:
  // "x", "y", and "z" are three views into a shared Sidre buffer object that
  // holds 3 * nodecount doubles.  These views might describe the location of
  // each node in a 16 x 16 x 16 hexahedron mesh.  Each view is described by
  // number of elements, offset, and stride into that data.
  Buffer* buff = ds->createBuffer(sidre::DOUBLE_ID, 3*nodecount)->allocate();
  nodes->createView("x", buff)->apply(sidre::DOUBLE_ID, nodecount, 0, 3);
  nodes->createView("y", buff)->apply(sidre::DOUBLE_ID, nodecount, 1, 3);
  nodes->createView("z", buff)->apply(sidre::DOUBLE_ID, nodecount, 2, 3);
  // _first_example_nodes_end

(With the fix) in VisIt I am definitely reading them as external views from the HDF5 file:
loading mesh/coordsets/coords/values/x as sidre external view
relay:io::hdf5_read domain 0 : datagroup_0000000/sidre/external/mesh/coordsets/coords/values/x

Is this expected? I expected them to simply be a view into a known buffer.
@kennyweiss @agcapps any thoughts?

I think the issue is actually here:
void setup_blueprint_coords(DataStore* ds, Group* coords)
{
  // _blueprint_restructure_coords_start
  // Set up the coordinates as Mesh Blueprint requires
  coords->createViewString("type", "explicit");
  // We use prior knowledge of the layout of the original datastore
  View* origv = ds->getRoot()->getView("nodes/xs");
  Group* conduitval = coords->createGroup("values");
  conduitval->createView("x", sidre::DOUBLE_ID,
                         origv->getNumElements(),
                         static_cast<double*>(origv->getArray()));
  origv = ds->getRoot()->getView("nodes/ys");
  conduitval->createView("y", sidre::DOUBLE_ID,
                         origv->getNumElements(),
                         static_cast<double*>(origv->getArray()));
  origv = ds->getRoot()->getView("nodes/zs");
  conduitval->createView("z", sidre::DOUBLE_ID,
                         origv->getNumElements(),
                         static_cast<double*>(origv->getArray()));
  // _blueprint_restructure_coords_end
}

We are severing the relationship to the view.  This means that the data is actually being written twice (once for the actual buffer and again here as an external buffer)

@cyrush -- so, it sounds like the problem is that we should be using this function:
https://github.com/LLNL/axom/blob/9017f6c2ff279d7a4c4037783311ba70dcd6af33/src/axom/sidre/core/Group.hpp#L505-L524
rather than this one:
https://github.com/LLNL/axom/blob/9017f6c2ff279d7a4c4037783311ba70dcd6af33/src/axom/sidre/core/Group.hpp#L598-L618

Note: this would also make the code cleaner.  I.e. this call
  conduitval->createView("x", sidre::DOUBLE_ID,
                         origv->getNumElements(),
                         static_cast<double*>(origv->getArray()) );

can be replaced by this one:
  conduitval->createView("x", sidre::DOUBLE_ID,
                         origv->getNumElements(),
                         origv->getBuffer() );

@cyrush The situation here is that there are two DataStores--The first allocates and initializes the data using regular Sidre buffers, and the second creates Views that point at that data as raw pointers to external data.  Only the second is used in the I/O in this example.
@kennyweiss It depends on what we're trying to test.  As it is now, the first DataStore simulates an application that owns its data and could have set it up in any manner, while the second DataStore is created to give a Sidre description of that existing data, which it only sees as raw pointers.  The fact that Sidre was used to create the first doesn't matter to the second.  Your proposed change would test a case where the second DataStore is re-using existing Sidre buffers that it knows about from the first DataStore.

@nselliott Thanks for the details.  I did not fully understand the example. For testing its very useful -- it show some complex stuff that we support.
The concern I have is that the example implies we have to create a new datastore in order to output Blueprint meshes. That's not the case and that's not how I would recommend using it, yet thats our only example in the docs :-) We should think about a simpler example to help teach people for the docs.

@cyrush I should revisit this to get simpler example in the docs without losing this more complicated test coverage.

@nselliott sounds like a good plan

@cyrush @kennyweiss Am I correct to observe that it is unsupported behavior for a View created in one DataStore to point to an existing Buffer in another DataStore?  (Using explicit Buffer syntax as in comment from @kennyweiss on May 23.)  It doesn't trigger an error, but if DataStore A creates a Buffer, and then DataStore B creates a View that points to that Buffer, it looks like whichever DataStore is deallocated first deallocates the buffer without the other DataStore knowing.  I haven't fully diagnosed if this is actually happening, but it seems likely it is what is causing a crash to occur as I'm trying to modify this test.  Seems like either this usage should trigger an error unless we want to find a way to truly support it.
I can do my test mods using only one DataStore, so this isn't blocking me from anything.

@nselliott correct,  i don't think we want to support views that into buffers in another datastore, except for the fully "external" view case.  Does that make sense?
External views should be ok, however they come with the same caveats -- you as the user have to make sure the pointer is valid. If the own datastore cleans up, you can't use that pointer anymore.
I do think it would be good to protected agains some of these cases. That said, I really don't think we should recommend folks using multiple data stores.  That should only be needed for super advanced use cases, and I'd argue folks would need as strong handle on Sidre implementation details.

When I wrote that example, I was trying to show how to export some data stored in Sidre according to the blueprint.  The only way I could think to do this was to create a new blueprint-conforming Datastore that pointed into the original Datastore, and save the conforming Datastore.  It is not simple and does make race conditions.
@cyrush and @nselliott , it makes sense to me that a View should not be constructed with a Buffer from another Datastore.  If a View actually does need to point into data residing in another Datastore, the user should make it an external View (basically what you said, @cyrush ).

@agcapps I've been able to modify things so that everything exists in one DataStore, which allows us to use Buffers, and I think it makes things easier to explain, but unfortunately this makes the documentation you wrote obsolete, including the PNG figures.  I can edit the text, but the figures will be more difficult.

No problem: when you have a branch or PR, point me to it and I'll update the figures.
From: Noah Elliott<EMAIL_ADDRESS>Reply-To: LLNL/axom<EMAIL_ADDRESS>Date: Tuesday, July 16, 2019 at 10:58 AM
To: LLNL/axom<EMAIL_ADDRESS>Cc: "Capps, Arlie"<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [LLNL/axom] external vs view into shared buffer? (#45)
@agcappshttps://github.com/agcapps I've been able to modify things so that everything exists in one DataStore, which allows us to use Buffers, and I think it makes things easier to explain, but unfortunately this makes the documentation you wrote obsolete, including the PNG figures. I can edit the text, but the figures will be more difficult.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/LLNL/axom/issues/45?email_source=notifications&email_token=ALV2FMPKYMB2S3UMVWAMBHLP7YDZHA5CNFSM4HPIEJD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2BU4DA#issuecomment-511921676, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALV2FMP7HI4TIPOQHPS5CCDP7YDZHANCNFSM4HPIEJDQ.


[ISSUE #4725] Update issue template and remove deprecated connector docs

Fixes #4725.
Motivation
The connector usage documents will be maintained and updated in https://eventmesh.apache.org/docs/next/design-document/connect/connectors and https://github.com/apache/eventmesh-site repo. Markdown files can not be distributed along with binary packages.
Modifications
Connector docs deleted.
The EventMesh release versions in issue template has been updated.
The code block of Debug log sector in pull request template has been enabled.
The writing style of #issue_id allows users to select all the characters following the # symbol on the pull request creation page with just a double-click, enabling them to easily paste the issue ID from the clipboard.
Please merge https://github.com/apache/eventmesh-site/pull/170 before merging this PR.
Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

This PR is ready for merging since https://github.com/apache/eventmesh-site/pull/170 is online.

LGTM


[Core] Move #includes from project_settings.h into project_settings.cpp

Just looked at the core code and saw that extra includes can be moved to .cpp. I moved it and the project compiled without errors

Please squash your commits into one, see here

Thanks!


Confused about how to actually export symbols from an executable

Hello! I am using the latest SDK. I am a bit confused on how to actually export functions in a WASM module that's executable and has a main() and a _start() (not reactors).
According to docs on LLVM (https://lld.llvm.org/WebAssembly.html) I should be able to set an attribute or use a linker flag to export my function but I can't export even a single symbol except _start:
#include <iostream>
int main(int argc, char **argv)
{
  std::cout << "Hello, World!" << std::endl;
  return 0;
}

__attribute__((visibility ("default")))
__attribute__((export_name("help")))
void help(void){ /* no-op*/ }

I also tried --export-all, --export-dynamic and --export-symbol=help with no luck. LLVM complains about missing symbols. What am I doing wrong?
 I was incorrectly using the wasi sdk that default ships with wasienv (currently it's pointing to sdk v8).
I upgraded my wasi sdk to latest v16 and exports are showing up. Closing.


Intermittent e2e test failures

I'm seeing random test failures on the e2e tests recently.  The error seems to be due to a selector returning multiple options for a "delete" button:
Error: locator.click: Error: strict mode violation: getByRole('button', { name: 'Delete' }) resolved to 2 elements:
    1) <button type="submit" aria-label="Delete DNS record" cla…>…</button> aka getByRole('button', { name: 'Delete DNS record' })
    2) <button type="submit" class="chakra-button cha-zrxcer">Delete</button> aka getByRole('button', { name: 'Delete', exact: true })

=========================== logs ===========================
waiting for getByRole('button', { name: 'Delete' })
============================================================

  54 |     await dnsRecordRow.getByRole('button', { name: 'Delete DNS record' }).click();
  55 |     // Click on delete button in modal
> 56 |     await page.getByRole('button', { name: 'Delete' }).click();
     |                                                        ^
  57 |     // Since there should be no DNS Records at this point, the table shouldn't exist
  58 |     await expect(page.locator('table')).toBeHidden();
  59 |   });

    at /home/runner/work/starchart/starchart/test/e2e/dns-record-table.spec.ts:56:56

What's up with these 2 delete buttons?  cc @Eakam1007, @Myrfion

https://github.com/DevelopingSpace/starchart/actions/runs/4700553392/jobs/8335400208 is an example of a PR by @Ririio, but I've seen it in other PRs today too.  Sometimes it happens, sometimes it doesn't.

When we click on the Delete DNS Record table on the table, a modal pops up with another Delete button to confirm the delete.
Seems like the selector is picking up both of them since they both start with "Delete". This is an easy fix by simply making the selector more specific so it only selects the button in the modal.
I'll change it later today


Preserve case results in broken HTML with additional emtpy lines

With preserve case enabled for tags, the .html() returns additional empty lines in some cases and does some weird stuff with the
-tags.
Example
Input HTML

Test Line 1

Test Line 2

Test Line 3

Code
String input = "
Test Line 1
\n
Test Line 2
\n
Test Line 3
";
Parser customParser = Parser.htmlParser();
customParser.settings(new ParseSettings(true, true));
Document doc = Jsoup.parse(input, "", customParser);

String output = doc.body().html();

Output HTML

 Test Line 1

  Test Line 2

   Test Line 3

When preserve case is disabled for tags, it works as expected.
customParser.settings(new ParseSettings(false, true));

Unfortunately, I need to preserve the case of tags.
The same happens when I use the XML-parser to parse the HTML, since it preserves the tag's case by default.

Hi, thanks for the report. I confirmed that this issue is fixed with this commit: 7ff7c43e9fbf4bbaf2b4517b3d4f8a429d87d3bb
Which is in HEAD now and will be in 1.12.1


Datagrid: Unable to import FilterFlyout

What package(s) are you using?

[X] Carbon for IBM Products (or Carbon for IBM Cloud & Cognitive)
[ ] Legacy/CDAI
[ ] Legacy/Security

Detailed description

Describe in detail the issue you're having.

I cannot import FilterFlyout component in my DatagridActions custom component, like in the DatagridActions example

Is this issue related to a specific component?

Yes, Datagrid

What did you expect to happen? What happened instead? What would you like to
see changed?

This component seems like the indented way to use filters in datagrid, so I would expect it to available for use

either through import, like it is used in the DatagridActions example
or through the datagridState, like CustomizeColumnsButton is used.

What version of the @carbon/ibm-products (or @carbon/ibm-cloud-cognitive)
package are you using?

"@carbon/charts": "1.6.1",
"@carbon/charts-react": "1.6.1",
"@carbon/elements": "11.17.0",
"@carbon/ibm-products": "2.0.0-rc.10",,
"@carbon/react": "1.19.0",

Additional information
NA

Solved in #2639 , #2638 🚀


chore: release main

:robot: I have created a release beep boop
accesskit: 0.12.1
0.12.1 (2023-11-04)
Bug Fixes

Add missing semicolons when not returning anything (#303) (38d4de1)

accesskit_c: 0.6.1
Dependencies

The following workspace dependencies were updated

dependencies

accesskit bumped from 0.12.0 to 0.12.1
accesskit_windows bumped from 0.15.0 to 0.15.1
accesskit_macos bumped from 0.10.0 to 0.10.1
accesskit_unix bumped from 0.6.0 to 0.6.1

accesskit_consumer: 0.16.1
0.16.1 (2023-11-04)
Bug Fixes

Add missing semicolons when not returning anything (#303) (38d4de1)

Dependencies

The following workspace dependencies were updated

dependencies

accesskit bumped from 0.12.0 to 0.12.1

accesskit_macos: 0.10.1
Dependencies

The following workspace dependencies were updated

dependencies

accesskit bumped from 0.12.0 to 0.12.1
accesskit_consumer bumped from 0.16.0 to 0.16.1

accesskit_unix: 0.6.1
Dependencies

The following workspace dependencies were updated

dependencies

accesskit bumped from 0.12.0 to 0.12.1
accesskit_consumer bumped from 0.16.0 to 0.16.1

accesskit_windows: 0.15.1
0.15.1 (2023-11-04)
Bug Fixes

Make the test focus event handler thread-safe again (#306) (bb479c6)
Make the Windows subclassing test more robust (#308) (0078f79)

Dependencies

The following workspace dependencies were updated

dependencies

accesskit bumped from 0.12.0 to 0.12.1
accesskit_consumer bumped from 0.16.0 to 0.16.1

accesskit_winit: 0.16.0
0.16.0 (2023-11-04)
⚠ BREAKING CHANGES

Rename accesskit_winit::Adapter::on_event to process_event (#307)
Bump winit to 0.29 (#256)

deps

Bump winit to 0.29 (#256) (4eb21ff)

Bug Fixes

Add missing semicolons when not returning anything (#303) (38d4de1)

Code Refactoring

Rename accesskit_winit::Adapter::on_event to process_event (#307) (6fbebde)

Dependencies

The following workspace dependencies were updated

dependencies

accesskit bumped from 0.12.0 to 0.12.1
accesskit_windows bumped from 0.15.0 to 0.15.1
accesskit_macos bumped from 0.10.0 to 0.10.1
accesskit_unix bumped from 0.6.0 to 0.6.1

This PR was generated with Release Please. See documentation.

I think it's time to release! We'll figure out the raw-window-handle migration strategy later.

I was actually just looking at that. I don't want to waste a release when it seems likely that projects like Bevy that have strict cargo deny policies will not accept having two versions of raw-window-handle.
It seems that in winit itself, the rwh_0x features aren't mutually exclusive; winit can support multiple versions of raw-window-handle at once. So maybe we should go ahead and use rwh_06 (the latest) in accesskit_winit, and projects that need raw-window-handle 0.4 or 0.5 can enable the appropriate feature in their own dependency on winit. It doesn't look like they'll conflict. @Vrixyz did you already try that and encounter a problem?

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit-v0.12.1 :sunflower:

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit_consumer-v0.16.1 :sunflower:

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit_macos-v0.10.1 :sunflower:

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit_unix-v0.6.1 :sunflower:

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit_windows-v0.15.1 :sunflower:

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit_winit-v0.16.0 :sunflower:

:robot: Release is at https://github.com/AccessKit/accesskit/releases/tag/accesskit_c-v0.6.1 :sunflower:


API Documentation Using Rswag

Hi @christianonoh ❤ , kindly check this part of the project and give you review................
I used rswag to generate the documentation for our project. Thanks

Status: Approved :heavy_check_mark:
Hi @Ellyboi, 👋 👋
Your project is complete! Great job for following the project requirement🥇. There is nothing else to say other than... it's time to merge it 🍾🚢 :shipit: . Congratulations!  🎉💯🌟


TST: silence test noise from Arpack single-precision tests.

A module-level setup/teardown like this hasn't been used before, so would be good to check on another platform and nose version. I'm on OS X, nose 1.1.2.

Ralf Gommers wrote:

A module-level setup/teardown like this hasn't been used before, so
would be good to check on another platform and nose version. I'm on
OS X, nose 1.1.2.

Works fine as well on Linux x86_64, python 2.6.6, nose 0.11.1.

OK, thanks for testing. Merged as 37f6e04.


Add to_i128|! and to_u128|! to BigInts

Looking at the docs for BigInts
https://crystal-lang.org/api/1.6.2/BigInt.html
I noticed the methods: to_i128|to_i128! and to_u128|to_u128! haven't been added yet.

Also missing from BigDecimal.
https://crystal-lang.org/api/1.6.2/BigDecimal.html


Model was stuck when build model with inputs and outputs based on transformer.

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): MACOS 10.15.5 Catalina
TensorFlow version: 2.2 and 2.3
Python version: 3.6

Describe the problem
I want to build a transformer (according to this notebook) model in non-eager execution, and everything runs smoothly only when building model with the tf.keras.layers.Input and its corresponding outputs, the whole program is stuck. By the way, when executing the for loop in block 10, it consumes extremely much time.
There are no error messages about this phenomenon, totally have no idea about what leads to this.
I have replicated this issue here in google colab.
Provide the exact sequence of commands / steps that you executed before running into the problem
I initialized an Input tf.keras.layers.Input and generate outputs with transformer model, then use the input and outputs to build a model but the whole program is stuck.

@Askfk
I ran the code shared and do not face any errors, please find the gist here

@Askfk
I ran the code shared and do not face any errors, please find the gist here

Sorry I made some changes for testing which part leads to the stuck in the notebook so based on these changes it can run without problems but in the original notebook the problems are still there.

@Askfk
I re-ran the above colab and do not face any errors.

Thank you for your efforts, but I will still be stuck in the for loop (it costs too much time in every iteration which is abnormal).

Hi @Askfk, are you still facing this problem? Can you try commenting out tf.compat.v1.disable_eager_execution()?


Added Danish translations (in develop)

As requested, I added the translations in the develop branch.

Awesome, thanks a lot for your contribution.

@Falke-Design can you add this to the README please in some branch or via direct commit?


Add same functionality to rollable table windows

First off, thank you very much for the module! It saves a lot of annoyance.
I noticed that the rollable tables window has the same problem when long tables are displayed. The buttons are so far down that you have to scroll to reach them. Would it be possible for this module to also apply to these windows?

Hey man, thanks for the compliment!
If you feel like being my tester, I've just added an additional line of code for you. Go into your modules folder, and into the Wylie's File Browser Resizer folder, and replace styles.css with this new file (unzip it first). Would you mind telling me if it works as you'd hoped? It's basically a quick-and-dirty fix so that whatever max pixels you set for the file browser, it just sets that same max height on the rolltable. If this works, then I can add some functionality later on to make it it's own settable number.
Anyway, here's the file. Fingers crossed.
styles.zip

Sorry for the lack of a response, I have been away on holiday but will glady test soon!

Unfortunately, that does not seem to work for rollable tables. I copied the file over, then rebooted my server, but I see no change in the height of my rollable table.


its possible to crash programchanges when changing networks

I was changing between local, dev, test, main, a few times, and eventually got this - we should basically just reset and continue.
(mmmm, and this was using the electron app from a browser, so maybe that makes it more/less likely)
actually, i might also have been hitting RPC request throttling - as i had ~3000 accounts listed from watching devnet, and then changed to testnet - and I think the code currently tries to get all those account's info?

https://github.com/solana-labs/solana/pull/24473


Release .NetStandard NuGet package

Any plans for targeting .NetStandard 1/2 and releasing all this great work as a NuGet package?

Hello. I am not planing to do a package in near future, since my intent was not to create an algorithm library. There is large number of optimizations possible in existing implementations here before to be considered for a library package.
You can copy the code in each algorithm independently if needed since most are independent of other algorithms. PRs are welcome.

Just made a release
https://www.nuget.org/packages/Advanced.Algorithms

@justcoding121 Thanks for your attention and sharing this on nuget.
I'll definitely consider firing PRs (at least on my 2nd issue), but unfortunately i'm too busy now with all the stuff at work + contributing to ASP.NET repo.


2.x CDC can't not support "double write"

Describe the bug
2.x CDC can't not support "double write".  When i create a view consists of some tables joins, i want write the result into different databases,
After i write to one database,  i can't query this view in flink sql client because of server_id. The error reports the server_id is  duplicate.
Environment :

Flink version :  flink1.13.3
Flink CDC version: 2.02 or 2.1.1

Closing this issue because it was created before version 2.3.0 (2022-11-10). Please try the latest version of Flink CDC to see if the issue has been resolved. If the issue is still valid, kindly report it on Apache Jira under project Flink with component tag Flink CDC. Thank you!


docs(README.md): add gif animation banner

Overview
add beautiful animated banner gif file in README.md
I converted doc's mp4 file to gif to add in README.md
and then add it in README.md using raw file in GitHub.

References
I think bigger and animated picture can make bigger impact for user(developers)
like react-hook-form, TanStack/query

PR Checklist

[x] I read and included theses actions below

I have read the Contributing Guide
I have written documents and tests, if needed.

I think the added banner looks nice, Is there a particular reason to convert the banner into GIF rather than using the original MP4 as a source?
See also: Replace animated GIFs with video for faster page loads

Problem of embeded video of README.md

It's not really fast to load than gif in README.md
this gif image size is smaller than original video. (I actually compressed video to reduce size of gif)
No autoplay. (Is there any controller to autoplay video in github? I couldn't find it.)
Default layout of embed video is ugly. (file name, video controller, layout line, etc. will be exposed)
Controlling as html tag img:src="~.gif" is easier than current GitHub embeded video.

Directly and Compare it please.
I made example repo (See this please) using video in README by drag&drop to prove why this is better

I tried to use video but I couldn't find other beautiful solution to add video in README.md than using gif.
If you have alternative solution, could you suggest for me?

This gif image size is smaller than original video. (I actually compressed video to reduce size of gif)
No autoplay. (Is there any controller to autoplay video in github? I couldn't find it.)
Ugly default layout of embed video. (file name, video controller, layout line, etc. will be exposed)
Easier controlling as html tag img:src="~.gif" than current GitHub embeded video.

The compression algorithm of GIF is very inefficient than MP4.
The GIF you added has very lower quality compared to the original MP4.

I think it is because you tried to lower the size of the GIF too much.
But there is only 0.1MB difference between the GIF and the MP4.

MP4 can be streamed but GIF cannot be streamed. So user should download a whole file if we use GIF.
...

So I think GIF has more problems than MP4.
And I think we should use a static image file to add a banner to the top of README, like react-hook-form, TanStack/query.

This gif image size is smaller than original video. (I actually compressed video to reduce size of gif)
No autoplay. (Is there any controller to autoplay video in github? I couldn't find it.)
Ugly default layout of embed video. (file name, video controller, layout line, etc. will be exposed)
Easier controlling as html tag img:src="~.gif" than current GitHub embeded video.

The compression algorithm of GIF is very inefficient than MP4.

The GIF you added has very lower quality compared to the original MP4.

I think it is because you tried to lower the size of the GIF too much.
But there is only 0.1MB difference between the GIF and the MP4.

MP4 can be streamed but GIF cannot be streamed. So user should download a whole file if we use GIF.

...

So I think GIF has more problems than MP4.
And I think we should use a static image file to add a banner to the top of README, like react-hook-form, TanStack/query.

I got it. so I changed banner from gif to png in 7c42ed8
It's so sad that the animation is gone🥲,
but big image also will be much much better than no banner.👍
I'm so glad to add this banner image too.

This gif image size is smaller than original video. (I actually compressed video to reduce size of gif)
No autoplay. (Is there any controller to autoplay video in github? I couldn't find it.)
Ugly default layout of embed video. (file name, video controller, layout line, etc. will be exposed)
Easier controlling as html tag img:src="~.gif" than current GitHub embeded video.

The compression algorithm of GIF is very inefficient than MP4.

The GIF you added has very lower quality compared to the original MP4.

I think it is because you tried to lower the size of the GIF too much.
But there is only 0.1MB difference between the GIF and the MP4.

MP4 can be streamed but GIF cannot be streamed. So user should download a whole file if we use GIF.

...

So I think GIF has more problems than MP4.
And I think we should use a static image file to add a banner to the top of README, like react-hook-form, TanStack/query.

I got it. so I changed banner from gif to png in 7c42ed8
It's so sad that the animation is gone🥲,
but big image also will be much much better than no banner.👍
I'm so glad to add this banner image too.


Replicator visibility improvements

Added a new admin API, which will dump out all the connection status
Add per destination message read/write metrics
Add per destination replication latency metrics

Coverage decreased (-0.03%) to 67.933% when pulling 5f9d2db08059ddaad0864b9ccd46cf0ff1a1b345 on replicator_monitoring into 61b6f33736ccd1905f061c22fd9416cc37113854 on master.


In bicep file [ are getting removed/replaced

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.77.1
OS Version: 10.0.19045 N/A Build 19045

Steps to Reproduce:

create a module
while passing params use testparam:  ['String']
open and save

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.77.3. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Updated, as of now vscode did not change the [ ] . but i'll monitor

Please let us know if you find any reproducible steps. This might be caused by one of your extensions.

I have below list of Extensions installed. As of now vs is not replacing [ ].

@ynilajkar Thank you for the list. Please let us know if you find reproducible steps after disabling all of them.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Synthetic Dataset

Making synthetic dataset of paths to test dynamics module on. We are creating paths by integrating a derivative function at several consecutive points.

Meekail mentioned this to me yesterday, and I remembered today that while I still didn't know of time series data that could be used, I did recall this paper I'd come across: https://arxiv.org/abs/1702.03584
It mentions an aggregation of time series data that they used in their experiments. Maybe look into that?

https://www.cs.ucr.edu/~eamonn/time_series_data_2018/
Active link for the dataset. They have a separate multivariate time series dataset which we should look into. It's found on the same page. Good find @magsol !

Should I make implementing the dataset from the UCR paper a separate issue?


Support pass in git key file as environment variable.

The docker credentials can be passed in as env variables, so why not git's.

thanks


Adding a database + adding an authorization for each form

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.05%) to 56.768%

Files with Coverage Reduction
New Missed Lines
%

services/dkg/pedersen/handler.go
3
87.21%

Totals

Change from base Build<PHONE_NUMBER>:
-0.05%

Covered Lines:
3271

Relevant Lines:
5762

💛  - Coveralls

@nkcr I added a little feature : when deleting a form we delete also the authorization, because it's doesn't make sense anymore

@nkcr I have some conflicts with the yarn.lock. As it is a generated file, I don't really know how to resolve that.

I would try to take the original yarn.lock, and re-do the yarn install.

Prettier is not passing. The PR can be merged once the prettier check passes.

Prettier is not passing. The PR can be merged once the prettier check passes.

I did run prettier on the file docker-compose.yml but nothing changes. I have no clue on how to fix that.

@nkcr I have a SonarCloud error. I was wondering if there is a file that is not in the code repository where I can store the credentials of the database ?


[Better Way] No Symlinks with usage as a bare repository - README needs updation.

Manging dotfiles using symlink has been like a tradition and almost all the developers are doing it, if not having multiple copies of there dotfiles . But there exists a much better way - people at atlassian has written a very nice article about it using the git's --bare feature and using it to store the dotfiles and I have to say this, it very elegant. The trick to managing these dotfiles is by creating a bare git repository.
The reason for this Issue is to make people aware about way and this repository is the best place for it, cause lets face it every developer trying to customize there os has or will peek into this repo atleast once.
Managing and tracking [dot]files with bare repo
I'm copy pasting it from https://github.com/kalkayan/dotfiles
Clone the repo as a bare repository and thats it! no problems related to symlinks.
# after forking replace the <username> with your github handle
git clone --bare https://github.com/<username>/dotfiles.git $HOME/.dotfiles

Notice the --bare flag, this the clones repository as a bare repository. Bare repository are special in a way that they omit working directory, therefore to use a bare repository, first we need to define the following.

--work-tree - this can be your home directory, i.e., $HOME or ~)
--git-dir - where the repository is cloned - $HOME/.dotfiles

Therefore the command to use the repository will have a prefix git --git-dir=$HOME/.dotfiles --work-tree=$HOME ,

Now next step is to checkout to the proper branch according to the os of the machine.
# checkout to main for macos and linux for ubuntu.
git --git-dir=$HOME/.dotfiles --work-tree=$HOME checkout main

Usage of dotfiles
This method of managing and sharing has various advantages some of them are shown below:
1. Keep the dofitles versioned, (basically all the cons of using git)
At this point, all your configuration files are being tracked, and you can easily use the dotfiles command (see this line in .aliases) to manage the repository, some examples are:-
# to check the version history
dotfiles log

# to check the status of the tracked and untracked files
dotfiles status

# to add a file for tracking
dotfiles commit .vimrc -m ".vimrc added"

# push new files or changes to the github
dotfiles push origin main

:warning: The dotfiles status will show all the untracked files to disable this behavior, do the following
# to remove the untracked directories and files from the listing
dotfiles config --local status.showUntrackedFiles no

2. Share on Multiple devices
Share the same configs of multiple devices with minimal changes using branch, create a branch for your new machine, example:-
# Create configurations specific to your aws machines
dotfiles checkout -b aws

3. Create Profiles for dotfiles
Create configs based on your environment using branch, create a branch and configure according to you work env.
# Manage multiple profiles - check out to the work profile
dotfiles checkout work

@mathiasbynens

@kalkayan
Been trying to read the article series referenced on your github link you posted. But there's only part 1 and part 3 up on your site - would love to see part 2 to understand how you're doing the brew stuff


Please activate the Discussions tab

Feature Request
GitHub Discussions help open-source repositories maintain various types of discussions separately from the issues. Also, it is very easy to create an issue from a discussion topic. Please activate the discussions feature on this repository.

Quickstart for GitHub Discussions

I wanted to add the following as a discussion (since it is neither a bug, or a feature request)
One more thing: memray is now available on conda-forge thanks to @matthiasdiener.
Install with conda:
conda install -c conda-forge memray

cc: @godlygeek @pablogsal

@sugatoray Thanks a lot for the suggestion! I have opened and configured the tab here:
https://github.com/bloomberg/memray/discussions

One more thing: memray is now available on conda-forge thanks to @matthiasdiener.

Nice, this is fantastic ❤
Thanks a lot @matthiasdiener and @sugatoray !


ConnectionPolicy: Refactors Code to Reduce Default Request Timeout to 6 Seconds.

Pull Request Template
Description

Reduce Default Timeout to 6 Seconds: This change primarily refactors the ConnectionPolicy class in the v3 SDK to reduce the default request timeout to 6 seconds from 10 seconds.

Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Closing issues
To automatically close an issue: closes #3895

@msftbot wait for @kirankumarkolli to approve just to confirm we are all on the same page


Removed from Chrome Webstore?

Accessing the link returns invalid extension

Hi @zanechua, thanks for pointing this out.
I've republished the last version and it's currently in review process. Should be available again as soon as Google approve it (should take a couple of days or so).

@zanechua It is now available


controllable download will not drop into mods folder??

I tried dropping the controllable download into the mods folder as instructed and it just doesn't go into the mod folder on my Mac. it just directs me to desktop where controllable is....I dont know what im doing wrong...:/

Please use the Discord for questions like this: https://discord.gg/mrcrayfish


invalid UMD name?

Looking at the rollup config and noticed this. The libraryName here refers to what global will be added when requiring viv though a script tag.
https://github.com/hubmapconsortium/vitessce-image-viewer/blob/8e5a48531faef9e528c6e1e999b0d08170a2320e/rollup.config.js#L25
I would change libraryName to viv.
<html>
    <script<EMAIL_ADDRESS>    <script>
          // now `viv` is available as a global
         // @hubmap/vitessce-image-viewer is an invalid var name
          viv.createZarrPyramid(.....)
    </script>
</body>

</html>

Good point! I'll slip in a PR.


Services do not adhere to NSEC team naming conventions

[ ] Military\MAOW_freshOpI.MapServer
[ ] Military\MAOW_freshOpI2.MapServer
[ ] Military\MAOW_Weather_OpImpact.MapServer
[ ] Military\MAOWTemplate_publish_Just_Weather.MapServer
[ ] Military\Op_Impact_Air_Cloud_Ceiling.MapServer
[ ] Military\Op_Impact_Air_Temperature.MapServer
[ ] Military\Op_Impact_Air_Visibility.MapServer
[ ] Military\Op_Impact_Bridge_Crossing_Wind.MapServer
[ ] Military\Op_Impact_Windspeed.MapServer

This issue was moved to ArcGIS/mil-intel-desktop-solutions-templates#72

@elinz -  You are correct, these services do not adhere to the naming convention. I am moving this issue to the https://github.com/ArcGIS/mil-intel-desktop-solutions-templates repo to be managed since the services are a derivative from the MAoW v2.0.0 template.
@abrowning80 - This will need to be addressed in the naming convention of the layers from the MAoW v2.0.0 template.


Improving BaseTool classes for more control and additional convenience

Description
There are a few things from various discussions that I think would help improve tools in Mirascope. I'll use this issue to track progress on the improvements:

[ ] More granular control over the tool's name and description.
Right now the generated tool schemas use the class name and docstring, but this is a bit restrictive. What if you want to use a name that wouldn't be a valid class or method name? What if you want to have the description for the tool be separate from the docstring? Idea here would be to add new name and description class methods that will use __name__ and __doc__ respectively by default but allow for the user to overwrite the method if desired. For example:

class MyTool(OpenAITool):
    """This is now just a normal docstring."""

    param: str

    @classmethod
    def name(cls) -> str:
        return "invalid.method-name"

    @classmethod
    def description(cls) -> str:
        return "This would be the inserted description."

As part of this improvement, we should also ensure that tools auto-generated from functions actually use the original function name. I noticed while digging that we convert into the proper tool name in pascal case, but that's really bad and needs to be fixed.

[ ] Improve recommendation / standard for calling tools
The current way users are expected to call tools right now is tool.fn(**tool.args), but this means that you either need to write the tool as a function or you need to write the function and attach it to the tool. It seems like a better recommendation / interface to instead have a call method that internally calls tool.fn(**tool.args) by default but then can be overridden by the user for a better interface for writing more complex tools. For example:

def my_fn(param: str) -> str:
    return f"This is the separate fn using {param} that is attached"

@tool_fn(my_fn)
class MyTool(OpenAITool):
    """A tool."""

    param: str

my_tool = MyTool(param="param", tool_call=...)
print(my_tool.call())  # internally calls `my_tool.fn(**my_tool.args)`

class MyToolWithCall(OpenAITool):
    """A tool."""

    param: str

    def call(self) -> str:
        return f"This is the internal method for calling with {self.param} that's overridden."

my_tool_with_call = MyToolWithCall(param="param", tool_call=...)
print(my_tool_with_call.call())

[ ] Provide convenience for re-inserting a tool call into chat history
Users currently need to reconstruct the tool call message manually, which is annoying. Instead we should provide something like tool.message_param that automatically generates the message parameter to insert.
[ ] Add a Toolkit class for organizing a set of tools under a namespace
Consider a bunch of functions / tools for interacting with a file system. It would be nice to be able to organize these tools under a single namespace and provide the LLM with the namespaced tools so it has more context around where the tools are coming from an how to use them. For example:

from mirascope.base import Toolkit
import file_system as fs

fs_toolkit = Toolkit(tools=[fs.ls, fs.rm, fs.mkdir], namespace="fs")
fs_tools = fs_toolkit.tools  # these can then be added like any other list of tools

While you're thinking about this, I think it might also be worthwhile to think about stateful tools. This goes for both the tool schema and the tool fn implementation.
As a very simple example, let's say I have a chatbot that stores information about the user it's talking to in a scratchpad. The content of the scratchpad and the ID of the user will not always be constant, so the tool description and implementation need to be dynamic based on the session user.

100%. I think #278 is along these lines? Essentially dynamically update the tool based on the state.
Seems to me like that state might be stored in the call/agent and not the tool itself where the tool then updates dynamically based on that state?

@willbakst this is what I was talking about yesterday, with trying to pass methods that are defined on a class (and therefore require self) as tools

Yeah we need to be able to use tools that are defined internally to your class for colocation (and also the ability to edit internal state easily through tools). Without enabling this natively, every current solution smells.

[ ] Enable using a set of tools defined internally to the call
Users may want to write internal methods to the call but then provide the call with access to those tools so that it can call them. Initial thoughts here would be to add something like a tools property to the call classes that defaults to the tools in call_params but the user can optionally override. Of course, passing them at runtime should still override everything.

Opting not to implement this unless heavily requested since the new interface in #322 allows for this. Really the only reason to have a tool with access to self is to access and edit state, which goes against the idea of calls being stateless.

After working on it for a little, I realized that the tool.message_param design doesn't work. The primary issue is that not all providers have a "tool" message param. For example, Anthropic expects all interactions to be alternating between assistant and user where tool message params are just a user message, and if multiple tools are called all of them live in the content array of the user message.
Instead we'll need to generate all of the tool message parameters at once. I'm thinking a good flow would be something like:
response = my_call.call()
tools_and_outputs = []
if tools := response.tools:
    tool_outputs = []
    for tool in tools:
        output = tool.call()
        tools_and_outputs.append((tool, output))
...
tool_message_params = response.tool_message_params(tools_and_outputs)

For streaming, we would do the same thing (for providers that support streaming tools):
stream = ProviderStream(my_call.stream())
tools_and_outputs = []
for chunk, tool in stream:
    if tool:
        output = tool.call()
        tools_and_outputs.append((tool, output))
    ...
tool_message_params = stream.tool_message_params(tools_and_outputs)


[Enhancement] Add support for html message view keyboard shortcut

This is a feature request to add a keyboard shortcut to view the HTML version of an email message from message view as well as message list view.
A user-configurable command shall be used for opening the HTML message.

This feature request is related to #42.

This feature request is related to #42.

This functionality has been implemented in above commit.
Note that the meaning of key_view_html in ui.conf has changed, it is from now on used to control the key binding used to view html from message list or message view. Previously it was used to control the key binding for viewing html preview while composing a message. The compose preview binding is now configured via key_preview_html in the same file.
Furthermore the default value for some settings have changed in the latest version. In order to use the new default values, one can simply delete ~/.nmail/ui.conf and start nmail. Alternatively, here is a list of parameters with new defaults (and their new default values):
    key_export=x
    key_external_pager=e
    key_view_html=v

This functionality has been implemented in above commit.
Note that the meaning of key_view_html in ui.conf has changed, it is from now on used to control the key binding used to view html from message list or message view. Previously it was used to control the key binding for viewing html preview while composing a message. The compose preview binding is now configured via key_preview_html in the same file.
Furthermore the default value for some settings have changed in the latest version. In order to use the new default values, one can simply delete ~/.nmail/ui.conf and start nmail. Alternatively, here is a list of parameters with new defaults (and their new default values):
    key_export=x
    key_external_pager=e
    key_view_html=v

Looks cool! I'm toying around with browsh to see if I can get it to show the HTML message, but it's a bit circumvoluted because browsh can't display local files, they have to be served first.
caddy file-server ~/.nmail/nmail-account1/temp --listen :2015 & browsh http://localhost:2015/htmlview/1.html does not exactly work yet (but my regular Firefox does find the file at this URL, so that's something to sort out with browsh) but I'll continue investigating. I'm just playing with this concept that would mostly be useful when running nmail on a headless server anyway. On a local machine, I am not sure using browsh would be so useful since it takes a couple seconds to load anyway. It is usually faster to open the HTML in a new tab in Chrome/Firefox (Firefox is always open on my PC), without the drawbacks of a terminal browser.
htmlview/1.html (and possible inline attachments) are created when hitting ^V, and removed when quitting the viewer, correct?
It's great to have this mechanism implemented. Hopefully I can understand the code in this commit and investigate how hard it would be for a noob like me to extend the feature to attachments.

Looks cool! I'm toying around with browsh to see if I can get it to show the HTML message, but it's a bit circumvoluted because browsh can't display local files, they have to be served first.
caddy file-server ~/.nmail/nmail-account1/temp --listen :2015 & browsh http://localhost:2015/htmlview/1.html does not exactly work yet (but my regular Firefox does find the file at this URL, so that's something to sort out with browsh) but I'll continue investigating. I'm just playing with this concept that would mostly be useful when running nmail on a headless server anyway. On a local machine, I am not sure using browsh would be so useful since it takes a couple seconds to load anyway. It is usually faster to open the HTML in a new tab in Chrome/Firefox (Firefox is always open on my PC), without the drawbacks of a terminal browser.
htmlview/1.html (and possible inline attachments) are created when hitting ^V, and removed when quitting the viewer, correct?
It's great to have this mechanism implemented. Hopefully I can understand the code in this commit and investigate how hard it would be for a noob like me to extend the feature to attachments.

htmlview/1.html (and possible inline attachments) is (are) created when hitting v, and removed when quitting the viewer, correct?

Kind of. Technically the temporary file is kept around until next message html view is requested, or nmail is exited. The reason for this is the asynchronous behavior of macOS open command.

htmlview/1.html (and possible inline attachments) is (are) created when hitting v, and removed when quitting the viewer, correct?

Kind of. Technically the temporary file is kept around until next message html view is requested, or nmail is exited. The reason for this is the asynchronous behavior of macOS open command.

It's great to have this mechanism implemented. Hopefully I can understand the code in this commit and investigate how hard it would be for a noob like me to extend the feature to attachments.

I wonder, would a command to access/open the entire email in an external viewer be useful for your use-case?
The entire email message in this case is an .eml file which can be unpacked using commands like munpack, etc.
I am still hesitant to more general customization, but just opening an email using an external command would be a reasonable feature I feel.
An .eml file contains the email message (html part, text part as well as any attachments).

It's great to have this mechanism implemented. Hopefully I can understand the code in this commit and investigate how hard it would be for a noob like me to extend the feature to attachments.

I wonder, would a command to access/open the entire email in an external viewer be useful for your use-case?
The entire email message in this case is an .eml file which can be unpacked using commands like munpack, etc.
I am still hesitant to more general customization, but just opening an email using an external command would be a reasonable feature I feel.
An .eml file contains the email message (html part, text part as well as any attachments).

I was not aware that .eml files contained attachments. This indeed looks like it could allow quite a lot of scripting to manipulate message body, headers and attachments if we can open the .eml with a custom command (for instance a script, not just a given viewer).
I'm not anywhere near having a single script ready for that, but that looks like a very nice playground. I assume it would be possible to export .eml parts to a temporary folder and have the script immediately run a CLI file manager inside the same terminal to browse that folder and offer extra actions. For instance, opening with nnn could look like that:
.
..
file.hdr
file1.txt
file2.html
file3.pdf
file4.csv

nnn is a (very) fast file manager that is quite flexible and extensible with plugins and options, meaning this could offload a lot of flexibility to this third-party tool while keeping nmail minimal. From there, actions and plugins in nnn could allow:

multiple selection to save several attachments at once into a single location (move/copy from extracted folder to new folder)
navigate through previously bookmarked locations for easy save locations
opening files with multiple GUI or CLI programs (the default is not always what one wants)
piping files into other scripts or programs (upload, print, copy to clipboard, grep, etc.)
batch-renaming
editing
opening in tiled, floating, or swallowing windows (see [devour](https://github.com/salman-abedin/devour)) and quitting nnn (restoring nmail view)
archiving
and probably much more

Of course anyone could use their favourite CLI file manager if they have a use for feature but prefer mc or ranger. One could also just use fzf and have an interactive prompt in their script with a set of predefined actions.
This is just a draft list of ideas for myself, hopefully I'm not missing something that would make any of this infeasible. But yes, if I am not missing something obvious, I think that would be pretty cool and useful, as well as a good balance to make nmail extensible using one's favourite tool without adding too much complexity to nmail itself.

I was not aware that .eml files contained attachments. This indeed looks like it could allow quite a lot of scripting to manipulate message body, headers and attachments if we can open the .eml with a custom command (for instance a script, not just a given viewer).
I'm not anywhere near having a single script ready for that, but that looks like a very nice playground. I assume it would be possible to export .eml parts to a temporary folder and have the script immediately run a CLI file manager inside the same terminal to browse that folder and offer extra actions. For instance, opening with nnn could look like that:
.
..
file.hdr
file1.txt
file2.html
file3.pdf
file4.csv

nnn is a (very) fast file manager that is quite flexible and extensible with plugins and options, meaning this could offload a lot of flexibility to this third-party tool while keeping nmail minimal. From there, actions and plugins in nnn could allow:

multiple selection to save several attachments at once into a single location (move/copy from extracted folder to new folder)
navigate through previously bookmarked locations for easy save locations
opening files with multiple GUI or CLI programs (the default is not always what one wants)
piping files into other scripts or programs (upload, print, copy to clipboard, grep, etc.)
batch-renaming
editing
opening in tiled, floating, or swallowing windows (see [devour](https://github.com/salman-abedin/devour)) and quitting nnn (restoring nmail view)
archiving
and probably much more

Of course anyone could use their favourite CLI file manager if they have a use for feature but prefer mc or ranger. One could also just use fzf and have an interactive prompt in their script with a set of predefined actions.
This is just a draft list of ideas for myself, hopefully I'm not missing something that would make any of this infeasible. But yes, if I am not missing something obvious, I think that would be pretty cool and useful, as well as a good balance to make nmail extensible using one's favourite tool without adding too much complexity to nmail itself.

Yeah I think those a great ideas that could be enabled. I've reported a new issue #68 to track adding this feature.

Yeah I think those a great ideas that could be enabled. I've reported a new issue #68 to track adding this feature.