Draw gif animation

Hi mrfaptastic, i want to thank you so much for such a great library and afford you did to deliver this library.
I would like to have this library to be capable on drawing gif animation as was previously done by the Sprite_TM but my knowledge, capability on writing good codes and understanding all the technic written in the library are very limited.
I have issue to reimplement back the gif animation code as below:
#include "anim.h"
inline void MatrixPanel_I2S_DMA::drawGif() {

    int apos=0; //which frame in the animation we're on
    int backbuf_id=0; //which buffer is the backbuffer, as in, which one is not active so we can write to it
    while(1) {
        //Fill bitplanes with the data for the current image
        const uint8_t *pix=&anim[apos*64*32*3];     //pixel data for this animation frame
        for (int pl=0; pl<ROWS_PER_FRAME; pl++) {
            int mask=(1<<(8-ROWS_PER_FRAME+pl)); //bitmask for pixel data in input for this bitplane

            //uint16_t *p=bitplane[backbuf_id][pl]; //bitplane location to write to

            rowColorDepthStruct *fb_row_malloc_ptr = (rowColorDepthStruct *) matrix_row_framebuffer_malloc[pl];
            // The destination for the pixel bitstream
            rowBitStruct *pRowBitStruct = &fb_row_malloc_ptr[back_buffer_id].rowbits[pl]; //matrixUpdateFrames location to write to uint16_t's
            uint16_t *p= pRowBitStruct->data;

            for (unsigned int y=0; y<16; y++) {
                int lbits=0;                //Precalculate line bits of the *previous* line, which is the one we're displaying now
                if ((y-1)&1) lbits|=BIT_A;
                if ((y-1)&2) lbits|=BIT_B;
                if ((y-1)&4) lbits|=BIT_C;
                if ((y-1)&8) lbits|=BIT_D;
                for (int fx=0; fx<64; fx++) {

	#if DISPLAY_ROWS_SWAPPED
						int x=fx^1; //to correct for the fact that the stupid LED screen I have has each row swapped...
	#else
						int x=fx;
	#endif

                    int v=lbits;
                    //Do not show image while the line bits are changing
                    if (fx<1 || fx>=brightness) v|=BIT_OE;
                    if (fx==62) v|=BIT_LAT; //latch on second-to-last bit... why not last bit? Dunno, probably a timing thing.

                    //int c1, c2;
                    int c1=getpixel((uint8_t*)pix, x, y);
                    int c2=getpixel((uint8_t*)pix, x, y+16);
                    if (c1 & (mask<<16)) v|=BIT_R1;
                    if (c1 & (mask<<8)) v|=BIT_G1;
                    if (c1 & (mask<<0)) v|=BIT_B1;
                    if (c2 & (mask<<16)) v|=BIT_R2;
                    if (c2 & (mask<<8)) v|=BIT_G2;
                    if (c2 & (mask<<0)) v|=BIT_B2;

                    //Save the calculated value to the bitplane memory
                    *p++=v;
                }
            }
        }

        //Show our work!
        i2s_parallel_flip_to_buffer(&I2S1, backbuf_id);
        backbuf_id^=1;
        //Bitplanes are updated, new image shows now.
       //vTaskDelay(100 / portTICK_PERIOD_MS); //animation has an 100ms interval

		apos++;
    	if (apos>=12) apos=0;

    }

Basically i did not know how to write the plane and update the display as per new struct structure that was implemented. I hope you can shed some light as how to write to the struct and properly update the matrix.
Thank you in advance.
Cheers,
TS

Hi @tsctrl, thank you for the kind words.
I think it would be easier to refer and base your project on this example: https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA/tree/master/examples/AnimatedGIFPanel

Hi mrfaptastic, thank you so much for the example. I have one more queries which i not able to find the answer/example anywhere specifically for matrix panel. Is it possible to run the row select thru PCF8574 or 74HC595? i would like to save builtin DAC for audio and also the SPI for sd.
Thank you

I don't know anything about the  PCF8574 or 74HC595 chips to be honest. Techincally it could be possible, but the library would need to be completely re-engineered. Do you not have enough pins free? DAC and SPI would still be available to use if you have enough spare pins.

yup, i have short of free pins.
esp32-devkit-esp32-wroom-gpio-pinout
the matrix already consume 13 gpio pins for 64x32 6124 panel. 34,35,36,39 is input only pin which only work with mic/sensors or buttons. i have to sacrifice 25,26 dac output to spare the spi (sdcard support) and i2c port as it is more the most expandable  pins. there is nothing missing with your library. there always other solution out there.
by looking at this library, this lib does not have tight dependency to Arduino such as the protomatter and yet simple to use. specific for esp32. which for me does not have messy if statement to cater different devices (they should use different includes for different devices in my opinion). provide what is needed, do what it should without complex layering etc. the code is clean and generic. if i need to light up a stadium with panel. i would use other approach than using imbedded device though. if you are in a speed race. you already won.
thank you again for the library. this is a good one!


feat: add heading links to PostDetails

Implemented easy links to headings (h2-h6) on post details.
The links are aria-hidden and only show on hover.
I was going to set this up for my own blog so I thought I'd share in case you want to include this in Astro Paper.

Pretty neat!
Thanks for your PR.


corrected improper layout

Fixed #885
Fixed the issue of improper alignment of cards
screenrecording:
https://github.com/user-attachments/assets/07b7c465-33cf-434f-8270-70fcec9c4885

@Sourabh782 resolve the conflict

@Sourabh782 resolve the conflict

Resolved the conflicts


Ranges allocate 670 MB in 94 seconds of normal IDE usage in service.fs only

Ranges are a struct, so it's strange that it would show up so high in the GC stats:

Taking a look, this is mostly due to equality comparisons:

Range is a struct, but it is compared all over the place with = and <>. This actually leads towards GenericEqualityIntrinsic, which causes boxing:
https://github.com/Microsoft/visualfsharp/blob/32251218913b82390b6b11e374ea5ac84c2c56ad/src/fsharp/FSharp.Core/prim-types.fs#L1539-L1540
And this leads to lots of heap allocations.

More general issue here: #526
But this is a rather pressing issue with data.

Wow, this may well be at the root of many of the heap alloc issues we have, I can imagine this also happens with many more types. Can the generic comparer be written in a way to avoid boxing?

I'm not sure the function is inherently bad.
The fact that F# structs are boxed if they are defined with NoEquality is the issue, and because this is the case with the range type in the compiler, it's definitely showing up in IDE tooling perf. These ranges are compared a lot and in pretty much every IDE scenario.
What's ironic is that these structs are boxed, only to end up calling an overridden Equals that merely compares the values of in64 values:
https://github.com/Microsoft/visualfsharp/blob/0302e63de164bce738317486c672f45ec9128b5b/src/fsharp/range.fs#L192

After an intense night with Optimizer.fs, I managed to output the IEquatable<'T>.Equals for types. However, this kind of change involves some slight semantic differences and later I will describe what is going on. The upside is that it is an order of magnitude better perf for structs when using =.
Related topics:
https://github.com/Microsoft/visualfsharp/issues/556 (this one is what I'm worried about, it looks like we are not handling the NaN case correctly. Directly outputting IEquatable<'T>.Equals will have some effect on the current behavior (which is incorrect already)).
https://github.com/Microsoft/visualfsharp/issues/526
https://github.com/Microsoft/visualfsharp/pull/513
https://github.com/Microsoft/visualfsharp/pull/966
https://github.com/Microsoft/visualfsharp/pull/5307
@manofstick I'm now walking down your path and I see the demons you had to come across.

Quoting from @dsyme https://github.com/Microsoft/visualfsharp/pull/513#issuecomment-117335968 :

It's possible that we would ultimately be willing to take a change along the lines of "As of F# V.v and FSharp.Core X.X.X.X, the generic comparison logic will compare types defined in freshly compiled code which implement IComparable or IStructuralComparable via the generic interface rather then the non-generic interface IComparable".

If we backed that up by performance figures showing the reduction in boxing then it could well seem very acceptable. However that should definitely be a separate PR to the core work you're doing to improve performance without changing the preference order for comparison.

@TIHan
hahah. Yeah in all production code where I use value types, I give them CustomEquality just so I can override the boxing Equals operator and throw an exception in it to find all uses!!
Anyway, #5307 is a good PR (if I do say so myself!) It should be 100% compatible with existing code - and although not quite as as optimal as outputting IEquatable's Equals, it's non-boxing, and pretty good. There is a slight initial runtime cost (to use reflection) but then gone.
And the benefit has over compiler injection is that it works for generic code - think collection classes at a bare minimum.
and eventually you could modify the compiler to follow the same rules (i.e. scour the type definitions to determine what sort of equality is required)...

@TIHan
magic

@TIHan
I modified the compiler in some places, but there were others where I didn't, so possibly it doesn't it the cases you actually care about. I can't remember what it does actually. Been too long :-)

@TIHan
Slowing memories are creeping - I think the reason the compiler put in the IStructuralEquality.Equals(object, IEqualityComparer) was because it had already run a round of "optimizations" (i.e. inlining), as the initial equality operation put in was the function that I hijacked... It was more efficient for me to stop the compiler from doing that optimization - maybe I stopped the inlining? But I really can't remember if I did end up doing that...

So, the fundamental problem is that we don't have IStructuralEquality<'T> existing today, and IStructuralEquality.Equals(object, IEqualityComparer) takes precedence over IEquatable<'T>.Equals('T) and override __.Equals(object). F# defined records, unions, and struct types implement all of them by default and IStructuralEquality.Equals gets called first; we technically could make one optimization that could avoid boxing for the receiver of that call on override __.Equals and IStructuralEquality.Equals, but the first argument on both those calls will still be boxed.
However, F# defined records, unions, and struct types (without [<CustomEquality>]), IStructuralEquality.Equals and IEquatable<'T>.Equals and Equals will give you the same result, unless you call StructuralEquality.Equals with your own custom comparer rather than the F# default one defined in prim-types.fs. Because = will ultimately call IStructuralEquality.Equals with the F# default comparer, we can guarantee that IEquatable<'T> for a F# type that does not have [<CustomEquality>] (not explicit) in theory should be safe to call directly and not break equality semantics. At least, this is what I think is true.
As soon as you do [<CustomEquality>] or have a type that implements IStructuralEquality.Equals, we can't call IEquatable<'T>.Equals directly as you may be providing different types of equality; meaning, IEquatable<'T> could be doing reference equality and IStructuralEquality doing full structural equality. The same goes for C# types that implement IStructuralEquality. Luckily, only a few types in .NET Framework/Core implement IStructuralEquality, namely, Array, Tuple and ValueTuple. And these are handled specially in F#, except for ValueTuple because we probably forgot about doing that. System.Numerics vector types do not implement IStructuralEquality.
For this issue in particular with ranges, the solution without potentially harming equality in F# is to just make a function call to check range equality instead of using =.


chore Fix issues found on macOS x86_64

Proposed changes
Issue Number: close #xxx
Problem summary
Fix issues found on macOS x86_64.

Should use brew --prefix instead of brew --repo in start scripts.
sprintf is marked as a deprecated function in MacOSX sdk (13.0).

$ ls -l /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -> MacOSX13.0.sdk

$ clang --version
Apple clang version 14.0.0 (clang-14<IP_ADDRESS>)
Target: x86_64-apple-darwin21.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[x] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[x] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

Maybe it's ready to add document for macos build on doris website :blush:

Maybe it's ready to add document for macos build on doris website 😊

@SaintBacchus That is a good idea! I will do this job later.


Airflow 2.10.4 not installable

Solution to issue cannot be found in the documentation.

[x] I checked the documentation.

Issue
I'm seeing:
$ conda create -y -n test python=3.12 airflow=2.10.4
Channels:
 - conda-forge
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - nothing provides _python_rc needed by python-3.12.0rc3-rc3_hab00c5b_1_cpython

Could not solve for environment specs
The following packages are incompatible
├─ airflow =2.10.4 * is installable with the potential options
│  ├─ airflow 2.10.4 would require
│  │  └─ apache-airflow-providers-common-compat =* * with the potential options
│  │     ├─ apache-airflow-providers-common-compat 1.1.0 would require
│  │     │  └─ apache-airflow >=2.7.0 * with the potential options
│  │     │     ├─ apache-airflow [2.10.0|2.10.4|...|2.9.3] would require
│  │     │     │  ├─ airflow ==2.10.4 py310hff52083_0, which requires
│  │     │     │  │  └─ python_abi =3.10 *_cp310, which can be installed;
│  │     │     │  └─ python_abi =3.10 *_cp310, which can be installed;
│  │     │     ├─ apache-airflow [2.10.0|2.7.0|...|2.9.3] would require
│  │     │     │  └─ python_abi =3.11 *_cp311, which can be installed;
│  │     │     ├─ apache-airflow 2.10.0 would require
│  │     │     │  └─ airflow >=2.10.0,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3] would require
│  │     │     │     │  └─ python_abi =3.11 *_cp311, which can be installed;
│  │     │     │     ├─ airflow 2.10.0, which can be installed;
│  │     │     │     ├─ airflow [2.10.0|2.7.2|...|2.9.3] would require
│  │     │     │     │  └─ python_abi =3.8 *_cp38, which can be installed;
│  │     │     │     └─ airflow [2.10.0|2.10.1|...|2.9.3] would require
│  │     │     │        └─ python_abi =3.9 *_cp39, which can be installed;
│  │     │     ├─ apache-airflow [2.10.0|2.7.0|...|2.9.3] would require
│  │     │     │  └─ python_abi =3.8 *_cp38, which can be installed;
│  │     │     ├─ apache-airflow [2.10.0|2.7.0|...|2.9.3] would require
│  │     │     │  └─ python_abi =3.9 *_cp39, which can be installed;
│  │     │     ├─ apache-airflow 2.10.1 would require
│  │     │     │  └─ airflow >=2.10.1,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     └─ airflow 2.10.1, which can be installed;
│  │     │     ├─ apache-airflow 2.10.2 would require
│  │     │     │  └─ airflow >=2.10.2,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     └─ airflow 2.10.2, which can be installed;
│  │     │     ├─ apache-airflow 2.9.0 would require
│  │     │     │  └─ airflow >=2.9.0,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.7.2|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     └─ airflow 2.9.0, which can be installed;
│  │     │     ├─ apache-airflow 2.9.1 would require
│  │     │     │  └─ airflow >=2.9.1,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.7.2|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     └─ airflow 2.9.1, which can be installed;
│  │     │     ├─ apache-airflow 2.9.2 would require
│  │     │     │  └─ airflow >=2.9.2,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.7.2|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     └─ airflow 2.9.2, which can be installed;
│  │     │     ├─ apache-airflow 2.9.3 would require
│  │     │     │  └─ airflow >=2.9.3,<<IP_ADDRESS>a0 * with the potential options
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.7.2|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │     │     └─ airflow 2.9.3, which can be installed;
│  │     │     └─ apache-airflow 2.7.2 would require
│  │     │        └─ airflow >=2.7.2,<<IP_ADDRESS>a0 * with the potential options
│  │     │           ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │           ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │           ├─ airflow [2.10.0|2.7.2|...|2.9.3], which can be installed (as previously explained);
│  │     │           ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  │     │           └─ airflow 2.7.2, which can be installed;
│  │     └─ apache-airflow-providers-common-compat [1.2.0|1.2.1|1.2.2] would require
│  │        └─ apache-airflow >=2.8.0 *, which can be installed (as previously explained);
│  ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  ├─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
│  └─ airflow [2.10.0|2.10.1|...|2.9.3], which can be installed (as previously explained);
└─ python =3.12 * is not installable because there are no viable options
   ├─ python [3.12.0|3.12.1|...|3.12.8] would require
   │  └─ python_abi =3.12 *_cp312, which conflicts with any installable versions previously reported;
   ├─ python 3.12.0rc3 would require
   │  └─ _python_rc =* *, which does not exist (perhaps a missing channel);
   └─ python [3.12.0|3.12.1|...|3.12.8] conflicts with any installable versions previously reported.

Installed packages
N/A

Environment info
N/A

That is super weird.  I tried it again:
$ conda create -y -n python=3.12 airflow=2.10.4
...
#
# To activate this environment, use
#
#     $ conda activate python=3.12
#
# To deactivate an active environment, use
#
#     $ conda deactivate

And it worked fine!

Oh, never mind.  I'm creating an environment named python=3.13.  Aaach!

It seems to be getting tripped up by the circular dependencies between airflow and the providers.:
├─ airflow =2.10.4 * is installable with the potential options
│  ├─ airflow 2.10.4 would require
│  │  └─ apache-airflow-providers-common-compat =* * with the potential options
│  │     ├─ apache-airflow-providers-common-compat 1.1.0 would require
│  │     │  └─ apache-airflow >=2.7.0 * with the potential options
│  │     │     ├─ apache-airflow [2.10.0|2.10.4|...|2.9.3] would require
│  │     │     │  ├─ airflow ==2.10.4 py310hff52083_0, which requires
│  │     │     │  │  └─ python_abi =3.10 *_cp310, which can be installed;
│  │     │     │  └─ python_abi =3.10 *_cp310, which can be installed;

Okay I believe I have found the problem.  The apache-airflow metapackage used to simply constrain the airflow version:
$ conda search --info apache-airflow=2.10.2
...
dependencies:
  - airflow >=2.10.2,<<IP_ADDRESS>a0
  - python

Now it has a specific hash:

$ conda search --info apache-airflow=2.10.4
Loading channels: done
apache-airflow 2.10.4 ha770c72_0
dependencies:

airflow 2.10.4 py310hff52083_0
python

which would be fine if a different package were built for each python version but that isn't the case.

Glad to hear it!  Sorry for the trouble and thanks for trying to dig into it yourself, and thus pointing it out to me.  Airflow's beastly nature strikes again!


Add "MIT" license designation to setup.py

Add "MIT" license designation to setup.py.

Thanks, could you please look into the failing tests? Looks like a missing quote.


feat: update app via import from within application

Description

Now, we can update an exported app instead of creating a new application for the exported app with changes.

Fixes #22811

if no issue exists, please create an issue and ask the maintainers about this first

Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Please delete options that are not relevant.

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Manual

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[ ] Added Test Plan Approved label after reveiwing all Cypress test

/ok-to-test sha=bb52329

/build-deploy-preview env=release

/ok-to-test sha=a260055

/build-deploy-preview skip-tests=true

/ok-to-test sha=c48b8a9

/build-deploy-preview skip-tests=true

/perf-test

/ci-merge-check

/ok-to-test sha=a0b9bf8

/ok-to-test sha=a0b9bf8

/perf-test

/ok-to-test

/perf-test

/build-deploy-preview env=release skipTests=true

@btsgh You can now test the latest dp which now disabled update via import in an app for git connected apps.

/ok-to-test


testadd fe ut for SimplifyArithmeticComparisonRule

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Open Rooms

Adding Open Rooms changes for the Create/Update/Get Rooms APIs.
RoomOpen flag was introduced to the Create/Update Request DTOs and also on the RoomModel for when retrieving the room, tests were updated and also added but will not pass until the changes are live in ACS Roooms server and Scheduling Service.

Please include session recordings

LGTM


Add a test to MetastoreServiceSpec for attempting to change to an uninitialized metastore

Also:

Remove logic in metastore to always initialize a in-memory metastore
Add more descriptive failure message for "persistence" test

In regards to: https://github.com/slamdata/slamdata-backend/issues/254 This documents/tests the current behavior. Will change once I hear back from the frontend team what they would prefer the error message to look like. But this is mergeable as is. I can update the error message in a subsequent PR

Seems to make sense to merge and then mutate error message in the subsequent PR..

looks good, @jedesah. merging.


Distinguish between MSIX installed from windows app store or a url

Hey everyone,
I'm working on a project where I have an MSIX package that can be installed either through the Windows Store or by downloading the package directly from a website. I'm having a bit of a hard time figuring out how to distinguish between the two installation methods.
I've tried checking the installation paths and the PublisherId using the Windows.ApplicationModel.Package class, but both methods show similar values for installations from both sources.

an MSIX package that can be installed either through the Windows Store or by downloading the package directly from a website. I'm having a bit of a hard time figuring out how to distinguish between the two installation methods.

It sounds like you're trying to determine where a package installed on the system came from?
Why do you ask?
There's Package.SourceUriSchemeName but that really only tells you if the package came from a local or network source (ish, e.g. install q:\foo\bar.msix will report SourceUriSchemeName=file even if Q: is a network file share).
You seem to think the distribution source and installation mechanism(s) are significant. Why?
A signed MSIX package has an identity unique across space and time and corresponding to an exact set of bits. How those bits get to the machine doesn't alter the bits, or identity. If you have the Store sign a package it could be distributed and ultimately installed by many paths and mechanisms. Store, website, Intune, winget, OS update, USB flash key or other forms of sneakernet :-)... These and more are merely paths between the source of a signed package and the installed package.
'Tis not the journey that matters but the destination.
If you submit the Foo package to the Store it doesn't matter if Store installs v1, winget updates to v2, Intune updates to v3, user downloads v4 from a webserver and installs via AppInstaller app, you upgrade Windows and the OS updates to v5, ... or any other permutation of actors.
Signed MSIX packages have a strong (cryptographically verifiable) identity that's unique across space and time, and corresponds to a unique set of bits. If even 1 bit is changed the identity needs to differ (e.g. v<IP_ADDRESS> vs v<IP_ADDRESS>) so a specific package (e.g. Foo_<IP_ADDRESS>_x64__1234567890abc) is always the same thing, regardless which path the bits take to reach the machine or who was holding the lever initiating the install. If you install a package from Store and then try to install the same package from your web server it'll have the same identity and fail the 2nd install (ERROR_PACKAGE_ALREADY_EXISTS).
We log inputs to an install for troubleshooting, but that has no bearing on the end installed package. Regardless the distribution technologies and installation actors, the package is the package. Thus there's no API to determine "What journey did package X take to reach this machine?" as there's no meaningful answer.


DocBlockr does not seem to work with latest SublimeText Build (3099)

Title says it all. No idea why this is the case. Autocompletion just stopped working, i.e. typing /** and hitting TAB or RETURN afterwards simply does nothing anymore.

I have the same issue in Ubuntu 15.10. No errors in the sublime text console.

This is for all languages?
Show a startup log.
Open the console: View > Show Console and get a copy the startup log.
Enable command logging
Get a log of what is happing when DocBlockr commands should be triggered by enabling some extra logging.
In the Console input enable logging:
sublime.log_input(True); sublime.log_commands(True); sublime.log_result_regex(True)

Try use docblockr and get a copy of the log.

I confirm the issue - OS X El Capitan 10.11.3
@gerardroche
I enabled extra logging, here's what I get:
chr evt: * (0x2a)
key evt: tab
command: insert_best_completion {"default": "	", "exact": false}```

I used to `/**` and hit enter, but now ENTER doesn't work at all, if I TAB after it closes the block but but doesn't parse any function arguments, etc

You're getting:
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: tab
command: insert_best_completion {"default": " ", "exact": false}

The jsdocs command is not being called. The log should look like the following.
chr evt: / (0x2f)
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: enter
command: jsdocs

or
chr evt: / (0x2f)
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: tab
command: jsdocs

Try uninstalling DocBlockr and reinstalling it?

@gerardroche
auto_indent is enabled. I tried uninstalling twice - manually and through package manager, no dice.

Same problem for me.

It seems to be something that has changed in build 3099. If its a bug suddenly exposed in DocBlockr or actually a bug within ST is not clear to me. In fact, reverting ST to build 3095 enables DocBlockr again, just reinstalling does not help. But despite of this workaround it would be of course very nice if this issue could be fixed, I cannot imagine living without DocBlockr ;)

Here's the changelog for 2 latest dev builds in question (3098, 3099):
Build 3099
Release Date: 29 January 2016
Fixed a code folding crash regression in 3098
Build 3098
Release Date: 29 January 2016
Improved Unicode support, including combining character rendering, character classification in regex searches, and case insensitivity in Goto Anything matching
Updates to many packages, with more substantial changes to D, Go and SQL
Stability improvements for Find in Files when using regular expressions that result in significant backtracking
Better handling of troublesome files during indexing
Fixed file truncation when using hexadecimal encoding
Syntax: Improvements to the Syntax Tests build system, including a new variant for measuring performance
Syntax: .sublime-syntax files with unused captures no longer cause spellcheck errors
Windows: ctrl+alt+p is no longer bound by default, due to compatibility issues with some keyboard layouts
Linux: crash_reporter is statically linked, improving system compatibility
API: Added Window.is_sidebar_visible() and Window.set_sidebar_visible()

Reverting back to 3096 fixed the issue.

Works for me on Ubuntu 14.04. Also on fresh install of ST with just package control, and docblockr.
 Be sure to enable command and input logging too e.g. sublime.log_commands(True); sublime.log_input(True)

Upon further testing it seems that it's somehow related to Sublime projects that were created before update to 3099.

Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 74, in reload_plugin
    m = importlib.import_module(modulename)
  File "./importlib/__init__.py", line 90, in import_module
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 678, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "/Users/rinat/Library/Application Support/Sublime Text 3/Packages/CodeFormatter/CodeFormatter.py", line 26, in <module>
    from .codeformatter.formatter import Formatter
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 678, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "/Users/rinat/Library/Application Support/Sublime Text 3/Packages/CodeFormatter/codeformatter/formatter.py", line 18, in <module>
    from .htmlformatter import HtmlFormatter
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 678, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "/Users/rinat/Library/Application Support/Sublime Text 3/Packages/CodeFormatter/codeformatter/htmlformatter.py", line 12, in <module>
    import htmlbeautifier
ImportError: No module named 'htmlbeautifier'
reloading plugin HTML-CSS-JS Prettify.HTMLPrettify
reloading plugin PhpTidy.php_tidy
reloading plugin SublimeCodeIntel.ordereddict
reloading plugin SublimeCodeIntel.SublimeCodeIntel
reloading plugin SublimeLinter.commands
reloading plugin SublimeLinter.sublimelinter
reloading plugin SublimeLinter-phpcs.linter
SublimeLinter: phpcs linter loaded
reloading plugin sublimetext_indentxml.indentxml
plugins loaded
CodeFormatter: Plugin Initialized
SublimeLinter: debug mode: off
Package Control: Skipping automatic upgrade, last run at 2016-02-02 16:20:59, next run at 2016-02-02 17:20:59 or after

@alphanull @flyingbuddha @thelfensdrfer See https://github.com/spadgos/sublime-jsdocs/issues/406#issuecomment-178871681
Can you confirm?

Actually, looks like it's only working for functions outside classes, any class methods don't work (PHP)
<?php

/**
 * [test description]
 * @param  string $arg [description]
 * @return [type]      [description]
 */
function test( $arg = '' ) {

}
class MyClass {
	/**
	 *
	 */
	function test( $args = [] ) {

	}
}

@rinatkhaziev  sounds like it could be an issue with ST caches.
For those on Ubuntu you can use this script to clean out the cache and optionally sessions and workspaces: https://gist.github.com/gerardroche/6e46cbdf8da19a39f9da

I've updated the script to work on OSX https://gist.github.com/gerardroche/6e46cbdf8da19a39f9da

@gerardroche I've ran the script (I'm on OS X 10.11), and it runs successfully but doesn't resolve the problem.
I can confirm @rinatkhaziev observation, the plugin works outside of the scope of classes (PHP)

It's not necessarily if it's in a class. It's when there is whitespace before the opening /**. If you start from the gutter, the plugin works as expected.

Yes, and whitespace exists in most cases, at least with my code. It might be a bug which is exposed only now, and maybe has something to do with regexp parsing?

If it's not working in specific php cases then that's another issue.
I'm assuming that this entire issue is not just specific to PHP?
I can't reproduce any of these issues yet.

Nope, here it fails with JS

@alphanull can you post a complete log.

Try the new build 3100. Looks like there may have been regex and syntax issues https://www.sublimetext.com/3dev
https://forum.sublimetext.com/t/dev-build-3100/16929

Just tried 3100, still the same.

Build 3102 of SL appears to fix the problem for me.
Think it might have something to do with:

Fixed a 3096 regression in regular expressions when using the [[:space:]] character class

I can confirm that, 3102 apparently works for me as well.

Confirm WFM in 3103.

It's not working for 3114

It works well in build 3126. just type /** above the function, then enter TAB key. It works for me.

Not working in build 3126 with docblockr_python

@mmenschig docblockr_python is not associated with this package.

Windows 64-bit build 3126 the jsdocs_reparse command does nothing. I just end up with the cursor at the end of the comment block. No reflection of the changes in the function's arguments no fields reactivation. No error in the console. Posts correct command in the console with logging enabled. Any help appreciated.
-pta-

I cannot find it within the Package Control search in Sublime it only shows the DocBlocker_Python and a few others but not DocBlockr. Build 3126

@ptaczek Please open a separate issue because your issue sounds like it's specific to jsdocs_reparse. If you can provide a reproducible example it will be easier to address the issue. Give specific steps to reproduce and explain what you expect to happen and what actually happens after completing the steps.

either me sublime test3 3126 on ubuntu 64bits 16.04 system.

You're getting:
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: tab
command: insert_best_completion {"default": " ", "exact": false}

The jsdocs command is not being called.
The log should look like this:
On enter.
chr evt: / (0x2f)
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: enter
command: jsdocs

Or on Tab.
chr evt: / (0x2f)
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: tab
command: jsdocs

Is auto_indent enabled? In the console input sublime.active_window().active_view().settings().get('auto_indent')
Try uninstalling DocBlockr and reinstalling it?

It was not working for me too, I just fixed by uninstalling and reinstalling it.. thanks!

Language: Python
Build: 4113
Issue: Docblockr is not working with functions (no auto parsing of parameters etc.)
/** + [enter] results in:
/**
*
*/
def readDataSet(logger,data_raw):
Log:
chr evt: / (0x2f)
chr evt: * (0x2a)
chr evt: * (0x2a)
key evt: enter
command: jsdocs
command: insert_snippet {"contents": "\n * ${0:}\n */"}


[On selection]

Description
when selecting something in the site white and blue combination looks Wierd I will change this to black color and #f7b801 background
plz merge my file with yours
Screenshots
No response

Plz merge my file with yours


DEVOPS-8792 - Added I3 class machines to template

Additions:

Added I3 class machines to the templates
Minor template fixes

Issues noted:

In alfresco-one.template there are duplicate keys. Namely ElasticSearchMonInstance. This isnt allowed in Cloudformation as this means that you are naming two separate resources with the same name. How are you meant to refer to them? Im not even sure if two are needed.
The error you are getting is with the my_customization.sh script. I would suggest sshing onto one of the Alfresco instances and running it to see what happens. I dont have access to do so.

We need the 2 ES instances. One should be named ElasticSearchMonInstance and the other one ElasticSearchMigInstance.
You can access the Alfresco instances by downloading the r2Alfresco.pem from the aws console using the credentials i've sent you.

@SubatomicHero  if ElasticSearchMonInstance is repeated is a bug, it has to be ElasticSearchMonInstance and ElasticSearchMigInstance, two different instances for monitoring and migration.

@toniblyx I thought it might be but I didnt want to make that change without highlighting it first. Plus its not in the scope of the work Ive done.


I have searched in iframe , but getting some result unmatched

From image aboved, it almost searchs correctly but sometimes hightlight space, or mismatch.

Hi,
Thanks for submitting.
Please read the contribution guidelines and provide the required information named there.


Allow hooking into route changes

User Story Description

As elements user I want to have option to hook into route changes and perform an action based on current location.
Add optional onRouteChange property to StoplightProject and API containers allowing to pass a function, invoked on every route change, that receives current location.
export interface StoplightProjectProps {
  // ...

  onRouteChange?: (path: { pathname: string; search: string; hash: string }) => void;
}

More context from customer:
Yes, if there is no Gatsby-specific implementation of Stoplight Elements that would trigger Gatsby’s proper navigation events (gatsby-browser#onRouteChange), then an optional callback prop like you suggested would work. I would also include information about the previous location though, so that the consumer can track things such as page referrer. Google Analytics specifically appears to track page referrer in SPAs automatically (https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications#do_not_update_the_document_referrer), but it other contexts one may need to capture it manually.
While we’re at it, I also want to point out that StoplightProject doesn’t currently update the document title on the host page. This leads to a suboptimal user experience. For instance, in our case, all API reference pages end up having a page title of “Calendly Developer”, instead of e.g. “List Events” or “List Events | Calendly Developer” (see: https://developer.calendly.com/api-docs/2d5ed9bbd2952-list-events). I can see how updating host page title is something that implementers may want to opt into, perhaps you can add a title to the onRouteChange callback as well?

Still interested in a solution here.

Any updates on this feature request?


KHR_materials_specular now uses two textures, specularTexture and specularColorTexture

KHR_materials_specular definition was tweaked this week; specularTexture is now broken apart into two textures, specularColorTexture (RGB) and specularTexture (A).
This change in the draft specification follows the convention used by many of glTF's other extensions, where colors and factors are specified as separate textures in the extension (e.g. sheenColorTexture and sheenRoughnessTexture).  This allows for flexibility in how the texture data is packed.  This new arrangement also allows for specularColorTexture and specularTexture to have a unique texture_transforms if necessary.
/CC @emackey

@romainguy FYI

@romainguy FYI

For reference, this seems to be the commit changing the extension: https://github.com/KhronosGroup/glTF/pull/1719/commits/7a3c821320475faa606b523e79e1a6529bae3f92
Thanks for applying the change here as well!


Race condition when startung multiple containers and repo does not exist -> repo corrupt

I have two restic services in my docker-compose.yml.  If it is started via docker compose up and there is not already an initialized restic repository a race condition occures as both services try to initialize the repo.
The effect is that the repo is corrupt!
restic-prune-1   | Checking configured repository '/mnt/restic' ...
restic-backup-1  | Checking configured repository '/mnt/restic' ...
restic-backup-1  | Fatal: unable to open config file: stat /mnt/restic/config: no such file or directory
restic-prune-1   | Fatal: unable to open config file: stat /mnt/restic/config: no such file or directory
restic-backup-1  | Is there a repository at the following location?
restic-backup-1  | /mnt/restic
restic-prune-1   | Is there a repository at the following location?
restic-prune-1   | /mnt/restic
restic-prune-1   | Could not access the configured repository. Trying to initialize (in case it has not been initialized yet) ...
restic-backup-1  | Could not access the configured repository. Trying to initialize (in case it has not been initialized yet) ...
restic-prune-1   | created restic repository 4e9221616e at /mnt/restic
restic-prune-1   |
restic-prune-1   | Please note that knowledge of your password is required to access
restic-prune-1   | the repository. Losing your password means that your data is
restic-prune-1   | irrecoverably lost.
restic-prune-1   | Repository successfully initialized.
restic-prune-1   |
restic-prune-1   |
restic-prune-1   | Scheduling prune job according to cron expression.
restic-prune-1   | new cron: 0 3 7 * * *
restic-backup-1  | created restic repository 051b5b951e at /mnt/restic
restic-backup-1  |
restic-backup-1  | Please note that knowledge of your password is required to access
restic-backup-1  | the repository. Losing your password means that your data is
restic-backup-1  | irrecoverably lost.
restic-backup-1  | Repository successfully initialized.
restic-backup-1  |
restic-backup-1  |
restic-backup-1  | Scheduling backup job according to cron expression.
restic-backup-1  | new cron: 13 2 * * *

and the repository is corrpt:
docker compose exec restic-backup restic snapshots
Fatal: config or key 34bccd909faba62a203ad52cfcc7face4f559a44771b73ccd60fb0d7058e6d90 is damaged: ciphertext verification failed

Putting a depends_on on the restic-prune service does not really help, as the startup time for the containers is too fast:
Logs with depends_on in the docker-compos.yml:
restic-prune-1   | Checking configured repository '/mnt/restic' ...
restic-backup-1  | Checking configured repository '/mnt/restic' ...
restic-prune-1   | Fatal: unable to open config file: stat /mnt/restic/config: no such file or directory
restic-prune-1   | Is there a repository at the following location?
restic-prune-1   | /mnt/restic
restic-prune-1   | Could not access the configured repository. Trying to initialize (in case it has not been initialized yet) ...
restic-backup-1  | Fatal: unable to open config file: stat /mnt/restic/config: no such file or directory
restic-backup-1  | Is there a repository at the following location?
restic-backup-1  | /mnt/restic
restic-backup-1  | Could not access the configured repository. Trying to initialize (in case it has not been initialized yet) ...
restic-backup-1  | created restic repository 168e43cb2c at /mnt/restic
restic-backup-1  |
restic-backup-1  | Please note that knowledge of your password is required to access
restic-backup-1  | the repository. Losing your password means that your data is
restic-backup-1  | irrecoverably lost.
restic-backup-1  | Repository successfully initialized.
restic-backup-1  |
restic-backup-1  |
restic-backup-1  | Scheduling backup job according to cron expression.
restic-backup-1  | new cron: 13 2 * * *
restic-prune-1   | created restic repository 21ed04f1ab at /mnt/restic
restic-prune-1   |
restic-prune-1   | Please note that knowledge of your password is required to access
restic-prune-1   | the repository. Losing your password means that your data is
restic-prune-1   | irrecoverably lost.
restic-prune-1   | Repository successfully initialized.
restic-prune-1   |
restic-prune-1   |
restic-prune-1   | Scheduling prune job according to cron expression.
restic-prune-1   | new cron: 0 3 7 * * *

Workaround
Create the repo before starting the docker compose project the first time.
Proposed solution
Similair to the (undocumented) SKIP_INIT_CHECK environment variable I would like to have a SKIP_INIT flag, does not even try to initialize the repo.
if [[ "$command" != "unlock" ]]; then
  echo "Checking configured repository '${RESTIC_REPOSITORY}' ..."
  if restic cat config > /dev/null; then
    echo "Repository found."
  else
    echo "Could not access the configured repository."
    if [ "${SKIP_INIT:-}" == "true" ]; then
      echo "Skipping initialization of repository because SKIP_INIT is set in your configuration."
    else
      echo "Trying to initialize (in case it has not been initialized yet) ..."
      if restic init; then
        echo "Repository successfully initialized."
      else
        if [ "${SKIP_INIT_CHECK:-}" == "true" ]; then
          echo "Initialization failed. Ignoring errors because SKIP_INIT_CHECK is set in your configuration."
        else
          echo "Initialization failed. Please see error messages above and check your configuration. Exiting."
          exit 1
        fi
      fi
    fi
  fi
  echo -e "\n"
fi

Does this sound reasonable?

Got the same issue at firing up my compose file with backup and prune set do_something_at_startup set "true".
Trick is to only set one service to "true" for the first startup.
Or, as you already mentioned, create the repo by hand before run the compose file.

Thanks for the fast answer, but it is not even related to "do_something_at_startup", as the code is in the entrypoint script.
What do you mean by

set one service to "true" for the first startup.

I am deploying the docker-compose directly from a git repo.

Sorry, answered from phone.
It's the RUN_ON_STARTUP Option in the Compose file.

Glad it solved it in your case, but the race condition is not related to RUN_ON_STARTUP. as the initialization of the repository is one of the first things the entrypoint does:
https://github.com/djmaze/resticker/blob/553cd0db39260f47f85af40c280cebe07a52a1de/entrypoint#L21-L29

Yes Sir, you're completely right.
And i remember back the solution above doesn't solving my issue.
I ended up uncomment service-2 (prune) and service-3 (check) and only enable service-1 (backup) to successful create the repo.

Yes, the way to go is to just create one of the services for the first run. I guess we should improve the documentation on that.
We could possibly have a different flag for the initialization (something like ALLOW_INITIALIZATION). And then the other containers would just skip their scheduled runs until they verified that the repo is initialized.

ALLOW_INITIALIZATION will be a breaking change, since the default is now to create the repository.  The current default is ok for all people not having a second service on the same repo.
@djmaze Are you ok with a breaking change or shall I go for SKIP_INITIALIZATION?

@smainz Ah yes, I missed that part. Go ahead. And call it SKIP_INIT as you proposed. Thanks!


WebDeploy IIS - MSDeploy to a different path

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type:  Question
Enter Task Name: IISWebAppDeploymentOnMachineGroupV0
Environment

Server - Azure Pipelines or TFS on-premises?
 IIS Version 10.0.17763.1

If using Azure Pipelines, provide the account name, team project name, build definition name/build number:  Azure Pipelines Task: IIS web app deploy Task vers. 0.*

If using private agent, provide the OS of the machine running the agent and the agent version:
Microsoft Windows Server 2019
Agent Version 2.165.0

Issue Description
I am trying to deploy a PHP Symfony backend application.
The scaffolding of the project is very limited and I have the 'public' folder inside the deployment folder.
How can I change where the deploy is being produced physically?
Using IIS Web app deploy you may add Additional Paremeters but if I try to set -dest for changing the path it states thar is already there.
If I leave the task do its thing, it is just deploying everything inside the Physical Path provided in the Site settings, where I have set '../SiteName/public' so everything is being deployed inside this public folder, having the real public folder inside and making the application to fail working
Task YAML
steps:

task: IISWebAppDeploymentOnMachineGroup@0
displayName: Deploy
inputs:
WebSiteName: 'SiteName'
Package: '$(System.DefaultWorkingDirectory)/Website/Website'
RemoveAdditionalFilesFlag: true
AdditionalArguments: '-dest:path="C:\inetpub\wwwroot\SiteName"'

Task logs
2020-03-04T13:40:14.6465470Z ##[error]Failed to deploy web package to IIS website.
2020-03-04T13:40:14.6477945Z ##[error]Error: Argument '-dest' may only be specified once.
Troubleshooting
Checkout how to troubleshoot failures and collect debug logs: https://docs.microsoft.com/en-us/vsts/build-release/actions/troubleshooting
Error logs

@ZetaPR What do you mean by setting physical path in site settings. Do you mean path mappigs in azure portal.
By default the task deploys to app service root. For virtual application we provide an explicit task input which you may provide. You have to preset it in you app settings->path mappings before you can use it.

Closing the issue. Please feel free to re-open if you are still seeing the issue.


Add disabled_capabilities settings for hover and completion

For #629 and #574
We should probably move the colorProvider toggle into this as well.

Added colorProvider and documentHighlight as both have existing ways of being turned off in the settings.
We should remove the show_color_box setting before the next release, perhaps part of fixing #703


[FEATURE] EmbeddingModelTextClassifier to support Map<String, List>

I would like the EmbeddingModelTextClassifier to support Map<String, List> as input, rather than only Map<Enum, List>, and to provide the similarity score for each output result.

I also need this demand

@langchain4j Hi, Could you please assign this issue to me? I think we could make two changes:

Change TextClassifier<E extends Enum<E>> and EmbeddingModelTextClassifier<E extends Enum<E>> to TextClassifier<E> and EmbeddingModelTextClassifier<E>. (I think this change will not break current implementation and test)
Make LabelWithScore class public, and add a new method in TextClassfiler:

List<LabelWithScore> classifyWithScore(String text);

WDYT?

@Martin7-1 Sure! Hard to say right now, need to see the end result...


Mod doesn't work

I've tried every version, nothing. Are there any dependencies?

Like most Fabric mods, this mod requires Fabric API.
I had forgotten to add it as a dependency on curseforge, so I have now done that.
If that doesn't work, what version of Minecraft are you using?
v1.8 only supports Minecraft Fabric 1.19-1.19.2
v1.5 only supports Minecraft Fabric 1.17-1.18.1 (possibly 1.18.2, unsure)
If that does work, you can go ahead and close the issue.

Closing since it has been almost a year.


[RELAY] Added a AnnotatedRegion utility class

In many of the passes involved in graph partitioning, we need to extract and manipulate subgraphs - referred to here as 'regions'. This class simplifies the extraction of regions from a relay expression containing region begin and end annotations as well as providing utility functions to query these regions and merge them.

cc @zhiics @comaniac @tqchen

Removed mentions of 'subgraph' and replaced this with the term 'AnnotatedRegion'.

@jwfromm could you PTAL?


Why are the inputs of HierVAE.decoder different from that of other models?

The decoder in HierVAE : self.decoder((root_vecs, root_vecs, root_vecs), graphs, tensors, orders), with only the vectors of roots are fed. But the inputs of the decoder in other models are something like: self.decoder((x_root_vecs, x_tree_vecs, x_graph_vecs), y_graphs, y_tensors, y_orders).

This is due to the difference between generative model and graph translation model. In VAE, the latent space must be a fix-sized vector, while in graph translation model, the input can be a sequence of vectors. The sequence of vectors are fed into decoder attention layer. Note that generative model does not have attention layers.

Hi. I'm quite confused that it have to be a fix-sized vector because Graph-VAE allows a sequence of vectors for each node in the graph. Could you please explain why generative model can only use a fix-sized vector?


Missing expression syntax. Examples allow #if to use expressions: DLEVEL == 0, or DLEVEL > 0, but DLEVEL != 0 does not work.

What are the operators allowed in #if expression ? They are ==, >, <, and what else?

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

ID: af7bf772-9265-68cd-a8d7-68c938987e2a
Version Independent ID: f70281a8-b576-3f1f-ea2b-fb4abe39c206
Content: #if, #elif, #else, and #endif Directives (C/C++)
Content Source: docs/preprocessor/hash-if-hash-elif-hash-else-and-hash-endif-directives-c-cpp.md
Product: visual-cpp
Technology: cpp-language
GitHub Login: @mikeblome
Microsoft Alias: mblome

@markyoung143
Whether you can use DLEVEL != 0 depends entirely on what DLEVEL expands to. For example, if it expands to nothing, then the compiler will complain. There's otherwise no restriction keeping you from using the != operator as part of an integer-valued constant expression in a #if or #elif directive. You can in fact use any operator that can be evaluated at compile time as part of an integer-valued constant expression, with a few explicitly listed exceptions, such as sizeof, assignment, or the comma operator. You can do integer math, for example, in addition to using the relational operators.
Closing, as this seems like a support issue, not a documentation issue.

I think you missed my point. DLEVEL is what the doc used as an example. It does not matter at all. I was stating the documentation does not tell you what syntax is allowed (except for the examples given using == and >). In fact != does not work and I'd like to know what can be used to indicate "not equal", as well as know the complete list of operators support for this syntax

I can assure you that != works just fine, and that it would be grossly redundant to list every possible operator that can be used in every article (there are about ninety of them) that mentions constant expressions. Just about any arithmetic, logical, bitwise, or relational operator can work, if the preprocessor macros in use have the right values when expanded.
Here's an example with != I made up using part of the sample code in the article:
// ifnotequal.cpp
// test a preprocessor directive
#include <iostream>

//#define DLEVEL
// uncomment the above line to see what the compiler
// does if a macro value is defined as nothing.
// Expect error C1017 on line 10 in this case.

#if DLEVEL != 5
    #define SIGNAL  1
    #if STACKUSE == 1
        #define STACK   100
    #else
        #define STACK   200
    #endif
#else
    #define SIGNAL  2
    #if STACKUSE == 1
        #define STACK   300
    #else
        #define STACK   400
    #endif
#endif

int main()
{
    std::cout << "SIGNAL + STACK = " << SIGNAL + STACK << "\n";
}

And here are a few different invocations, given different values for preprocessor macros on the command line:
C:\Users\corob\Documents\Projects\curiosity\ifnotequal>cl /EHsc /W4 /nologo ifnotequal.cpp
ifnotequal.cpp

C:\Users\corob\Documents\Projects\curiosity\ifnotequal>ifnotequal
SIGNAL + STACK = 201

C:\Users\corob\Documents\Projects\curiosity\ifnotequal>cl /EHsc /W4 /nologo /DSTACKUSE ifnotequal.cpp
ifnotequal.cpp

C:\Users\corob\Documents\Projects\curiosity\ifnotequal>ifnotequal
SIGNAL + STACK = 101

C:\Users\corob\Documents\Projects\curiosity\ifnotequal>cl /EHsc /W4 /nologo /DDLEVEL#5 ifnotequal.cpp
ifnotequal.cpp

C:\Users\corob\Documents\Projects\curiosity\ifnotequal>ifnotequal
SIGNAL + STACK = 402

I see your point. I could not get the code below to work until you told me != was indeed supported and I then realized I needed to cast 18 to an enum storage type. In my defense, both the Intellisense and compiler error were not helpful: cdisk.cpp(2315): fatal error C1189: #error:  "Need to add new bus type to pBusTypes[]", gave me no clue. If the operators supported are numerous and you don't want to list them in 90 places, that is fine, but in this case I could not find any reference to the operators allowed for constant expressions. You can consider this closed, and I will consider myself sowewhat too dependent on Intellisense :)
#if BusTypeMax != (STORAGE_BUS_TYPE)18
#error "Need to add new bus type to pBusTypes[]"
#endif
typedef enum _STORAGE_BUS_TYPE {
BusTypeUnknown = 0x00,
BusTypeScsi,
BusTypeAtapi,
...
BusTypeNvme,
BusTypeMax,
BusTypeMaxReserved = 0x7F
} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;


Which SD webui version is supported?

I got an error from webui forge version. Here is message:
Python 3.9.12 (main, Apr  5 2022, 06:56:58)
[GCC 7.5.0]
Version: f0.0.1-1.7.0
Commit hash: <none>
Launching Web UI with arguments: --xformers --listen --enable-insecure-extension-access --api
Total VRAM 24260 MB, total RAM 1019411 MB
xformers version: 0.0.20
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 3090 : native
VAE dtype: torch.bfloat16
Using xformers cross attention
==============================================================================
You are running torch 2.0.1+cu118.
The program is tested to work with torch 2.1.2.
To reinstall the desired version, run with commandline flag --reinstall-torch.
Beware that this will cause a lot of large files to be downloaded, as well as
there are reports of issues with training tab on the latest version.

The program is tested to work with xformers 0.0.23.post1.
To reinstall the desired version, run with commandline flag --reinstall-xformers.

Use --skip-version-check commandline argument to disable this check.
=================================================================================
ControlNet preprocessor location: /mnt/data1/ml/webui/stable-diffusion-webui-forge/models/ControlNetPreprocessor
[-] ADetailer: Failed to load model 'face_yolov8n.pt' from huggingface
[-] ADetailer initialized. version: 24.4.2, num models: 16
[sdwi2iextender] Applying img2img patch
Loading weights [2d5af23726] from /mnt/data1/ml/webui/stable-diffusion-webui-forge/models/Stable-diffusion/realismEngineSDXL_v30VAE.safetensors
2024-05-07 09:14:53,352 - AnimateDiff - INFO - Injecting LCM to UI.
2024-05-07 09:14:53,941 - ControlNet - INFO - ControlNet UI callback registered.
2024-05-07 09:14:53,977 - AnimateDiff - INFO - Hacking i2i-batch.
Traceback (most recent call last):
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/launch.py", line 48, in <module>
    main()
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/launch.py", line 44, in main
    start()
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/modules/launch_utils.py", line 512, in start
    webui.webui()
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/webui.py", line 68, in webui
    shared.demo = ui.create_ui()
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/modules/ui.py", line 1107, in create_ui
    loadsave = ui_loadsave.UiLoadsave(cmd_opts.ui_config_file)
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/venv/lib/python3.9/site-packages/sdwi2iextender/lib/img2img_tab_extender.py", line 164, in hijack__init__
    Img2imgTabExtender.instantiate_custom_tabs()
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/venv/lib/python3.9/site-packages/sdwi2iextender/lib/img2img_tab_extender.py", line 96, in instantiate_custom_tabs
    cls.setup_navigation_events(img2img_tabs)
  File "/mnt/data1/ml/webui/stable-diffusion-webui-forge/venv/lib/python3.9/site-packages/sdwi2iextender/lib/img2img_tab_extender.py", line 111, in setup_navigation_events
    block_data_iterator = zip(img2img_tabs, padded_tab_data_list, strict=True)
TypeError: zip() takes no keyword arguments
model_type EPS
UNet ADM Dimension 2816

Huh, is the extension up to date? The message printed in the console probably indicates that it is not.
The extension should work fine with forge. It is designed to work for both 1.8 and 1.9 at the moment, and should have forge compatibility implemented.
What happens if you run pip show sdwi2iextender?

Closing this for now as no answer from OP, and I assume the issue was just that the extension was not updated.
Please reopen it if you belive it's still relevant.


fix(@angular/cli): check package manager existance before installing packages

If for some reason there is a wrong package manager in global config
user should be notified about this with example of how to set default
one
Closes #6635
Unwanted promise removed as @Brocco asks

Heya @mac2000, I think the easiest way to fix your branch is to make a new one from latest master and cherry pick your commit.
git checkout -b fixed-branch
git cherry-pick SHA_OF_COMMIT


Error with connection to GitHub Proxy

Expected Behavior

Reported by @koglin. Looks like we couldn't find the psproxy connection to the outside world.
https://pswww.slac.stanford.edu/apps/portal/index.php?exper_id=794&app=elog:search&params=message:386981

Closing as it is an old issue


nixos/acme: make address families in systemd service less restrictive

This change is to support LEGO's capability to spawn an external process that solves the DNS-01 challenge. In particular, this enables a setup where LEGO runs a shell script that uses nsd-control to add an appropriate zone to a local NSD instance.

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Shall we backport to 24.11?

Yeah, it'll probably help someone for little effort on our part.

thanks for the backport! :)


Make some basic report fields & requirements optional

Exclude basic engagement report requirement for LMT event report usage:

Be able to exclude atmosphere & atmosphereDetails field
Be able to exclude nextSteps field
Possiblity to disable the following publication requirements:

Requirement to fill in keyOutcomes from report submission requirements
Requirement to have at least 1 attending advisor
Requirement to the author to have attended the meeting

Other:

Correct typo's in anet-schema.yml

Resolves AB#988
To exclude atmosphere & atmosphereDetails field:
fields:
  report:

   # Disable atmosphere & atmosphereDetails:
   atmosphere: no
   # atmosphereDetails

   # Disable nextSteps:
   nextSteps: no

    # Disable publication requirements:
    requirements:
      primaryAttendee: no
      attendingAuthor: no
      keyOutcomes: no

All changes to the anet-dictionary.yml are optional.
User changes

Superuser changes

Admin changes

System admin changes

[ ] anet.yml or anet-dictionary.yml needs change
[ ] db needs migration
[ ] documentation has changed
[ ] graphql schema has changed

Checklist

[x] Described the user behavior in PR body
[x] Referenced/updated all related issues
[x] commits follow a repo#issue: Title title format and these 7 rules
[ ] commits have a clean history, otherwise PR may be squash-merged
[ ] Added and/or updated unit tests
[ ] Added and/or updated e2e tests
[ ] Added and/or updated data migrations
[ ] Updated documentation
[ ] Resolved all build errors and warnings
[ ] Opened debt issues for anything not resolved here

Obsolete.


New feature to show trip result details with location photos

Description
Develop a new endpoint and a new webpage to show trip result details with location photos and other information
Root Cause
N/A
Solution
Design doc:
https://docs.google.com/document/d/1E9Od7BLUv_Al4p_dUV4IsakxhxhEG-NZ
Testing
Did you add any new test for this change, performed manual integration tests, or both?

Manual testing on the new endpoint has been performed /plans/:id
Add unit test cases for the newly added photos_client.go

Final Checks

[x] Have you removed commented code ?
[x] Have you used gofmt to format your code ?
[x] You have added unit tests

@weihesdlegend I have added the go back link on the trip show page, so it goes back to the main search result page instead of the index page. I have also added a few unit test cases for one new file.

@weihesdlegend I would need your help here to figure out why the JS codes to update username does not work for me on the trip show page. I have to remove those added JS codes in this commit ca41db3.


make broadcast plan stable

What kind of plan is (a join b) join (c join d) like ?

What kind of plan is (a join b) join (c join d) like ?

Multi join push down is not supported yet. This pr just fix some existing bug.


Use configurable KnownAuthorityHosts for smoke tests (includes dynamic resource provisioning)

Maps the environment variable AZURE_AUTHORITY_HOST_ALIAS to the various KnownAuthorityHosts when using DefaultAzureCredential
This also has support for the China Cloud and dynamic resource provisioning built in. The two efforts happened to dovetail.

/azp run net - smoke-tests

/azp run net - smoke-tests

/azp run net - smoke-tests

/azp run net - smoke-tests


Condense settings page layout into tabs

Signed-off-by: Jay Clark<EMAIL_ADDRESS>Hi there @fabian-peters! I came across issue #16 and had some ideas on a possible reorg of the settings form. I still need to clean up the code & styles (particularly the inline styling), and tweak a few minor UI issues, but I thought I'd open a draft PR first to check if this is going in the direction you envisioned and claim the issue if so! (See gif below for UI after alterations)
Update 10/11: Code has been cleaned up and the discussed changes have been made - I think it looks a lot cleaner! I did have to slightly adjust the size of the control window in order to eliminate the need for settings page scrolling, but it shouldn't affect the other functionality as far as I can tell. I also moved 'save timer history' and 'save sub history' to the general settings page, primarily for layout reasons.
Initial Draft (old)

IMPROVED VERSION (V2)

Hi @jayeclark, cool to see you're interested in contributing. First of all, I think it looks great! Feel free to claim the issue.
There are 2 things I noticed:

I think it would be better if the text/number inputs had the same width
I don't think it makes sense to hide the "Add'l Time" for higher tiers. In case you're not familiar with Twitch, there are different tiers of subs (higher tiers are more expensive). The idea here is that if someone pays more, more time will be added to the timer. I would just show all 3 fields all the time. If you want to make it fancy, you could build some kind of switch between using the same value for all tiers and individual values for each tier.

One more note, I added the horizontal lines to get at least some kind of structure into the endless list of settings as it was before. I'll leave it up to you if you think they are still needed.
So again, it looks great so far, thank you

Hi @fabian-peters, thanks for the feedback!
I’m familiar with Twitch - hiding the Tier 2 and 3 sub times until a Tier 1 time was entered was trying to accomplish the same thing as the switch that you suggested, but I like your idea better.
Now that I think about it a little more, should ‘additional time tier 1’ even be in there? What’s the use case where the ‘additional time’ added for a Tier 1 sub would be anything other than 0 (wouldn’t the main time be what applies to a Tier 1 sub)?
I will fiddle around with the input sizing to make it more consistent, some of the input field sizes had to change width in order to accommodate the label being all on one line.
That’s also a good idea about eliminating some of the potentially unnecessary horizontal lines.

Now that I think about it a little more, should ‘additional time tier 1’ even be in there? What’s the use case where the ‘additional time’ added for a Tier 1 sub would be anything other than 0 (wouldn’t the main time be what applies to a Tier 1 sub)?

At the moment there is no 'main time' to add. Maybe we should rename the settings to make that clearer.
Initial time is the time the timer starts at. Once the timer is running, this isn't used anymore.
Additional Time Tier 1 is the time that gets added for a tier 1 sub. If it is set to 0, the timer isn't increased for Tier 1 subs.
Additional Time Tier 2/3 is the same but for Tier 2/3 subs. This isn't cumulative. If it is set to 60, 60 seconds are added regardless of the Tier 1 setting.
Hope this clears any confusion regarding those settings.

Ahhh yes, now I understand. I think the wording could be made a little clearer, maybe ‘initial countdown time’ or something like that for the initial time? Just for the noob setting things up for the first time. I really misinterpreted that part of the settings!

Hmm, I have been avoiding making a windows partition on my Mac, but I probably should - this isn't the first time that there has been an odd minor layout difference.
There shouldn't be anything that would need to be adjusted to accommodate those different dimensions, but let me change the dimensions locally just to double check. If everything looks good I'll add a commit fixing that issue.
And sure, I would love to be listed as a contributor! I'm in the middle of an open source challenge right now (so, I probably will not be contributing more than 2x to any repo until I finish the challenge) but I do intend to come back and contribute again to the projects with responsive maintainers!

Yes, I believe it’s all set!


Issue1801 - Vapor Contributor's Guide

To view the Contributor's guide in this PR, checkout the branch issue1801 and open the file /docs/contributing.html in a web browser.
Subsections for "Creating a Renderer" and "Creating a Data Reader" are still in progress.

Reminder for @clyne and @StasJ  to re-review

@clyne

We host the HTML in our repository so that our GitHubPage can reference it.  We could host our HTML elsewhere.  ReadTheDocs is one option, and some CI platforms offer services for this.

Good point.  I've taken another pass at this, added further explanation and some diagrams.  The link to Atlassan's tutorial is also included

You're right that things have morphed.  I believe that this was used when we were mounting and building off of glade.

@StasJ  - I misunderstood what you were saying.  I've broken the third-party library section into two groups, one for downloading the pre-built binaries, and another for building the libraries.  I've included your note in the ladder section.


Do not use geolocator/Nominatim in recipe_python.yml - replace Amsterdam with actual location

Description

In #3157 we document the systematic failure of the geopy's geolocator query to Nominatim, since, lo and behold, Nominatim keeps banning us since we interact with it via heavy use via CI. Since we actually want to run recipes in the upstream test and not mock them, the only practical solution I can think of is to go from extract_location to extract_point in recipe_python.yml, this way averting the use of the geolocator under CI condition.

Closes #3157

Before you get started

[x] ☝ Create an issue to discuss what you are going to do

Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.

[x] 🛠 This pull request has a descriptive title
[x] 🛠 Tests run successfully
[x] 🛠 All checks below this pull request were successful

New or updated recipe/diagnostic

[x] 🧪 Recipe runs successfully

@schlunma yes, good idea! That was my initial approach too, but then I got cold feet about yet another test recipe. In hindsight, as you mention, let's keep the example recipe as-is. I'll plug the changes tomorrow 🍺

OK @schlunma I have now restored the old python recipe and renamed the one that doesn't use extract_location to recipe_python_for_CI.yml - how's it looking for you, bud? :beer:

@schlunma I have now added a note in the new recipe and switched you for me for maintainer, sorry bud, didn't realize I was piling yet another recipe up on your maintaining plate :grin:

Wouldn't it be simpler to put the recipe into esmvaltool/recipes/testing/ (these recipes are run automatically for the test) and remove the line esmvaltool run examples/recipe_python.yml in the CI config altogether?

yet another good idea, Manu! But I am a bit unsure of the nature of recipes in testing - are we to plop all the CI/testing ones there? If you sure of that then I'll do it, if not, @bouweandela should know coz he's made that dir :beer:

Yeah, I think so. There is some documentation here: https://docs.esmvaltool.org/en/latest/recipes/recipes_testing.html
Would be good to mention the recipe there and link the doc of the example recipe.

@schlunma on it now, mate - cheers for the pointers :beer:

OK @schlunma done now, could you pls have a review take 2 when you got some spare time, bud :beer:

(You might want to adapt the PR title)

(You might want to adapt the PR title)

very good point! Just did that :+1:


feat: cortex models pull <ID_or_URL>

Goal

Pull from Jan's curated models
Pull from Huggingface based on URL

Tasklist

[x] https://github.com/janhq/cortex.cpp/issues/1004
[x] https://github.com/janhq/cortex.cpp/issues/1006
[x] https://github.com/janhq/cortex.cpp/issues/777

Bugs

[x] https://github.com/janhq/cortex.cpp/issues/1017
[x] https://github.com/janhq/cortex.cpp/issues/1139
[x] #1344
[x] https://github.com/janhq/cortex.cpp/issues/1010 (API server process crash edge case)
[x] #777

Out-of-scope

Pause Functionality https://github.com/janhq/jan/issues/3519 (likely Sprint 21)
Multi-mirror? (e.g. if HF down)
Built in models to move back to Jan huggingface? (i.e. update URL)

@namchuai Can I check, does your implementation of cortex pull cover the case of a Huggingface URL to a specific GGUF model?
cortex pull https://huggingface.co/BafS/gemma-2-2b-it-Q4_K_M-GGUF/blob/main/gemma-2-2b-it-q4_k_m.gguf

After downloading model, should we automatically check for engine and init engine (if neccessary)?

@namchuai From a UX perspective, I think we should not automatically init a model:

We should show useful feedback to pre-empt problems
e.g. "To run this model, you will need to initialize the TensorRT-LLM engine, i.e. cortex engines init tensorrt-llm

@namchuai Can I check, does your implementation of cortex pull cover the case of a Huggingface URL to a specific GGUF model?
cortex pull https://huggingface.co/BafS/gemma-2-2b-it-Q4_K_M-GGUF/blob/main/gemma-2-2b-it-q4_k_m.gguf

Currently, we are not cover this case. This will be supported.

Adding a bug with cortex pull (and also cortex run) -
Re-download? n -> still triggers re-download again
#1344

Marking as complete! 🎉


⚠ Bofrost.at has degraded performance

In f9812d4, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 907 ms

Resolved: Bofrost.at performance has improved in 157093d.


Question about MAX_CLAIMS_LENGTH?

When I create ClaimTransaction, I found I has a limit for claims length  when init depend on MAX_CLAIMS_LENGTH, could you tell me why do this job?
Because of this reason, when create claim transaction and the unclaim tx length is bigger than 255, we can not pass claims to ClaimTransaction constructor, then use addClaims to init claims output, like below:
import { tx } from '@cityofzion/neon-core';

const tx = new tx.ClaimTransactionn();
tx.addClaims({
    address: 'xxx',
    claims: [], // length bigger than 255
})

This was added quite a long time ago due to some constraints on the neo node side that forces it to be 255 or lower. I can't find the corresponding code so it might have been removed.

@snowypowers So, if my ClaimTransaction  contains more than 255 claims, what will it happen to NEO node？


adding graphql query for snarked ledger

Explain your changes:

I added a snarkLedger object to the block object in graphql. The idea is to emulate the snark leger export functionality in the daemon rpc calls in graphql.

Explain how you tested your changes:

I need some additional assistance testing this. Despite my best efforts, I can't seem to get a block height of greater than size one on my local network. Ideally this query would be run on a network with a reasonably large snark ledger, along with a unit test. If anyone can walk me through doing this, or help me get my local network set up that would be a huge help.

Ch=

[ ] Does this close issues? List them
hopefully closes #12706

The PR seems good to me. This can be tested using the mina_local_network script.

hopefully closes https://github.com/MinaProtocol/mina/issues/12706

This doesn't quite address the issue, because it only returns the accounts and not the merkle path.

this is now supported in #15936


Memory leak in SwissTable::grow_double()

Describe the bug, including details regarding any error messages, version, and platform.
There are two allocation in grow_double. If the first suceeded but the second failed, the function will return without Free the first buffer
RETURN_NOT_OK(pool_->Allocate(block_size_total_after, &blocks_new));
RETURN_NOT_OK(pool_->Allocate(hashes_size_total_after, &hashes_new_8B));

https://github.com/apache/arrow/blob/main/cpp/src/arrow/compute/key_map.cc#L670
Component(s)
C++

I think pool_->Allocate returns a buffer with MemoryManager:
  static std::unique_ptr<PoolBuffer> MakeUnique(MemoryPool* pool, int64_t alignment) {
    std::shared_ptr<MemoryManager> mm;
    if (pool == nullptr) {
      pool = default_memory_pool();
      mm = default_cpu_memory_manager();
    } else {
      mm = CPUDevice::memory_manager(pool);
    }
    return std::make_unique<PoolBuffer>(std::move(mm), pool, alignment);
  }

When PoolBuffer destruct, it will release pool memory:
  ~PoolBuffer() override {
    // Avoid calling pool_->Free if the global pools are destroyed
    // (XXX this will not work with user-defined pools)

    // This can happen if a Future is destructing on one thread while or
    // after memory pools are destructed on the main thread (as there is
    // no guarantee of destructor order between thread/memory pools)
    uint8_t* ptr = mutable_data();
    if (ptr && !global_state.is_finalizing()) {
      pool_->Free(ptr, capacity_, alignment_);
    }
  }

If I'm wrong, please point out that

Hi @mapleFU,
SwissTable managers the pool memory directly instead of using PoolBuffer. If the grow_doulbe quit in the middle, the explict release memory/Free is not called.
https://github.com/apache/arrow/blob/main/cpp/src/arrow/compute/key_map.cc#L767

Yes, you're right, seems this may causing memory leak. @westonpace Mind take a look?

Thanks for the catch.  I think smart pointers should be preferred in general and I've added a PR that switches these two buffers to using Buffer.


WIP: an RFC for the pre-build strategy

This RFC proposes a strategy for making Neon pre-builds feasible for libraries. This way Neon users can ship libraries whose downstream consumers can be completely unaware of the use of Rust and Neon. In other words, it makes it more tractable to ship native libraries written in Neon with zero requirements for what software their consumers have installed on their machine.
Rendered

NAPI is stable in v10, which becomes LTS this fall. Is this another viable alternative or just something that might ease the implementation?
If there are features in neon that currently cannot be supported by NAPI, what about moving them behind a feature flag?

I should say, @matklad made good points, and if the only thing blocking us adopting N-API was that the classes design doesn't fit it, I'm definitely open to revisiting the classes design. The more fundamental feature that we have to support one way or another, though, is the ability to let a JS object own a Rust data structure.

OK so the place to look is the object wrapping APIs. I'll keep investigating!

I think napi_create_async_work is the equivalent of uv_queue_work? So that’d cover the existing Task implementation using the libuv threadpool. It looks like these functions cover async handles (what’s needed for the Rust thread RFC): https://nodejs.org/api/n-api.html#n_api_custom_asynchronous_operations

Here's my proposed course of action: we know we need to explore the N-API backend regardless, and since it sounds like N-API's ABI stability might make for a simpler story than dynamic linking the Neon runtime, we should:

reject this RFC for now
start working on an N-API backend
revisit this RFC's idea only if N-API doesn't solve the problem of large build matrices for some reason

Seem reasonable?


Crash on LTN Manager 0.4.9

Describe the Bug
Getting an error while in the Editor Extensions lab surface:
Error while running event LtnManager::on_tick (ID 0)
__LtnManager__/scripts/ltn-data.lua:1023: attempt to index field '?' (a nil value)
stack traceback:
	__LtnManager__/scripts/ltn-data.lua:1023: in function '?'
	__LtnManager__/scripts/ltn-data.lua:1076: in function 'iterate'
	__LtnManager__/control.lua:165: in function <__LtnManager__/control.lua:150>

EDIT: It actually appears to be happening if you just wait for about two minutes or so on the save I uploaded. No jumping to the other surface needed.
To Reproduce
Steps to reproduce the behavior:
~1. Jump into the lab surface created automatically by Editor Extensions (click the button in the shortcuts area of the toolbar)~
2. Wait until LTN Manager tries to update (under a minute for my settings)
3. Crashes
Be certain to reproduce the issue on the same save file that you upload.
Save file & Username
https://www.dropbox.com/s/647cijo27p73k4a/save.zip?dl=0 is the save, username is dgattey
Log file
factorio-current.log

Heh, apparently I already knew about this issue.


Vespa vector database as a managed service on AWS or Azure

HI
Do you have any plan to offer vespa as a managed service on either AWS or Azure similar to elastic cloud ?
Right now one of the AI offering that we are using has a tight coupling with Vespa and I couldn't find any recipes to deploy vespa in HA fashion on kubernetes where I can scale the database horizontally with multiple copies of replica for each shard for HA purpose nor I could find a way to deploy Vespa as a managed service in AWS or Azure
We don't want to onboard to vespa private cloud due to data privacy reasons

Hi Rajiv,
we do provide Vespa as a managed service on AWS (Azure coming in Q3): https://cloud.vespa.ai
You can also optionally run the data plane in your own account: https://cloud.vespa.ai/en/enclave/
Just let me know if you want to set up a meeting to discuss.
Best,
Jon

HI Jon
Glad to know that the data plane can be hosted in our own account in AWS and GKE, though we have AWS and GKE accounts for testing but our default cloud provider for production is Azure
I will try deploying it in AWS and GKE and get back to you in case if I run into any issues. You can expect my response in 2nd half of next week

I looked at the docs and there are many red flags,

The deployment model is not similar to the usual marketplace model where anyone with contributor access on a particular subscription in aws/azure/gcp can spin the whole infrastructure without the need to talk to admins
You are asking for the creation of a separate aws/gcp account which will not be possible as usually there is only one account within a company with tenant isolation at subscription and resource group level
The pricing calculator says that a minimum commitment of 20k dollars is required, I haven't seen such restrictions with any of the managed solutions available in the cloud, this will be a huge adoption blocker

Vespa Cloud Enclave is a special solution for large companies with strict security requirements. The admin setup is a one-time task at the company level and once it is done anybody with access to that tenant can deploy any number of applications with no friction. The separate enclave account will be a requirement by the security teams of companies for which the Enclave solution is a good fit.
Sounds like you should just use the Vespa Cloud in the normal way, without Enclave. This is similar to what Elastic offers, and has no need for admin setup, no separate account, and no minimum spend.

this is the kind of offering am looking for https://www.elastic.co/guide/en/cloud/current/ec-azure-marketplace-native.html

Yes. This is similar to Vespa Cloud (not Enclave), except that billing will be through us. Azure Marketplace integration will come too, but after the Azure integration completes in Q3.
Also, we recommend using continuous deployment, deploying through a console is not a good practice for production systems: https://cloud.vespa.ai/en/automated-deployments

I didn't understand how elastic's offering that I shared is similar to Vespa Cloud (not Enclave). The offering that I shared is a marketplace offering where all the necessary infrastructure is deployed in the customer's own subscription and we pay as we go
Whereas here https://cloud.vespa.ai/en/getting-started, infra is completely remote and managed by vespa, it's just that the deployments are happening to Vespa and data is hosted in Vespa cloud outside customers boundary

That the bill comes through Azure Marketplace vs. separately is a difference, yes. Both are pay-as-you-go.
I couldn't find anything on the Elastic offering about the data plane resources being provisioned in the customer's subscription (vs. charged to the customer's subscription, which is a separate thing). For that to be the case, Elastic's control plane (the management part, which is in Elastic's subscription) need to be granted resources to provision resources in the customer's subscription somehow (similar to Enclave). It could of course be that this is done even though I couldn't find it.
In both cases, the deployments are local to the data center(s) chosen by the application, the distinction is whose VPC rather than remove/local. Related, you can also set up private endpoints to avoid exposing the (mTLS protected) endpoints on the internet.

We have decided to deploy and manage Vespa ourselves and in parallel look into alternate options for backend
Right now both the options you have presented are not viable for many enterprises,
your first option, vespa enclave, has 2 major issues, the creation of a separation cloud account and a 10k$ monthly minimum commitment both are big red flags because the process involved here is so huge, you need to navigate through multiple different teams to get approvals, it's not just specific to my company , it's applicable everywhere
the second option, i.e vespa cloud option is again a no go, because we can't host our data elsewhere
I think for better adoption, you should study how all these other companies like datadog, elastic, confluent are providing managed solutions via respective marketplaces Ex: https://learn.microsoft.com/en-us/azure/partner-solutions/
These marketplace offerings solves all the problems I highlighted,

Entire infrastructure is created in customer account with control plane access granted to vendors somehow
Billing is straightforward, no separate approvals from anyone are required, as long as you have the necessary privileges to deploy the managed solution, you can deploy the same

Thanks for sharing your current thinking! We will support Azure Marketplace, but not until Q4.
The Elastic documentation you point to states: "Elastic owns and runs the SaaS application including the Elastic accounts created.", so this appears to be equivalent to the regular Vespa Cloud, apart from the billing aspect.


totalCount is opt-in

What kind of change does this PR introduce?
Changes the totalCount field on Connections to be opt-in via a comment directive
comment on account is '@grahpql({"totalCount": {"enabled": true}})'

Why
Total count can be expensive to compute and API developers may not be comfortable exposing it.
The comment directive is an object instead of totalCount: true because we may want to add additional configuration in the future to e.g. make the total count approximate vs exact or change the name of the field.
What is the current behavior?
totalCount is always active
Relevant issues
resolves #68

As a supabase user how do we enable totalcount?


spelling mistake in landing page

On the landing page, the spelling of the word safety misspelled as safity

Solved (#71 )


Use Available BagIt Manifests During Import

Resolves: https://jira.lyrasis.org/browse/FCREPO-3208
Updates Importer to use a preferred manifest based on all available in a BagIt Bag

@mikejritter :  it would be helpful if you could add a recipe for running a manual test of this functionality as well.  Like "1. fire up fedora 2.   with command line call for each step to facilitate testing.


TP-Link HS100-110 Support for EU version

Thanks!

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 34.479%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
953

Relevant Lines:
2764

💛  - Coveralls


Add prompt to save scripts on quit [4.0]

Fix #55026

I was a bit vague by saying 'resources' - I meant specifically external scripts, and in my local version (not pushed yet I think) built-in scripts are included in the popup with a message informing the user that they will be saved when their scenes are.
I'm not sure what you mean about avoiding additional popups - I only add one popup asking to save all external scripts and listing them, and I don't think this can (or should) be avoided. Could you clarify this for me please?

By the way, I've been having a lot of trouble discarding scripts, which is why I haven't updated this PR with my updated version yet.
Part of my message to the contributors chat on the subject:

I've been trying for over a week to make a method to discard a script (without closing the tab), for use in my save-or-discard-scripts prompt. This has turned out to be incredibly difficult; I've tried:

Set text_editor's text to text_file's text
Problem: the text_file resource is updated with the unsaved text whenever you switch away from its tab, so only works for currently open tab.

Unref the script resource, then set_edited_resource to one newly loaded (current approach)
Problem: again the cached one is retrieved, which contains the unsaved text and not the saved version.

Destroy the tab, then recreate and put in the same place with the same history
Problem: horrible and brittle whichever way you approach it.

A bunch of variations of the above and other brief ideas which turned out to be infeasible.

... is it possible to load a resource without retrieving it from the cache? I'm using ResourceLoader::load() but it doesn't seem to have an option not to do that.

@KoBeWi helped me out with ResourceLoader, but none of the other options worked and it seems this PR is related: #63224 (thanks to @dzil123)

Start of another conversation relating to usability of the popup: https://chat.godotengine.org/channel/devel?msg=BABJmMxA8mX5sgFEu

Current state (discarding still not functional):

For popups I was thinking if we save the scene first that will in turn save the scrips, so we could avoid having this popup appear under that use case.
For GDScript looks like we are dependent on #63224 or do you mean TextFiles and C# are also not working?
As for usability we have this discussion from a while back #21959

For popups I was thinking if we save the scene first that will in turn save the scrips, so we could avoid having this popup appear under that use case.

Isn't the purpose of this to show the user which script changes will be saved so that they can change their mind? For example, they might have temporarily changed or deleted some code and forgotten about it. Do you think this isn't valuable behaviour, and it's more important that scripts are simply always saved on quit (with scenes or with a dedicated prompt if there are no unsaved scenes)? Not criticising, I think I just misunderstood your intention.

do you mean TextFiles and C# are also not working?

I added some behaviour for TextFiles, but haven't tested with either them or C# yet. At the moment I'm focusing on GDScript which I can't seem to discard; I agree we're dependent on that PR although a workaround could be added, like the 'do not save' flag I used before.
That usability discussion is interesting, I think it's a shame it was never picked up. Maybe some broader work is needed which would integrate improved script-saving behaviour with a more comprehensive scene-saving UI?

I guess it would depend if you see scenes as entirely separate entities to scripts. As a change in a script could be considered a change in the scene. Unless the script is not part of any scene. In which case it would be shown as a popup here. But I released that would only really apply to built-in scripts. So this approach does make more sense for the common usecase.
Personally not a fan of permanent temporary workarounds, would much rather wait for that other bug to get fixed first.
Yeah to get usability right would probably require some broader development in some way, shape, or form. I think for now what we have is good enough. Could chuck it in an ItemList if we're worried about users having that many unsaved scripts at a single time.

That's what I was thinking of, yeah - to me external scripts being saved when scenes are (which are entirely separate files that have references to scripts) is confusing to the user and could result in data loss if they messed around with their scripts in testing.
I agree, I don't want to add weird 'temporary' statefulness that will probably interact weirdly with other things and confuse contributors. The PR can probably wait until scripts have a nice way of being discarded.
I might look into using an ItemList - it's probably not a big deal but could improve readability, especially for large numbers of scripts. Definitely the current development is 'good enough' though and provides a good philosophy on which to build future work.

I'm thinking about implementing a generic solution for all editor plugins:
https://github.com/godotengine/godot-proposals/issues/2153#issuecomment-1132753452
It would handle scripts, shaders and everything.

Superseded by #67503.