FILE_REMOTE_PROTOCOL_INFO struct in C# is broken

Brief Description
OS: Windows 10
Used settings
Target: MSVC
Stack trace or incompilable generated code
The generated code resides in Std.cs:
public unsafe partial class FILE_REMOTE_PROTOCOL_INFO
{
    [StructLayout(LayoutKind.Explicit, Size = 116)]
    public partial struct __Internal
    {
        [FieldOffset(0)]
        internal ushort StructureVersion;

        [FieldOffset(2)]
        internal ushort StructureSize;

        [FieldOffset(4)]
        internal uint Protocol;

        [FieldOffset(8)]
        internal ushort ProtocolMajorVersion;

        [FieldOffset(10)]
        internal ushort ProtocolMinorVersion;

        [FieldOffset(12)]
        internal ushort ProtocolRevision;

        [FieldOffset(14)]
        internal ushort Reserved;

        [FieldOffset(16)]
        internal uint Flags;

        [FieldOffset(20)]
        internal global::FILE_REMOTE_PROTOCOL_INFO._.__Internal GenericReserved;

        [FieldOffset(52)]
        internal global::FILE_REMOTE_PROTOCOL_INFO.___.__Internal ProtocolSpecific;
    }

    public unsafe partial class _
    {
        [StructLayout(LayoutKind.Explicit, Size = 32)]
        public partial struct __Internal
        {
            [FieldOffset(0)]
            internal fixed uint Reserved[8];
        }
    }

    public unsafe partial struct ___
    {
        [StructLayout(LayoutKind.Explicit, Size = 64)]
        public partial struct __Internal
        {
            [FieldOffset(0)]
            internal global::FILE_REMOTE_PROTOCOL_INFO.___.__.__Internal Smb2;

            [FieldOffset(0)]
            internal fixed uint Reserved[16];
        }

        public unsafe partial class __
        {
            [StructLayout(LayoutKind.Explicit, Size = 12)]
            public partial struct __Internal
            {
                [FieldOffset(0)]
                internal global::FILE_REMOTE_PROTOCOL_INFO.___.__._.__Internal Server;

                [FieldOffset(4)]
                internal global::FILE_REMOTE_PROTOCOL_INFO.___.__.__.__Internal Share;
            }

            public unsafe partial class _
            {
                [StructLayout(LayoutKind.Explicit, Size = 4)]
                public partial struct __Internal
                {
                    [FieldOffset(0)]
                    internal uint Capabilities;
                }
            }

            public unsafe partial class __ //// error CS0542: '__': member names cannot be the same as their enclosing type
            {
                [StructLayout(LayoutKind.Explicit, Size = 8)]
                public partial struct __Internal
                {
                    [FieldOffset(0)]
                    internal uint Capabilities;

                    [FieldOffset(4)]
                    internal uint CachingFlags;
                }
            }
        }
    }
}

@skyline75489 we fixed a similar bug for 0.8.14, are you sure this is the version you use?

Didn't notice the release. I'm using 0.8.13

I'm getting StackOverflowException with 0.8.14. I'll just close it for now.

@skyline75489 I am really sorry about this. Please do as @tritao suggested in the other issue and try sending us a reproduction.


tasks doesn't work from a pypi install

If you install from pip:
pip install betfair.py

As in the instructions and then issue a:
invoke ssl

You get the error:
Can't find any collection named 'tasks'!

In order for tasks to work you have to clone the repository but that sort of negates the point of publishing on pypi.

+1 I'm getting this error as well.
The suggested workaround is good though.

I could benefit from some help for the install. I have the same issue but if I try to clone the repository: pip install git+https I still have the 'tasks' error. I built the cert by hand following betfair tutorial but I don't see where it should be stored for betfair.py to work. Would anyone have a workaround?

+1 I'm getting this error too. Proceeding to clone.


Move change issue title from models to issue service package

@guillep2k done.

Codecov Report

Merging #8456 into master will decrease coverage by <.01%.
The diff coverage is 63.33%.

@@            Coverage Diff             @@
##           master    #8456      +/-   ##
==========================================
- Coverage   41.85%   41.84%   -0.01%
==========================================
  Files         497      497
  Lines       65739    65745       +6
==========================================
- Hits        27514    27511       -3
- Misses      34695    34705      +10
+ Partials     3530     3529       -1

Impacted Files
Coverage Δ

models/issue_lock.go
0% <0%> (ø)
:arrow_up:

routers/repo/issue.go
35.86% <0%> (ø)
:arrow_up:

models/issue.go
51.46% <66.66%> (-0.95%)
:arrow_down:

services/issue/issue.go
75.34% <80%> (+7.48%)
:arrow_up:

models/unit.go
62.16% <0%> (-5.41%)
:arrow_down:

routers/repo/view.go
42.31% <0%> (-1.01%)
:arrow_down:

models/repo_list.go
74.14% <0%> (+0.97%)
:arrow_up:

modules/log/event.go
65.64% <0%> (+1.02%)
:arrow_up:

Continue to review full report at Codecov.

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


BZ 2088533: add subresource.status{} to sharedsecrets and sharedconfigmaps

relevant slack in case someone needs to read.

I'm curious why the existing directives https://github.com/openshift/api/blob/053334452d48575ff5c89431e03e51a26e25c337/sharedresource/v1alpha1/types_shared_configmap.go#L34 and https://github.com/openshift/api/blob/053334452d48575ff5c89431e03e51a26e25c337/sharedresource/v1alpha1/types_shared_secret.go#L33 did not already produced the CRD yaml changes in this PR?

Fixing the code gen issue is not feasible at this time so we'll try to get this to land in the meantime.

/assign @deads2k

/approve


Automatic reconnects?

I don't see a way to automatically re-establish connection after a peer restarts or drops out of the network. Consider the following example:
A <= B <= C <= D
A doesn't bootstrap and acts as a seed node, B bootstraps to it, C bootstraps to B and D bootstraps to C. I send a message (via send(anynumber).object("string")) from another node E that bootstraps to C, all nodes receive it and show. Then I restart the peer B. Now if I once again send a message being bootstrapped to C, only D and C receive it. The network becomes split. I can bootstrap E to B and then only B and A receive it. I waited for several minutes but C never attempted to reconnect to B while it clearly knows it as it was bootstrapped to it in the first place. It could also connect to A I guess as this routing info is propagated in some way, no?
How to deal with situations like this? I expect that TomP2P, being a framework and not a library, should handle this out of the box but probably I'm missing something. I tried the code from ExampleReconnect but it doesn't seem to do the job. And it doesn't really show the reconnect as it explicitly bootstraps to the master node.

fixed in the latest commit. The peer was assumed offline although it actively contacted other peers. Thanks for the details report


Not working on OPPO

Try to fix the issue

Hi @rakeshcoresoft which model of OPPO is the issue currently on?

@rakeshcoresoft closing this issue, please follow #14 for any updates regarding OPPO.


Surface panics on color conversions due to nonidiomatic color models

Go version: 1.21.3
Go-SDL2 version: 0.4.35
SDL2 version: irrelevant
OS: Linux
Architecture: amd64
There is a problem with how Surface handles colors.
I have the following fragment of code and in some situations it panics and in others it does not:
img, err := openImage(cfg.locator, cfg.icon)
if err != nil {
	return fmt.Errorf("failed to open icon %q: %w", cfg.icon, err)
}
bounds := img.Bounds()

surface, err := sdl.CreateRGBSurfaceWithFormat(0, int32(bounds.Dx()), int32(bounds.Dy()), 32, sdl.PIXELFORMAT_BGRA8888)
if err != nil {
	return fmt.Errorf("error creating surface: %v", err)
}
draw.Draw(surface, surface.Bounds(), img, image.Point{}, draw.Src)

window.SetIcon(surface)

(Side note: I am not sure if this is the most optimal way to set an icon but I did not find another)
All of this depends on the color format of the image but it should not, since func (surface *Surface) Set(x, y int, c color.Color) { deals with the Color abstraction and it should handle any input.
The problem is due to how color models are implemented:
https://github.com/veandco/go-sdl2/blob/9405dd390eb0a6e9076b629debd80f7f4332b47c/sdl/pixels.go#L809-L815
This returns a color.RGBA color sometimes and BGRA8888 other times. From my understanding of the Go's color package, the model should always convert to one single type - the one specific to the model. So in this case it should always return BGRA8888.
The current implementation results in a panic when trying to convert the color to the respective model type:
https://github.com/veandco/go-sdl2/blob/9405dd390eb0a6e9076b629debd80f7f4332b47c/sdl/surface.go#L809-L814
It assumes (normally a correct assumption) that it will get a BGRA8888 type but this is not the case due to the color.RGBA branch above.

P.S. I am also seeing that the RGBA methods of the different color types are not per spec as well. They need to return alpha-premultiplied 16bit color components but in most cases they return 8bit non-alpha-premultiplied components.
Example:
https://github.com/veandco/go-sdl2/blob/9405dd390eb0a6e9076b629debd80f7f4332b47c/sdl/pixels.go#L737-L747
You can compare this implementation with the official NRGBA color, which is the same as RGBA8888:
https://cs.opensource.google/go/go/+/refs/tags/go1.21.4:src/image/color/color.go;l=60-76
You can see how they convert a non-alpha-premultiplied color into an alpha-premultiplied 16bit-per-component color.
I might be open to opening a PR for this through I would have a hard time testing it on my own and it might be breaking change for people (though I think it is worth it).

Hm... after further analysis, I see that the Set function always deals with 8bit RGBA components that it then manually shuffles and reassigns. It might be sufficient to do the following at the start of the method:
nrgbaColor := color.NRGBAModel.Convert(c).(color.NRGBA)
r, g, b, a := nrgbaColor.R, nrgbaColor.G, nrgbaColor.B, nrgbaColor.A

// the r, g, b, a components above are guaranteed to be 8bit non-alpha-premultiplied
// so we can use them in the switch statement, without having to cast anything more

switch surface.Format.Format {
case PIXELFORMAT_ARGB8888:
	pix[i+0] = b
	pix[i+1] = g
	pix[i+2] = r
	pix[i+3] = a
case .... // and so on, always using the r, g, b, a values from above
}

I have now implemented a local workaround Wrapper that fixes the problem. It looks as follows.

import (
	"image/color"
	"unsafe"

	"github.com/veandco/go-sdl2/sdl"
)

// The following wrapper attempts to workaround
// https://github.com/veandco/go-sdl2/issues/580

func WrapSurface(surface *sdl.Surface) WrapperSurface {
	return WrapperSurface{
		Surface: surface,
	}
}

type WrapperSurface struct {
	*sdl.Surface
}

// Set the color of the pixel at (x, y) using this surface's color model to
// convert c to the appropriate color. This method is required for the
// draw.Image interface. The surface may require locking before calling Set.
func (s WrapperSurface) Set(x, y int, c color.Color) {
	nrgbaColor := color.NRGBAModel.Convert(c).(color.NRGBA)
	colR, colG, colB, colA := nrgbaColor.R, nrgbaColor.G, nrgbaColor.B, nrgbaColor.A

	pix := s.Pixels()
	i := int32(y)*s.Pitch + int32(x)*int32(s.Format.BytesPerPixel)
	switch s.Format.Format {
	case sdl.PIXELFORMAT_ARGB8888:
		pix[i+0] = colB
		pix[i+1] = colG
		pix[i+2] = colR
		pix[i+3] = colA
	case sdl.PIXELFORMAT_ABGR8888:
		pix[i+3] = colR
		pix[i+2] = colG
		pix[i+1] = colB
		pix[i+0] = colA
	case sdl.PIXELFORMAT_RGB24, sdl.PIXELFORMAT_RGB888:
		pix[i+0] = colB
		pix[i+1] = colG
		pix[i+2] = colR
	case sdl.PIXELFORMAT_BGR24, sdl.PIXELFORMAT_BGR888:
		pix[i+2] = colR
		pix[i+1] = colG
		pix[i+0] = colB
	case sdl.PIXELFORMAT_RGB444:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 4 & 0x0F
		g := uint32(colG) >> 4 & 0x0F
		b := uint32(colB) >> 4 & 0x0F
		*buf = r<<8 | g<<4 | b
	case sdl.PIXELFORMAT_RGB332:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 5 & 0x0F
		g := uint32(colG) >> 5 & 0x0F
		b := uint32(colB) >> 6 & 0x0F
		*buf = r<<5 | g<<2 | b
	case sdl.PIXELFORMAT_RGB565:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 2 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		*buf = r<<11 | g<<5 | b
	case sdl.PIXELFORMAT_RGB555:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 3 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		*buf = r<<10 | g<<5 | b
	case sdl.PIXELFORMAT_BGR565:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 2 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		*buf = b<<11 | g<<5 | r
	case sdl.PIXELFORMAT_BGR555:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 3 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		*buf = b<<10 | g<<5 | r
	case sdl.PIXELFORMAT_ARGB4444:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		a := uint32(colA) >> 4 & 0x0F
		r := uint32(colR) >> 4 & 0x0F
		g := uint32(colG) >> 4 & 0x0F
		b := uint32(colB) >> 4 & 0x0F
		*buf = a<<12 | r<<8 | g<<4 | b
	case sdl.PIXELFORMAT_ABGR4444:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		a := uint32(colA) >> 4 & 0x0F
		r := uint32(colR) >> 4 & 0x0F
		g := uint32(colG) >> 4 & 0x0F
		b := uint32(colB) >> 4 & 0x0F
		*buf = a<<12 | b<<8 | g<<4 | r
	case sdl.PIXELFORMAT_RGBA4444:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 4 & 0x0F
		g := uint32(colG) >> 4 & 0x0F
		b := uint32(colB) >> 4 & 0x0F
		a := uint32(colA) >> 4 & 0x0F
		*buf = r<<12 | g<<8 | b<<4 | a
	case sdl.PIXELFORMAT_BGRA4444:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 4 & 0x0F
		g := uint32(colG) >> 4 & 0x0F
		b := uint32(colB) >> 4 & 0x0F
		a := uint32(colA) >> 4 & 0x0F
		*buf = b<<12 | g<<8 | r<<4 | a
	case sdl.PIXELFORMAT_ARGB1555:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 3 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		a := uint32(0)
		if colA > 0 {
			a = 1
		}
		*buf = a<<15 | r<<10 | g<<5 | b
	case sdl.PIXELFORMAT_RGBA5551:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 3 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		a := uint32(0)
		if colA > 0 {
			a = 1
		}
		*buf = r<<11 | g<<6 | b<<1 | a
	case sdl.PIXELFORMAT_ABGR1555:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 3 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		a := uint32(0)
		if colA > 0 {
			a = 1
		}
		*buf = a<<15 | b<<10 | g<<5 | r
	case sdl.PIXELFORMAT_BGRA5551:
		buf := (*uint32)(unsafe.Pointer(&pix[i]))
		r := uint32(colR) >> 3 & 0xFF
		g := uint32(colG) >> 3 & 0xFF
		b := uint32(colB) >> 3 & 0xFF
		a := uint32(0)
		if colA > 0 {
			a = 1
		}
		*buf = b<<11 | g<<6 | r<<1 | a
	case sdl.PIXELFORMAT_RGBA8888:
		pix[i+3] = colR
		pix[i+2] = colG
		pix[i+1] = colB
		pix[i+0] = colA
	case sdl.PIXELFORMAT_BGRA8888:
		pix[i+3] = colB
		pix[i+2] = colG
		pix[i+1] = colR
		pix[i+0] = colA
	default:
		panic("Unknown pixel format!")
	}
}

Not only does not not panic anymore but it also now fixes an issue I also had with transparent images.
Please tell me if I could open a PR for this.

Hi @mokiat, thanks for opening up an issue and looking into it! Of course, please open a pull request and I will review and merge it.


talk about @ imports in import_module so that people can pin versions

Where did you see the issue in our documentation?
https://docs.kurtosis.com/starlark-reference/import-module/
Issue description
Solves the JustFarming issues

Thanks @h4ck3rk3y i'll work on this.

Thanks for tracking this issue. I do agree that adding documentation around pinned versions will be helpful.
We've successfully implemented pinned versions in our project here: justfarming/contracts#3


update user model, add validations

#2
Updated User Schema according to requirements in the issue.
Added basic validations.
Validations for password were not added as they are included in Devise.
Please, let me know if any fixes needed and I will address them immediately.

This looks great so far! To follow up on our verbal exchange - let's add some validation unit tests and this is good to go.


error parsing query: found INTO, expected ;, EOF

I am trying to use continuous queries, however when I use the CLI to run example query:
SELECT COUNT(name) FROM clicks GROUP BY time(1h) INTO clicks.count.1h

I get the following error:
error parsing query: found INTO, expected ;, EOF

Is this a doc bug or something deeper?

@apoydence The syntax of the continuous queries has changed for v0.9.0. You'll need to do something like this:
https://github.com/influxdb/influxdb/blob/master/influxql/INFLUXQL.md#create-continuous-query


Missing error code 165000

Hey,
On the list there is no AADSTS165000 error code description with cause / resolution steps

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

ID: a826ee6f-f457-7109-9f77-67c57977d4e7
Version Independent ID: 11766f27-492e-a579-dced-8a42528cbb47
Content: Azure AD authentication & authorization error codes - Microsoft Entra
Content Source: articles/active-directory/develop/reference-error-codes.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@rwike77
Can you please check and add your comments on this doc update request as applicable.

@archeon1004
I'm going to assign this to the document author so they can take a look at it accordingly

A little more context would be helpful, what are you trying to do when you get the error?
Here's some info I was able to find:
AADSTS165000 is an error code that occurs when the request did not include the required tokens for the user context. The request must include these values and maintain them across a complete single user flow. The request tokens do not match the user context, and one or more of the user context values (cookies; form fields; headers) were incorrect or invalid. These values should not be copied between requests or user sessions; always maintain all of the supplied values across a complete single user flow.
To resolve this error, you can try the following:

Clear your browser cache and cookies.
Try using an incognito window.
Try using a different browser.
Try using a different device.
Check if you have any browser extensions that may be interfering with your login process.
Check if you have any security software that may be interfering with your login process.

Clearing the browser cache seemed to help people in this thread:
https://learn.microsoft.com/en-us/answers/questions/1314257/error-aadsts165000-when-launching-portal-office-co

Hope the information was helpful.  I'll close the issue for now, feel free to re-open if necessary.  #please-close

Using a MacBook (2024) in a university system context hooked into MS365, I tried all of the suggestions above and more to no avail. While I'm an amateur regarding these matters, the problem did not seem to arise at browser-level, and it was evidently not associated with log-in or authentication procedures. Sensing an OS-level conflict of some sort, I have now located the source of my 165000 error message in the "time and date settings." Rather than "Set time and date automatically" I switched on "Set time zone automatically using your current location"--this required turning on "Location." The change worked instantly in terms of being able to log into my university MS365 account.


Object detection prediction yields []

I tried to create an object detection model.
The output of the predict function is [] instead of a list with bounding box

Hi @johnyquest7, thanks for trying out the detector! An empty list is a valid return if the model did not find an object with enough confidence. However, if you are getting this on an image where you feel there is an object that it should find, then we need to figure out why it wasn't able to learn this.
First of all, try lowering the confidence threshold. This should give you a lot of bounding boxes (although many of them seemingly random with very low confidence):
model.predict(sf, confidence_threshold=0)

Is the top prediction at least somewhat reasonable? If not, then I would go back to your training data and visualize it to make sure everything looks good. You can also try making a prediction on a training sample - the model should get this right with high confidence. Also, how many classes and samples did you have in your training set? Let me know and hopefully we can track down the issue. This kind of feedback is really helpful for us, so thanks a lot!

Thanks for the advise. I tried to visualize the original images with bounding boxes. Somehow the bounding boxes were not showing up. May be there was an error in defining the bounding boxes. Trying to find out. Will keep you posted.

Initially I only ran 50 iterations on 200 image. Later I ran 200 iterations and it worked!


Failing to link an integration test

I've tried to change a test from using #[test] to a separate binary without test harness as you can see here. But this change produces an error:
E:\MyProgramming\tokenizers\bindings\cpp [no-test-harness ≡]> cargo test --features=test
   Compiling tokenizers-cpp v0.1.0 (E:\MyProgramming\tokenizers\bindings\cpp)
error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "E:\\VisualStudio\\VC\\Tools\\MSVC\\14.26.28801\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:E:\\Rust\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "E:\\MyProgramming\\tokenizers\\bindings\\cpp\\target\\debug\\deps\\cpp_doctest-c13fe2a19cdebc6d.122k2ey402kitdea.rcgu.o"
<large number of arguments omitted>
"advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
  = note: cpp_doctest-c13fe2a19cdebc6d.ru2wy9o9w9kow63.rcgu.o : error LNK2019: unresolved external symbol huggingface$tokenizers$cxxbridge1$run_tests referenced in function _ZN11cpp_doctest3ffi9run_tests17h49e7caaaae4c0027E
          E:\MyProgramming\tokenizers\bindings\cpp\target\debug\deps\cpp_doctest-c13fe2a19cdebc6d.exe : fatal error LNK1120: 1 unresolved externals

As far as I understand, tests.rs.cc should still be built and linked by the build script, and it's the one which contains
extern "C" {
bool huggingface$tokenizers$cxxbridge1$run_tests(::rust::Str data_dir, ::rust::Slice<::rust::String> cli_args) noexcept {
  bool (*run_tests$)(::rust::Str, ::rust::Slice<::rust::String>) = ::huggingface::tokenizers::run_tests;
  return run_tests$(data_dir, cli_args);
}
} // extern "C"

What am I missing?

This is because you have the Rust side of the bridge and the C++ side of the same bridge not in the same crate. Both sides are required to be in the same crate.
Every integration test is treated by Cargo as if it were a totally separate crate (see https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests) downstream of the library crate. You used to have the C++ side and Rust side both in the tokenizers crate which works, but the commit you linked moves the Rust side into one of the integration test crates and keeps the C++ side in the tokenizers crate's build.rs.
I don't think Cargo currently supports build.rs for integration tests so you would need to figure out some other structure here.

I don't think Cargo currently supports build.rs for integration tests so you would need to figure out some other structure here.

All right, thank you. I'll just keep what I had for now.

Though, how does cxx build its own integration tests? I just assumed it was in build.rs, but as you point out it isn't.

The C++ side of the bridge and the Rust side are in the same crate. See https://github.com/dtolnay/cxx/tree/1.0.29/tests/ffi.


As a developer, I want to run Drush commands as easily with ddev as without (with no quoting issues)

Is your feature request related to a problem? Please describe.
Currently in order to run Drush commands you have to pass them through the exec system. This runs into problems in 1.8.0 due to the bash execution system as quotation marks and backslashes are mangled as part of the execution. This results in needing to do a really cumbersome combination of quotation marks and backslashes in order to run commands.
With a native system you can run Drush commands like this:
drush ev "cache_clear_all('something:*', 'cache', TRUE);"
The current DDEV-Local equivalent would be this:
ddev . drush ev "cache_clear_all('something:*', 'cache', TRUE);"
Unfortunately that will result in errors from the underlying system that handles the exec functionality because of unescaped characters.
There should be a way of running Drush commands with ddev that doesn't require either huge mounts of character escaping or ssh'ing to the web instance.
Describe the solution you'd like
I'd like to be able to run Drush commands as simply as I can with a local system so that I can do something like this:
ddev drush ev "cache_clear_all('something:*', 'cache', TRUE);"
Describe alternatives you've considered
I've attempted to work out the appropriate combination of backslashes and quotation marks to use, it turns into a PITA.
DDEV-Local is supposed to be aimed at making life easier, having to run ddev ssh doesn't match my concept of "easy" as it moves the user into the virtual machine, removing all of their local aliases, commands, etc.
Additional context
n/a

I know exactly what you're talking about. Eval commands with drush ev are difficult to execute. Here is an example of a command we execute on CircleCI which just sets default mail system for Drupal 7 app:
ddev exec drush ev 'variable_set\(\"mail_system\",\[\"default-system\"\=\>\"DefaultMailSystem\"\]\)\;'

Doesn't look really nice. And it took some time to realize where is the problem and write it in a ways
it's executable.

You both know that drush runs on the host too right? Most commands work fine. For example:
rfay@rfay-mbp-2017:~/workspace/d7git$ drush ev 'variable_set("junker99","someval");'
somevalrfay@rfay-mbp-2017:~/workspace/d7git$ drush ev 'print_r(variable_get("junker99")."\n\n");'
someval

Ah okay, it really works thanks to ddev_drush_settings.php, very true. One just needs to be in docroot.
Everything's fine for me! Sorry @rfay for false alarm.
Not sure about @damienmckenna, maybe he has a different kind of problem. Otherwise this can be closed.

I understand that Drush runs via the host, I'd just prefer to be able to run drush commands locally like I can with other solutions.

The problem here is the args to drush, and of course adding bash interpretation into v1.8 has had side-effects like this one. Drush is behaving fine, but double-interpretation of the args by the host bash and the container bash are the source of the pain here. I wonder if there should be an exec command that does not use bash to interpret (as all exec commands were pre-v1.8 [I think]).

Or could the exec function have some logic to adjust the rest of the string so the commands would pass through?

ddev v1.10+ (alpha already available) has a sample ddev drush command, would love if you'd try it out and see if it meets this need. It might still have double-bash-interp problems.

The fundamental problem with this request is that quotes are interpreted first on the user's shell, before ddev could ever see them. And they're interpreted differently in different shells.
ddev used to not interpret via bash inside the container, and that led to its own amazing list of problems.
One path is to give the user the capability to choose when bash expansion happens inside the container. That would make it easier to solve the nastier problems.

Solution for me was to escape each of the special characters, i.e. precede each of them with a backslash "".
So
ddev drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'
Becomes:
ddev drush ev \'\\Drupal\:\:entityManager\(\)\-\>getStorage\(\"shortcut_set\"\)\-\>load\(\"default\"\)\-\>delete\(\)\;\'
And it works!
Used in this question/answer: https://drupal.stackexchange.com/questions/184495/config-import-error-these-entities-need-to-be-deleted-before-importing#comment370498_187368

I am finding it very hard to use drush and connect to the ddev database. I can't use drush cr or drush uli and the docs are scant on info. Is this not even possible?

If you have a standard Drupal build, with "web" as the docroot, and the site already works with web access (ddev launch), and you did a ddev composer require drush/drush then it should work out of the box. On the other hand if you have drush installed somewhere other than vendor/bin/drush, or your composer.json is not in the root of the project where it would normally be, then you'll have to do a bit more work.

In v1.19.0, ddev drush works without quoting issues. Thanks for the issue!


soda common

after installation only blue background is coming.
blocker for virtual box ubuntu 18.04
Virtual box with vanilla ubuntu 18.04LTS, guest addition added
virtual box 6.1version  guest addition added installed ubuntu 18.04 LTS vanilla

@vpriyapm

please solve this issue


Don't let find() mess up dircache

Fixes #530

Thanks for the quick fix!
is that a stray "print" left at   core.py:1223  ?

Thanks for spotting that - fixed


action: bump runner to node20

Node20 was added to Actions Runner on v2.308.0 and Node16 reaches end of life soon on 11 Sep 2023.
Therefore, This PR updates the default runtime to node20. Sorry I forgot to do it yesterday when bumping actions/checkout version.

Thanks a lot for your contributions!


constraintlayout:2.1.0-alpha2' makes toolbar like WRAP_CONTENT

I updated to the latest version but faces some weird behaviour in toolbar  as shown in image below

This is not enough information.
Could you post the XML
Or build a sample app


" TODO: variable is assigned but never used (ABAP cleaner) after checking whether a database entry exists

Sometimes I just want check, whether a database entry exists using the sy-subrc variable. I am forced to select the data into some table/structure, because a "SELECT" without "INTO" is not possible.
`" TODO: variable is assigned but never used (ABAP cleaner)
SELECT SINGLE * FROM pa0000 INTO @DATA(ls_dummy) WHERE  begda <= @sy-datum
AND  endda >= @sy-datum.
IF sy-subrc = 0.
" further processing
ENDIF.`
Would it be possible to switch the message "TODO: variable is assigned but never used (ABAP cleaner)" off in such cases?

Hi JanisBur,
I think the best way to suppress this would be to add a ##NEEDED pragma at the end of the line of @DATA(ls_dummy). With this, ABAP cleaner will not add such a TODO comment (in fact, it will even automatically remove the existing one). Without ##NEEDED, the Extended Check (transaction SLIN) would also create a Field Attributes warning:

Kind regards,
Jörg-Michael

This wasn't clear to me. I really like how it even automatically removes its own comment. How about adding examples to the rule to demonstrate the use of ##NEEDED?

@JanisBur For the existence check I usually do this instead:
SELECT COUNT(*)
  FROM pa0000
  WHERE begda <= @sy-datum
    AND endda >= @sy-datum.
IF sy-dbcnt >= 1.
  " further processing
ENDIF.

Or even this:
SELECT SINGLE @abap_true
  FROM pa0000
  WHERE begda <= @sy-datum
    AND endda >= @sy-datum
  INTO @DATA(exists).
IF exists = abap_true.
  " further processing
ENDIF.

Do note using COUNT bypasses the table buffer implicitly compared to the other solutions.

Hi JanisBur and @ConjuringCoffee,
in version 1.3.0, the example of the "Delete unused variables" rule is now enhanced to make the effect of the ##NEEDED pragma a bit more visible:

Kind regards,
Jörg-Michael


Fixes #15 sauce labs is configured to test on IE and safari

@cherukumilli @bhaskaryasa
Please do not merge the code. I am still working on it.


Finish up API slice and merge

Finish up API slice and merge

The API slice is finished and merged into Frontend_main - awaiting approval to merge into main.
See:

PR #308
PR #289


Terrain still has collision inaccuracies, POSSIBLY due to different triangulation

This thing. It took me a while till I figured it out, but everywhere this happens there was actually a different sort of issue with the stock terrain too - during munge, the triangulation edges would be opposite of what ZE displayed (or not actually displayed but you know how square polygons are), which sometimes makes object placement on steep terrain a nightmare. Since according to the the wiki, SP terrain gets its collision from the munged stock terrain, is it possible that the visual triangulation is the same as in ZE and not the munged stock terrain?

Yup, Shader Patch does generate the terrain's geometry itself it is perfectly possible it is doing it in a slightly different way to terrainmunge. Is it possible that TerrainOffset could be used to work around this for now, by nudging the terrain geometry a little bit to line up with the collision?

Not really. It's not flat areas that are the problem (which they will be if the terrain is offset in height though), it's the more steep angles where triangulation actually affects the polygon's orientation. This isn't easy to explain without illustration, but basically the vertices are all in their correct places, it's the direction of the edge that splits the square that is mismatched. Basically as if visual geometry is using / and the collision mesh is using . Or the other way around, but I guess the point remains the same.
It's not a horribly disruptive problem to be fair, but it does raise eyebrows every now and then.

Oh right! Triangulation of course. Don't why I didn't click into what you were saying right away. It certainly sounds plausible to me that the way I'm splitting the quads might be causing some difference. Not sure when I'll have the time to look into it but I'll definitely try to investigate at some point.


fix: webpack needs its own export condition

Webpack (and SWC?) produce some truly inscrutable error messages when you provide it with ESM that uses top-level await. Unfortunately, it also prefers to load "node" condition code over "default". In order to support both node ESM imports and webpack at the same time we need to add a separate "webpack" condition at a higher priority than "node".

It doesn't always feel that way after weeks of fixing one thing and breaking something else in the process 😅 At least everyone is nice here!

Seeing all these webpack-related issues, is a good reminder why everyone embraced vite and esbuild so fast.


Making GeoJSON layers 'editable'

My use-case is an application that receives a GeoJSON feed of features, renders them on the map, and then the user can edit these features.  I guess this is more of a question / looking for advice on best practice, sorry if this is not the best place to post, I could not find a mailing list, etc. so I'm assuming this is okay :-)
I currently accomplish this by using code that looks roughly like this:
$.getJSON(url, {}, function(feed) {
    var features = feed.features;
    features.forEach(function(feature) {
        var geometry = L.GeoJSON.geometryToLayer(feature.geometry);
        geometry.on("click", function(e) {
            e.target.editing.enable();
        });
        geometry.addTo(someLayerOnMap);
    });
});

This works, but is awkward, and I would much rather use a GeoJSON layer . However, I tried hooking into the onEachFeature callback to the layer to try and enable editing of features there, but had no luck.
Just wondering if there's something really basic I'm missing - I'm also really happy to work on this aspect / try to generalize editing of GeoJSON layers a bit if that's possible if anyone has any ideas. Thank you so much for a wonderful tool.

If leaflet core has the ability to edit shapes, why do we need leaflet draw?
Also, by doing geometry.addTo(someLayerOnMap); one can add the layer to the leaflet draw and then leaflet.draw can handle editing it. Doing it the way jacobtoye suggested makes an editable shape, but leaflet.draw doesn't seem to know about it.

I try this to draw
var t = new L.FeatureGroup();
map.addLayer(t);
    $.getJSON("js/draw/neighborhoods.json",function(Data){
    var geojsonlayer = L.geoJson(Data,
    {
     onEachFeature: function (feature, layer) {
                alert(feature.properties.prop0);
                var myLayer = layer;
              t.addLayer(myLayer);
            }
    });
    map.addLayer(t);
    });

and this to allow leaflet.draw to edit
    var drawControl = new L.Control.Draw({
        draw: false,
        edit: {
            featureGroup: t,
            remove: false,
            edit: true
       }
    });

    map.addControl(drawControl);
    map.on('draw:edited', function (e) {
    var layers = e.layers;
    layers.eachLayer(function (layer) {
        console.log(layer)
    });
});

This is able to draw but not able to edit using leaflet.draw toolbar,
kindly solve this issue .


Update add and create command messages to match UG

Should only be done after we've finalized the two commands.


Retrier called even with 0 retry count

  server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		w.WriteHeader(500)
	}))
	defer server.Close()

	retryCalled := 0
	httpclient := httpclient.NewClient(
		httpclient.WithRetrier(heimdall.NewRetrierFunc(func(_ int) time.Duration {
			retryCalled++
			return 1 * time.Second
		})),
		httpclient.WithRetryCount(0),
	)
	req, err := http.NewRequest(http.MethodGet, server.URL, nil)
	assert.NoError(t, err)
	res, err := httpclient.Do(req)
	assert.NoError(t, err)
	_ = res
	assert.Equal(t, 0, retryCalled)

retrier still called with 0 retry count, is this expected?

Another problem that is linked is that time.Sleep(backoffTime) will be called even when the retries are exhausted, which can lead to quite a waste of time for the caller.
If we agree on both these issues, I'd be happy to propose a fix.


CH552 USB Blaster compatibility

I've got the VGP C128 board with the firmware that's incompatible with running in 2Mhz mode.  I picked up a cheap Ali Express CH552 based USB Blaster but I am unable to get it to see the FPGA on the other end of the JTAG interface.  I've tried Win11, Win7 and Ubuntu which all can see the programmer but not the FPGA.  Is this programmer just a waste of time?  Can you recommend a programmer that works without shelling out a ton of cash? Thanks.

Flashing the firmware has its quirks. There is an issue thread for this specific topic:
https://github.com/c0pperdragon/C64-Video-Enhancement/issues/80

Yep, saw that thread and read everything.  My problem seems different in that it doesn't even detect the FPGA using the programmer GUI or with the CLI tools and I get a different error.  Makes me think this programmer is junk.
C:\intelFPGA_lite\18.1\quartus\bin64>jtagconfig.exe --enum

USB-Blaster [USB-0]
Unable to read device chain - JTAG chain broken

Are you sure the JTAG plug is in the correct orientation?  And you need to power the device, it will not be powered from the programmer.
Reinhard
----- Ursprüngliche Nachricht -----
Von: insanity213 @.>
Datum: 01.11.2023 09:37
An: c0pperdragon/C64-Video-Enhancement @.>
Kopie: c0pperdragon @.>, Comment @.>
Betreff: Re: [c0pperdragon/C64-Video-Enhancement] CH552 USB Blaster compatibility (Issue #97)
  >

Yep, saw that thread and read everything. My problem seems different in
that it doesn't even detect the FPGA using the programmer GUI or
with the CLI tools and I get a different error. Makes me think this
programmer is junk.
C:\intelFPGA_lite\18.1\quartus\bin64>jtagconfig.exe --enum

USB-Blaster [USB-0] 	Unable to read device chain - JTAG chain broken

—
Reply to this email directly, view it on GitHub <https://github.
com/c0pperdragon/C64-Video-Enhancement/issues/97#
issuecomment-1788599419>, or unsubscribe <https://github.
com/notifications/unsubscribe-auth/ACTIHVFZWXJ3REQPYHQ6JEDYCIC5DAVCNFSM6AA
AAAA6YZDDBCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBYGU4TSNBRHE>.
You are receiving this because you commented.Message ID: <
@.***>

The FPGA is installed in the machine and being powered by the c128.  I checked the included cable for continunity, also tried wiring it directly with dupont jumpers.  I hooked up 6 wires, the 4 JTAG signals, 3v3 and gnd.  I do see activity on the programmers LED and with the scope when I look at the JTAG pins while initiating a connection.  Honestly I dont know what good JTAG signals look like on a scope but nothings stuck high or low or anything.  All I can guess at this point is perhaps the JTAG signal pinout from the programmer is wrong and mislabeled on the board's silkscreen.   Might try swapping TDI / TDO today and see if it makes a difference.


Cannot get it to run, keep getting 'Icon' does not exist and more messages

This is how my visual studio currently looks like. As you can see I installed the libraries and referenced them.  Is there anything I'm doing wrong?

Oh, yikes. I might've left out a few steps in the build setup.
It's been a few years since I've worked on this project, but I'll try publishing an update (in the next few hours) with the project file already configured.

About to push the new update, which also involved a change of library. I'm now using "SharpCompress" instead of SevenZipSharp. You should also have a much easier time building the project :)
This update also resolves any licensing ambiguity.

Please keep in mind that the code in this project is not particularly good - it was written in a time span of about 8 hours.

There is a minor issue introduced by the new update, SharpCompress produces a slightly larger dll, which makes its improvements over GZip far less dramatic.
I will resolve this at a later date by forking the project and producing minimal builds for it.


OhDear Uptime Checker

Hi, not sure what to add into a PR so hopefully you can answer / do it.
The service OhDear: https://ohdear.app/docs/faq/what-is-the-oh-dear-checker
It states the user-agents as:
"Mozilla/5.0 (compatible; OhDear/1.1; +https://ohdear.app/checker; brokenLinks)"
and
"Mozilla/5.0 (compatible; OhDear/1.1; +https://ohdear.app/checker; mixedContent)"

Thanks, will add this soon 👍🏻

Just looked into this and we already both of these user agents as bots
See here and here


Search for PDF in Landscape mode

When I try to use the search function for PDF in Landscape mode, finds words are not colored like in portrait mode. Is there a way to fix this bug?
Best regards

Works in portrait/landscape now with this modification in selection.m
/* Rendering state represents closing (right) cap */

(void)finalizeWithState:(RenderingState *)state
{
// Concatenate CTM onto text matrix
transform = CGAffineTransformConcat([initialState textMatrix], [initialState ctm]);
Font *openingFont = [initialState font];
Font *closingFont = [state font];
// Width (difference between caps) with text transformation removed
CGFloat width = [state textMatrix].tx - [initialState textMatrix].tx;
if (width == 0.0) {
  width = [state textMatrix].ty - [initialState textMatrix].ty;
  width /= [state textMatrix].b;

}else {
  width /= [state textMatrix].a;

}

Yes, the CTM transform is needed whenever the page is rotated. Thanks!

This issue appears to have been created twice, once as #16 and again as #17.

Alexargo, sorry for my late reply!
Have you resolved the search in a landscape PDF with my source code? Or do you need help?

Yeah some help would be useful. Can you email me at alex dot argo at that google mail site. Don't want to post my PDF online. It's somewhat sensitive.


Develop

What does this PR do?
Adds inverted index checkpoint files
Description of Task to be completed?
Uploads json file, creates inverted index based on JSON file and allows you to search against it
How should this be manually tested?
Go to project root and type
$ gulp test

Changes Unknown when pulling 082ceb4f34415f7da04843b57191d33182bfc9bf on develop into ** on master**.

Changes Unknown when pulling 4a0445e481a15c3ac050892662e43164b19b575b on develop into ** on master**.

Have you fixed the houndci errors?

Changes Unknown when pulling d3125b22f2cab556a1f7f1ee52fac0cbd63eb17e on develop into ** on master**.

Changes Unknown when pulling 97664ed52ab7c93307d6b2fd027ff756172e4ef1 on develop into ** on master**.

Changes Unknown when pulling 74bdb82408db146d3dce3c3895b7533eef870962 on develop into ** on master**.

Changes Unknown when pulling 99ddd2545c52e29fdae1cddd8aa1818dd556ec7b on develop into ** on master**.

Changes Unknown when pulling 99ddd2545c52e29fdae1cddd8aa1818dd556ec7b on develop into ** on master**.

Changes Unknown when pulling 2c1f90417def6dd4ce4dc6752b2de04ead1547f4 on develop into ** on master**.


Customize drag on to button click

Hi ,
If I need to Override the Drag from mouse to Button click in SVG PAN Zoom. How will I do that. That is I have 4 buttons like forward, backward , left and right. On clicking the button, my SVG should move or drag forward ,backward ,left , right. Same time Mouse drag will work as default drag and zoom present in SVG pan zoom js

Hey @shyammbusa
If I understand your question correctly then you want to add custom controls (there's a demo) and use pan and panBy methods that the library exposes.
But for the future please use stackoverflow for questions like this of for more details.


remodel re-referencing

remove current level re-referencing, but leave STN-signals as is for connectivity analysis
adapt ECoG re-referencing from common average to neighbouring bipolar

in preprocessing v3.0:

ECoG rereferencing to neighbouring bipolar (sums up to max 5 ecog channels)
STN rereferencing to all neighbouring bipoar channels

ring 0 to 1a-1b-1c (3 channels),
1a-1b-1c to their neighbours (3x),
1a-1b-1c to resp. 2a-2b-2c (3x),
2a-2b-2c to 3 (3x), and
3 to 0 (1)
total: max 16 stn channels


Java indexer server: use simple negotiation for GRPC client [phab:D403]

Created by schroederc at 2015-07-15 17:25:41:

zarko accepted this revision at 2015-07-15 17:27:46

fromberger accepted this revision at 2015-07-15 17:28:26

schroederc closed via commit 26c59139b48c8b3f0a7e819f13dfcfa9dcc521fe at 2015-07-15 17:28:31


how to hide this download button

how can i hide the download button????

Assuming you are trying to play a file path, see https://github.com/CookPete/react-player/issues/323#issuecomment-364357541.


Suggestion: World View of a Minecraft map using https://globekit.co/

I was reading about a controversy of Github stealing Stripes 3D globe and in the process found the framework used to make a big 3D globe.
Though it would be epic to somehow show the Minecraft world (atlas map) on this! https://globekit.co/
Stripe: how its made https://stripe.com/blog/globe
Github how its made https://github.blog/2020-12-21-how-we-built-the-github-globe/

one big problem I see with implementing this is infinite worlds with indefinite dimensions

I'm going to say no to this for now as it's out of scope for what I would like LiveAtlas to be


When we will see updates??

:P

What do you need updated :)?
On Thu, Sep 5, 2019 at 11:27 AM Pavel Karoukin<EMAIL_ADDRESS>wrote:

:P
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/scriby/asyncblock/issues/34?email_source=notifications&email_token=AAGHAVGIWYJEST6GUF2H2ZTQIFFRHA5CNFSM4IUBBUPKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HJTWQJA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGHAVEYLGETW2IRACL7GHDQIFFRHANCNFSM4IUBBUPA
.

Software is never "done". There is always something to update  =)
j/k. Were just going through dependencies and discussed how we should acquire the company you are at... but then figured out we should get acquired :))

Ha!
These days almost all the use cases can be handled with async/await, so
this module is losing relevance.
If you’re doing redux stuff check out immer and my immerutable module :)
On Thu, Sep 5, 2019 at 10:18 PM Pavel Karoukin<EMAIL_ADDRESS>wrote:

Software is never "done". There is always something to update =)
j/k. Were just going through dependencies and discussed how we should
acquire the company you are at... but then figured out we should get
acquired :))
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/scriby/asyncblock/issues/34?email_source=notifications&email_token=AAGHAVA4EDUI65KOMMDVXS3QIHR27A5CNFSM4IUBBUPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6BYD2I#issuecomment-528712169,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGHAVBDKFTFLDRUBM35M2LQIHR27ANCNFSM4IUBBUPA
.

Will do! Thanx! :)


Support ROX(Read Only Many) PVC as file source.

Feature Description
ROX(Read Only Many) PVC should be supported as they allow load testing distributed across multiple nodes.
Now, k6-operator does not support ROX PVC as file source.
To do so we will need to support ReadOnly parameter in Volumes/VolumeMounts.
https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/readonlymany-disks

In your Pod specification, you must specify readOnly: true in the volumeMounts section and the volumes section, such as in the following example:

Suggested Solution (optional)
apiVersion: k6.io/v1alpha1
kind: K6
metadata:
  name: k6
spec:
  script:
    volumeClaim:
      name: scenario-resources
      readOnly: true

Already existing or connected issues / PRs (optional)
No response

Hi @mugioka, thanks for the issue!
I can't help but wonder if this (readOnly: true) shouldn't be a hard-coded default instead of adding a new field to CRD, esp. now that there are volumes in init containers :thinking:

@yorugac
Considering init containers, I believe a new field should be added to the CRD to avoid making destructive changes to the k6-operator, since they are likely to modify the mounted volumes.

Closed via #415


For review: Key bindings for alt+enter to run then insert cell below

Addresses issue #236, but without added test per comment from @ry: https://github.com/propelml/propel/issues/236#issuecomment-377963926.

Yikes. I just realized this doesn't actually insert the cell below.  My bad. But merging it doesn't break anything - we just need to revisit this features along with the test soon.


[intl_utils: 2.1.0] _current != null': No instance of S was loaded.

Hello team,
We've just found one very funky area within localisation while using tests.
Consider using class test_class.dart
class TestClass {
  String name = S.current.title;
}

And test class test_class_test.dart
main() {
  final strings = S();

  test("Test", () {
    TestClass testClass = TestClass();
    expect(testClass.name, strings.title);
  });
}

Given title is localised, when we run the test, we will see this error
Failed assertion: line 21 pos 12: '_current != null': No instance of S was loaded. Try to initialise the S delegate before accessing S.current.

Checking upon it, that's correct
static S get current {
    assert(_current != null, 'No instance of S was loaded. Try to initialise the S delegate before accessing S.current.');
    return _current!;
  }

S was never initialised, because we are loading model via test.
My question is, why there is an assertion? If S is null, shouldn't S be initialised automatically?
static S get current {
    if(_current == null) _current = S();
    return _current!;
  }

This way particular error is avoided. Was wondering, is it a bug or this is expected behaviour? If it's expected behaviour, what's the recommended way to handle it?
Before null safety, one can simply check if current is null and if it it - assign S(). But now, since current is defined as non-nullable we cannot check for its nullability.
TIA

Hi @deimantasa,
Thanks for reporting this and creating the PR!
The localization delegates should be initialized before the usage of the current, S.of(context) or S.maybeOf(context) (reason why assertion was added).
The main challenge I see here is how to test model classes that depend on localization.
Not sure, but maybe this example can help you or give you some idea.
Also, instantiating the S class without localization initialization (setting localizationsDelegates, supportedLocales, locale, etc.) won't load localization messages and set up the app locale.

Hi @lzoran ,
Thanks for reply. That's exactly the issue that we are testing not the widget but model itself. We don't want any UI render interference, and strings plays crucial part in identifying if correct value was being resulted.
If we are testing via widget - it's all good, because as you've mentioned, we do initialisation within its root.
With current PR everything works as expected and our tests are working well. I'm not entirely sure, why this fix couldn't be applied?
It's also very interesting, because you've mentioned that -  localization delegates should be initialized before the usage of the current, S.of(context) or S.maybeOf(context) - yet with current PR they are not initialised there and our tests spins perfectly as expected.
And yes, it's pretty specific use-case and as I've mentioned before - prior null-safety we could have dealt with that with additional null check outside. But now, since the variable is not nullable - we can't have that null check anymore.
We could potentially introduce some flag as isUnitTest or something, so that assertion would be avoided. Anyways, would love to brainstorm other ways, how could it be solved, if you think current fix is a no-go.
Cheers

Hi @deimantasa,

It's also very interesting, because you've mentioned that - localization delegates should be initialized before the usage of the current, S.of(context) or S.maybeOf(context) - yet with current PR they are not initialised there and our tests spins perfectly as expected.

I believe that lookup message logic fallback to the passed messageText in case localization messages are not loaded.

Does a bit different approach work for you?
main() async {
  final strings = await S.load(Locale.fromSubtags(languageCode: 'en')); // mimic localization delegate init

  test("Test", () {
    TestClass testClass = TestClass();
    expect(testClass.name, strings.title);
  });
}

Hi @lzoran ,
Yes, this solution seems to work. But I'm still little confused about
static S get current {
    assert(_current != null, 'No instance of S was loaded. Try to initialise the S delegate before accessing S.current.');
    return _current!;
  }

Could you explain why solution like this is there? Because as far as I tested, my deployed solution didn't break anything. And I'm curious what's the reason behind having assertion with null for a Singleton.
Also preferably, since this case is being hit only in tests so far, why this approach would not be accepted?
  static S test() {
    if(_current == null) _current = S();
    return _current!;
  }

With comments, we can clearly specify that this singleton initialisation is only used for testing purpose. And it seems much cleaner. But I guess you know more about it than me.
Looking forward!
Cheers

Hi @deimantasa,
Sorry for the late response.
I agree with you that the assertion is not the best solution here.
The problem with the "forced" instantiation is that it will let you invoke localization getters/methods on the current where localization messages are not loaded. That way, we may introduce unexpected behavior in the app. :/
Also, the proposed solution works well because of the fallback logic within the Intl.message.
The generated code contains the messageText, that is used as a fallback in case localization messages are not loaded.
Although this may be OK in most cases, how would we test model classes for non-main locales?
/// `Home page`
String get pageHomeTitle {
  return Intl.message(
    'Home page', // messageText is a main translation
    name: 'pageHomeTitle',
    desc: '',
    args: [],
  );
}

No worries. Alright, let's keep it like it is then. As long as there is some kind of solution, it's alright.
Cheers mate!


empty table should show its columns like pandas

According to this, we should support a similar structure to pandas when it comes to an empty response, show an empty table with the headers (column names).

Agree. In general, the current output format and style have a lot of room for improvement. We can inspire by pandas since many practitioners are already familiar with it.

There's a pending PR for documenting this.

@psychemedia
We just updated the docs and released a new version( 0.5.2 changelog).
Make sure to join our slack for more info and support


[4.0][Proposal] Load Js/css assets from a PHP array

This has been mentioned before as a solution that would not use webpack / mix.
Basically:

you can add the css&js assets to an array, when you are anywhere inside a blad file
if the file / key exists, it won’t be added a second time
when outputting the css and js, there will no longer be duplicates

It looks like a package just came out which does this for Laravel: https://github.com/KosmosX/frontend
PROs:

This would solve the duplicate assets problem in create/update forms, while needing zero knowledge of webpack or mix.
It would probably work very well when HTTP2 requests are enabled, since assets will be loaded concurrently.
It won’t create massive JS and CSS files that need to be downloaded on first page load. So faster first page load.

CONs:

Will probably be slower page-to-page than compiling assets using Mix.
For people who want to use Mix anyway, this will look “old-school” and require them to do all the Mix work themselves (though we could make it easier for them with a pre-defined mix file and an alternative layout blade file).

Thoughts?

Would it be a large stretch to support both? As in, the user can turn on / off "Inline Asset Loading"?
That way we could leave Mix instructions in the docs and tell them to turn inline asset loading off if they want to do it that way?

@Jamesking56 that sounds like the most sensible solution - supporting both. On it!

PR https://github.com/Laravel-Backpack/CRUD/pull/1890 fixes this using a homegrown solution, so let's close this.


Speed up of interior-point method for cholesky solver

@mdhaber
Reference issue
Closes #11216
What does this implement/fix?
Calls the analyse function in the scikit-sparse module to compute a fill-reducing ordering in the first iteration of the interior point method. Subsequent calls do not have to redo this expensive computation.

Thanks @hakeemo. I look forward to testing this. I'm the meantime, if you're interested in doing a careful test of the speedup, you might be interested in gh-10762, which adds a lot of benchmarks for linprog. I'd be very interested to see what this does to the execution time on some of those large problems!

I tried this on a relatively large problem and noticed a fairly good speedup - around 33% less execution time than the ~100 seconds without this PR.

Yes the speedup kicks in with larger problems and more so after disabling presolve (if possible for the problem).  I am unable to solve a large problem with e.g. a million constraints with presolve on.

I am unable to solve a large problem with e.g. a million constraints with presolve on.

Cool to hear that you're trying to use this on large problems.
Do you know if it's presolve as a whole or specifically the redundancy removal that is causing trouble with large problems? Instead of turning the presolve option off, you can also turn off just redundancy removal by setting the option rr=False.

Separate but related issue here:
Presolve does have a handful of multiplications of matvec multiplications using the lil matrix format. e.g.  b_eq = b_eq - A_eq[:, i_f].dot(lb[i_f]) . I don't know if this is a bug with scipy that it doesn't convert the matrix to csc first before multiplication or if this should be addressed in linprog module.
If these problematic lines are changed, e.g. to b_eq = b_eq - A_eq.tocsr()[:, i_f].dot(lb[i_f]), then the remove_redundancy becomes the bottleneck on these large problems.

@hakeemo looking forward to reviewing the next version!

@mdhaber this has been delayed due to sickness and holidays. Getting back on this over the weekend.

@mdhaber  backtracked all the accidental style changes and now it passes continuous integration


Install libraries in a more generic path

This generic path is more useful for maintaining a python virtual environment rather than a hard-coded path.
For example, I use conda to create a python virtual environment, and then do everything (build and install the library) in the virtual environment. I don't need to tell where to find the built *.so over PYTHONPATH because they (the *.so) have been already installed into my python environment.

It's a good idea.  Thanks.


feat(op-batcher): altda->ethda failover

Plan is to upstream this to op's repo. Created here to get review from the team first.
This PR builds on top of the feat--multiframe-altda-channel changes (already upstreamed to op's repo, waiting for review there)
It contains 2 commits:

failover test: 61d7578
failover logic: 5712618

Right now failover is done to calldata txs because that was trivial whereas failing over to blobs or their auto mode that switches between blobs and calldata would need a nontrivial refactor and some thinking. Not sure its worth putting effort into this atm given that the whole point of failover is that it should happen very rarely and also not last very long, but let me know if you guys think otherwise.

At the high level, it usually takes us about 1 hour to fix the problem


Update docs to indicate that "exports" interface does not work in browsers

Is your feature request related to a problem or a nice-to-have?? Please describe.
I wasted a good deal of time trying to get the "exports" interface (which I think is perfect for organizing tests for a large OOP project) only to find that it just does not work in the browser. I can get my demo test to run on the command line (node) just fine but Firefox and Chromium ignore the exported test suite when the interface is set to "exports".
Describe the solution you'd like
The docs should indicate that this is the case in both the "Interfaces" and "Browser support" sections.
Describe alternatives you've considered
Of course it would be nice if it was fixed to work in the browser but I think that updating the docs is the best immediate fix.
Additional context
This was brought up quite a while ago (https://github.com/mochajs/mocha/issues/2198) with some manual solutions to get it working but it does not appear that the docs were updated to reflect the issue.

Makes sense. Thanks for raising.


Add the ChunkedEvaluations type

What's been done:

Add a new type ChunkedEvaluations for the ProofEvaluations refactor

Reference: #759

@mimoo
Can you please review the PR?
Thanks in advance!


Add Rails 6 support

Updates the agent configuration to detect rails 6 and allow running on
the alpha rails version.

Thank you for your submission, @jacobbednarz! We are reviewing it for possible inclusion in a future version of the Ruby agent.


extra rules for annotation targetId in dataset validation

In the past the server validation for annotations was looser,
so there are some older datasets that have problems with
anotation targetIds that make cvc push fail:

sometimes targetIds were reused in the same frame
sometimes negative targetIds were created

Beef up validation here to help users track down negative or duplicate
targetIds when a cvc push of such a dataset is failing. Add these new checks
before the general schema check, so that the new more helpful message will get
shown for negative target ids (the general schema complaint will get shown
afterwards).

cvc validate does not support validation of jsonl files. If a dataset is too large, the index.json file will contain the following data:
{
 "message": "Failed to generate index.json; dataset is probably too big",
 "error": "Invalid string length"
}

In which case, cvc validate should ignore it. Even if index.json is valid, cvc validate should have some mechanism to validate the jsonl files. The jsonl files should be validated one line at a time, as each line is a valid json object, than can be validated by the Conservator json schema.

Back when we first implemented JSONL support, I added a method to the local_dataset.py source to validate JSONL.  What it does is convert the JSONL sources into the equivalent index.json and validates the result the same as the index.json.  The local_dataset.py module is what handles the cvc commands on the back end, and it prefers to use JSONL sources over index.json if it finds them. https://github.com/FLIR/conservator-cli/blob/709324b5ac023c991ed0c642b12dfcdf35c1ca79/FLIR/conservator/local_dataset.py#L103

Back when we first implemented JSONL support, I added a method to the local_dataset.py source to validate JSONL. What it does is convert the JSONL sources into the equivalent index.json and validates the result the same as the index.json. The local_dataset.py module is what handles the cvc commands on the back end, and it prefers to use JSONL sources over index.json if it finds them.

I'm not sure what you mean by "it prefers to use JSONL sources" - if I run cvc validate, it tries to validate index.json first. As mentioned above, if index.json cannot be created because of size issues, it will have a very clearly-defined structure (i.e. an object with two keys, message and error) which should allow cvc to determine that it can ignore it.
Also, when validating the jsonl files - as I mentioned, in javascript, we validate one line at a time. It seems to me that doing the same thing in cvc would be more efficient than recreating the index.json structure and validating it.

logical validation like this can be done in Conservator itself. conservator-cli really just needs to validate the JSON structure itself. We've also changed the rules around targetIds, in particular, to be more permissive in Conservator, so this change is out-of-date, anyway.


Documentation for Removal of Routes

Although the functions are fairly self-explanatory, they are completely absent from the documentation.
EDIT: To elaborate, it should be documented that although add_route and routes can add routes with/without trailing slashes, remove_routes has no behavior to account for that.

My personal opinion: why should we even need to remove a route? You just don't need to add it in the first place. The main reason for that is if you remove a route, it will only work if you're using one instance of Sanic, no workers, no k8s, load balancers, nothing. Any other scenario would require a complex system (like a pubsub) to "trigger" the removal of a route so all instances could do the same to reflect the change. Just my two cents here ...

I 100% do not know, but the functionality is there, and so it should be documented. Optionally, toss it to the group and see if it's unneeded? I can't think of a use case where one should be removing routes.

Yeah, well, the functionality is there, I know, the documentation should exist. I think I'll toss it into the group, because this may also affect blueprints, nested blueprints, yadda yadda ...

We should not support remove routes

@sjsadowski @yunstanford I just created a more "in depth" analysis of this question in the community forums.

Or just have app instance or setup instance and know which one to call. You can even stop one and start the other in case setup is done and app needs to take place. Anyway, there are a million ways this can be done without a developer having to put its hands on the instance ...

I'm going to submit a PR to deprecate this feature - provided I don't find it in use elsewhere. There were no real objections in the community discussion. I think we slipped on deprecating in 18.12, which is fine, but we can deprecate in 19.03 and then remove for 19.12.

@sjsadowski agreed.

@vltr could you elaborate?
I'm already having the need
Thanks

@Garito on that workflow for setup and then app ?

On how to change apps by visiting a route of one of them, please
Will be awesome if you show how to destroy the 1st app too
Thanks!

@Garito no problem ... I made a small example here, it's a bit clunky but it works ... Of course, it would be much easier to do using the Sanic.create_server utility and have full control over the loop, but since most people uses Sanic.run for their servers, here's a working example using a simple lock file:
from pathlib import Path

from sanic import Sanic
from sanic.response import text
from sanic.exceptions import abort

LOCK_FILE = Path(__file__).parent / "SETUP"
main_app = Sanic("main_app")
setup_app = Sanic("setup_app")

def check_lock_file():
    return LOCK_FILE.exists()

def run_server(app):
    app.run(host="<IP_ADDRESS>", port=8000)

@main_app.get("/")
async def main_app_handler(request):
    return text("Hi, I am the main app after being configured!")

@setup_app.get("/")
async def setup_app_handler(request):
    return text("You need to configure your instance first. "
                "POST {\"setup\": 1} to /setup")

@setup_app.post("/setup")
async def setup_app_do_setup(request):
    if not request.json:
        abort(400)
    if "setup" in request.json and request.json.get("setup") == 1:
        LOCK_FILE.touch()
        return text("Server was configured. Refresh this page in a minute to "
                    "your running application.")
    else:
        return text("You should read the instructions on root")

@setup_app.middleware("response")
async def check_lock_file_response_middleware(request, response):
    if check_lock_file():
        request.app.stop()

@setup_app.listener("after_server_start")
async def check_lock_file_listener(app, loop):
    if check_lock_file():
        app.stop()

def main():
    run_server(setup_app)
    run_server(main_app)

if __name__ == "__main__":
    main()

Did you realize that I can do the same with 4 lines of code with the router removal?
If it depends on me I would not remove this feature
Is there any complain or security reason to remove it?

@Garito the behavior is inconsistent, support in code is inconsistent, and generally it's bad architectural practice to dynamically add and remove routes while the application is running.
The current plan is to deprecate it - which leaves the feature in place if you're using the current LTS version (18.12) but in the future, will remove it.

@Garito if you spawn your Sanic application with multiprocessing (using the workers argument above 1), you'll end up having to make this "routing removal" reflect the changes to all instances - and that's a bit of a problem; just to add how you end up within a situation like @sjsadowski described. This can also happen if you add routes "on-the-fly" ... It's just bad practice. The thing is: add routes is something you really need to do (prior to launch the server), while removing routes is avoidable.

Can I ask then for a better solution than the one above?
From my point of view, this is a pattern that I would use everywhere since I like products that are easy to use and setup them is part of the easy use (webapps)
I will be ok if you tell me that I can add and remove routes if I stop the app first
Do you understand the use case?
You could do this by setting an environment file, or updating a config, or anything.
That's the point @vltr and I are trying to make: adding routes happens before the server starts and should be immutable, removing routes is not something that should happen while the server is running - and therefore, when the server starts you only add the routes you want. It doesn't matter if those are different routes from the previous time you ran the server.

If changing routes by stoping the app first is ok, there is no need to deprecate this method then, isn't it?

@Garito well, there is because you can choose just not to add them instead of removing them. Quickly dirty snippet with no test following (inspired by my previous example):
def add_setup_routes(app):
    if not check_lock_file():
      @app.post("/setup")
      async def my_setup_method(request):
        return text("hello, setup")

add_setup_routes(main_app)

And that's it. You don't need to remove anything, you simply don't need is to add them on the first place.

Sorry @vltr but seems I'm not explaining the use case correct:
We need to allow the user to setup the app if there is no previous setup so, now, i'm checking if the setup has been made (by quering the db) and if not I load a unique route (the setup one) and wait
The user runs the setup and I need to remove the setup route (remove is how its made now) and load the final ones
I'm doing this with a before_server_start listener defined in the app factory (the classical create_app function)
Then I return the app and run it in the if __name__ == "__main__": classical section
This allows to me the expected flow and I have no preference for the remove_route or whatever
The point is that the setup route is the trigger for the change of routes
What I would prefer to avoid is a mechanism that has more code than the rest of the factory giving the fact that I'm already doing it easily and no one has complain about remove_route and you noticed (aparently, I would accept that you were thinking about that before but not in public) when someone ask to add documentation
If the mechanism has some issues and has to be done right, even more important than sanic has it well implemented (the raise of webapps will make this pattern a very used one)

@Garito I really do understand your case. What I'm thinking is beyond your use case: imagine some complex deployments, with Sanic instances in different machines behind a load balancer, for example. Now, imagine if Sanic takes any responsibility on making server changes on the fly (either by adding routes or removing ones) and make them reflect to all other instances running (in the same machine or not). It's simply a whole world of mess just to think about with no guarantee it would actually works.
So, having a remove route functionality is already a great deal of responsibility that was added to Sanic that we can't actually provide any guarantee it would work in any production scenario that lays ahead of us.
So, adding routes is something like you really need to do to have a working server, then do it prior to the server have started. Removing routes is like saying "you can remove routes anytime", which brings us to the problem described above. There's too much scenarios to cover that should not be our responsibility. Our responsibility is to provide the proper way for developers to create their services with all "weirdnesses" we know there's out there, which means we'll have to tackle and remove week points and provide enough information for best practices under any scenario. That's what I'm trying to do here.
I'm not being picky or something because for you this works just fine, but we need to consider everyone using Sanic and deliver the smoothest experience possible, even though sometimes they doesn't seem right at the first sight and would just add more "complexity" to the developers code, but that's just the trade-off of this "smooth experience". I'm really sorry if this is not what you wanted and we are here to help, always.

Ok, I'm on my own, roger that, thanks

I have no issue with the functionality being deprecated, though I have found that being able to remove routes is actually a very valuable and useful feature.
Though I understand that my use case is relatively niche, being able to add/remove/reload routes has proven incredibly helpful, in that I can modularize the service I am running, and encapsulate individual features, as well as adding/updating functionality without having to restart the application.
Implementing this modularity is how I discovered the behavior in the first place, and I think it'd be a shame to see it go.

@Atagait yeap, we do understand that this functionality is really a niche, because (as I stated), it'll only work properly if you have only one instance running in production with only one worker. Because this condition may be only a fraction of all Sanic instances running, it'll be hard to maintain.
Anyway, if this is something that is also @Garito's case, I think we can elaborate some sort of documentation on how to perform these actions (or a workaround) in the documentation when this functionality becomes extinct from Sanic (having all warnings in the world about how this could go wrong as well).

Thank you, that's what I'm asking for (ideally with a clear pattern not to crazy complicated if I may)

Superseded by #1511


For each test, list the identifiers that have been assessed, and their pass/fail status

Many of the tests inspect a different corpus from the one submitted (due to various filters within each test)
The user only gets to see the identifiers of the activities that fail any test, but not the full list of those that were assessed.
Changing the screen output to a list of all the identifiers, with a Pass / Fail message would help.  If this can be presented as a table, or csv list, then it would make it easier for users to then take the data   into other analysis tools
Extra nicety would be default the list to the Failed identifiers first

This is partly satisfied by the csv export, which does list this data
It would also be useful if the on-screen DQT could list the identifiers that are tested , for each test - but not priority

Actually, this seems to now be a duplicate of https://github.com/pwyf/data-quality-tester/issues/29


Large memory spike after introduction of histogram size bound

https://github.com/dmlc/xgboost/pull/9440 introduced a bound to histogram sizes but the behavior is not entirely what I would expect.
For small-ish values of max_depth (I tested 12) I am indeed observing a reduction of memory usage and an improvement in end to end runtime performance when running on dask (looks like network is much more consistently utilized which is nice). Good job!
However, when dialing up the depth of the tree, I am actually observing a higher memory usage than before.
The below plots show cluster memory usage when running on a dask cluster with four workers.
Stable (xgboost 1.7.6)

Nightly (merge commit of https://github.com/dmlc/xgboost/pull/9440)

Not only is the new version exhibiting a very steep spike that is higher than what is on stable, the usage also seems to grow with increasing number of boosting rounds. On larger examples I could observe this to be even more severe.
To generate these plots I was using the same code as provided in  but was running the examples on Coiled. Similar examples should work when running on a LocalCluster
import dask
import xgboost
from dask.distributed import Client
from distributed.diagnostics import MemorySampler

cluster = coiled.Cluster(
    n_workers=4,
    worker_vm_types=["r6i.xlarge"]
)
client = Client(cluster)

ms = MemorySampler()

dtypes = {}

for i in range(40):
    dtypes["f-%d" % i] = float

for i in range(40):
    dtypes["i-%d" % i] = int

df = dask.datasets.timeseries(
    start="2000-01-01",
    end="2001-01-01",
    dtypes=dtypes,
    partition_freq="4d",
    freq="10s",
)

df = df.persist()  # this is a 1.9GiB dataset
X = df.drop("i-1", axis=1)
y = df["i-1"]

d_train = xgboost.dask.DaskDMatrix(
    None, X, y, enable_categorical=True
)

for num_boost_round in [5, 10, 15]:
    for max_depth in [18]:
        print(f"{max_depth=}_{num_boost_round=}")
        with ms.sample(f"stable-{max_depth=}_{num_boost_round=}"):
            model = xgboost.dask.train(
                None,
                {
                    "max_depth": max_depth,
                },
                d_train,
                num_boost_round=num_boost_round,
                evals=[(d_train, "train")],
            )

ms.plot(align=True, grid=True)

xref https://github.com/dmlc/xgboost/issues/9342 https://github.com/dmlc/xgboost/pull/9440

Thank you for raising the issue and sharing the script! I'm trying to profile it, the spike seems to be introduced eailer than the PR. Will keep you posted.

Note: The accuracy starts off significantly better on master. train-rmse:31.18094 on master while train-rmse:700.37133 on 1.7.6. I think this is contributed by the initial estimation of intercept. With this, it's not unexpected for XGBoost to grow deeper trees.

Opened a PR https://github.com/dmlc/xgboost/pull/9455 for mitigation.

Thanks for the quick turnaround.
I ran a couple of experiments with cache sizes to get a feeling for the runtime implications on smaller trees. And ran into something that is very unintuitive.
I ran a training with max_depth=12 with a cache size of 2**15 and 2**12 to confirm the null hypothesis. As expected, both are large enough for the cache to not impact anything. When reducing the size of the cache, I expected the runtime to increase but was experiencing the opposite effect.
Smaller cache sizes actually terminated the training earlier. The plot below shows log2(size) of 11 and 10 and the runtime does not really make sense to me. I only ran 3 boost iterations here.


Repo is missing a post data from issues

Well this won't take long as this issue will actually be posted :)

What about comments?

And mentionning @webhook-testing/owners ?


Orchestrator-Role: Member must have length less than or equal to 64

In instances where this solution is used in a nested stack configuration, the RoleName will almost certainly exceed 64 characters:
HH:MM:SS UTC-0000	CREATE_FAILED	AWS::IAM::Role	OrchestratorRole	1 validation error detected: Value 'Orchestrator-Role-{{some-long-stack-name}}-BackupStack-1T6EMIU72SCD3-us-west-2' at 'roleName' failed to satisfy constraint: Member must have length less than or equal to 64 (Service: AmazonIdentityManagement; Status Code: 400; Error Code: ValidationError; Request ID: 5a918106-f766-11e8-94af-3578535a537a)

Is in imperative that the OrchestratorRole specified a RoleName, or can it be left empty to be auto-generated?

If the custom 'RoleName' is removed from the template and it will be auto-generated.
... truncated...
OrchestratorRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub Orchestrator-Role-${AWS::StackName}-${AWS::Region}
AssumeRolePolicyDocument:
Version: '2012-10-17'
... truncated...

Thanks for bringing this to our attention. We have created a backlog ticket to track this issue.

updated with v1.3.1


issue/7019-remove-netiface-from-reporting (#7084)

Pull request opened by the merge tool on behalf of #7084

Merged in 40d97f89d0ef18c326ddbc777a2a85580af80f0a


chore(deps): bump https://github.com/zeebe-io/zeebe-cluster-helm from 0.0.126 to 0.0.127

Update zeebe-io/zeebe-cluster-helm from 0.0.126 to 0.0.127
Command run was jx step create pr chart --name zeebe-cluster --version 0.0.127 --repo https://github.com/zeebe-io/zeebe-full-helm.git

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign salaboy
You can assign the PR to them by writing /assign @salaboy in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Updated Readme file

the change you provided has a grammatical mistake and also raise an issue before creating a PR


Mutliactive Config in Stage with single key and hashkey is not working

Description
multiactive_config:
multi_active_key:
- some_field
main_hashkey_column:
- hk_customer_h
Creates error on different places.
column "hk_customer_h" does not exist in ldts_rsrc_data
syntax error at or near "'hk_customer_h'" in context ",
main_hashkey_generation.['hk_customer_h'", at line 177, column 32
syntax error at or near "'hk_customer_h'" in context "ldts_rsrc_data
GROUP BY ['hk_customer_h'", at line 139, column 15
syntax error at or near "FROM" in context ",
"some_field2",
"some_field3",
FROM", at line 101, column 3

Fixes #(issue)
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Config as described above

[ ] Tests you ran

Test Configuration:

datavault4dbt-Version:
dbt-Version: cloud/core, version number
dbt-adapter-Version:

Checklist:

[x] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation or included information that needs updates (e.g. in the Wiki)

We found our misunderstanding. The "main_hashkey_column" should only contain one column where "multi_active_key" should be named "multi_active_keys" which makes it more easier to understand that with trailing "s" is for a list and without an "s" is for only one value.


ITM loss

Hi, thanks again for this great work!
During pre-training phase, for example taking the VG dataset, we have multiple captions corresponding to the same image. It's not clear to me, when you do ITM loss if the same image with different captions happens to appear multiple times in a batch it will become a hard negative example for it but it is actually a valid description for that image, even if as by implementation it will have a label 0, i.e., not a match. Could you please explain the reasoning here? Should we prevent somehow that the same image appears multiple times in the batch to avoid this issue?

My recent work also has the same problem. Because of the overlap of text or images, the model cannot learn the difference from the negative samples, resulting in the loss of ITC and ITM tasks not converging. Have you solved this problem?
Thanks!


Fix for issue where under some routes links and seperators are not di…

Tests appear to pass (no output from npm test).
This fix is related to this discussion
https://github.com/svenanders/react-breadcrumbs/issues/50
I am not sure of what other side effects of overriding the isRoot flag may occur, but this works perfectly for my routes.

Thanks! :)

Thank you for this is a very handy library.


Race to nonce update problem

In a scenario where there are multiple messages being collected signatures for there is a race condition to update the nonce. Logically the simplest sequence is as follows:

nonce = 0, derive message hash X and start collecting signatures off chain
nonce = 0, derive message hash Y and start collecting signatures off chain
collect signatures for X and execute successfully => nonce updated to 1
collect signatures for Y and execute => fails

@elenadimitrova I'm afraid I don't understand what the problem is, can you elaborate? Note that all signatures should be on the same message.

@elenadimitrova Ok I think I see what you are saying: We want to send 100 ETH to address 0xaaaa so we start collecting signatures for that, and we also want to send 500 ETH to address 0xbbbb so we collect signatures for that (also with nonce 0). Then yes, once we've sent 100 ETH to address 0xaaaa we cannot execute the transaction that sends 100 ETH to 0xbbbb.
The solution is simply to be aware of upcoming transactions, i.e. since we know that we have an upcoming payment to 0xaaaa we would use nonce 1 instead of nonce 0 when collecting the signatures for the payment to 0xbbbb.

Thanks @christianlundkvist I understand the "solution" but this implies strict order of upcoming transactions, i.e. sequential model of execution, 1-at-a-time. I've tried to circumnavigate past that by extending the concept of nonce. Will post here if anything reusable come out of it.


Add deprecation warnings for everything related to dict_id

Which issue does this PR close?
Related to https://github.com/apache/arrow-rs/issues/5981 and https://github.com/apache/arrow-rs/issues/1206
Rationale for this change
With https://github.com/apache/arrow-rs/pull/6788 not preserving the dictionary ID is now the default, meaning we can finally remove preserving dictionary IDs, and more generally get rid of them in the Field struct. This adds the deprecation warnings that this will happen in the future.
What changes are included in this PR?
All actual code changes have already landed, this just adds the deprecation warnings so we can do the breaking changes in the future.
Are there any user-facing changes?
None yet, this is preparation for future breaking changes.
@alamb @tustvold

The problem is that it requires deprecations one way or another. If the deprecations aren't here then they're about the dictionary tracker to allow that functionality. I agree it's a dilemma.

How would I write an IPC dictionary with an ID of 32 without using Field::dict_id? As written the deprecation notice basically reads, "we've removed this functionality, if you need it 🤷♂", I think we need to actually provide a viable alternative. This doesn't need to be using Field::dict_id, and could be some setup using DictionaryTracker, but we do need to document whatever it is. Otherwise people lack a clear migration path.

I can help with this -- is there some test / example of what assigning dict_ids in the IPC means (aka some example of the use that I can use an example to craft the API?)

I think the existing tests that are currently relying on allow(deprecated) would be a good starting point

I think the existing tests that are currently relying on allow(deprecated) would be a good starting point

I think we need to be a bit more specific, because how does this make sense for any of the new_dict calls? Practically none of the instances where new_dict is called is the dictionary ID actually relevant but it just happens to be part of the function signature. If I'm understanding you right though, you mean all the tests where the dictionary IDs value actually matters, right?
Regarding still having another ability to set dict IDs: We can introduce a new option on IpcWriteOptions where the DictionaryTracker can be pre-set. And then we allow a dictionary tracker to be instantiated with a pre-populated list of dict IDs. Then a user could pre-populate the IDs, so we would have a second way of setting dict IDs that will still exist when the field doesn't exist anymore. I'll put it together and we can discuss more (really want to make this work because dict_id being on the Field is causing a ton of problems for us regarding equality for merging schemas).

Ok so is the thesis that dictionary ID are just an implementation detail of the IPC format, if so then I guess this is fine, and we can effectively use the deprecation as a scream test. I'm a little wary we are removing functionality here, but I'm also very out of the loop w.r.t the dictionary tracker changes

Ok so is the thesis that dictionary ID are just an implementation detail of the IPC format

Been checked out on this one for a bit but IIRC this was the original insight behind all of this. Browsing around through other arrow implementations in other languages they don't seem to expose the dictionary ID at all in the schema and leave it as in internal detail of IPC serde. If people are using the dictionary ID it's probably for something that should properly be done with kv metadata instead.

Ok I also took the time to analyze every single allow deprecate in tests and tl;dr is there are only 2 tests that actually test the dictionary ID ending up on the wire, but as a side effect, they actually want to test something else.

Here is my full analysis:
tests in arrow-flight/src/encode.rs:

test_schema_metadata_encoded: doesn't care about new_with_preserve_dict_id, can be changed to new
flight_data_from_arrow_batch uses default already

test in arrow-integration-test/src/schema.rs: just marshals whatever the field is, it doesn't care about the dict_id (simply happens to use new_dict)
test in arrow-integration-testing/src/flight_server_scenarios/integration_test.rs: uses new_with_preserve_dict_id, can be changed to regular new
test in arrow-ipc/src/convert.rs: just tests roundtripping, doesn't care about dict_id (simply happens to use new_dict)
tests in arrow-ipc/src/reader.rs:

test_roundtrip_nested_dict_no_preserve_dict_id: uses new_with_preserve_dict_id, can be changed to regular new
test_roundtrip_stream_nested_dict_of_map_of_dict: doesn't care about dict_id (simply happens to use new_dict)
test_roundtrip_stream_dict_of_list_of_dict: doesn't care about dict_id (simply happens to use new_dict)
test_roundtrip_stream_dict_of_fixed_size_list_of_dict: doesn't care about dict_id (simply happens to use new_dict)
test_roundtrip_view_types_nested_dict: doesn't care about dict_id (simply happens to use new_dict)
test_unaligned: uses new_with_preserve_dict_id, can be changed to regular new
test_unaligned_throws_error_with_require_alignment: uses new_with_preserve_dict_id, can be changed to regular new
test_same_dict_id_without_preserve: uses new_with_preserve_dict_id, can be changed to regular new, but also uses new_dict
test_read_ree_dict_record_batches_from_buffer: doesn't care about dict_id and IpcWriteOptions can be changed to default
track_union_nested_dict, track_struct_nested_dict: actually tests dict_id to be set on the wire (but not sure why it doesn't need to for the purpose of the test)
test_dictionary_ordered: uses new_dict but doesn't care about its value

tests in arrow-schema/src/field.rs:

need to look into uses of test_new_dict_with_string and schema_field_with_dict_id, person_schema
test_fields_with_dict_id, test_field_comparison_case, schema_field_accessors: specifically tests the existance of the functions/fields we want to remove (not the functionality)

tests in parquet/src/arrow/arrow_writer/mod.rs:

arrow_writer_string_dictionary, arrow_writer_primitive_dictionary, arrow_writer_string_dictionary_unsigned_index: just tests roundtripping, doesn't care about dict_id (simply happens to use new_dict)

tests in parquet/src/arrow/schema/mod.rs:

test_arrow_schema_roundtrip: doesn't care about new_dict, simply calls it.

Originally coming from Arrow's implementation in Go I can also attest that this is the only library around that I've found to be exposing this and not just making it a detail of the wire format.
After going through this in detail, I conclude these deprecations are safe to do, and we should follow up with testing dictionary equality (in the now default mode) to actually set dictionary IDs equal for equal dictionaries, however, that doesn't influence the APIs, so in my opinion we can go ahead with this as is.

Ok so is the thesis that dictionary ID are just an implementation detail of the IPC format, if so then I guess this is fine, and we can effectively use the deprecation as a scream test. I'm a little wary we are removing functionality here, but I'm also very out of the loop w.r.t the dictionary tracker changes. If Andrew is happy feel free to ignore me.

Given that this PR deprecates the APIs and doesn't remove them and no one seems to have come up with any reasonable usecase for the current dict_id encoding (despite some clearly non trivial analysis by @brancz   🙏 and @thinkharderdev  ) I think this PR cuts a nice balance between:

a real path for removing dict_ids
Not causing immense downstream pain by removing an API that is needed

Let's merge this and see if anyone comes up with a motiviating usecase.
Thank you again for sticking with this @brancz

I'll plan to merge this PR tomorrow unless there are other comments / concerns
cc @etseidl in case you are interested in this sort of thing

Once merged I’ll start drafting changes to add the optimizations discussed as well as the dice_id removal which I’ll continually rebase over the next months and then we can land them for the March release.
Thank you very much for the productive collaboration everyone!

🚀  here we go

Well I already found a potential issue in DataFusion, see https://github.com/apache/datafusion/pull/13663#discussion_r1887364957
We can wait to see how that conversation is resolved


Using MockitoRule

Hi I've been looking for something like this library for a long time, this is awesome!.
Currently I create TestModules full of mock(X.class) replicating the dependencies I need from real graph, I'm doing that for AndroidJunit4 tests with androidX libraries and Robolectric.
The thing is I would like to mix this with the MockitoJUnit Rule, that creates a mock sessions and does proper clean up after tests finishes, do you have something in mind for that integration?
https://static.javadoc.io/org.mockito/mockito-core/2.8.47/org/mockito/junit/MockitoRule.html

Thanks, glad you like it!
Can you explain better what you want to achieve? Can't you just create an additional MockitoJUnit in the test?

Looking at the code here, the mocks are being created on the internal logic using Mockito.mock() method, right? The thing is to get the advantages of the Mockito Rule and the session it creates the mocks has to be created by the rule.
So ideally there should be a way to get a Mockito session (what the rule uses inside) tracking all the mocks your library creates to allow them to being cleaned up by Mockito and use the advantages they added