Proposal: add debugging support

@blazknuplez  You can now test and debug build script through tests if needed.
https://github.com/flubu-core/examples/blob/master/NetCore_csproj/BuildScript/BuildScriptTests.cs

Build script debuging by attaching to flubu process is now available.
https://github.com/flubu-core/flubu.core/wiki/6-Writing-build-script-tests,-debuging-and-running-flubu-tasks-in-other-applications


Add Angus' profile

@damianavila in the future please feel free to just merge these rather than approving!


The requested URL /@gulp-sourcemaps/map-sources was not found on this server

Hey
since this morning we're getting the following error when trying to install:
The requested URL /@gulp-sourcemaps/map-sources was not found on this server
I'm guessing this has something to do with the new release

Version lock to "gulp-sourcemaps": "1.11.1" works as a temporary fix.

For those who want to stay in 2.x.x, the latest version working is "gulp-sourcemaps": "2.4.1". So it's just a problem with 2.5.0.

Scoped packages need a version of npm greater than 2.7.0, could this be your problem?

This broke our builds since we use a NPM caching server which seems not to support scoping.

Please use stricter versioning on your production builds. Lastly, use npm shrinkwrap or yarn for lock files. In the end you guys need to use a newer version of npm, or yarn.
@phated any other thoughts?
I wonder if the 1.X version should not be using scoped packages and something else.

@floridoo  So I am on npm version 3.3.12 and this still breaks.

No. People should be using updated npm clients and better proxies. This feature has been out for almost 2 years.

From @floridoo :

Scoped packages need a version of npm greater than 2.7.0, could this be your problem?

I was running on npm 3.10.8.

You likely have a proxy that doesn't support scoped packages. Fix your environment.

Thanks, I just find out we are using sinopia. So yeah, we plan to change that.

@phated I'm having the same issue with node v6.9.2 / npm v3.10.9. I see your comments about proxies/scoped packages but I don't understand what that's in reference to - I believe my org uses an internal artifactory mirror, so is this the documentation I should be forwarding to the folks maintaining that? https://www.jfrog.com/confluence/display/RTF/Npm+Registry#NpmRegistry-NpmScopePackages
"Artifactory fully supports npm scope packages. The support is transparent to the user and does not require any different usage of the npm client. (...) If Artifactory is running behind a reverse proxy, make sure to disable URL decoding on the proxy itself in order to work with npm scope packages."
Thanks!

@phated you may want to document your change as this is a breaking change without proper server configuration in some instances.

As far as I'm concerned, semver only considers the API of the module itself. Not your environment nor installers you choose to use outside of common conventions.

@anjunatl it's right at the top of the docs you linked....

Npm 'slash' character encoding
By default, the npm client encodes slash characters ('/') to their ASCII representation ("%2f") before communicating with the npm registry. If you are running Tomcat as your HTTP container (the default for Artifactory), this generates an "HTTP 400" error since Tomcat does not allow encoded slashes by default. In order work with npm scoped packages, you can override this default behavior by defining the following property in the catalina.properties file of your Tomcat:
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
Note that since Artifactory version 4.4.3, the bundled Tomcat is configured by default to enable encoded slashes. If you are using a previous version you will need to adjust the Tomcat property above.

@phated basically anyone using your latest of 1.x that doesn't setup there environment to handle scoped packages is hosed. I would call that breaking.  I am with @nmccready that the 1.12.0 should not contain this change.  Scoped packages are a feature that not all have the option to support and normally should be used for internal dev projects. I would assume if I were developing something that was going to be public facing, I would make sure I had a major version that would not require my consumers to update server configurations.  That is just me. Other users that see this for now if you cannot support scoped packages just use hard versions <=1.11.0 or <=2.4.1 and if you can support scoped packages update your server configurations as needed.

@jberrydev sorry you feel that way.  Obviously our priorities are at odds and I don't plan to support your non-standard workflow.  You can pin the dependency for non-standard workflows or upgrade your environment to be >2 years out-of-date.  I'm going to be locking this thread.

If you are using sinopia, you probably want to switch to https://github.com/verdaccio/verdaccio


Provide wheel distribution on PyPI

Hi!
Please could this package also by made available as a wheel on PyPI?
https://pypi.python.org/pypi/promise/2.0.2
Wheels have the following advantages:

Faster installation time
Allows the wheel cache to work even when using the new pip hash-checking mode
Allows tools to statically inspect the package metadata without having to execute untrusted code.
...and more - see: http://pythonwheels.com

This package is pure Python and supports both Python 2 and 3, so in theory could be distributed as a "universal wheel":
https://packaging.python.org/tutorials/distributing-packages/#wheels
...however I notice that there's some __builtin__ vs builtins workaround going on here:
https://github.com/syrusakbary/promise/blob/5177e5376676e10bbcd67970eed6c858c5d9bd4d/setup.py#L4-L9
...which I believe means separate wheels have to be generated for each of Python 2 and 3.
The Python packaging guide recommends using Twine to upload packages:
https://packaging.python.org/tutorials/distributing-packages/#uploading-your-project-to-pypi
As such, the steps for building/uploading a new release are then:
$ pip2 install -U twine setuptools wheel
$ pip3 install -U setuptools wheel
$ rm -rf dist/ build/
$ python2 setup.py sdist bdist_wheel
# Work around https://bitbucket.org/pypa/wheel/issues/147/bdist_wheel-should-start-by-cleaning-up
$ rm -rf build/
$ python3 setup.py bdist_wheel
$ twine upload dist/*

The PyPI package listing will then display three entries for the new release, one with type "Source" and two of type "Python Wheel" (one for each of Python 2 and 3).
Many thanks :-)

Hi!
I noticed that the latest release (2.1) now includes a wheel for Python 2:
https://pypi.python.org/pypi/promise/2.1
I don't suppose the Python 3 wheel could also be uploaded? :-)

+1 for this one... as long as promise is only available as sdist and not as a bdist_wheel, we can't just use pip install --only-binary :all:... which is in turn a great mitigation for arbitrary code execution inherent to sdists. See https://github.com/mschwager/0wned


hud: fork view into two data structures: webview and view

Hello @yuindustries, @landism,
Please review the following commits I made in branch nicks/ch1955/fork:
d276d955b1e35636a614b570a6052927d4d4f0e8 (2019-03-21 17:33:42 -0400)
hud: fork view into two data structures: webview and view

ping? this isn't as scary as it looks; it's mostly a fork of existing code


Enable use of multiple patterns at the same time

Compiled patterns are kept in a static variable which means they will be overwritten as soon as another pattern is compiled.

Hi @mahdix - thanks for taking an interest :)
There is another issue detailing this flaw - I agree with you both that the compiled pattern should be passed as a pointer to the compile function.
I will see if I can find the time to implement this feature.
You are also welcome to suggest a change via a Pull Request :)
Thank you for your feedback

Hi, you can check out my fork of this library which I adopted to work in the kernel space for the FreeBSD kernel module. https://github.com/komdivkote/tiny-regex-c
The function re_compile(const char* pattern, uint32_t * o_reg_cnt) returns a pointer to an array of a new instance of struct re_regex * re_compiled  allocated in heap because the kernel has small stack. It uses realloc approach when it runs out of the free nodes
The logic was changed a bit and there were introduced macroses to the code because the library works in both kernel/userland, but if this is a problem you can remove the 'kernel' code which is "#ifdef _KERNEL".
Also there some tuning available in the re.h:
#define RE_REGEX_INSTANCE_REALLOCATE	YES	//YES - reallocate on overuse, NO - exit #define RE_TRUNC_ARRAY_IF_POSSIBLE		YES	//YES - truncate array to reduce size, NO - do not #define RE_CHAR_CLASS_LENGTH			20	//per struct regex_t instance #define MIN_REGEXP_OBJECTS				30	//min number of regex symbols in expression. #define RE_BUILDWITH_DEBUG	YES	//compile with print and trace functions
I will try to  form a pull request without kernel code.

Hi @komdivkote - wow you've really done something with the code :D A pull request would be awesome :)
I really find it interesting to see how other people use my code.
I'm in the embedded business for a living, which is what inspires me to keep the resource utilization frugal. Kernel code has some of the same flavor, so I get your motivation for a small regex-project.
Anecdote:
I haven't run FreeBSD since 8.0-RELEASE, but I've always been fond of how the BSDs work and organize things. I also like NetBSD for its minimalism.

Oh, it looks like people asked for this feature (and provided some kind of implementations) multiple times in the past.
Here's one of the latest attempts: https://github.com/kokke/tiny-regex-c/pull/45
@kokke, what do you think about this issue? IMHO there should be some final decision: either merge one of implementations as an optional feature or mark it as "wontfix" and clearly mention in documentation that it doesn't fit well here (and mention some featured alternatives for those who need this feature too much). What do you think?
Some kind of perfectionism makes me worry about old stale issues, especially in small well-written projects where it looks definitely possible to achieve and maintain "zero known/open issues" state.

Hi,
There might be a simple solution for this (without any dynamic memory allocation of course):

define struct regex as following:

struct regex
{
    size_t size;
    regex2_t data[];
};

Where regex2_t is the original regex structure in your source code.

add a new interface:

re_t re_compile2(const char* pattern, void* buffer, size_t size);

This function initialize struct regex on buffer, just looks like:
re_t re_compile2(const char* pattern, void* buffer, size_t size)
{
    if (size < sizeof(struct regex))
    {
        return NULL; /* buffer is too small */
    }

    struct regex* ret = (struct regex*)buffer;
    ret->size = size;

    /* Now compile patterm into ret->data just like #re_compile() */

    return ret;
}

Hi,
There might be a simple solution for this (without any dynamic memory allocation of course):

define struct regex as following:

struct regex
{
    size_t size;
    regex2_t data[];
};

Where regex2_t is the original regex structure in your source code.

add a new interface:

re_t re_compile2(const char* pattern, void* buffer, size_t size);

This function initialize struct regex on buffer, just looks like:
re_t re_compile2(const char* pattern, void* buffer, size_t size)
{
    if (size < sizeof(struct regex))
    {
        return NULL; /* buffer is too small */
    }

    struct regex* ret = (struct regex*)buffer;
    ret->size = size;

    /* Now compile patterm into ret->data just like #re_compile() */

    return ret;
}

Here's my attempt: https://github.com/kokke/tiny-regex-c/pull/58


Fix doc dependecies

Developers from sphinx-toolbox just released sphinx-toolbox v3.1.2 🚀

Related with https://github.com/executablebooks/sphinx-tabs/issues/166

Trying Sphinx==5.1.1 and sphinx-tabs==3.4.1

Trying docutils==0.17.0

Does this message have sense? Am I missing something...? 🤔
The conflict is caused by:
    The user requested docutils==0.17.0
    sphinx 5.1.1 depends on docutils<0.20 and >=0.14
    sphinx-tabs 3.4.1 depends on docutils~=0.18.0

Let me try with docutils==0.19.0

See https://github.com/sphinx-toolbox/sphinx-toolbox/pull/118

Status of this. dependencies are working now. However, the PDF documentation does not seem to build properly.

Closing in favor of #184!


Use other model file based on Flux-schnell?

Thanks for the great work!
Recently I see new models like shuttleai/shuttle-3-diffusion · Hugging Face, which is finetuned on flux-schnell.
Is there any way to use mflux on these models?

@puppyapple if you're up for installing a dev build, try:
pip install git+https://github.com/anthonywu/mflux.git@support-hf-models

mflux-generate \
  --base-model schnell \
  --steps 4 \
  --model shuttleai/shuttle-3-diffusion \
  --prompt "A dog holding a sign that says mflux rocks"

make sure to accept the repo terms of service first at: https://huggingface.co/shuttleai/shuttle-3-diffusion before trying to use mflux / huggingface-hub to download the models to disk
sample from my local gen using the branch in #103

@anthonywu for this syntax, how does quant work? for shuttle-3-diffusion, what's the difference between --quant 8 on full model or cloning the fp8 version?

Here's my investigation.
TL;DR

The mflux-converted q8 model works as I confirm in this reply.
the upstream fp8 doesn't work because that HF repo does not contain the full assets. You may be able to get it to work by locally stitching the repo assets together.

download the official models
# official bfloat16 model
huggingface-cli download shuttleai/shuttle-3-diffusion

# official fp8 model
huggingface-cli download shuttleai/shuttle-3-diffusion-fp8

observe the model size on disk
du -sh ~/.cache/huggingface/hub/models--shuttleai--shuttle-3-diffusion*
 54G	~/.cache/huggingface/hub/models--shuttleai--shuttle-3-diffusion
 11G	~/.cache/huggingface/hub/models--shuttleai--shuttle-3-diffusion-fp8

use mflux to save a q8 model
this should work in the latest commit of PR #103
mflux-save \
  -m shuttleai/shuttle-3-diffusion \
  --base-model schnell \
  -q 8 \
  --path /tmp/shuttle-3-diffusion-q8

this produces a local 17G converted model (compared to the 11G fp8 produced by their util: https://huggingface.co/shuttleai/shuttle-3-diffusion-fp8/blob/main/convert.py)
du -sh /tmp/shuttle-3-diffusion-q8
 17G	/tmp/shuttle-3-diffusion-q8

In mflux's model_saver.py, the conversion is passed to mlx.core. save_safetensors, this is its help():
save_safetensors = <nanobind.nb_func object>
    save_safetensors(file: str, arrays: dict[str, array], metadata: Optional[dict[str, str]] = None)

    Save array(s) to a binary file in ``.safetensors`` format.

    See the `Safetensors documentation
    <https://huggingface.co/docs/safetensors/index>`_ for more
    information on the format.

    Args:
        file (file, str): File in which the array is saved.
        arrays (dict(str, array)): The dictionary of names to arrays to
        be saved. metadata (dict(str, str), optional): The dictionary of
        metadata to be saved.

the caller is:
    def save_weights(base_path: str, bits: int, model: nn.Module, subdir: str):
        path = Path(base_path) / subdir
        path.mkdir(parents=True, exist_ok=True)
        weights = ModelSaver._split_weights(base_path, dict(tree_flatten(model.parameters())))
        for i, weight in enumerate(weights):
            mx.save_safetensors(
                str(path / f"{i}.safetensors"),
                weight,
                {"quantization_level": str(bits)},
            )

so the difference between the official fp8 17G version and the mflux converted 11G version is a matter of mlx vs PyTorch low level details of the quantization
compare outputs
generating with official bfloat16
mflux-generate \
  --seed 42 \
  --base-model schnell \
  --model shuttleai/shuttle-3-diffusion \
  --prompt "a cat holding a sign saying meow" \
  --steps 4

generating with mflux-converted q8
mflux-generate \
  --seed 42 \
  --model schnell \
  --path /tmp/shuttle-3-diffusion-q8 \
  --prompt "a cat holding a sign saying meow" \
  --steps 4

the two images look same-ish to me, but diff of the two files reports a difference.
generating with upstream fp8
mflux-generate \
  --seed 42 \
  --base-model schnell \
  --model shuttleai/shuttle-3-diffusion-fp8 \
  --prompt "a cat holding a sign saying meow" \
  --steps 4

this doesn't actually work out of the box because the HF repo for fp8 does not contain all the assets from the bfloat16 version! And that's probably why it weighs in a 11G rather than closer to 17G, so a full repo may not be much diff in size after all.

the error from mflux is OSError: Incorrect path_or_model_id: '/Users/anthonywu/.cache/huggingface/hub/models--shuttleai--shuttle-3-diffusion-fp8/snapshots/c91030ae2199a2a57f9e0814f6f427692f15aabd/tokenizer'. Please provide either the path to a local folder or the repo_id of a model on the Hub. and the reason is the tokenizer and adjacent assets are not in the fp8 repo.
if the official fp8 repo is laid out like the full version then I think the HF model would just work

so as of this writing - the only way to get out of box q8 functionality is to use mflux to convert to q8 locally
this does create a todo to better display the errors for HF repos that do not present its full assets

Thank you! Happy to confirm all this works as you say with the pr

@puppyapple if you're up for installing a dev build, try:
pip install git+https://github.com/anthonywu/mflux.git@support-hf-models

mflux-generate \
  --base-model schnell \
  --steps 4 \
  --model shuttleai/shuttle-3-diffusion \
  --prompt "A dog holding a sign that says mflux rocks"

make sure to accept the repo terms of service first at: https://huggingface.co/shuttleai/shuttle-3-diffusion before trying to use mflux / huggingface-hub to download the models to disk
sample from my local gen using the branch in #103

thanks so much! that works perfectly for me！

@puppyapple the PR hasn't officially merged yet, don't forget to circle back and re-install pip install mflux when the new version publishes.


attempt to fix formatting issue with JdkObsolete docs

The footnote on the JdkObsolete doc is formatted incorrectly.  This is an attempt to fix that by removing newlines.  Not sure if it worked; don't know how to test locally.  Is there any way to test this?

It's possible but inconvenient. We update gh-pages using util/update-local-pages.sh, and then you can run jekyll locally to test the changes. But I'm fine with making this change and seeing if it helps.
(And it looks like not all markdown parsers have trouble with the current formatting, but that's not a new problem...)

I don't have jekyll installed locally.  If you want to go ahead and merge to see if it works, I'm fine with that 😄

Sigh, doesn't seem to have worked 🙁


[WIP] Rewrite of Path to use Segments

Add a new segment type to path that allows for elliptical arcs and straight line segments.
Currently this just does Path, but maybe should do trail as well (or we should just have trail? segments assume that it is connected, but located).
Experiment with:

Rewriting arc, circle, rectangle, etc using path
Verified that these look the same in different backend. (this was much harder than I was expecting due to the fact that svg uses a non standard arc representation )
Add some more protocols for using transforms and traces.
Rounded rect now in standard form.

Questions:

Should these renderers be part of the backend now?
Can we eliminate Shape class entirely?

Thanks Sasha! I'll take a look in the following days!

This got a bit more ambitious. Tried to mimic the visitor pattern for shapes as well and move that to the backend. Also realized we weren't importing the types from the planar library, so I had to fix a bunch of typing issues to get it to type check. blech.

I've started going through the code and I like the changes: i think it improves the structure of the codebase! I still need to try some more examples, but a potential current issue is that the rendering of the path.py (the bottom shape) example looks different as an SVG compared to its PNG or PDF rendering. Also the PDF rendering produces some small imperfections; for example, the origin has a tiny extrusion

and in the last example from path.py the stroke line is not perfectly closed:

Okay, think I got these. The issue seems to be that Tikz is extremely sensitive to boundary points. The recommendation is to close on line segments if possible.
https://tex.stackexchange.com/questions/350015/how-can-i-close-a-path-made-of-arcs

For circles I made it 2 arcs that match at exactly the right angle.

Unrelatedly. Should we make the cairo backend scale by default to a much higher DPI? at the current default it is very hard to see.

Okay, think I got these. The issue seems to be that Tikz is extremely sensitive to boundary points. The recommendation is to close on line segments if possible.

Great!

Here is the cairo fixed rect.

Nice! 👍

Unrelatedly. Should we make the cairo backend scale by default to a much higher DPI? at the current default it is very hard to see.

Yes, I'm happy to output larger diagrams for cairo by default (the current height of 128 indeed results in tiny images).

I guess that is what you mean by "higher DPI", right?

I guess the problem is that height also controls line thickness now. It would be nice if that was the same for the same size with PNG / SVG. Maybe PNG could have a seperate scale parameter that defaults to 3 or something. Not sure if this function helps.

I guess the problem is that height also controls line thickness now.

Hmm... does it? Isn't the line width normalized by the output size by default?
I've tried the set_device_scale function, but it doesn't seem to be doing what we were expecting...

Think we are converged here. Going to check this in and add issues for:

Arc arguments
Rounded rect implementation and example (arrows to corners)
Changes to PNG.
Trail / Path. Perhaps most of the logics should be moved to Trail and path should just be a trail and a starting point.

Think we are converged here.

Agreed! 🙂 Thanks for the PR!


Improve Code of Camera.py

This PR is to add the DEFAULT VALUE to the shared data and remove logic from init process removed startup added also _state to properly set the state.

@coderabbitai review

@coderabbitai review ce3b34d


How about manage multiple ssh keys?

Suppose I have multiple ssh keys under my ~/.ssh folder, pshazz will help to manage the id_rsa by default, but what about others? Manually add them by using ssh-add?
Is there a best practice of using pshazz to manage multiple ssh keys?

I haven't tried it, but does this answer help?

Yes, this works. Actually I always use ssh config on Linux/Mac, but forgot to copy this to windows. Thanks for reminding me, closed.


flutter run -v  getting oops

[  +24 ms] executing: [/home/dev/flutter/] git rev-parse --abbrev-ref --symbolic
@{u}
[  +33 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/home/dev/flutter/] git rev-parse --abbrev-ref HEAD
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[   +2 ms] executing: [/home/dev/flutter/] git ls-remote --get-url origin
[   +7 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[        ] executing: [/home/dev/flutter/] git log -n 1 --pretty=format:%H
[   +8 ms] Exit code 0 from: git log -n 1 --pretty=format:%H
[        ] 8661d8aecd626f7f57ccbcb735553edc05a2e713
[        ] executing: [/home/dev/flutter/] git log -n 1 --pretty=format:%ar
[   +9 ms] Exit code 0 from: git log -n 1 --pretty=format:%ar
[        ] 3 months ago
[        ] executing: [/home/dev/flutter/] git describe --match v*.*.*
--first-parent --long --tags
[  +10 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long
--tags
[   +1 ms] v1.2.1-0-g8661d8aec
[  +92 ms] executing: /home/dev/Android/Sdk/platform-tools/adb devices -l
[   +8 ms] Exit code 0 from: /home/dev/Android/Sdk/platform-tools/adb devices -l
[        ] List of devices attached
           420026259a557200       device usb:2-1 product:coreprimeve3gxx
           model:SM_G361H device:coreprimeve3g transport_id:3
[ +235 ms] /home/dev/Android/Sdk/platform-tools/adb -s 420026259a557200 shell
getprop
[  +65 ms] ro.hardware = sc8830
[        ] ro.build.characteristics = default
[ +678 ms] Launching lib/main.dart on SM G361H in debug mode...
[  +21 ms] Initializing gradle...
[  +11 ms] Using gradle from /home/dev/apps/myapp/android/gradlew.
[  +63 ms] executing: /home/dev/apps/myapp/android/gradlew -v
[+15339 ms] Downloading
https://services.gradle.org/distributions/gradle-4.10.2-all.zip

                     Exception in thread "main" java.net.UnknownHostException:
                     services.gradle.org
                     	at
                     	java.net.AbstractPlainSocketImpl.connect(AbstractPlainSock
                     	etImpl.java:184)
                     	at
                     	java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
                     	at java.net.Socket.connect(Socket.java:589)
                     	at
                     	sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:
                     	673)
                     	at
                     	sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketIm
                     	pl.java:173)
                     	at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
                     	at
                     	sun.net.www.http.HttpClient.openServer(HttpClient.java:432
                     	)
                     	at
                     	sun.net.www.http.HttpClient.openServer(HttpClient.java:527
                     	)
                     	at
                     	sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.
                     	java:264)
                     	at
                     	sun.net.www.protocol.https.HttpsClient.New(HttpsClient.jav
                     	a:367)
                     	at
                     	sun.net.www.protocol.https.AbstractDelegateHttpsURLConnect
                     	ion.getNewHttpClient(AbstractDelegateHttpsURLConnection.ja
                     	va:200)
                     	at
                     	sun.net.www.protocol.http.HttpURLConnection.plainConnect0(
                     	HttpURLConnection.java:1157)
                     	at
                     	sun.net.www.protocol.http.HttpURLConnection.plainConnect(H
                     	ttpURLConnection.java:1032)
                     	at
                     	sun.net.www.protocol.https.AbstractDelegateHttpsURLConnect
                     	ion.connect(AbstractDelegateHttpsURLConnection.java:177)
                     	at
                     	sun.net.www.protocol.http.HttpURLConnection.getInputStream
                     	0(HttpURLConnection.java:1546)
                     	at
                     	sun.net.www.protocol.http.HttpURLConnection.getInputStream
                     	(HttpURLConnection.java:1474)
                     	at
                     	sun.net.www.protocol.https.HttpsURLConnectionImpl.getInput
                     	Stream(HttpsURLConnectionImpl.java:254)
                     	at
                     	org.gradle.wrapper.Download.downloadInternal(Download.java
                     	:58)
                     	at org.gradle.wrapper.Download.download(Download.java:44)
                     	at org.gradle.wrapper.Install$1.call(Install.java:61)
                     	at org.gradle.wrapper.Install$1.call(Install.java:48)
                     	at
                     	org.gradle.wrapper.ExclusiveFileAccessManager.access(Exclu
                     	siveFileAccessManager.java:65)
                     	at org.gradle.wrapper.Install.createDist(Install.java:48)
                     	at
                     	org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor
                     	.java:128)
                     	at
                     	org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMai
                     	n.java:61)
[  +14 ms] "flutter run" took 16,475ms.
[        ] "flutter run" took 16,475ms.

Oops; flutter has exited unexpectedly.
Sending crash report to Google.
Failed to send crash report due to a network error: SocketException: Failed host
lookup: 'clients2.google.com' (OS Error: No address associated with hostname,
errno = -5)

@enasellithy is it still an issue with current flutter stable? Please paste your graddle-wrapper.properties. Could you update gradle version to the latest 5.6.2?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


Updated contributors to use istio 1.9 rbac

@googlebot I signed it!

/lgtm
/approve
Thank you for keeping the docs updated!
Really appreciate it : )


Compiled file doesn't play well with collecstatic

Compiled file doesn't play well with collecstatic cause they are generated in the wrong place.

Fixed in 2c8d7a2b4c61412031d673fee712e82c8559fc34.


Integrated Application Insights & Organized Parameters Alphabetically.

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/do-e2e-tests


Remove Windows header from ClmFile

When opening or extracting from a CLM File, use FileStreamWriter instead of HANDLE
Update ClmFile to use C++11/14 practices when opening and extracting CLM files.
Use sizeof(X) instead of hardcoded integers when opening or extracting from CLM files.
Separate WAVE specific structures and constants into a separate header (WaveFile.h)
Clean ArchivePacker.cpp

This code doesn't fully remove Windows.h from the ClmFile class because it is pulled in from ArchivePacker.h. However, no features from Windows.h are used by ClmFile. Since VolFile uses Windows.h feature included in ArchivePacker.h, I couldn't remove Windows.h from ArchivePacker with this branch.
Wave file specific structures and constants are moved into a separate header called WaveFile.h. If we eventually remove ClmFile and instead just use a ClmPacker and ClmUnpacker class pair, Wave information will need to be available to both classes. It is also a first step towards perhaps having a WAVE specific reader/writer.
I would like to better encapsulate the WAVE constants since they now live in a header file and suggestions would be welcome. I thought this was low enough risk though since they are currently wrapped in the Archives namespace.
ClmHeader was expanded as a struct. The same constant is used when either checking the fileVersion is correct or setting the default fileVersion. Unfortunately, the way the file version is set is pretty ugly. I couldn't find a better way to set it using a std::array. There are now 2 constructors on ClmHeader as discussed in other branch. One for use when reading from disk and the other for use when writing a new ClmFile to disk.
const std::array<char, 32> standardFileVersion { 'O', 'P', '2', ' ', 'C', 'l', 'u', 'm', 'p', ' ',
		'F', 'i', 'l', 'e', ' ', 'V', 'e', 'r', 's', 'i', 'o', 'n', ' ', '1', '.', '0', '\x01A', '\0', '\0', '\0', '\0' };

Let me know what other improvements are noticed or bugs need fixing. Following tests were performed:

Writing a new CLM file and playing in game.
Extracting a CLM file and playing music in VLC.
Listing the packed file names and sizes of an existing CLM file

Thanks,
Brett

Hmm, maybe this StackOverflow answer on How to initialize a std::array<char, n> with a string literal will be useful. Though rather than omitting the trailing \0, the buffer can be \0 filled up to the declared size.
Cursory browse through looks fine. The change description makes sense. You seem to have identified a good intermediate point to stop at. I'll try to give the code a more detailed look through tomorrow.

Good call on the std::array<char, X>. I didn't realize it would automatically add a null terminator before attempting to assign the value to the std::array. Taking this into account allowed setting the constant standardFileVersion in a more human readable way. Just committed the change.
// A null terminator (\0) is automatically assigned to the end of the string when placing it within the std::array
const std::array<char, 32> standardFileVersion { "OP2 Clump File Version 1.0\x01A\0\0\0\0" };

As discussed in the other thread, we need to decide how to handle the null termination of IndexEntry::fileName. Currently, I am setting the 8th index (9th value) to the null terminator. However, this is a c style array with 8 values. While this is compiling, it seems like a bad idea? My preference would probably be to not include the null terminator in the array, but append it when retrieving the fileName in a GetFileName helper function.
char fileName[8];

...

indexEntries = std::vector<IndexEntry>(m_NumberOfPackedFiles);
clmFileReader->Read((char*)indexEntries.data(), m_NumberOfPackedFiles * sizeof(IndexEntry));

...

// Null terminate all packed fileNames.
for (IndexEntry& indexEntry : indexEntries) {
	indexEntry.fileName[8] = 0;
}

Indeed, that is a bad idea. It compiles because C++ doesn't bounds check arrays for you. You are overwriting adjacent memory when you null terminate like that. In the case of the struct mentioned, the null terminator will overwrite part of the following dataOffset field. That can corrupt the file index and lead to glitches in the sound.
As you've suggested, it may not be possible to null terminate within the fixed length fileName field, and so you can instead null terminate in a GetFileName helper function.
One of the downsides of using null terminated strings, is that it often requires copying strings to null terminate them. You can't null terminate in place if you can't modify the original, either due to it being const, or embedded in a longer string, or just stored in a completely filled fixed length buffer.
One note, I would recommend zero filling the end of the fileName array for short filenames. If there is only 4 characters in the filename, you should write 4 \0 bytes to the end of the fileName array.

Thanks for the comments. I'll take a crack at implementing them in the near future. The only thing I'm hesitant about is spending a lot of time in ArchiveUnpacker right now. It might be better to focus on removing Windows.h from VolFile first before overhauling ArchiveUnpacker?
I just realized that I can open a review instead of doing single comments which might keep from flooding inboxes so badly. I'll try that out next time.
-Brett

You're right, in that some of my suggestions are more appropriate for future work in a new branch. Removing the dependence on Windows.h seems more important than some of those longer term ideas.
I haven't figure out how to open a review for replies to comments. Would be nice to know how to collect all that together in one go.

Just updated this branch with changes.
Last thing that needs looked at from my perspective is zero filling the fileName array before writing when the fileName is less than 8 characters.
I realized that ClmFile was not using the base variable m_VolumeFileName. This was utilized as opposed to creating a new variable to store it as discussed.
Items that were discussed in this branch that should be considered in future branches:

Switching Read/Write functions to use void* instead of char*
Looking into applying the Read/Write template functions to autodetect sizeof to the base StreamReader/Writer classes. Currently they only apply to the child classes File/MemoryStreamReader/Writer.
Standardize where StreamReader/Writer point when recovering from a failure.
Reviewing edge cases and fail methods in ArchivePacker::Repack.
Making The Packing functions in ClmFile static so they do not rely on opening an existing ClmFile before packing a new one. Possibly separting ClmFile into ClmPacker/UnPacker.

Just pushed another commit. Barring anything major, I'd like to merge this branch as progress is stagnating.
There is some interesting stuff going on in IndexEntry::GetFileName. Dan's suggestion worked, but needed tweaking for ensuring the std::string's size didn't include multiple null terminators when they were present. It was causing comparison checks to fail. There may be a more elegant and faster way to complete this check.
Thanks,
-Brett

IndexEntry::GetFileName seems to be working for me with both 8 char strings and less than 8 char strings. I'm not a fan of the iterator, but it seems necessary. I had to adjust StringHelper::RemoveStrings to work properly. Not sure if this was an existing bug in RemoveStrings or if IndexEntry::GetFileName is not quite correct yet. If there is a better way to accomplish this or behavior is incorrect, lets open this in a bug report.
FileStream changes for pre-computing length and checking FileStreamReader's length during read operations were reverted as counter-suggested.
I hadn't realized that variables declared in a ranged based for loop could be declared const. I amended as appropriate within ClmFile and ArchivePacker.
Thanks,
Brett

And so the beast was merged. Hooray! And there was much rejoicing.


Feature/139 job details and delete

Expected Differences

[ ] Do these changes modify the system output in any way? [Yes or No]
No

Pull Request Testing
Describe testing already performed for these changes:

[x] Open job details

[x] Check that action buttons are appropriate for the job's state (Cancel, Delete, Open Viewer, Close)

[x] Launch a job

[x] Cancel the job

[x] Check that CloudFormation stack for the cluster was deleted after cancel is finished.

[x] Delete a job that has completed

[ ] Check that data are removed from S3 and the job is no longer in the list

[ ] Review layout on desktop and mobile devices.

[ ] Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:
Changes are deployed to app.wrfcloud.com, so you can use that to test.

[ ] Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes or No]

[ ] Do these changes include sufficient testing updates? [Yes or No]

[ ] Will this PR result in changes to the test suite? [Yes or No]
If yes, describe the new output and/or changes to the existing output:

[ ] Please complete this pull request review by [Fill in date].

Pull Request Checklist

[ ] Review the source issue metadata (labels, project, and milestone).
[ ] Complete the PR definition above.
[ ] Ensure the PR title matches the feature or bugfix branch name.
[ ] Define the PR metadata, as permissions allow.
Select: Reviewer(s)
Select: Project
Select: Milestone as the version that will include these changes
Select: Development to link to the original development issue.
[ ] After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
[ ] Close the linked issue and delete your feature or bugfix branch from GitHub.

@hahnd - Where on S3 should we see a particular job and ensure it's been deleted (when testing that function on the UI)? I was looking under wrfcloud-output/output for the job ID, but not finding any matches.

Yes, you can look under s3://wrfcloud-afdd9908/output/ to see if it is gone.

@hahnd - Thanks, I see it now. I deleted job WFAB89290FF from the UI, but it's still present on s3://wrfcloud-afdd9908/output/. Does it take a while to delete from s3? It's been about 15-20min.

Should be instantaneous.  The way we store the job and output data has changed recently, so try one that is not too old.  Maybe the “Denver Storm!” case I ran a couple of days ago: W3B6A7A0EE1

@hahnd - Hmm, I tried to Denver storm now, W3B6A7A0EE1, but it's still on s3.

That code is probably not working then.

@fossell - I just pushed a bug fix to this branch and deployed the API.  Data should be removed when you delete now.

@hahnd - It works!


langchain-server: ModuleNotFoundError: No module named 'langchain.cli'

System Info
WSL Ubuntu 20.04
langchain                     0.0.192
langchainplus-sdk             0.0.4
Who can help?
@agola11
Information

[X] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[x] Callbacks/Tracing
[ ] Async

Reproduction
I did as instructed in the link
https://python.langchain.com/en/latest/tracing/local_installation.html
pip install langchain --upgrade
langchain-server

Expected behavior
❯ langchain-server
Traceback (most recent call last):
File "/home/usr/miniconda3/envs/dev/bin/langchain-server", line 5, in
from langchain.server import main
File "/home/usr/miniconda3/envs/dev/lib/python3.11/site-packages/langchain/server.py", line 5, in
from langchain.cli.main import get_docker_compose_command
ModuleNotFoundError: No module named 'langchain.cli'

same same issue
mac os
langchain 0.0.193
use poetry for env

Same issue
RHEL 7
Python 3.8.14 and venv
langchain-0.0.194

same issue:
mac os
Python 3.10.9
langchain 0.0.194

same here
mac os
python 3.11
langchain 0.0.194

I installed langchain.cli manually and things seems to be working. e.g.
pipenv install langchain.cli

@gonzoramos unfortunately that downgrades langchain to 0.0.139. And won't work with 0.0.196.
I suspect langchain.cli (https://pypi.org/project/langchain-cli/) is not the same thing as the orphaned module in server.p:
from langchain.cli.main import get_docker_compose_command


[FEATURE] xarray integration + support for multidimensional arrays

🚨🚨 Feature Request

[ ] Related to an existing Issue
[x] A new implementation (Improvement, Extension)

Add support for multidimensional arrays. A typical usage pattern is weather or climate data where the variables are feature arrays by latitude, longitude, time, and pressure level. Building on xarray's Dataset.to_zarr method with a compatible Hub array storage schema would be beneficial.

Thanks @stanbiryukov! I'll work with the engineering team and to get this feature developed. Just so I can be effective, can you let me know how you're currently using Hub?

Hi @mynameisvinn - currently I've explored using the schema.BBox and schema.Tensor to store some flat 2D geospatial arrays. Support for multidimensional arrays would be great. It looks like there are some feature requests on the roadmap that might be complementary here (ie zarr grouping, and storing binary data like HDF5). The netCDF-like data access pattern would be useful to think through.

Yep good to know!  (I'm trying to get a sense of how users deal with small/big datasets.)

Typically too big to fit into memory :) a good example is ERA5 climate reanalysis data, where the various climate variables are gridded by .25 x .25 lat lon with 24 hours of data and 37 pressure layers. Xarray's to_zarr/from_zarr enables nice appending methods and lazy loading of these types of arrays with the appropriate metadata. Leveraging Hub's api would be great for these types of datasets.

i LOVE your use case. Can we spend chat for 10 min next week?

Sounds great! I'll reach out via slack

Closing this feature request due to inactivity and lack of interest. Will revive it if more users request it.


change to setuptools so that we can build and distribute a wheel

a simple change intended to make packaging spyder as a wheel possible.

Thanks for your contribution, but this is not really needed. You can just run
python2 setup.py bdist_wheel

to create wheels for Spyder. That's how we create the wheels we upload to PyPi :-)


Set up branches for development

Summary

We need a dev branch for PRs and testing code so that we don't push new code to main without thorough testing.
Proposed implementation

Create a dev branch and set it as the default branch

@kcpevey how do you want this set up?  Should we consider versioning now or later?

Should be good to go, dev is set as default.


fermion device receives poor json

Running
@qml.qnode(FermionDevice)
def simple_hopping(theta = 0):
    '''
    The circuit that simulates the experiments.

    theta ... angle of the hopping
    '''
    # load atoms
    FermionOps.Load(wires=0)
    FermionOps.Load(wires=1)

    # let them hop
    FermionOps.Hop(theta, wires=[0,1,2,3])

    # measure the occupation on the right side
    obs = FermionOps.ParticleNumber(0) @ FermionOps.ParticleNumber(1)
    return qml.expval(obs)

Leads too:
{"job_id": 487, "status": "INITIALIZING", "detail": "Got your json."}
So we will have to change the way these devices work with redis and most likely add a waiting time.

comment of Rohit: Wait for some time after submission and before asking for the result. This is specific for redis and should not be a problem with the current backend.

So we will have to fix this in the future as the real machines will make the same thing right ?

This should not appear anymore as long as there is no queuing happening in the back-end. However, if the back-end http://qsim-redis.herokuapp.com/ is selected I expect the bug to reappear. Or once this is merged into qsimsim...

I think that this is related to #11


Overview data graph should not drow a line if there is 0 data history (after a point was saved in the db)

Environment info

Version: 2.1.0-e430184
Deployment: AZURE
Customer: QA

Actual behavior

On the data buckets graph when there is 0 data history in nodes cloud and internal there should be "No data uploaded yet" instead of a line.

Already Fixed


Simplify implementation and allow custom SQL query

Instead of pre-defined queries, allow to submit custom SQL query, considering ACL by SQL server based users.

This will turn the gem into a web-SQL "bridge" instead of a RESTful implementation!


feat: solve year 2022, day 16

Closes: #45

:tada: This PR is included in version 1.16.0 :tada:
The release is available on:

v1.16.0
GitHub release

Your semantic-release bot :package::rocket:


README

README
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptance Criteria
GIVEN the prework project repository,
WHEN I view the README for the repository,
THEN I can see a professional README that provides information on the project and how to use it

-added sections from course template


Adding id to continue button link

Adding id to continue button link for easier selection and tracking.
Button/Link text can change based on locale - id can be used to track it across locales

LGTM;
I hope folks won't add multiple continue buttons on a screen, which would cause HTML errors. But I think that's too small of an edge case to address right now.

Yeah, I was thinking about that too - axe tests would catch duplicate ids and sounds like we'll have that at some point?


Number formatter problem with strings from DB

There is still a problem with the number formatting described in #3756. The problem occurs if you pass a string to the function asShortSize, which is the case if you pass the variable directly from DB.
var_dump(
    Yii::$app->formatter->asShortSize(28406984038),
    Yii::$app->formatter->asShortSize((string)28406984038),
    Yii::$app->formatter->asShortSize((28406984038 +<PHONE_NUMBER>8)),
    Yii::$app->formatter->asShortSize((string)(28406984038 +<PHONE_NUMBER>8))
);

output
string(9) "28,407 GB"
string(8) "2,147 GB"
string(9) "56,814 GB"
string(8) "2,147 GB"

Unable to reproduce.
Also there is a unit test, which covers string values:
https://github.com/yiisoft/yii2/blob/master/tests/framework/i18n/FormatterNumberTest.php#L362

Im running

Yii2 2.0.3
PHP 5.6.7 x86 NTS MSVC11

can you try running the unit tests in your setup?

Cloned from 029edee463bb876eab1be1e9e9c9669386c41144
phpunit --group=i18n
There were 4 failures:

1) yiiunit\framework\helpers\FormatConverterTest::testIntlUtf8Ru
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'24 ð░ð▓ð│ 2014 ð│.'
+'24 ð░ð▓ð│. 2014 ð│.'

xxx\tests\framework\helpers\FormatConverterTest.php:73
xxx\phpunit.phar:537

2) yiiunit\framework\i18n\FormatterDateTest::testIntlAsDatetime
Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
-Apr 29, 2015 1:25:57 PM
+Apr 29, 2015, 1:25:57 PM

xxx\tests\framework\i18n\FormatterDateTest.php:140
xxx\tests\framework\i18n\FormatterDateTest.php:128
xxx\phpunit.phar:537

3) yiiunit\framework\i18n\FormatterNumberTest::testIntlAsShortSize
Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
-28.41 GB
+2.15 GB

xxx\tests\framework\i18n\FormatterNumberTest.php:379
xxx\phpunit.phar:537

4) yiiunit\framework\i18n\FormatterNumberTest::testAsShortSize
Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
-28.41 GB
+2.15 GB

xxx\tests\framework\i18n\FormatterNumberTest.php:417
xxx\phpunit.phar:537

FAILURES!
Tests: 201, Assertions: 2248, Failures: 4, Incomplete: 1.

what is the icu version compiled with your php? see guide on how to get it: http://www.yiiframework.com/doc-2.0/guide-tutorial-i18n.html#setting-up-your-php-environment

PHP: 5.6.7
ICU: 54.1

Since the tests for the mentioned case consistently pass can this be closed?


Update stable version in repo from 1.3.0 to 1.4.0

Think about update stable version to 1.4.0
Version: stable=1.3.0 (140 days old) => latest=1.4.0 (15 days old)
Installs: stable=3868 (69.82%), latest=433 (7.82%), total=5540
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 1.4.0 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

GERMAN README.md required

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 1.4.0 but the current stable version is already 1.4.0.
So this issue should be closed.
@mcm1957 for evidence


Force cache update

Enables us to force cache refresh, which we do on an interval. This helps us maintain a low response time and avoid calls to AR being done on a sync call.

Closing this pull request, as it is replaced by PR #19.


Bump LEAP notebook tags

Oh oops. Thanks for catching this. Yes please merge whenever convenient.

Have a great weekend.


Implement a more light-weight approach to perform lookups of existing pre-specializations

Introduce and use new APIs to perform lookups of existing pre-specializations in a more light-weight way. Don't serialize and don't even try to read bodies of pre-specialized functions. Just check if they exist.

@swift-ci Please test


Attempt to submit data more than one time.

Currently, if there is a minor network glitch, the system will error out with the "could not upload to splunk" error message.
Consider adding a feature which will attempt to submit more than once.

Fixed with prior update.


feat: port Analysis.BoxIntegral.Partition.Filter

todo:

[x] henstock_le_riemann henstock_le_mcShane failed to reduce to 'true'
[x] MemBaseSet.exists_common_compl error at this h₂ h₁ hU.symm (le_of_not_le hc)

I think this is ready to go, @int-y1

bors merge


Update the retry to Configuring UEFI

And a short sleep and an extra retry for some
extra reliability.

/lgtm

/cherry-pick release-4.10


sm4-gcm & sm4-ccm with s_server cause crash when async requests are offloaded to external engine

Implementation of SM4-GCM and SM4-GCM fail with s_server when async requests are offloaded to external engine with Babassl. It is observed that s_server triggers encrypt and async waitctx cleanup processing almost at the same time.
While external engine is processing the encrypt request, the Babassl freed the async wait context and fds. This causes crash in external engine as it goes to Babassl async implementation to get the fds for the context using ASYNC_WAIT_CTX_get_fd, however, context is cleaned up by then. This encrypt request is issued just before the decrypt.
In SM4-CCM  - this is where the requests are issued – in file babassl/ssl/record/ssl3_record_tls13.c
if (((alg_enc & SSL_AESCCM || alg_enc & SSL_SM4CCM) != 0       //line no. 179
&& EVP_CipherUpdate(ctx, NULL, &lenu, NULL,
(unsigned int)rec->length) <= 0)
|| EVP_CipherUpdate(ctx, NULL, &lenu, recheader,
sizeof(recheader)) <= 0
|| EVP_CipherUpdate(ctx, rec->data, &lenu, rec->input,
(unsigned int)rec->length) <= 0
|| EVP_CipherFinal_ex(ctx, rec->data + lenu, &lenf) <= 0
|| (size_t)(lenu + lenf) != rec->length) {
return -1;
}
Everything works fine if 10 ms delay is introduced in s_server before it calls for SSL_set_shutdown.
In function ….static int www_body(int s, int stype, int prot, unsigned char context)    in file babassl/apps/s_server.c
end:
usleep(10000);
/ make sure we re-use sessions */
SSL_set_shutdown(con, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);    //line no. 3614
Could you please suggest what could be causing issue of 2 requests almost at the same time and what can be corrected here.
Pls note - with nginx as a server this issue is not observed.

Can you output the complete function call stack of the crash?
Or it would be better if you can tell me how to reproduce the problem step by step. For example, using an external demo engine.
Thanks.

The crash happens when external engine is fetching fds so you wont get anything about babassl stack from it. However, still this is where crash observed -
#0  ASYNC_WAIT_CTX_get_fd (ctx=0x555555647cb0, key=0x7ffff79f72ca, fd=fd@entry=0x7ffff6c5bbf4, custom_data=custom_data@entry=0x7ffff6c5bbf8)
at crypto/async/async_wait.c:68
#1  0x00007ffff79deed3 in xxxxxx_wake_job (job=0x55555564de40, jobStatus=jobStatus@entry=2) at external_engine_events.c:334
#2  0x00007ffff79f539d in xxxxxxxxxxxx_func2 (tlv=tlv@entry=0x55555566d8e0) at external_engine_sm4_ccm.c:656
#3  0x00007ffff79e1b2e in xxxxxxxxxxxx_func1 (thread_ptr=0x55555566d8e0) at external_engine_file1.c:824
#4  0x00007ffff7c07609 in start_thread (arg=) at pthread_create.c:477
#5  0x00007ffff7b2c133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
this is code in babassl
curr = ctx->fds;
while (curr != NULL) {
if (curr->del) {  //crash is observed here
/* This one has been marked deleted so do nothing */
Commands -
./openssl s_server -engine xxxxxx -key /babassl/test_certs/sm2_cert/sm2-root.key -cert /babassl/test_certs/sm2_cert/sm2-root.crt -accept 443 -www -named_curve -nbio -tls1_3 SM2 -async
./openssl s_time -connect localhost:443 -reuse -ciphersuites TLS_SM4_CCM_SM3 -www /index.html -time 10
Steps -
1 - Run the server with first command
2 - Run the client with second command
Sorry, I don't have demo engine to share.  If we don't apply the delay, the wait context is cleaned up by s_server before the encrypt request is processed by external engine. This clean up happens with Babassl sm4-ccm implementation too, however, by then encrypt request is processed by babassl sm4-ccm implementation.

@amitk18x Please tell me how to solve this follow-up, I have the same problem with tengine.

@foxriver1025 I didn't face this issue with nginx or tengine.

@amitk18x The issue has been solved.  [See this](https://github.com/alibaba/tengine/pull/1795.
Tengine + hw engine with async_on can meet this problem.


update module purchase order, purchase order external, unit receipt note

update module purchase order, purchase order external, unit receipt note

Coverage decreased (-0.3%) to 76.887% when pulling 538e6d357587647b5a5fd984585b7025c073d3c9 on adityahenanda:dev into c9eae1dcf725f192c4d18bcb3bb453e62463dbf6 on danliris:dev.


Can't set subquery as WHERE condition.

(new \ExampleModel)->where('(SELECT COUNT(*) FROM t1 WHERE t1_exa_id = ex_id)',10);

The reason is in whereHaving() method:
				$op = $this->getOperator($k);
				$k  = trim(str_replace($op, '', $k)); //here...

I am wondering if we could introduce method which allows us to turn off filtering operators from "field" names.
I think the solution will be:

changing whereHavingMethod():

				$op = $this->getOperator($k);
				if($escapeField)
				{
					$k  = trim(str_replace($op, '', $k));
				}

changing all whereX() methods like this:

	public function where($key, $value = null, $escape = null, $escapeField = true)
	{
		return $this->whereHaving('QBWhere', $key, $value, 'AND ', $escape, $escapeField);
	}

or intruduce new method like escapeFields(bool $escape = true)

	/**
	 * If operators are existed in names of fields should be deleted or not.
	 *
	 * @var bool
	 */
	protected $escapeFields = true;

	/**
	 * Allows to turn off deleting operators from field names.
	 * @param bool $escape
	 * @return $this
	 */
	public function setEscapeFields(bool $escape = true)
	{
		$this->escapeFields = $escape;
		return $this;
	}

There is a different way to set the subquery in CodeIgniter.
This is the way to do so,
$subQuery = $this->db->table('job')
		   ->select('id')
		   ->where('name', 'Developer')
		   ->getCompiledSelect();

$jobs = $this->db->table('job')
                 ->where('id not in (' . $subQuery . ')', null, false)
                 ->get()
                 ->getResult();

In the above example, you can see the subquery is mentioned in the where condition, where $value parameter is null and $escape is false.
related to this, I have created the test cases for the same. Refer #1906.

Or through query grouping.


Use Sourcify when encoding/decoding governance proposals

Description
The tooling around governance proposals was initially designed under the assumption that Governance interacts only with Celo core contracts, i.e. contracts that are:

registered in the Registry
included in ContractKit
part of the @celo/protocol package.

This assumption was first challenged a few months ago when we needed to deploy Reserve funds to a Mobius pool, and we had to interact with external contracts. The tooling was patched in a pretty hacky fashion (#9735) due to time constraints, but the general idea was that the tooling should have additional ways to retrieve metadata about contracts it interacts with.
As we're moving forward with Mento we're moving away from the monorepo, ContractKit, and the Registry, while still having to interact with Governance for upgrades and future releases. This means that unless there's a more general solution we will hit this problem as well. And the community is also slowing moving away from a ContractKit-centric development mentality and more into broader ecosystem tools.
This PR puts forward a future-proof solution to this problem by leveraging sourcify to lookup contract metadata. Therefore governance will be able to decode/encode transactions to any contracts that are verified on Sourcify.
For example, for the Mobius pool liquidity we had this transaction as part of the cgp.json:
  {
    "contract": "0xFa3df877F98ac5ecd87456a7AcCaa948462412f0",
    "function": "addLiquidity(uint256[],uint256,uint256)",
    "args": [
      [
        "5000000000000000000000000",
        "5000000000000"
      ],
      0,
<PHONE_NUMBER>
    ],
    "value": "0"
  }

We made this work at the time in #9735 by:
(1) Allowing addresses for the contract field instead of just Registry names.
(2) Providing a function call signature for the function field instead of just a function name
(3) Having a list of "known functions" so the tooling can turn an on-chain encoded proposal back to human readable.

(3) being a hackiest part of that PR

After this PR we can add this transaction as:
  {
    "contract": "0xFa3df877F98ac5ecd87456a7AcCaa948462412f0",
    "function": "addLiquidity",
    "args": [
      [
        "5000000000000000000000000",
        "5000000000000"
      ],
      0,
<PHONE_NUMBER>
    ],
    "value": "0"
  }

The major difference is that we can remove the arguments from the function parameter. And the tooling will output:
0:
  contract: SwapUSDCet(0xFa3df877F98ac5ecd87456a7AcCaa948462412f0)
  function: addLiquidity
  args:
    0:
      0:<PHONE_NUMBER>000000000000000
      1:<PHONE_NUMBER>000
    1: 0
    2:<PHONE_NUMBER>
  params:
    __length__: 3
    amounts:
      0:<PHONE_NUMBER>000000000000000
      1:<PHONE_NUMBER>000
    minToMint: 0
    deadline:<PHONE_NUMBER> (~1.661e+9)
  value: 0

What happens is that 0xFa3df877F98ac5ecd87456a7AcCaa948462412f0 is a contract that's verified on sourcify so the tooling downloads the metadata.json file from which it can extract the contract name (SwapUSDCet) and the ABI and find the addLiquidity function and encode everything with naming the params and all, without relying on any hardcoded values.

The tooling also has some heuristics to determine if the contract passed in is a proxy and look up the implementation to see if it's verified. This is not very fleshed out but is isolated enough to be easily extensible.
It's important to note that if all @celo/protocol contracts would be verified on sourcify, this PR could be the first step in making the decoding/encoding part of the governance proposal much leaner.
Other changes
N/A
Tested
Added some specs for the sourcify metadata comprehension and tested out locally with different governance json configurations.
Related issues

#9735

Backwards compatibility
Everything is backward compatible, the new code paths are complementary to the existing functionality.
Documentation
Unsure if this requires documentation changes.

@aaronmgdr @gastonponti if y'all have time I'd super appreciate a review 🙏 tagged y'all 'cose you were involved in #9735

It's important to note that if all @celo/protocol contracts would be verified on sourcify, this PR could be the first step in making the decoding/encoding part of the governance proposal much leaner.

This is something that would also be super useful for data services. We rely on sourcify's db to retrieve contract ABIs for decoding transactions.

looks like most of the breaking changes dont really need to be breaking. the changed method names could be aliased to the new and marked as deprecated as well


bat: init at 0.2.0

Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Success on x86_64-linux (full log)
Attempted: bat
Partial log (click to expand)
cp: -r not specified; omitting directory 'target/release/examples'
cp: -r not specified; omitting directory 'target/release/incremental'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0
shrinking /nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0/bin/bat
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0/bin
patching script interpreter paths in /nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0
checking for references to /build in /nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0...
/nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0

Failure on x86_64-darwin (full log)
Attempted: bat
Partial log (click to expand)
          clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: Could not compile `bat`.

To learn more, run the command again with --verbose.
builder for '/nix/store/bq2p54ybkny990rfc0fv7y1r6i4x23vh-bat-0.2.0.drv' failed with exit code 101
error: build of '/nix/store/bq2p54ybkny990rfc0fv7y1r6i4x23vh-bat-0.2.0.drv' failed

Success on aarch64-linux (full log)
Attempted: bat
Partial log (click to expand)
cp: -r not specified; omitting directory 'target/release/native'
cp: -r not specified; omitting directory 'target/release/deps'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0
shrinking /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0/bin/bat
strip is /nix/store/gp7fylxwn18b7pl2c18ks89hsiaxyfvf-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0/bin
patching script interpreter paths in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0
checking for references to /build in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0...
/nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0

installing
cp: -r not specified; omitting directory 'target/release'
cp: -r not specified; omitting directory 'target/release/deps'
cp: -r not specified; omitting directory 'target/release/.fingerprint'
cp: -r not specified; omitting directory 'target/release/native'
cp: -r not specified; omitting directory 'target/release/build'
cp: -r not specified; omitting directory 'target/release/examples'
cp: -r not specified; omitting directory 'target/release/incremental'

Is it safe to ignore these errors?

I ran it successfully. I saw these errors, too. So I guess they can be ignored.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: bat
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: bat
Partial log (click to expand)
/nix/store/1qwsd6f75d9187isly5xxliq3pr64qg2-bat-0.2.0

Success on aarch64-linux (full log)
Attempted: bat
Partial log (click to expand)
cp: -r not specified; omitting directory 'target/release/native'
cp: -r not specified; omitting directory 'target/release/deps'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0
shrinking /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0/bin/bat
strip is /nix/store/gp7fylxwn18b7pl2c18ks89hsiaxyfvf-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0/bin
patching script interpreter paths in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0
checking for references to /build in /nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0...
/nix/store/v0zaqxf0j2kjd7liwkahkbplawifwns4-bat-0.2.0


Update CONTRIBUTING.md

All SDK Contribution checklist:
This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] Please open PR in Draft mode if it is:

Work in progress or not intended to be merged.
Encountering multiple pipeline failures and working on fixes.

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code. (Track 2 only)
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK. Please double check nuget.org current release version.

Additional management plane SDK specific contribution checklist:
Note: Only applies to Microsoft.Azure.Management.[RP] or Azure.ResourceManager.[RP]

[ ] Include updated management metadata.
[ ] Update AzureRP.props to add/remove version info to maintain up to date API versions.

Management plane SDK Troubleshooting

If this is very first SDK for a services and you are adding new service folders directly under /SDK, please add new service label and/or contact assigned reviewer.

If the check fails at the Verify Code Generation step, please ensure:

Do not modify any code in generated folders.
Do not selectively include/remove generated files in the PR.
Do use generate.ps1/cmd to generate this PR instead of calling autorest directly.
Please pay attention to the @microsoft.csharp version output after running generate.ps1. If it is lower than current released version (2.3.82), please run it again as it should pull down the latest version.

Note: We have recently updated the PSH module called by generate.ps1 to emit additional data. This would help reduce/eliminate the Code Verification check error. Please run following command:
  `dotnet msbuild eng/mgmt.proj /t:Util /p:UtilityName=InstallPsModules`

Old outstanding PR cleanup
Please note:
If PRs (including draft) has been out for more than 60 days and there are no responses from our query or followups, they will be closed to maintain a concise list for our reviewers.

//fyi @pakrym,  who is currently working on runtime version updates across the repository

What is 2.0 runtime required for?

@pakrym  this error has been often showing when we try to run tests:
========== Starting test run ==========
Testhost process exited with error: It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '2.1.0' was not found.

The following frameworks were found:
2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
3.1.21 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
5.0.12 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.1.0&arch=x64&rid=win10-x64
. Please check the diagnostic logs for more information.
Testhost process exited with error: It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '2.1.0' was not found.
The following frameworks were found:
2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
3.1.21 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
5.0.12 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.1.0&arch=x64&rid=win10-x64
. Please check the diagnostic logs for more information.

@jsquire  and getting the 6.0 desktop Runtime app has not fix the issue, only getting the 2.1 console Runtime app

Are you rebased on latest main? How are you running your tests?


Add Entrenching Component

Adds entrenching tool abilities to backpacks with shovels.

(Requires GRAD update to work.)

No need to wait, it's ACE feature which GRAD just does not "see" right now.


[iOS] Application crashes when processing onCreateWindow

Environment

Technology
Version

Flutter version
1.22.3

Plugin version
5 (lastest master, the same issue in 4.0.0)

Android version

iOS version
4.0.1 and 4.1 (other OS versions not tested)

Xcode version
12.1

Device information:
iPhone 8
Description
Crash application with force unwrap nil exception when processing onCreateWindow

Same issue here, any solution?

I have same issue.
If I implement async and return value, it crash.
onCreateWindow: (controller, onCreateWindowRequest) async {
    print("onCreateWindow called with URL ${onCreateWindowRequest.url}");
    return true;
},

if I no return, no crash.
onCreateWindow: (controller, onCreateWindowRequest) {
    print("onCreateWindow called with URL ${onCreateWindowRequest.url}");
},

@Alexays thanks! I fixed it! It was not related to calling it inside the onWebViewCreated event, but there was another problem.
On iOS, when you try to open a new WebView window, for example, because of target="_blank", it starts the request as soon as the link is clicked. Instead, on Android, it won't start until you create a new WebView window (in this case from the Flutter side).
So, I added one more flag that is used to block the request itself if the new WebView window is not created yet from the Flutter side.
This fix will be available in the next release.


Guarding NPCs does not teleport when out of range?

In the outdated sentry plugin guarding NPCs teleported to target, when they got too far away.
Sentinels Guards seem to just be left behind. Is this an intended behavior?
/edit
Hmm something seems just really wrong.
My bodyguard is just ignoring every monster around me. And is moving to and fro. (an issue with citizens linear pathing?)
Targets: MONSTER
Ignored Targets: Owner (Which seems not to work at all)
Ignored Other Targets: faction:rising (mine) (Doesn't work as intended too - if I hit the npc, he's attacking me)
Craftbukkit 1.12.2
Citizens 2.0.22 (Build 1494)
Sentinel 1.4 (Build 146)
No error messages
/edit 2
Having waypoints and guarding a target at the same time, is causing the trouble.
Would be nice, if you could switch between area guarding and target guarding without removing the waypoints all the time ^^
Ignoring owner and factions still does not work for me tough (at least not for guardin area)

Build DEV-151+ http://ci.citizensnpcs.co/job/Sentinel/ contains a "first try" at solving this... I made it care less about path points when guarding a player. I don't know how much effect this will have. Try it, and let me know how it goes!

Didn't work :(
Still runs toward waypoints.

The fix was mainly in the direction of making it still attack enemies even when away from its waypoints.

Build DEV-153+ should fix running towards waypoints as well.

It works now :D

Wonderful!

But it still doesn't auto teleport, when pathing

It should teleport when it exceeds 60 blocks of distance.
Or does it get pulled back to a path point?

No, it's just stays there, where it's way is blocked. And it doesn't auto teleport, if you warp somewhere (like it does without waypoints)

It's likely being unfortunately blocked by the waypoint system somehow in a way pausing that couldn't prevent. Not much I can really do to my knowledge... short of hacking about with Citizens to remove the waypoints trait entirely and restore it later (not currently doable within the Citizens API, though).
Any fix would need to be done in Citizens, I believe.


[BUG] App appears as blank in store admin

Current Behavior
The page does not automatically redirect to either 'get-started' or  'proudcts', thus appears to be blank when launching the app.
I suspected this is due to a failed redirect from Next.js useRouter
I understand this repo is marked as deprecated, but it does not explain why the routing system from Next.js does not work.
Expected Behavior
No response
Steps To Reproduce
No response
Environment
- OS:
- Node:
- npm:

Anything else?
No response

Same issue, do you have a good solution?

Hey there @aminick and @Hades-888. I'm having trouble reproducing this error. I was just able to follow the steps here to do a fresh build and install of the app locally.

To clarify, are you having trouble installing the app, or is there an error happening after installation?
Do you have a stack trace or screenshot you can attach?

but let's keep this open for now, seems like it's not a "just me" issue.

+1. I'll try and get a colleague to try to reproduce it too.

there is no error reported, and it's just a bank screen.

I should have mentioned, is there anything in the browser's console log? (using the built-in inspection tools)


Is it possible to support function documentation?

I want to write a vim doc with many (lua) functions for neovim. Is it possible to generate a doc like this?
In https://neovim.io/doc/user/api.html

a simple example

nvim_win_get_tabpage({window})                        *nvim_win_get_tabpage()*
                Gets the window tabpage

                Parameters:
                    {window}  Window handle, or 0 for current window

                Return:
                    Tabpage that contains the window

a complex example

nvim_create_autocmd({event}, {*opts})                  *nvim_create_autocmd()*
                Create an |autocommand|

                The API allows for two (mutually exclusive) types of actions
                to be executed when the autocommand triggers: a callback
                function (Lua or Vimscript), or a command (like regular
                autocommands).

                Example using callback:
                    -- Lua function
                    local myluafun = function() print("This buffer enters") end

                    -- Vimscript function name (as a string)
                    local myvimfun = "g:MyVimFunction"

                    vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, {
                      pattern = {"*.c", "*.h"},
                      callback = myluafun,  -- Or myvimfun
                    })

                Example using command:
                    vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, {
                      pattern = {"*.c", "*.h"},
                      command = "echo 'Entering a C or C++ file'",
                    })

                Example values for pattern:
                  pattern = "*.py"
                  pattern = { "*.py", "*.pyi" }

                Example values for event:
                  "BufWritePre"
                  {"CursorHold", "BufWritePre", "BufWritePost"}

                Parameters:
                    {event}  (string|array) The event or events to register
                             this autocommand
                    {opts}   Dictionary of autocommand options:
                             • group (string|integer) optional: the
                               autocommand group name or id to match against.
                             • pattern (string|array) optional: pattern or
                               patterns to match against |autocmd-pattern|.
                             • buffer (integer) optional: buffer number for
                               buffer local autocommands |autocmd-buflocal|.
                               Cannot be used with {pattern}.
                             • desc (string) optional: description of the
                               autocommand.
                             • callback (function|string) optional: if a
                               string, the name of a Vimscript function to
                               call when this autocommand is triggered.
                               Otherwise, a Lua function which is called when
                               this autocommand is triggered. Cannot be used
                               with {command}. Lua callbacks can return true
                               to delete the autocommand; in addition, they
                               accept a single table argument with the
                               following keys:
                               • id: (number) the autocommand id
                               • event: (string) the name of the event that
                                 triggered the autocommand |autocmd-events|
                               • group: (number|nil) the autocommand group id,
                                 if it exists
                               • match: (string) the expanded value of
                                 |<amatch>|
                               • buf: (number) the expanded value of |<abuf>|
                               • file: (string) the expanded value of
                                 |<afile>|

                             • command (string) optional: Vim command to
                               execute on event. Cannot be used with
                               {callback}
                             • once (boolean) optional: defaults to false. Run
                               the autocommand only once |autocmd-once|.
                             • nested (boolean) optional: defaults to false.
                               Run nested autocommands |autocmd-nested|.

                Return:
                    Integer id of the created autocommand.

                See also:
                    |autocommand|
                    |nvim_del_autocmd()|

For legacy viml function, there are also a example, in https://neovim.io/doc/user/builtin.html
getbufvar({buf}, {varname} [, {def}])				*getbufvar()*
		The result is the value of option or local buffer variable
		{varname} in buffer {buf}.  Note that the name without "b:"
		must be used.
		The {varname} argument is a string.
		When {varname} is empty returns a |Dictionary| with all the
		buffer-local variables.
		When {varname} is equal to "&" returns a |Dictionary| with all
		the buffer-local options.
		Otherwise, when {varname} starts with "&" returns the value of
		a buffer-local option.
		This also works for a global or buffer-local option, but it
		doesn't work for a global variable, window-local variable or
		window-local option.
		For the use of {buf}, see |bufname()| above.
		When the buffer or variable doesn't exist {def} or an empty
		string is returned, there is no error message.
		Examples:
			:let bufmodified = getbufvar(1, "&mod")
			:echo "todo myvar = " .. getbufvar("todo", "myvar")

 		Can also be used as a |method|:
			GetBufnr()->getbufvar(varname)

It seems like:
functionname({params})                                 *functionname()*
|<--    16 space   -->|Content
|<--    16 space   -->||<-8 spaces-->|Sub content
|<--    16 space   -->||<-4 ->|{param1}    description

It'd be great to add this! I'm currently on a break and will keep this issue in mind when I return to working on open source!

I'm just getting back to tackling a number of issues in this project, and I've made a new release that uses Pandoc v3 with a number of improvements. As part of that, I wanted to revisit this issue.
Do you have in mind what you'd like the markdown file to look like?
Pandoc supports something called definition lists that we can co-opt for this purpose. I can make this:
api.get_tabs()

:   Return true if this window is floating.

generate this:
api.get_tabs()                                            *tabby.api.get_tabs()*
    Get all tab ids

Thoughts?

Hi, I tried this, bug get an error:
Error running Lua:
panvimdoc/scripts/panvimdoc.lua:198: attempt to perform arithmetic on a nil value (field 'incrementheadinglevelby')
stack traceback:
        while rendering Pandoc

Hi, I tried this, but get:
                                                            *api.get_tabs()*

api.get_tabs()                         Get all tab ids

                                                        *api.get_tab_wins()*

api.get_tab_wins({tabid})              Get an winid array in specified tabid.

                                                     *api.get_current_tab()*

api.get_current_tab()                  Get current tab’s id.

                                                 *api.get_tab_current_win()*

api.get_tab_current_win({tabid})       Get tab’s current win’s id.

                                                      *api.get_tab_number()*

api.get_tab_number({tabid})            Get tab’s number.

                                                            *api.get_wins()*

api.get_wins()                         Get all windows, except floating window.

                                                         *api.get_win_tab()*

api.get_win_tab({winid})               Get tab id of specified window.

                                                        *api.is_float_win()*

api.is_float_win({winid})              Return true if this window is floating.

                                                    *api.is_not_float_win()*

api.is_not_float_win({winid})          Return true if this window is not floating.

And furthermore, if I write these in README:
buf.type()
:   Get buftype option.

    Return:
        buftype, normal buffer is an empty string. check |buftype| or
        <https://neovim.io/doc/user/options.html#'buftype'> for details.

will generate:
                                                                *buf.type()*

buf.type()                             Get buftype option.
                                       Return:
                                       buftype, normal buffer is an empty string. check |buftype| or
                                       |https://neovim.io/doc/user/options.html#'buftype'| for details.

 What are you expecting?

The generated text differs from your explained in before.
I expect to generate what I wrote in the vim doc code block you mentioned. These codes follow a pattern that is used to neovim lua function documents.

That’s the expected output I’m seeing in your comment. What are you expecting?

The generated text differs from your explained in before.
I expect to generate what I wrote in the vim doc code block you mentioned. These codes follow a pattern that is used to neovim lua function documents.
This situation might not be easy to display nicely in both README and VimHelp; I just asking for help. If it cannot be made, it's also ok.

My bad! I completely zoned out while typing that comment and was incorrect.
Definition Lists at the moment generate a two column layout, i.e.
buf.type()
:   Get buftype option.

    Return:
        buftype, normal buffer is an empty string. check |buftype| or
        <https://neovim.io/doc/user/options.html#'buftype'> for details.

generates
                                                                *buf.type()*

buf.type()                             Get buftype option.
                                       Return:
                                       buftype, normal buffer is an empty string. check |buftype| or
                                       |https://neovim.io/doc/user/options.html#'buftype'| for details.

However, level 4 markdown headers with the docmapping: true option added to the github action or in the command line, will generate something similar to what you are looking for. For example, this:
#### :FnlCompile[!] {doc=:FnlCompile}

Diff compiles all indexed fennel files

#### :FnlCompile[!]

Diff compiles all indexed fennel files

#### :[range]CommandName {doc=CommandName}

#### :[range]CommandName

will generate this:
:FnlCompile[!]                                                   *:FnlCompile*

Diff compiles all indexed fennel files

:FnlCompile[!]                                              *test-:FnlCompile*

Diff compiles all indexed fennel files

:[range]CommandName                                              *CommandName*

:[range]CommandName                                        *test-:CommandName*

It's not super pretty yet.
I'm open to suggestions for markdown syntax that would look good in a Markdown file. I can figure out a way to generate the appropriate vimdoc text from that if we can decide on what the markdown file should look like.
Right now both options I have currently implemented are not ideal. The definition lists are not rendered by GitHub and the level 4 headers have to have a {doc = name} if you want to change what the tag name should be, which again renders on GitHub in a not readable manner.
Ideally it would be in a comment like so  but that makes it much harder to parse.
I'll leave this issue open till I come up with a better solution.

Is this still work? I use this, but no anchor/tag is created, and the header will be in full uppercase.
I have a new thought for the tag. Can you support content ? It will display a link in GitHub README, and if Vimpandoc renders this to Vim tag, it will be very nice.


Summernote Validation

I try many way to validate summer note note but i can't. Here is my code
JS:
$('#frm').validator({
	custom: {
		summernote: function($el){
			var code=$el.code()
			if(code.lenght<=11) return false//Summernote default has

			else return true
		}
	},
	errors: {
		summernote: 'This field can\'t be empty'
	}
})

Html:

	Metin:

	<textarea class="summernote" data-editor="1" name="metin" required data-summernote="validate"></textarea>

Then i have tried this way:
Js:
$.fn.validator.Constructor.VALIDATORS.summernote = function ($el) {
	if($el.code().lenght<=11) return false//Summernote default has

	else return true
}

Html:

	Metin:

	<textarea class="summernote" data-editor="1" name="metin" required data-summernote="validate" data-summernote-error="This field can't be empty"></textarea>

So anybody help?

Not sure if you typed this example up just now or copy/pasted it from your code, but you have a typo in
if($el.code().lenght<=11) return false

should be
if($el.code().length<=11) return false

Ops. You are right in this example it's wrong. In document i wrote length :)

You are using the custom validator correctly, so I don't know what could be wrong. Maybe that .code() jQuery plugin isn't working. Are you getting any console errors?

Nope :(

I just looked into what summernote does and it seems like it hides and replaces your textarea with its own and doesn't carry over the data-attributes, so the validator doesn't try to validate it. You should open an issue on summernote to preserve data-attributes on the replaced element.
In the meantime, you can just be sure to add the validator attributes to the summernote element once it's been added
$('#summernote').summernote();
$('.note-codable').attr('required', true).attr('data-summernote', true)


Raw historical prices

Hi, great project! Do you know of a source that allows me to retrieve unadjusted historical prices?
For example, the prices here should be double (i.e., in 40s range) since the stock had 2:1 split in February 2021.
https://finance.yahoo.com/quote/EXPI/history?period1=1601251200&period2=1601337600&interval=1d&filter=history&frequency=1d
https://query2.finance.yahoo.com/v8/finance/chart/EXPI?period1=1601251200&period2=1601337600&interval=1d&events=history

Hi @thdoan,
Thanks for reaching out. We are querying YAHOO Finance api, and as far as I know, YAHOO Finance doesn't provide unadjusted historical stock prices. So I am afraid, we can't retrieve unadjusted historical prices.
I hope that helped.

Closing the issue, as no response. Feel free to re-open.


Refactor param automation mess

Hey @orottier,
Here is an attempt for cleaning the huge messy match in AudioParamProcessor::compute_buffer (which has been boring me since a long time...). It's not finished at all, I just rewrote the SetValue stuff for now, I prefer to have your feedback before spending more time on it.
What do you think, should I go on?
(Maybe that could help also with perf by minimizing cache, I don't really know)

/bench

Hey, definitely anything that reduces the match method complexity is fine with me.
We are maybe able to make the pattern you are suggesting a bit more elegant. I don't think you need to take out the &mut event_timeline to work around the borrow checker
If you make the EventType a Copy-type:
#[derive(PartialEq, Eq, Debug, Copy, Clone)]
enum AudioParamEventType {

And start the big match with
        loop {
            let next_event_type = self.event_timeline.peek().map(|e| e.event_type);

            match next_event_type {
                None => {
// snip
                    break;
                }
                Some(AudioParamEventType::SetValue) | Some(AudioParamEventType::SetValueAtTime) => {
                    if self.compute_set_value_automation(&block_infos) {
                        break;
                    }
                }
               // etc

A drawback with your suggested solution is that we peek twice for every handled event, but maybe that is acceptable

Ok thanks, your method worked like a charm!
Pretty happy this is cleaned up :)

/bench

Tests pass, code is more readable. Great work


[Karpenter] Rule with the name already exists on this event bus.

Description
We cannot create Event bridge rules when we deploy more than one cluster in the same region with this option. karpenter_enable_spot_termination_handling = true
Versions

Module version [Required]:
v4.25.0
Terraform version:
v1.3.9

Provider version(s):

+ provider registry.terraform.io/gavinbunney/kubectl v1.14.0
+ provider registry.terraform.io/hashicorp/aws v4.53.0
+ provider registry.terraform.io/hashicorp/cloudinit v2.2.0
+ provider registry.terraform.io/hashicorp/helm v2.8.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.17.0
+ provider registry.terraform.io/hashicorp/local v2.3.0
+ provider registry.terraform.io/hashicorp/null v3.2.1
+ provider registry.terraform.io/hashicorp/tls v4.0.4
+ provider registry.terraform.io/terraform-aws-modules/http v2.4.1

Reproduction Code [Required]
https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/e0e9aeb7ea785613cf794d524f79bcf5929bb6b8/modules/kubernetes-addons/karpenter/main.tf#L40

Steps to reproduce the behavior:

Expected behavior
should be able to create more than one cluster in the same region without conflict with the resources naming

Actual behavior
Rule with the name already exists on this event bus.

As mentioned, this is dupe of #1471


Feature: Adds a Proxy for the download process of three-party dependent modules

Feature Request
Is your feature request related to a problem? Please describe:

Support proxy mode to improve the stability and speed of the download process. Similar to the ability to set up proxies provided in go mod and cargo
Describe the feature you'd like:

Describe alternatives you've considered:

Teachability, Documentation, Adoption, Migration Strategy:

Hey @zong-zhe! I would like to try this one. Can you help me get started?

Hi @zong-zhe,
I would like to work on adding proxy support to our downloader module to enhance the download process of third-party dependencies, especially in environments that require proxy configurations. My approach involves introducing a ProxyURL option in our download settings and updating the relevant code to utilize this proxy setting throughout the download process.
By adding a ProxyURL field to our configuration structs and modifying the download methods to use custom HTTP clients with proxy settings, we can ensure that both Git and OCI downloads operate smoothly behind a proxy.
May I work on this issue to implement the proxy support as described?

Hi @inosmeet @ravjot07 😄
Welcome !
This job is in the very early stage of solving the problem of slow download speed caused by KCL being limited by network problems. You may need to learn more about project content and some proxy-related things first, refer to some existing programming language package management tools on the market, and minimize the problem of the task that needs to be done. Could you try provide a paperwork solution first ? 😄

Hi @ravjot07 😄
Thanks very much for your contribution, but we can move forward with this part of the work as planned. You don't have to rush with the code. First, we complete some necessary preparations through the paperwork solution. I will now close this PR: https://github.com/kcl-lang/kpm/pull/547. You can add some paperwork solution PRs to this directory: https://github.com/kcl-lang/kpm/tree/main/research/design-doc.

Hi @ravjot07 😄
Thanks very much for your contribution, but we can move forward with this part of the work as planned. You don't have to rush with the code. First, we complete some necessary preparations through the paperwork solution. I will now close this PR: #547. You can add some paperwork solution PRs to this directory: https://github.com/kcl-lang/kpm/tree/main/research/design-doc.

Sure @zong-zhe I will add paperwork solution first......

Hey there! Is this still open to be taken up? In that case, I too would love to provide a paperwork solution to this!

@zong-zhe Do let me know how we can build upon this solution!