x/tools/cmd/godoc: TestWeb times out

From our builder http://build.golang.org/log/54c9acca698538676ae29111ad178a069e1e8997
--- FAIL: TestWeb (319.52s)
	godoc_test.go:160: Server "<IP_ADDRESS>:49215" failed to respond in 5m0s
2015/07/30 00:20:59 updateMetadata: open C:\Users\WINGOP~1\AppData\Local\Temp\godoc-analysis513099221\goroot\doc: The system cannot find the file specified.
2015/07/30 00:21:00 updateMetadata: open C:\Users\WINGOP~1\AppData\Local\Temp\godoc-analysis513099221\goroot\doc: The system cannot find the file specified.
2015/07/30 00:21:00 GOROOT=C:\Users\WINGOP~1\AppData\Local\Temp\godoc-analysis513099221\goroot\src\: [lib]
2015/07/30 00:21:00 GOPATH[0]=C:\Users\WINGOP~1\AppData\Local\Temp\godoc-analysis513099221\gopath\src\: [app]
2015/07/30 00:21:00 Loading and type-checking packages...
2015/07/30 00:21:00 Loaded 2 packages.
2015/07/30 00:21:00 Transitively error-free main packages: [package app]
2015/07/30 00:21:00 Constructing SSA form...
2015/07/30 00:21:00 SSA construction complete
2015/07/30 00:21:00 Computing implements relation...
2015/07/30 00:21:00 Extracting type info...
2015/07/30 00:21:00 Visit instructions...
2015/07/30 00:21:00 Visit instructions complete
2015/07/30 00:21:00 Type analysis complete.
FAIL
FAIL	golang.org/x/tools/cmd/godoc	361.558s

I can also reproduce it on my linux-386.
The TestWeb passes if I increase timeout:
# git diff
diff --git a/cmd/godoc/godoc_test.go b/cmd/godoc/godoc_test.go
index 312cfc6..ed493e7 100644
--- a/cmd/godoc/godoc_test.go
+++ b/cmd/godoc/godoc_test.go
@@ -135,7 +135,7 @@ func serverAddress(t *testing.T) string {
 }

 const (
-       startTimeout = 5 * time.Minute
+       startTimeout = 7 * time.Minute
        pollInterval = 200 * time.Millisecond
 )

# go test -run=TestWeb -v
=== RUN   TestWeb
--- PASS: TestWeb (389.22s)
PASS
ok      golang.org/x/tools/cmd/godoc    389.232s
#

Alex

@alandonovan, is it really expected to take over 5 minutes to start godoc with SSA analysis? I don't know.

No, it was supposed to take five seconds, but the change 8239116d598cef15982af82eed790944f82fa3a4, which I wasn't aware of till now, bumped this limit to 5 minutes and added the -index flag, which causes it to use ~1GB memory.

+alandonovan, can you prepare a CL to fix this?

Andrew fixed this in https://go-review.googlesource.com/#/c/12917/ but didn't update the issue.


Parameter: Unstable(recursive analyse ImmutableList)

plugin version: v0.4.2
Android Studio Iguana
Small reproducer
data class State(val data: ImmutableList<Item>)
data class Item(val title: String, val images: ImmutableList<String>)

@Composable
fun StateRender(state: State) {
    Text(text = state.data.toString())
}

similar to https://issuetracker.google.com/issues/327643787

But we use https://github.com/Kotlin/kotlinx.collections.immutable, not regular List

List that is declared in stability configuration file and ImmutableList are being handle similarly. Anyway, try to check that case with new version :)
https://github.com/VKCOM/vkompose/blob/master/idea-plugin/vkompose/vkompose-0.2.2-Iguana.jar

Thanks for quick update, now works as expected 🙂


Not working in Hawaii

Excellent program.
I installed all regions, flew to different parts of the world and it works perfectly.
So far the only place I don't see Ortho is in Hawaii. Only the default X-Plane scenery appears.
Attached is my scenario file
scenery_packs.ini.txt
and my log file
Log.txt

Yeah I think Hawaii was part of the demo scenery that didn't make it into the prior builds of scenery for this project.   Should be resolved with the next scenery update.

Yeah I think Hawaii was part of the demo scenery that didn't make it into the prior builds of scenery for this project.   Should be resolved with the next scenery update.

Thanks!!!

I confirm that with the new scenario update it works correctly.
Thanks


Update linting rules for form-js's new components and dynamic data

Problem you would like to solve
As we will integrate a new version of form-js into Tasklist, we will want to update the linting rules that go along with it so that users targeting an older platform will not create invalid forms.
Topics which needs to be linted are:

[ ] Dynamic data configuration, as in setting the values source to 'input' and/or giving a component a values key
[ ] Taglist components
[ ] Checklist components

Proposed solution
We should warn users using any of the above features not targeting a platform which is compatible with them.
Alternatives considered

Additional context
https://github.com/bpmn-io/form-js/issues/200

Closed as this is now tracked in https://github.com/camunda/form-linting


path_lengths seems uncessarily slow for 2d Euclidean distance

This may be specific to my machine or test images but the following seems to be 20-100x faster. With one specific test image, path_lengths() takes 0.6s on my machine and the below takes 0.006s. I'm not sure if it will generalize. My image is roughly 5000x3000.
skan_skeleton = Skeleton(skel_image, keep_image=True)

n_paths = skan_skeleton.n_paths

# path_lengths = skan_skeleton.path_lengths()

def sum_of_distances(coords):
    coords = np.array(coords)
    differences = np.diff(coords, axis=0)
    distances = np.linalg.norm(differences, axis=1)
    return np.sum(distances)

def sum_of_distances2(coords):
    # this works too, not sure which is generally faster
    return np.sqrt(np.sum((np.diff(coords, axis=0)**2), axis=1)).sum()

path_lengths = []
for i in range(n_paths):
    coords = skan_skeleton.path_coordinates(i)
    length = sum_of_distances(coords)
    path_lengths.append(length)

Thanks for the report @jarodhanko-crafco! It's certainly possible that this is faster. Do you think you could write a complete example with an example image and built-in timings? That will make it easier for me to investigate. 🙏
The bench_skan.py file might be a nice place to start — it might be as simple as adding your functions and timing them in addition to iterating over path lengths in the Skeleton object.

@jni This is non-issue. I was only testing a single execution, which has numba overhead. Subsequent timings are equivalent or faster. Sum_of_distances2 might be marginally faster in some instances, but not much.


WinUI 3 custom title bar captures focus from flyouts

Describe the bug
When using a custom title bar that extends own content into the title bar, flyouts that are opened from the page UI over the custom title bar receive no input.
The mouse input is interpreted as a hover and click on the title bar, not on the items in the flyout.
Trying to click on or select the top item in the flyout is impossible and is instead interpreted as a window movement when clicking and dragging.
Double-clicking on the top flyout item maximizes the window instead of selecting the flyout item.
Also, the title bar control buttons for minimize, maximize and closing the window are given priority over the flyout that is displayed above.
Steps to reproduce the bug
Reproduction sample code is available here: https://github.com/kjean667/WinUICustomTitleAndFlyoutBug
Use AppWindowTitleBar.ExtendsContentIntoTitleBar and SetDragRectangles to extend custom content into the title bar of the window.
(See WindowTitleHelper.cs in reproduction sample)
Use a simple XAML Window with a Flyout that is tall enough to open over the custom title bar. The Window needs to be the exact right size so that the Flyout is extended over the title bar content.
<Window
  x:Class="WinUICustomTitleBarInhibitsControlInput.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="d">

  <Grid RowDefinitions="80,*">

    <StackPanel x:Name="MenuBarContent" Grid.Row="0" Background="DarkBlue" Padding="16">
      <TextBlock Text="Custom Title Bar" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White"/>
    </StackPanel>

    <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
      <Button Content="Click Me">
        <Button.Flyout>
          <Flyout Placement="Right">
            <ListView>
              <ListView.Items>
                <ListViewItem>Item 1</ListViewItem>
                <ListViewItem>Item 2</ListViewItem>
                <ListViewItem>Item 3</ListViewItem>
                <ListViewItem>Item 4</ListViewItem>
                <ListViewItem>Item 5</ListViewItem>
                <ListViewItem>Item 6</ListViewItem>
                <ListViewItem>Item 7</ListViewItem>
                <ListViewItem>Item 8</ListViewItem>
                <ListViewItem>Item 9</ListViewItem>
              </ListView.Items>
            </ListView>
          </Flyout>
        </Button.Flyout>
      </Button>

    </StackPanel>
  </Grid>
</Window>

Expected behavior
The first item in the flyout shall be clickable and when hovering over the item the focus background shall be displayed.
Screenshots

NuGet package version
WinUI 3 - Windows App SDK 1.5.1: 1.5.240311000
Windows version
No response
Additional context
Windows 11 23H2 (22631.3155)

When using Flyout.ShouldConstrainToRootBounds="False", it works around the problem and items can be selected, but it still does not solve the original issue. Using unconstrained flyouts trigger other crashes in WinUI when trying to hide the flyout from code behind. In that case a native 0x80070057 "The parameter is incorrect" exception is thrown and crashing the application.

dup
https://github.com/microsoft/microsoft-ui-xaml/issues/9448

For non-windowed flyouts, it might be good for flyout positioning code to ensure the flyout doesn't overlap the titlebar area. Or, alternatively, maybe the flyout could use InputNonClientPointerSource to ensure it gets input even if it is in the titlebar area.

For non-windowed flyouts, it might be good for flyout positioning code to ensure the flyout doesn't overlap the titlebar area. Or, alternatively, maybe the flyout could use InputNonClientPointerSource to ensure it gets input even if it is in the titlebar area.

Is there any sample?


World Hopper: Add an option to skip Target Worlds when quick-hopping

Either a new option or just bundling it under "Quick-hop out of dangerous worlds" would work.

wonderful idea


update document for mellanox hardware offload

What type of this PR

Document

From Corigine engineer, Corigine can support offload with linux bond


Sentence similarity: Training failed with error "Specified cast is not valid" when using SQL server data.

System Information (please complete the following information):
Windows OS: Windows-11-Enterprise-22H2
ML.Net Model Builder 2022: <IP_ADDRESS>7701 (Main Build)
Microsoft Visual Studio Enterprise: 2022(17.4.4)
.Net: 6.0
Describe the bug

On which step of the process did you run into an issue:
Training failed with error "Specified cast is not valid" when using SQL server data.

TestMatrix
home-depot-sentence-similarity-small.csv
To Reproduce
Steps to reproduce the behavior:

Select Create a new project from the Visual Studio start window.
Choose the C# Console App (.NET Core) project template.
Add model builder by right click on the project.
Select "Sentence similarity" scenario.
On Data page, choose the SQL Server data source and select the column for three options.
On the Train page, click "Start training" button to train.

Expected behavior
Training successful.
Screenshot

Additional context

@v-Hailishi what is the SQL schema for the table? I want to know the SQL data types.

@beccamc Here are the SQL data types:

I am seeing the same problem with the home depot dataset uploaded to SQL. Here are the column types...

@LittleLittleCloud I'm looking for some help here...

DB command string has correct casts
Column options have everything set correctly.
I can't reproduce the problem in our generated code when I load the IDataView from the database.

Why are we even calling into the Database Loader from the SentenceSimilarityTrainer.CreateTrainer code path? We're passing in the IDataView, why does it go back to the database loader?

Specified cast is not valid.
   at System.Data.SqlClient.SqlBuffer.get_Single()
   at Microsoft.ML.Data.DatabaseLoader.Cursor.<>c__DisplayClass37_0.<CreateSingleGetterDelegate>b__0(Single& value)
   at Microsoft.ML.Data.ColumnCursorExtensions.<GetColumnDirect>d__2`1.MoveNext()
   at Microsoft.ML.TorchSharp.NasBert.SentenceSimilarityTrainer.Trainer.GetRowCountAndSetLabelCount(IDataView input)
   at Microsoft.ML.TorchSharp.NasBert.NasBertTrainer`2.TrainerBase..ctor(NasBertTrainer`2 parent, IChannel ch, IDataView input)
   at Microsoft.ML.TorchSharp.NasBert.SentenceSimilarityTrainer.CreateTrainer(NasBertTrainer`2 parent, IChannel ch, IDataView input)
   at Microsoft.ML.TorchSharp.NasBert.NasBertTrainer`2.Fit(IDataView input)
   at Microsoft.ML.Data.EstimatorChain`1.Fit(IDataView input)
   at Microsoft.ML.AutoML.SweepablePipelineRunner.Run(TrialSettings settings)
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.ML.AutoML.AutoMLExperiment.<RunAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.ML.ModelBuilder.AutoMLService.Experiments.SentenceSimilarityExperiment.<ExecuteAsync>d__13.MoveNext() in C:\Repos\machinelearning-tools\src\Microsoft.ML.ModelBuilder.AutoMLService\Experiments\SentenceSimilarityExperiment.cs:line 106
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.ML.ModelBuilder.AutoMLEngine.<StartTrainingAsync>d__21.MoveNext() in C:\Repos\machinelearning-tools\src\Microsoft.ML.ModelBuilder.AutoMLService\AutoMLEngineService\AutoMLEngine.cs:line 145

@beccamc
IDataView loads data in a lazy way, that means it won't start loading data until that column is needed.

I can't reproduce the problem in our generated code when I load the IDataView from the database.

Can you try calling
data.GetColumn<float>("relevance").ToArray()

This should trigger the error.
And I wonder that SQL float is actually double in C#? You should be able to verify that by changing float to double in the upper code.

Problem here was that the index was incorrect! Basically we were pulling the wrong column with ignored values. This is an existing bug and wasn't introduced in the Sentence Similarity scenario.

The bug has been fixed on the latest main build <IP_ADDRESS>1302.


Customise with learning rate

Add a functionality, which keeps a check for each time you assign a schedule, about what a person thinks about it. Take feedback, understand their learning rate and adapt accordingly.

can you elaborate about this issue

can you elaborate about this issue

yes, basically what I'm planning to do is to store a variable as learning rate in a file and keep on updating it inside the file based on the user feedback function, this also needs some minor changes in the user feedback func. and then we'll use that variable to make the code efficient.
Not exactly but something like the learning rate of neural networks

yes, basically what I'm planning to do is to store a variable as learning rate in a file and keep on updating it inside the file based on the user feedback function, this also needs some minor changes in the user feedback func. and then we'll use that variable to make the code efficient.
Not exactly but something like the learning rate of neural networks

This is kind of machine learning

This is kind of machine learning

would love to work on it

would love to work on it

yes, not exactly but thinking of something like that.
Assigned to @draveshjaluka

yes, not exactly but thinking of something like that.
Assigned to @draveshjaluka

Thanks

Thanks

Would also try to bring some display change in terminal only to make it look good

Would also try to bring some display change in terminal only to make it look good

Please elaborate

Please elaborate

Like the basic terminal display is not very well aligned would align it

Like the basic terminal display is not very well aligned would align it


Ignore some refactoring suggestions

Issue description or question
Is there a way to tell Sourcery (or PyCharm) to ignore certain refactoring suggestions?
It's not that the suggestions are wrong, but sometimes I prefer the way the code reads without the refactoring. I can't seem to find a way to tell Sourcery to stop highlighting this part of the code, so I'm just turning off Sourcery for now.
Code editor or IDE name and version
Pycharm v2018.1.4 Community Edition
OS name and version
Linux

Yes we've been thinking of adding this, but haven't been sure how to implement it.
Would a comment-based system (like mypy/yapf/pylint etc) be too intrusive?
e.g #sourcery disable on the function?

I don't know how doable that would be, but with PyCharm's built in warnings, you can click the lightbulb that shows up and pick "ignore", and decide to ignore this instance of the issue, or all the similar issues in the project. This type of solution that doesn't require to add anything to the code would be ideal for me, already not a fan of all the pylint: disable tags.
Also not sure if doable/practical, but it might be interesting for you guys if there is an option to opt-in to share usage back with you, so that your model can learn from what users decide to ignore.

I think we're going to provide a way to disable with comments and also do it through Pycharm as you suggest.

Disable with # sourcery off is going into the next release. Hopefully will also have a way to do it in pycharm available at some point next week.

Update has just gone live (you need to update the plugin).
We now have the # sourcery off comment flag, and also disable/enable options directly in Pycharm.
We don't yet have the option to disable all similar issues, but have added it to our roadmap.


Change the flake attribute name to match project name

The plural s in nix-fast-builds is only used in the flake output name AFAICT. Lets make this consistent.

@mergify queue


GH-34332: [Go][FlightRPC] Add driver for database/sql framework

Rationale for this change
Using Golang's database/sql framework is well known, offers goodies like connection pooling and is easy to use. Therefore using FlightSQL trough this framework is a good starting point for users performing simple queries, inserts etc.
What changes are included in this PR?
This PR adds an database/sql/driver implementation currently supporting sqlite and InfluxData IOx (query only). Unit-tests are added using the SQLite server example implementation and the driver and driver settings are documented.
Are these changes tested?
Yes, a test-suite is added for the driver. Futhermore, the IOx backend is additionally tested against a real local instance using this code.
Are there any user-facing changes?
This PR does not contain breaking changes. All modifications to the FlightSQL client code are transparent to the user.

Closes: #34332

How does this differ from adbc/sqldriver? https://github.com/apache/arrow-adbc/blob/main/go/adbc/sqldriver/driver.go

@srebhan Would it make more sense to add IOx backend testing to the CI for adbc/sqldriver (as pointed to by @lidavidm) along with any necessary changes there?
At the moment we're trying to keep the arrow module/package compatible with go1.17+ so at a minimum you'd need to add go:build constraints to not break the CI here. But it would probably be better to consolidate efforts in the ADBC sqldriver (which would provide a database/sql wrapper for anything that implements ADBC including the FlightSQL driver) rather than duplicating a large part of that work here.
What do you think?

@zeroshade thanks for your comment. I can surely work on making this compatible with Go 1.17 and avoid breaking tests by removing the IOx backend tests (which only supports a subset of the operations anyway). I thought you were running CI tests in "short" mode to strip out integration tests...
Regarding the relation to the ADBC driver: I'm aware of this driver, but I do want the leanest solution possible adhering to the look-and-feel of database/sql as close as possible. For me personally there is no value in a wrapper around a wrapper. I even thought of getting rid of the different backend variants by putting in the specific options as parameters to make this a thin wrapper around the FlightSQL client. Does that make sense?

@srebhan from the arrow side it's more of a maintenance question. it's hard to justify maintaining two separate implementations. The ADBC FlightSQL driver is basically a thin wrapper around the FlightSQL client already and the adbc/sqldriver package shouldn't be adding much in the way of overhead (honestly I'd be surprised if any overhead it adds dwarfs the actual network IO costs....). At a minimum we should document the use case, either through your work here or by documenting how to leverage ADBC's flight sql driver.
Just as a thought, would you be able to create a benchmark that uses database/sql against IOx that we can run with both of your solution here and the ADBC driver so we can compare and see if there's a significant difference (thus justifying the separate implementation)?

@jacobmarble I like the idea of having a separate module solely consisting of registering the flightsql driver + a README with the options / how-to-use documentation etc.
I recommend putting it in the ADBC repo solely because in the past I've had difficulties with a submodule of the Arrow Go module due to the v12 major version in the import path. Could you put up a PR for this on the ADBC repo and myself and @lidavidm will take a look at it as soon as we can to move this forward.
Thanks much!

@jacobmarble it's not only about wrapping the registration, it's about the fundamental addition of (IMO unnecessary) complexity. The ADBC database/sql driver is a wrapper around ADBC as such it adds another indirection from the database, i.e. Application -> database/sql -> ADBC -> FlightSQL -> Backend vs. Application -> database/sql -> FlightSQL -> Backend. It's like writing a wrapper around ODBC... What is the benefit, given that database/sql is the defacto standard in go? The clear drawback for the user is to deal with ADBC. From the docs it's not yet clear to me which "ADBC drivers" I need. Are they bundled with the driver? If so, how to deal with growing dependencies and code when adding new drivers? What if CGO is not allowed in the application?
I'm certainly willing to work on this PR, but it sounds like there is some resistance to the idea. Please let me know if there is a realistic chance of getting this merged!

You depend on the Flight SQL driver to use Flight SQL. There is no cgo required. The cgo bits are only if you want to 1) use a non-Go ADBC driver or 2) expose a Go driver to a non-Go application. The proposed module would mean that the user just imports a single module that re-exports the interface, without explicitly worrying about ADBC.
We can add documentation as necessary for searchability (and IMO, having two implementations would make searchability worse, not better). I don't think the answer to "there is no documentation" is "write a second implementation".
Again, the primary concern is maintenance. Are you/InfluxData willing to continue maintaining the implementation here? My other concern is just confusing users by having two implementations that don't functionally differ.
I can see the argument for a separate implementation if there is a specific benefit for users, but I don't think that's been addressed beyond having fewer layers in principle.
See what was done for Python: instead of maintaining specific Flight SQL<->DBAPI wrappers, we did the same thing where there is just an ADBC<->DBAPI wrapper. It also means we can iterate on those parts separately from/more quickly than the core library.

Here's my alternative proposal:
https://github.com/apache/arrow-adbc/pull/480
As documented in the PR example, use is:
import (
	"database/sql"
	_ "github.com/apache/arrow-adbc/go/adbc/sqldriver/flightsql"
)

func Example() {
	db, err := sql.Open("flightsql", "uri=grpc://localhost:12345")
	if err != nil {
		panic(err)
	}

	_ = db.Ping()
}

I still find github.com/apache/arrow-adbc/go/adbc/sqldriver/flightsql to be very long-winded, but if documentation consistently points to it, then I think we'll help folks out.

The proposed module would mean that the user just imports a single module that re-exports the interface, without explicitly worrying about ADBC.

@lidavidm that's exactly my point. I my view, database/sql (think of it as "Golang Database connectivity") and ADBC are two independent standards. So if I do not worry about ADBC why am I forces to import it? People probably want to use the one or the other. So I do not suggest to have two implementations, I suggest to remove the ADBC wrapper and make it a wrapper around FlightSQL as this is what is done for every other database in Golang!

There is possibly some value in having the separate Flight SQL <--> database/sql here, as far as contributing goes, though I'd prefer more reasoning than just an "in principle" argument against the extra layers. That said, it's likely not too much maintenance overhead to maintain this implementation assuming we get it right.
@srebhan If we can get this to a better spot with good testing, I'd be okay with getting this merged. But I do want to make it clear that the documentation / examples will likely still be pointing at using the ADBC implementation.
I've already left a bunch of comments above that need to be addressed (above and beyond the failing CI). In addition, I'd prefer if this were put into it's own subdirectory of the flightsql directory rather than directly in the flightsql package itself.

Whether the technical merits of the "direct driver" are truly meaningful, I support it for other reasons.

it's likely not too much maintenance overhead to maintain this implementation assuming we get it right.

If we can get this to a better spot with good testing, I'd be okay with getting this merged. But I do want to make it clear that the documentation / examples will likely still be pointing at using the ADBC implementation.

IMHO, the existence of a "direct driver" is part of "getting it right". Eventually, someone will create such a driver, and it's better that it be a canonical driver live in this repository, rather than github.com/StartCo/goflightsql. (I'm thinking about the various Kafka golang clients. Confluent's driver depends on cgo, so it isn't as popular as the "pure Go" drivers published by Segment.io and Shopify.)
Both implementations should behave the same way, as much as possible. Unit tests can help.

I my view, database/sql (think of it as "Golang Database connectivity") and ADBC are two independent standards. So if I do not worry about ADBC why am I forced to depend on it? People probably want to use the one or the other. So I do not suggest to have two implementations, I suggest to remove the ADBC wrapper and make it a wrapper around FlightSQL as this is what is done for every other database in Golang!

This illustrates a concern I have about the Apache Arrow ecosystem. The relationship between these APIs (Arrow, Flight, FlightSQL, Arrow, database/sql) are not obvious from the outside.
The most common FlightSQL client persona wants a basic SQL driver to access a database that someone else chose. Things like Arrow and ADBC don't matter to this persona, but things like "pure Go" and few dependencies do matter.

@zeroshade thanks again for your thorough review! I've fixed most of your comments (at least IMO ;-)). As I'm not used to your usual habits I left the comments unresolved. Please let me know if I should resolve them by myself or let you go through those.
There are a few point that are open

Unification of backends: I think I should not deal with backend-specific settings at that level. So my idea is to unify those and let the user do the specifics on the DSN level. I hope to finish this next Friday...
TLS implementation/customization: My plan is to implement a mechanism similar to the MySQL driver to have a driver-global TLS-config registry. I thought about doing this in a separate PR once this one is merged. What do you think?
Moving the driver to another location: You suggested to move this to a separate directory. I'm fine with this, but I'm concerned about testing. The driver, by nature, is closely bound to the API and behavior of the FlightSQL client, therefore it's tests should run whenever something in the client changes. In a separate directory chances are high that the tests are forgotten... Anyway, after unification (see item 1) only driver.go and driver_test.go will be left. Do you want a separate dir nonetheless?

Thanks again for your support and comments! Much appreciated.

@srebhan

Unification of backends: I think I should not deal with backend-specific settings at the driver level. So my idea is to unify those and let the user do the specifics on the DSN level. I hope to finish this next Friday...

Agreed, unifying the backends would be good and is kind of the point of using flightsql in general i think.

TLS implementation/customization: My plan is to implement a mechanism similar to the MySQL driver to have a driver-global TLS-config registry. I thought about doing this in a separate PR once this one is merged. What do you think?

I haven't looked at that too hard but I think it's fine to do it as a separate PR once this is merged.

@zeroshade I pushed an update containing fixes to most of your comments above, the unification of the drivers and placement of the driver in a driver subdir.
I do have one question to the schema usage (see response to your comment). I'll probably be the wrong person to implement a schema mock, but I'm willing to test if someone implements this.
Regarding the other open points I suggest to first get this PR ready and merged. I'm then willing to work on the following items as follow-up PRs:

TLS configuration
parameterization of the memory allocator (if we really want to do this without need)
mock schema generation for SQLite example (not sure if I can find the time for this)

What do you think?

@srebhan I think your plan is fine for going ahead. Once you get the CI tests passing again I'll give this another look over.

@zeroshade I found the time to fix the CI issue. The remaining failing test can hardly be due to my changes as I didn't touch any of the mentioned parts/languages...

Thanks @zeroshade, I missed that. Will add the headers...

Closing because it has been untouched for a while, in case it's still relevant feel free to reopen and move it forward 👍

@srebhan sorry for closing this a bit too fast

@srebhan this LGTM for the moment, can you just create issues (referencing this one) for each of the tasks we identified as something that will be done in a followup PR? so that we don't lose track of that work?
I'm good to merge this once those issues are created, potentially creating a top-level umbrella issue with a task list of the separate issues?

@zeroshade I added the two discussed follow ups. The third one (mock schema generation for SQLite example) is already implemented as a test case and thus I omitted an issue.
Did I forget anything? If not I will start implementing the TLS part (#35042) as soon as this PR is merged.


Access sub-ingredient's config

I have two ingredients. One of them knows about the other one. When configuring the second one, I'd like to be able to access a config value from the first one, but I can't find a way to do this. Here's an example that sketches what I'm after.
data = Ingredient('data')
model = Ingredient('model', ingredients = [data])

@data.config
def data_config():
    a = 5

@model.config
def model_config(data):
    b = data['a'] / 2      # this doesn't work

Is there any way to do this?

Actually, this works as intended; not sure why I thought it didn't. I think I'm actually after "sibling" config. I.e.,
ex = Experiment()

@ex.config
def a_config():
    a = 5

@ex.config
def b_config():
    b = a / 2      # how to make this work?

How can I make something like this work?

The first version also doesn't work, if I switch model_config to a named_config, i.e.,
@model.named_config
def model_config(data):
    b = data['a'] / 2      # this doesn't work

Then if I invoked ... with model.model_config, I get
Traceback (most recent calls):
  File ".../lib/python3.11/site-packages/sacred/config/custom_containers.py", line 79, in __getitem__
    raise KeyError(item)
KeyError: 'a'

In the second example (sibling config), it should also be named_config:
ex = Experiment()

@ex.config
def a_config():
    a = 5

@ex.named_config
def b_config(a):
    b = a / 2      # how to make this work?

I get
Traceback (most recent calls):
  File ".../lib/python3.11/site-packages/sacred/config/config_scope.py", line 64, in __call__
    raise KeyError(
KeyError: "'a' not in preset for ConfigScope. Available options are: {'_log'}"

So this is really a question about named_configs.

The problem is that b_config may overwrite values in a_config (Basic assumption in sacreds config system).
Hence, first b_config is executed and then a_config. So while b_config is executed, a is unknown.
Here, an example, that may give you an idea, how the sacred magic works:
ex = Experiment()

@ex.config
def a_config():
    b = 2
    a = 5 * b

@ex.named_config
def b_config(a):
    b = a / 2      # This cannot work, because a may depend on b
    b = 11      # This would work and a would then be 5*11

I guess I don't understand the precedence. Named configs are executed before regular configs, but their values take precedence over regular configs? I.e., regular configs don't over-write the already set values? Is that right?
What is the right way to deal with this, where I want to access some global config value in a named config, which I promise won't modify it? Is there some kind of read-only access? Or that's impossible because the value is just not there? Do I have to copy the "default" values that everybody needs access too to every config? That seems like substantial code duplication.

It seems having a global default_a variable works as intended. It does mean code duplication, but perhaps that's good enough for my purposes.
default_a = 5

@ex.config
def a_config():
    a = default_a

@ex.named_config
def b_config():
    a = default_a
    b = a / 2      # how to make this work?

I guess I don't understand the precedence. Named configs are executed before regular configs, but their values take precedence over regular configs? I.e., regular configs don't over-write the already set values? Is that right?

Yes, that is right. Sacred has priorities, which config values are used, if they are multiple times set.
Additionally, there is some magic involved, when "config scopes" are used.
This magic works only in one direction: higher priority -> lower priority

What is the right way to deal with this, where I want to access some global config value in a named config, which I promise won't modify it? Is there some kind of read-only access? Or that's impossible because the value is just not there? Do I have to copy the "default" values that everybody needs access too to every config? That seems like substantial code duplication.

I have never required something like that. I overwrite values in a named config (For me it is an "shortcut" for the CLI). Then the default config resolves dependencies (e.g. if statements).
If you have precisely this use case, the global variable might be the best solution.

The global variable seems to do the trick. Thanks for your help.

Sorry, there is one more thing I don't understand. What's the logic why this doesn't work for sub-ingredients? If I explicitly mark model as dependent on data, as above, and then I want to access some variable in the data scope from a named_config for a model, why doesn't that work? Does the dependency not imply precedence?

I don't use ingredients, so I don't know.

Named configs are always evaluated before "normal" configs, no matter where they are defined.
This is the place where it happens: https://github.com/IDSIA/sacred/blob/cd90ee1f55df04e2bb55d2e3b6badcd7c2a30bfe/sacred/initialize.py#L420-L442
While I agree that this is confusing and it would make total sense to fully evaluate the sub-ingredient's config (named + normal) before the parent ingredient, this would be a substantial change in the core code.

And currently you can overwrite a sub-ingredient's config from its parent. Run with named:
from sacred import Experiment, Ingredient

i = Ingredient('i')

@i.config
def defaults():
    a = 42

ex = Experiment(ingredients=[i])

@ex.named_config
def named():
    i = {'a': 123}

@ex.automain
def main(_config):
    print(_config)

gives
{'i': {'a': 123}, 'seed': 515843388}

This is incompatible with the other processing order. But I'm unsure which one is more intuitive.


Card Component design for the highscore page

The cards should be designed to show player score records for the leaderboard modal

I can't understand what you actually wanted to be implemented

Hi @BimleshRB This one is done already.


add UTs for runtime handler

Signed-off-by: saintube<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
add unit tests for package pkg/runtime
Ⅱ. Does this pull request fix one issue?

fixes #69
Ⅲ. Describe how to verify it
run UTs and see the rise of code coverage
Ⅳ. Special notes for reviews
none

Codecov Report

Merging #125 (f727f42) into main (ee19dce) will increase coverage by 2.06%.
The diff coverage is 85.10%.

:exclamation: Current head f727f42 differs from pull request most recent head 078ba0c. Consider uploading reports for the commit 078ba0c to get more accurate results

@@            Coverage Diff             @@
##             main     #125      +/-   ##
==========================================
+ Coverage   54.29%   56.35%   +2.06%
==========================================
  Files          78       78
  Lines        7347     7371      +24
==========================================
+ Hits         3989     4154     +165
+ Misses       3001     2844     -157
- Partials      357      373      +16

Flag
Coverage Δ

unittests
56.35% <85.10%> (+2.06%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/runtime/handler/docker_runtime.go
82.85% <78.12%> (+82.85%)
:arrow_up:

pkg/runtime/handler/containerd_runtime.go
61.11% <100.00%> (+61.11%)
:arrow_up:

pkg/runtime/runtime.go
76.47% <100.00%> (+76.47%)
: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 ee19dce...078ba0c. Read the comment docs.

/approve


Any way to optimize initial load

Current Behavior
I have a list of videos (like a reels). I use video without poster because of iOS issue, on iOS douple tap was needed. Videos are deployed to AWS and being fetched from the backend.
Expected Behavior
I want videos to not block LCP.
Steps to Reproduce

You can enter https://fan-dev.starnewsmobile.com/feed

Environment

URL attempting to play: https://fan-dev.starnewsmobile.com/feed
Browser: Chrome
Operating system: Windows

Other Information
Is there any way to lazy load videos, or what will be a suggestion to workaround in order to optimize LCP (only videos are loading slower)?

One of the possible solutions was to not provide URL of the video and add that whenever the videos is in the screen using intersection observer. But I don't like this solution that much.


Show files with binary content

In the canvas, images should be displayed instead of being ignored.

Closed with #117


feat: Update Gapic generator and Gax to emit api-versioning via header

This is part 2, following changes in https://github.com/googleapis/sdk-platform-java/pull/2630
This pr does not include gapic-showcased testing for now.
manual tested with gapic-showcase v0.33.0 together with changes in #2630
steps:

Use gapic-showcase v0.33.0 (which includes update in 1484)
use gapic-showcase run -v which prints the request header
From showcase folder, run mvn verify -P enable-integration-tests -Dit.test=ITAutoPopulatedFields.java -pl=gapic-showcase

Printed header in manual testing
Grpc
2024/04/16 10:26:41 Received Unary Request for Method: /google.showcase.v1beta1.Echo/Echo
2024/04/16 10:26:41     Request headers:
2024/04/16 10:26:41       grpc-accept-encoding: gzip
2024/04/16 10:26:41       content-type: application/grpc
2024/04/16 10:26:41       x-goog-api-version: v1_20240408
2024/04/16 10:26:41       :authority: localhost:7469
2024/04/16 10:26:41       user-agent: grpc-java-netty/1.62.2
2024/04/16 10:26:41       x-goog-api-client: gl-java/17.0.7__Eclipse-Adoptium__Temurin-17.0.7-7 gapic/0.0.1-SNAPSHOT gax/2.46.2-SNAPSHOT grpc/1.62.2
2024/04/16 10:26:41     Request:  error:{code:2}  request_id:"1e26ee16-ed07-4eeb-be0e-49b769678779"  other_request_id:"40883e5d-3b20-4add-854c-9808bd009260"
2024/04/16 10:26:41     Returning Error: rpc error: code = Unknown desc =

Httpjson
2024/04/16 10:26:41 Received POST request matching '/v1beta1/echo:echo': "/v1beta1/echo:echo"
2024/04/16 10:26:41   urlPathParams (expect 0, have 0): map[]
2024/04/16 10:26:41   urlRequestHeaders:
    User-Agent: "Google-HTTP-Java-Client/1.44.1 (gzip)"
    Content-Type: "application/json; charset=utf-8"
    Connection: "keep-alive"
    Accept-Encoding: "gzip"
    X-Goog-Api-Client: "gl-java/17.0.7__Eclipse-Adoptium__Temurin-17.0.7-7 gapic/0.0.1-SNAPSHOT gax/2.46.2-SNAPSHOT rest/"
    X-Goog-Api-Version: "v1_20240408"
    Accept: "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
    Content-Length: "129"
2024/04/16 10:26:41   request: {
  "error":  {
    "code":  500,
    "message":  "",
    "details":  []
  },
  "severity":  "UNNECESSARY",
  "header":  "",
  "otherHeader":  "",
  "requestId":  "e690a84b-176d-421e-9e5d-ba752f68fec8",
  "otherRequestId":  "47e0fbde-056a-43ae-bba6-8b6770d861f7"
}

@lqiu96 As we talked off-line, I am still working on some details, plus integration testing. But feel free to take a first look.

Force pushed after rebase with main + mainly test updates.


Can't see files that are uploaded, failing silently.

Info:
Windows 10
Node v4.4.7
Npm v2.15.8
Sails v0.12.3
Skipper v0.6.3
Skipper-s3 v0.5.6
So I've sunk several hours into trying to figure this out, read through all the related issues/stack overflow questions that I can find. I think I'm just doing something wrong.
The problem: Files are not being uploaded to S3, there is no error, and the json returned looks like this:
{
  "files": [],
  "textParams": {
    "videoFile": "README.md"
  }
}

Which leads me to believe that it is saying no files are being uploaded. When I go to look in my S3 bucket there is nothing there.
So here is my backend code:
Skipper is set up as my body-parser like
bodyParser: require('skipper')({ strict: true, limit: '1gb' }),

Controller code:
const skipper = require('skipper-s3');

module.exports = {
  s3upload(req, res) {
    res.setTimeout(0);

    const file = req.file('videoFile');

    console.log(file);

    file.upload({
      adapter: skipper,
      bucket: sails.config.BUCKET,
      key: sails.config.KEY,
      secret: sails.config.SECRET,
    }, (err, uploadedFiles) => {
      if (err) {
        return res.serverError(err);
      }

      return res.json({
        files: uploadedFiles,
        textParams: req.allParams(),
      });
    });
  },
};

I am trying to submit it via the following html:
<form action='http://localhost:1337/s3upload' method='post'>
  <input type='file' name='videoFile'>
  <button type='submit' value='submit'>Submit</button>
</form>

I get no errors from this, but it doesn't work.
If I upload with postman, doing a POST, with form-data selected, and the same file uploaded, I get an error:
Unable to parse HTTP body- error occurred :: 'SyntaxError: Unexpected token -\n    at parse (C:\\Users\\Justin\\Documents\\coding\\videohost\\videohostbackend\\node_modules\\skipper\\node_modules\\body-parser\\lib\\types\\json.js:83:15)\n    at C:\\Users\\Justin\\Documents\\coding\\videohost\\videohostbackend\\node_modules\\skipper\\node_modules\\body-parser\\lib\\read.js:116:18\n    at invokeCallback (C:\\Users\\Justin\\Documents\\coding\\videohost\\videohostbackend\\node_modules\\skipper\\node_modules\\body-parser\\node_modules\\raw-body\\index.js:262:16)\n    at done (C:\\Users\\Justin\\Documents\\coding\\videohost\\videohostbackend\\node_modules\\skipper\\node_modules\\body-parser\\node_modules\\raw-body\\index.js:251:7)\n    at IncomingMessage.onEnd (C:\\Users\\Justin\\Documents\\coding\\videohost\\videohostbackend\\node_modules\\skipper\\node_modules\\body-parser\\node_modules\\raw-body\\index.js:307:7)\n    at emitNone (events.js:67:13)\n    at IncomingMessage.emit (events.js:166:7)\n    at endReadableNT (_stream_readable.js:921:12)\n    at nextTickCallbackWith2Args (node.js:442:9)\n    at process._tickDomainCallback (node.js:397:17)'

Does anyone know what I am doing wrong here?

Hi @JustinDFuller,
Just FYI, we try to keep these issue forums for reporting bugs in the relevant repo -- in the future you'll have better luck posting questions like these to StackOverflow or the Sails Google Group.

Try adding enctype="multipart/form-data" to your <FORM> tag, since Skipper only deals with multipart file uploads.
As far as the Postman issue, not sure what the deal is there--I'd make sure you're not accidentally sending some extra headers (like content-type: application/json) with the request.

@sgress454 Your comment about Postman was correct, after changing that I found a few config issues that I had wrong and it is now working. This issue can be closed, thanks for your help!


Support parallel activities in dynamic view

At the moment the dynamic view always resolves to a single sequence of activities.
But some flows are more than just a sequence of steps but also includes parallel steps.
It would be very nice if parallel activities (two or three times a 1. or 3.) could be defined too.

I just put together a quick implementation in the DSL (this was already supported by the underlying Java library) ... try the following at https://structurizr.com/dsl and let me know what you think:
workspace {

    model {
        user = person "User"
        softwareSystem = softwareSystem "Software System" {
            webapp = container "Web Application"
            bus = container "Message Bus"
            app1 = container "App 1"
            app2 = container "App 2"
        }

        user -> webapp "Updates details"
        webapp -> bus "Sends update event"
        bus -> app1 "Broadcasts update event"
        bus -> app2 "Broadcasts update event"
    }

    views {
        dynamic softwareSystem {
            user -> webapp
            webapp -> bus
            {
                bus -> app1
            }
            {
                bus -> app2
            }

            autoLayout
        }
    }

}

Looks good, thank you a lot for the fast response.
Did a more complicated example to test it:
workspace {
model {
    user = person "User"
    softwareSystem = softwareSystem "Software System" {
        webapp = container "Web Application"
        bus = container "Message Bus"
        app1 = container "App 1"
        app2 = container "App 2"
        app3 = container "App 3"
        app4 = container "App 4"
        app5 = container "App 5"
        app6 = container "App 6"
    }

    user -> webapp "Updates details"
    webapp -> bus "Sends update event"
    bus -> app1 "Broadcasts update event"
    bus -> app2 "Broadcasts update event"
}

views {
    dynamic softwareSystem {
        user -> webapp
        webapp -> bus
        {
            bus -> app1
            app1 -> app3
            app3 -> app4
            {
                app4 -> app5
            }
            {
                app4 -> app6
            }
        }
        {
            bus -> app2
            app2 -> app4
        }

        autoLayout
    }
}

}

Do you know when you will release a new version of it as part of the cli release?

Any plans to release a new cli with this feature any soon?


Thought you may be interested in a websocket implementation that does not poll like ccxt

Still a WIP, but... https://github.com/teodoryantcheff/crypto-ws-asyncio

I had been thinking about creating a Websocket version of ccxt for a while. I am busy for the next week or so, but after that I'll definitely contribute. Hope this works out.


Foundry branch still imports hardhat

packages/nextjs/components/Footer.tsx
Line 01
Footer contains references to hardhat when it should be Foundry

Hey thanks @didier-moet, it seems that in Footer we are just referencing harhdat for its chainId so it shouldn't cause any issue with functionality, so simplicity sake we have kept it as is but in future hopefully it will be removed
Are facing any issue or noticed any weird because of this in functionality ?

Should I work on this or let it be for now?

I think its fine for now for simplicity sake, since it does not have any side effects like showing hardhat instead of foundry on UI etc, thanks @didier-moet for raising this, please feel free re-open / comment if there's some edge case / bug which we are missing 🙌

Well, there might be an edge case.
I'm running Scaffold Eth on a VPS, so everywhere 'localhost' or '<IP_ADDRESS>' is mentioned, I had to change it to point to my server.
Initially I just dug into the packages/nextjs/node_modules/viem/chains/definitions/foundry.ts file, modified the rpcUrls to point to my server. (Just to see if it would work)
Didn't work for some reason.
So I just modified the 'chains' object within 'scaffold.config.ts' so that the rpcUrls point to my server. This worked, though I still got some "Cannot connect to local provider" errors.
This set me on a hunt for wherever 'localhost' might still be referenced
Still getting the errors, but apparently it's connecting to my server because I'm able to use the debug interface and the faucet but not the block explorer
My thought is that I haven't found all the references to 'localhost'.
Your thoughts are welcome


Collapsing the job ads is extremely disorientating

Scrolling down and then closing a job posting is actually really disorientating; let's say my view looks like this:
  1. Job ad
^ 2. Job ad
| 3. Job ad
|    Expanded text ..
|    Expanded text ..
v    Expanded text ..
     Expanded text ..
     Expanded text ..
  4. Job ad
  5. Job ad
  6. Job ad
  7. Job ad
  8. Job ad
  9. Job ad

The thing on the left represents scrollbar and my browser's viewport. I scrolled down to "job ad 3" and am reading the description. I scroll down and decide I don't want it so collapse it, and now I have:
  1. Job ad
  2. Job ad
  3. Job ad
  4. Job ad
^ 5. Job ad
| 6. Job ad
| 7. Job ad
| 8. Job ad
v 9. Job ad

And I completely missed job posting 4. In reality, it's often more than just one listing. I'm having a real hard time to continue from where I left off.
Firefox 70 on Linux

you are right the whole job expansion logic has a really poor UX

I've quickly added a workaround https://github.com/golang-cafe/golang.cafe/commit/f1cd2d1536ba21417f3c218b1d9d53a02d8534d8
But this probably needs more attention and a better solution

This should be fixed as now the collapse/expand is only on the title of the job post. That would mean you need to go back up to the top of job 3 to collapse it and you would not miss any other job. I'm thinking whether it would make sense to expand/collpase the job description this as a floating window in page and whether would make the UX better that what it is right now. Please let me know. I'm closing this issue for now as the original behaviour as been fixed. Thx!

Seems much better now, thanks! :+1:

I'm thinking whether it would make sense to expand/collpase the job description this as a floating window in page and whether would make the UX better that what it is right now.

I'm not sure; I personally rather like the fancy no-frills UI it has now, but that's just a personal taste.
Another very small issue (possible bikeshed), but I'd change "Visit link" to "Permalink" or something, now it's not obvious that it's a link to golang.cafe permalink or the company's home page or something.

Also, and I hope you don't mind me plugging my own tool here, in response to Removing JS trackers From Golang Cafe, I'm actually working on a better solution for that: https://github.com/zgoat/goatcounter, in case you're interested 😅

@arp242 thanks for sharing! I'll have a look shortly and feedback - seems good so far!


Rename our custom FIFO to "ClearableFIFO"

As per title. FIFO already exists in coreblocks.transactions.lib and is a wrapper for amaranth's FIFO. coreblocks.utils.fifo implements clearable FIFO, so to avoid confusion and/or having to rename it at import time we should probably change the name accordingly.

Mistook "BasicFIFO" for "FIFO" cause of vscode autosuggestions. Nevermind.


Error opening ghcide project in VSCode with the ghcide/haskell extension installed

I just installed the official VSCode ghcide/haskell extension, cloned the ghcide repo, and then tried opening src/Development/IDE.hs. The issue repeats after reloading the window.

I looked for more logs, but I couldn't find anything "Extensions" or "Log (Extension Host)" in the Output pane unfortunately. Happy to report any other logs, but unsure where else to look.
VSCode version: 1.51.1
Haskell extension: 1.2.0
GHC 8.10.2, cabal <IP_ADDRESS> installed via ghcup
macOS: 10.15.4

Ok, fixed after running cabal update. So I guess this is an issue that ghcide fails un-gracefully when cabal's index is out-of-date.

I also received this same error today in hover form:

Also fixed with cabal update.

Not sure if ghcide or hls, via hie-bios will handle that cabal misconfiguration, as a auto cabal update might break things (cabal itself does not run it auto for that reason). Otoh stack, with other defaults, does it.
But maybe it could display a more helpful error.

Yeah it would be great to get a clearer error message here, ideally with a snazzy little "Run cabal update" button too.

The way I see it, this is a Cabal issue. Ghcide is merely a conduit, using the build system that you chose to build your project. It is not Ghcide's place, in my mind, to be parsing the build system unstructured error messages to try and compensate for the lack of accessibility.
From that point of view, I am closing this ticket. If you disagree please feel free to reopen, or even better, to send a PR with your purported solution.

I'm not intimately familiar with the haskell ecosystem and I do hear what you're saying here, but I would argue that what matters at the end of the day is: Does it "just work" for users? The rust ecosystem is a great example of this. They have standardized on a build system (cargo), and everything "just works". Ie, the rust-language-server integration with cargo is very nice, and as a result it's able to offer a best-in-class experience. Easier said than done, to be sure.
On a meta-point, it seems to me that any language server implementation must integrate with a build system to some extent. One of the language server's central goals is to answer questions like "does this code build?", etc. And to me that suggests a necessary coupling between the two.
Some naive questions:

Does cabal not offer a programmatic interface? Cargo has convenient output options including json.
Does haskell have competing build systems besides cabal? I'm aware of stack, but my understanding was that it still relied on cabal under the hood. What does the ghcide/build system interface look like?
From a technical perspective, what needs to happen to get tighter integration between ghcide and cabal/stack/etc? What are the major challenges here?

@samuela - I also use both Rust and Haskell, and agree Rust has a lot better integration. But it's not that easy:

Cabal doesn't offer a programmatic interface yet :( - it even offers 4 entirely incompatible build commands (v1-build, v2-build, build, new-build).
Haskell has Cabal, Stack (which is kind of using Cabal, rather than wrapping Cabal), Nix, Obelisk, Buck, Bazel. And then GHC itself can build stuff too.

Our solution was to farm all this under an abstraction layer called hie-bios - https://github.com/mpickering/hie-bios. That is responsible for figuring out which build system to call, and how to call it. As tools get programmatic interfaces (which is on the todo list for basically all of them), that can make use of them. If we could get structured errors out of hie-bios, we'd use them. But it's a hie-bios problem.
I'd be happy with some specific asks moving over to hie-bios - e.g. failures having structured errors, and failures returning any remediation or when to retry information.
Unfortunately, the whole thing is vastly more fragmented than Rust, which makes the tight integration Rust does unsuitable for Haskell :(

Thank you for the clarification @ndmitchell! That clears things up a lot for me. I didn't realize that this layer had been separated out into hie-bios.
It sounds like the technical challenges here are to expose programmatic interfaces for the build systems of interest (cabal, stack, nix, bazel, etc), and then get that information relayed through hie-bios. Then something useful can be made of it in ghcide.

well imho we (the right component would be hie-bios) could do some effort to alliviate the lack of usability of the build tools while they are improved (and there are no deadlines I am afraid)
We are already doing it for ghc and the build tools themselves, with a bunch of hacks. So one more for get useful errors for final users would worth the effort.
That said, our human power is limited and there are many issues to fix and improvements to implement. 😟

well imho we (the right component would be hie-bios) could do some effort to alliviate the lack of usability of the build tools while they are improved (and there are no deadlines I am afraid)
We are already doing it for ghc and the build tools themselves, with a bunch of hacks. So one more for get useful errors for final users would worth the effort.
That said, our human power is limited and there are many issues to fix and improvements to implement. 😟

@jneira Are there any delegate-able well-scoped tasks that contributors could help you out with?

@jneira Are there any delegate-able well-scoped tasks that contributors could help you out with?


A wrong word in chapter Getters

Reproduction
https://pinia.web3doc.top/core-concepts/getters.html#访问其他-store-的getter
Steps to reproduce the bug

https://pinia.web3doc.top/core-concepts/getters.html#访问其他-store-的getter
Expected behavior
Correct the wrong word
Actual behavior
Correct the wrong word
Additional information
https://pinia.web3doc.top/core-concepts/getters.html#访问其他-store-的getter

I viewed a wrong website, I am so sorry!

This is fine. You can always suggest an improvement as a Pull Request


build: upload Windows binary on each release

Codecov Report

Merging #431 into release-v0.7 will not change coverage by %.
The diff coverage is n/a.

@@              Coverage Diff              @@
##           release-v0.7     #431   +/-   ##
=============================================
  Coverage         63.74%   63.74%
=============================================
  Files                60       60
  Lines              5878     5878
=============================================
  Hits               3747     3747
  Misses             1443     1443
  Partials            688      688

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 f634caa...a4bc6ac. Read the comment docs.


Update flyway-core to 7.14.0

Updates org.flywaydb:flyway-core from 7.13.0 to 7.14.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, semver-minor

Codecov Report

Merging #9 (0e355bb) into main (5d8f552) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #9   +/-   ##
=======================================
  Coverage   59.83%   59.83%
=======================================
  Files           8        8
  Lines         122      122
=======================================
  Hits           73       73
  Misses         49       49

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 5d8f552...0e355bb. Read the comment docs.


Bump rust-version to latest

I hoped for some errors I could fix to learn more of the codebase but got none :/
IDK if it's still worth the PR hehe
(is there a TODO list or something like that I can look at when I'm in the mood of contributing to Miri? :) )

I hoped for some errors I could fix to learn more of the codebase but got none :/

:rofl:
A rollup just landed in Rust, so you have another chance if you update to 303d8aff6092709edd4dbd35b1c88e9aa40bf6d8. And since that one introduces some new intrinsics, chances are you'll actually have to do something. ;)
However, rust updates are not a great way to get started I think -- we usually want them fixed ASAP, and mentoring PRs doesn't work well when there is time pressure to get things fixed within 24h or less.

is there a TODO list or something like that I can look at when I'm in the mood of contributing to Miri?

Well there is the issue tracker.^^
But let's try to find a better place for this discussion... are you on Zulip?

But let's try to find a better place for this discussion... are you on Zulip?

Yep. sent you a message.

I do not know what's the problem with the MacOS build https://travis-ci.com/github/rust-lang/miri/jobs/296948907

I do not know what's the problem with the MacOS build https://travis-ci.com/github/rust-lang/miri/jobs/296948907

The macOS failure looks spurious.

@bors r+

:pushpin: Commit 548c90e102fe46a8348bbf7cb06c92782c66a02a has been approved by RalfJung

:hourglass: Testing commit 548c90e102fe46a8348bbf7cb06c92782c66a02a with merge 6786084a67efcb54acb68897fa42ed92742a2290...

:broken_heart: Test failed - checks-travis

Odd, macOS timed out again...
@bors retry

:hourglass: Testing commit 548c90e102fe46a8348bbf7cb06c92782c66a02a with merge 704228d0bb65227c82a8b44ab819485912b44007...

:sunny: Test successful - checks-travis, status-appveyor
Approved by: RalfJung
Pushing 704228d0bb65227c82a8b44ab819485912b44007 to master...


Sql scripting

Draft implementation of sql batch scripting
Examples
CREATE TABLE t1 (a INT) USING parquet;
CREATE TABLE t2 (a INT) USING parquet;
DECLARE totalInsertCount = 0;
WHILE SELECT COUNT(*) < 2 FROM t1; DO
  INSERT INTO t1 VALUES (1);
  SET VAR totalInsertCount = totalInsertCount + 1;
  WHILE SELECT COUNT(*) < 2 FROM t2; DO
   INSERT INTO t2 VALUES (1);
   SET VAR totalInsertCount = totalInsertCount + 1;
   SELECT COUNT(*) as T2Count FROM t2;
  END WHILE;
  TRUNCATE TABLE t2;
END WHILE;
SELECT COUNT(*) as t1FinalCount FROM t1;
SELECT COUNT(*) as t2FinalCount FROM t2;
SELECT totalInsertCount;

Note - this is just testing, proof of concept syntax. Actual syntax will likely be different.
High level design

Implementation of a new tiny parser that supports multi statements, IF/ELSE, variable scope, WHILE loops. Support for TRY/CATCH, cursors and PROCEDURES is TBD (but path forward should be somewhat clear). Main goal of parser is to detect either batch constructs or fallback to main spark parser for statement parsing.
Interpreter implementation. Parser output is handled by a builder that creates new AST-like structures. For each spark statement we first build a logical plan that is stored as leaf operator in aforementioned AST. Interpreter implements iterator interface that returns stream of dataframes. By walking the iterator consumer (that can also be a debugger) gets dataframes for each of spark statements executed by interpreter.

Code pointers

Parser and Lexer are defined in CiglaBaseLexer.g4 and CiglaBaseParser.g4. Lexer can either be further simplified or we can end up reusing main spark lexer. Parser at this point checks leading word to detect spark statement. This also can be further simplified.
Parser to AST logic is in CiglaLangBuilder. AST consists of class hierarchy that derives from NodeStatement (newly introduced interface). Procedural constructs are also defined from this class. e.g.

case class CiglaWhileStatement(
   condition: BoolEvaluableStatement,
   whileBody: CiglaLangNestedIteratorStatement,
   evaluator: StatementBooleanEvaluator) extends NonLeafStatement {

ProceduralLangInterpreter implements Iterator[RewindableStatement] where each statement hosts a LogicalPlan of underlying spark statement if any and, in future, debug information to support debug attach. Code is executed by iterating over this iterator.
Good staring point are tests. CiglaLangSuiteE2E tests E2E functionality. CiglaLangSuite tests new language constructs without spark statements. CiglaLangParserSuite implements parser tests.

This approach is similar to what BigQuery did here: https://github.com/google/zetasql/tree/master/zetasql/scripting.


Ensure Base#call returns Outcome::{Success,Failure}

def call
  outcome = super

  unless outcome.is_a?(Outcome::Success) || outcome.is_a?(Outcome::Failure)
    raise ArgumentError, "#{self.class}#call must return Success or Failure, got: #{outcome.class} instead"
  end

  outcome
end

#call will not be modified. Handling is done in .call now.


findAll - where: contains - syntax

What is the right syntax for findAll queries with contains
im trying to query using CONTAINS as filter but it not work's
Sample data structure:
{
    "_id": "1b2c0a744babcc342b27cf9e4c0fb351",
    "id": "1b2c0a744babcc342b27cf9e4c0fb351",
    "type": "class",
    "items": [
        "cce40b60d897259857303650c56421adb6508621",
        "1faeb13afa5ea2feed1b3a5d10b1b1a771238b26",
        "5a4071b313e67a11f50724449589d0901b9a14bb",
        "9d083f45fe98a4af4d4aec500d2fe427c6370f91",
        "5878005cfef2c0f8164a593672e722158405bb4d",
        "50d2f50e5551651065a3cab188ed68b763c180e3",
    ],
    "created_at":<PHONE_NUMBER>437,
    "update_at":<PHONE_NUMBER>426,
},
...

Sample code to run this query:
const JSData = require('js-data');
const DSAdapter = require('js-data-mongodb');

const store = new JSData.DS();
const adapter = new DSAdapter({ uri: 'mongodb://localhost/shop' });
store.registerAdapter('main', adapter, { default: true });

Resource = dataStore.defineResource({ name: 'invoice', idAttribute: '_id', table: 'invoice' });

const params = {
  where: {
    items: {
      contains: '50d2f50e5551651065a3cab188ed68b763c180e3'
    }
  }
}

Resource.findAll(params)
  .then(result => {
    console.log('Result', result.length, result)
  })
  .catch(err => {
    if (err.message.toLowerCase().includes('not found')) return console.log(err);
    throw err;
  });

With the same data structure but with redis adapter and DB work's fine.
I even tried to run some queries with "contains" against strings, with the mongodb sample data - https://docs.mongodb.com/getting-started/shell/import-data/
Thanks, in advance.
Note: using v 0.7.0 (which is weird because in the repo there is only available up to 0.6.0, before passing to the rc 1.0...)

Solved = Not implemented on 0.7.0
But we can get the same result with something like this for search on arrays:
const params = {
  where: {
    items: {
      in: ['50d2f50e5551651065a3cab188ed68b763c180e3']
    }
  }
}

// I don't like this one but works
const params = {
    items: '50d2f50e5551651065a3cab188ed68b763c180e3'
}

To emulate contains for strings:
const params = {
  email: /username/
}


Why is the position of the picker window weird? [Bug]

Every time the shortcut key calls out the picker window, its default position is in the lower right corner. Is it deliberately set like this? It seems strange. If there are a lot of hot phrases, I can hardly see the content of the block, and it is easy to move every time. to the middle position
15.0portable version
Expected behavior
Actual behavior
Steps to reproduce the behavior
Beeftext version (e.g. Beeftext v7.0 Portable Edition).
Operating system version (e.g Windows 10)

Hi.
Picker Window should b positioned centered over the active window. What you are describing is not normal. Do you use any 3rd party software to manage your windows layout?

I'm not using a window program,， I tried it with older versions（for e.g 7.2
suppprt rich text）, they are displayed in the center, only the recent
latest versions are in the bottom right corner
Xavier Michelon @.***> 于 2022年11月22日周二 下午2:52写道：

Hi.
Picker Window should b positioned centered over the active window. What
you are describing is not normal. Do you use any 3rd party software to
manage your windows layout?
—
Reply to this email directly, view it on GitHub
https://github.com/xmichelo/Beeftext/issues/533#issuecomment-1323123533,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AX634COR6FL43ZTFZMNIUWTWJRNTXANCNFSM6AAAAAASG7BB2Q
.
You are receiving this because you authored the thread.Message ID:
@.***>

OK. That's strange. What Windows version are you using?

In my surface pro 2in1，display setting :text size, and application item size is 200%(in surface pro ,This is the best display,I can't change this setting and I don't know if changing this will make it work now) ，and resolution 27361824I  think that It has nothing to do with the Windows versionI think the  reason is text and item "200%",this looks a little special，，So display pickwindow is wrong ? maybe  you could  try to think this .发送自我的盖乐世
-------- 原始信息 --------发件人： Xavier Michelon @.> 日期: 2022/12/29  下午3:16  (GMT+09:00) 收件人： xmichelo/Beeftext @.> 抄送： s6677 @.>, Author @.*> 主题： Re: [xmichelo/Beeftext] Why is the position of the picker window weird? [Bug]  (Issue #533)
OK. That's strange. What Windows version are you using?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Window position calculation for scaled display seems to be wrong. Till its fixed one can fix this via the method I wrote on the other chat.
Start menu > beeftext > right click > open file location > beeftext > right click > properties > compatibility tab > "change high dpi settings" > "override high dpi scalin behavior" select "system" or "system (enchanced)" > ok > ok
quit beeftext from system tray and re-open the app... All should be back to normal.

@xmichelo I believe you can change windows scale anything higher than 100% to reproduce the issue 👍 (which is a must for 4k on small monitor these days)...

@burukan You're right, there is a problem with the computation of the picker window position when display is scaled. Thank you for pointing that out.


Fix #1209

This moves not_implemented_for to MakieCore to fix #1209.
I'm not sure if the way I imported it in Makie is the correct/preferred way. I failed to understand the pattern that is used to organize the imports.

Also, it may be good to add a test for this but I'd need a pointer where that should go.

If that's something you can test after using Makie I'd put it in Makie's tests (i.e. somewhere in Makie.jl/test/)

The test failures of the docs seem related.  Looks like some macro hygene issue; i.e., not_implemented_for seems to be undefined at the callsite of the macro (?).

Alright, the docs project just didn't dev MakieCore...


Add pyyaml-include support

In order to allow custom !include directive, awstaga needs to have pyyaml-include support so users can break up giant YAML into smaller ones.

Done. To be completed in 1.0.0 .


travis still uses codehaus.org

[ERROR] Failed to execute goal on project mamute: Could not resolve dependencies for project br.com.caelum:mamute:war:1.4.0: Failed to collect dependencies at br.com.caelum:vraptor-test:jar:4.0-SNAPSHOT -> br.com.caelum:vraptor:jar:4.0.0-beta-4-SNAPSHOT: Failed to read artifact descriptor for br.com.caelum:vraptor:jar:4.0.0-beta-4-SNAPSHOT: Could not transfer artifact br.com.caelum:vraptor:pom:4.0.0-beta-4-SNAPSHOT from/to codehaus-snapshots (https://nexus.codehaus.org/snapshots/): nexus.codehaus.org: Unknown host nexus.codehaus.org -> [Help 1]

According to the Codehaus website "all Codehaus services have now been terminated".
Could you please configure another mirror instead?

travis works fine again!


Add new quickstart

@yury Line lengths fixed

@colinhacks, we need to adapt this to use edgedb project instead of edgedb server directly.

Is there going to be a separate "GraphQL" quickstart example?

cc @vpetrovykh
My original plan was to add a new "Guides" tab to the documentation with dedicated guided walkthroughs of GraphQL, schema modeling, CLI usage, migrations, etc. That plan has been largely superseded by the "Showcase" pages. The GraphQL showcase page (https://www.edgedb.com/showcase/graphql) contains the same instructions/information as the current quickstart but it's definitely weird that it's not findable from the docs page.
A couple options:

Add a Guides section to the sidebar with children "GraphQL", "EdgeQL", and "Data modeling". These labels would be links that direct the user to the appropriate showcase page.
Actually write guides for these subjects, using slightly modified versions of the content on the showcase pages. Wouldn't be hard, and it opens the door to additional guides down the road (e.g. Deployment, etc)


Using FCM on the android 9 device, the prompt Detected problems with API compatibility appears, check if the undeveloped API is used to output the following log.

Step 1: Describe your environment

Android device: ___android 9 device
Android OS version: android 9_
Google Play Services version: _____
Firebase/Play Services SDK version: 27.4.0_

Step 2: Describe the problem:
Using FCM on the android 9 device, the prompt Detected problems with API compatibility appears, check if the undeveloped API is used to output the following log.
Steps to reproduce:

Observed Results:

What happened?  This could be a description, logcat output, etc.

Expected Results:

What did you expect to happen?

Relevant Code:
// TODO(you): code here to reproduce the problem

Please fill out the issue template when filing issues!


Add adapter for turning arbitrary Distributions into string Distributions

My thought was merely that this was a quick-and-dirty solution that could get us quickly using other distributions with minimal changes to the existing code.  We could then upgrade to something more complicated (like your std::variant suggestion, or templating the Relation class over the sample type) if we measure and see we are taking a noticeable performance hit from the conversions to/from string.
But concretely, the next two steps I planned after this were to add a get_distribution(distribution_name) function to the distributions/ directory, and to then upgrade hirm.hh to use it.  In the process, I would
typedef string column_type;
and replace all the doubles in hirm.hh that are representing column types to use that instead.


Colorizes comment brackets if string contains "/*"

This is in Javascript, here's the test I came up with:
// test() {
// (){}[]
// }

"/*"

// test() {
// (){}[]
// }

"*/"

// test() {
// (){}[]
// }

And it looks like:

I know this is a strange case, but this happens because I am in a route file with a "compare/*users" route, so everything past the route that gets commented out still colorizes the brackets

I have run into the same issue, but I didn't know why it was happening. Thanks @GammaGames for tracking that down.
In my situation, I was literally searching for the start of a comment, while writing a utility to parse old legacy ActionScript 3 (Flash) code and retrieve values from there. So it was literally searching for "/*" as part of the process of parsing out comments.
The commented out code having the issue was hundreds of line further down, so I hadn't associated the two.

Thanks for the feedback. I am continuing development of this extension under a new project, Bracket-Pair-Colorizer-2. I have identified this issue as one that may be fixed in the new version.
https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2
https://github.com/CoenraadS/Bracket-Pair-Colorizer-2
It is currently in alpha, but you are welcome to try it out.


[vMicro] VisualMicro Compilation Errors

I use VisualMicro plugin (visualmicro.com). Previous version compiled without any problems.
With the new one I got:
M5Stack-SD-Menu.ino: 80:35: error: 'JSONMeta' has not been declared
void getMeta(String metaFileName, JSONMeta &jsonMeta)
M5Stack-SD-Menu.ino: 82:17: error: variable or field 'renderIcon' declared void
void renderIcon(FileInfo &fileInfo)
M5Stack-SD-Menu.ino: 82:17: error: 'FileInfo' was not declared in this scope
M5Stack-SD-Menu.ino: 82:27: error: 'fileInfo' was not declared in this scope
void renderIcon(FileInfo &fileInfo)
M5Stack-SD-Menu.ino: 84:17: error: variable or field 'renderMeta' declared void
void renderMeta(JSONMeta &jsonMeta)
M5Stack-SD-Menu.ino: 84:17: error: 'JSONMeta' was not declared in this scope
M5Stack-SD-Menu.ino: 84:27: error: 'jsonMeta' was not declared in this scope
void renderMeta(JSONMeta &jsonMeta)
In Arduino IDE another problem:
D:\Arduino\libraries\QRCode\src\qrcode.c:37:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Error Correction Lookup tables
^
D:\Arduino\libraries\QRCode\src\qrcode.c:100:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Mode testing and conversion
^
D:\Arduino\libraries\QRCode\src\qrcode.c:139:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Counting
^
D:\Arduino\libraries\QRCode\src\qrcode.c:166:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - BitBucket
^
D:\Arduino\libraries\QRCode\src\qrcode.c:250:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Drawing Patterns
^
D:\Arduino\libraries\QRCode\src\qrcode.c:473:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Penalty Calculation
^
D:\Arduino\libraries\QRCode\src\qrcode.c:573:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Reed-Solomon Generator
^
D:\Arduino\libraries\QRCode\src\qrcode.c:627:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - QrCode
^
D:\Arduino\libraries\QRCode\src\qrcode.c:768:0: error: ignoring #pragma mark  [-Werror=unknown-pragmas]
#pragma mark - Public QRCode functions

Hello and thank you for your feedback
The first error M5Stack-SD-Menu.ino: 80:35: error: 'JSONMeta' has not been declared makes me wonder what version you're using, did you download & unzip manually or did you get the library from the library manager?
see #3 for reference
Some fixes have been applied recently, so if your version is earlier, it might be solved by updating it.
The other #pragma errors on Arduino can be solved by setting the compiler warnings to "default".
vMicro > Compiler Warnings menu item > see if you can see a "default" or "silent" value.

Arduino IDE1.8.5, vMicro 1803.26.0
I manually downloaded and install. date of the lib is 28.03.2018 15:22 (GMT+3)

I decreased warning level in Arduino IDE and now it compiled.

Pragma errors are raised by external libs so I can't do anything about it but I thought the other errors were solved by the latest update.
I'll update the ReadME since you're the second person to report this.
I'm closing this issue, thank you again for your feedback and don't hesitate to reopen it or create a new one if something weird comes up :+1:

Actually I'll reopen it and rename it as specific to vMicro since this part isn't solved.

Add these 3 lines before the existing definition of void getMeta in M5Stack-SD-Menu.ino and you are good to go! I'm running on visual micro 1711.19.0. Very neat code. Many thanks!
void getMeta(String metaFileName, JSONMeta &jsonMeta);
void renderIcon(FileInfo &fileInfo);
void renderMeta(JSONMeta &jsonMeta);

@ifrew thanks for the tip, will do that and probably do some namespacing too as I've spotted compilation problems with platformio too

@Kabron287 @ifrew thanks to you I've namespaced the library and added the signatures as suggested and I'll do a release soon. Can you confirm the latest clone of this repo does not break your compilation anymore ? If so I'll add vMicro to the list of supported environments.

Yip! Downloaded from the repository, deleted old library installed new one and rebuilt the example. All good now. Thanks.

fixed in last release, thanks a lot for you hel on this!

At the moment, the only error:
M5Stack-SD-Menu.ino: 428:8: error: 'class M5SAM' has no member named 'setListID
M5Stack lib 0.1.8

What version of M5Stack-Sam are you using?
Make sure you use this one

After updating M5StackSam compilation OK, but now I have permanent bootloop in debug and release.

Maybe update the M5Stack Core too ? Current version is 0.1.9

Do you get any warning during compilation?

With M5Stack core 0.1.9
In_eSPI.cpp: 618:55: warning: 'reg' is used uninitialized in this function [-Wuninitialized]
M5StackSAM.cpp: 237:33: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second
joyFacesGameboy.h: 54:3: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
all others warning are about unused

But to for saving compatibility with all my projects I have to add
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiMulti.h>
to M5stack.h
it does not affect before

I don't see any fatal problem here, did you restart your IDE after changing updating the libraries ? Maybe a linkage problem does this.
Of course if you modified the M5Stack Core, side effects can happen, are other sketches affected by this boot loop or does it only affect the SD Menu?

Factory Test 0.1.9 works fine

add your includes to M5StackUpdater.h too then

In Arduino IDE:
joyFacesGameboy.h:54: error: 'r' may be used uninitialized in this function [-Werror=maybe-uninitialized]
if (r == '4') { return UI_INFO; }
it is corresponding with Vmicro warning

are you using M5Stack faces? if not you can disable it in controls.h, you just have to comment out this line:
#define USE_FACES_GAMEBOY

No progress :(

In arduino IDE now:
C:\Arduino-ESP32-IDE\Proj\libraries\M5Stack\src\utility\In_eSPI.cpp:1199:15: error: value computed is not used [-Werror=unused-value]
*ptr++;
^
C:\Arduino-ESP32-IDE\Proj\libraries\M5Stack\src\utility\In_eSPI.cpp:1348:15: error: value computed is not used [-Werror=unused-value]
*ptr++;
^
C:\Arduino-ESP32-IDE\Proj\libraries\M5Stack\src\utility\In_eSPI.cpp:618:55: error: 'reg' is used uninitialized in this function [-Werror=uninitialized]
reg |= (readcommand8(cmd_function, index + 0) <<  8);
^
cc1plus.exe: some warnings being treated as errors
IDE\Proj\libraries\ArduinoJson
exit status 1

yep back to the initial problem " cc1plus.exe: some warnings being treated as errors"
Anyway all this is more of a customized M5Stack problem than a library problem, especially since the last move to TFT_eSPI where things will stay unstable for a while.
So maybe stick will the versions you know it's working with until this is sorted out?

I think so


Cleanup NetBeans license header for module autoupdate.services

Review and cleanup the license header in autoupdate.services
Oracle donated NetBeans to the Apache Software Foundation.
Your task now is to replace the old license header that has Oracle (and/or Sun Microsystems
and/or NetBeans) in it with the standard Apache Software Foundation license header.
For an empty file that supports headers you must add the Apache license header.
Note that you have to use the proper license header for Java, .properties or HTML files.
Look at the nearby files for templates and copy-paste the license header.
When done commit the changes with a commit message that starts with first line
"[NETBEANS-54] Module Review " and a message body describing your review.
See a longer explanation about what we are doing here: https://cwiki.apache.org/confluence/display/NETBEANS/List+of+Modules+to+Review
Please announce in a comment when you have started work.
Files that need to be looked at in autoupdate.services:
autoupdate.services/test/unit/src/org/netbeans/api/autoupdate/data/updates-subset.xml
autoupdate.services/test/unit/src/org/netbeans/api/autoupdate/data/updates.xml
autoupdate.services/test/unit/src/org/netbeans/api/autoupdate/mf-layer.xml
autoupdate.services/test/unit/src/org/netbeans/modules/autoupdate/updateprovider/data/catalog.xml
autoupdate.services/test/unit/src/org/netbeans/modules/autoupdate/updateprovider/data/cddl.txt
autoupdate.services/test/unit/src/org/netbeans/modules/autoupdate/updateprovider/malformed.xml
autoupdate.services/test/unit/src/org/netbeans/updater/UpdateTrackingTest.java

All files except cddl.txt have the correct license.

Yeah, I think the whole test about that would need to be changed. Maybe switch to Apache 2.0 license, etc.?

I see geertjan is on this, closing.


[WIP] Add BLS infrastructure

Description
Adds supporting functions to support BLS signatures for the consensus.
This includes changing the genesis object, the validators contracts and tests.
Tested
All tests pass.
Related issues
Fixes celo-org/bls-zexe#26.
Backwards compatibility
Breaks backwards compatibility, as consensus keys are different now.

See https://github.com/celo-org/celo-blockchain/pull/326#issuecomment-515000651 for the description of Geth changes.
The changes that are unique to this repository:

The validators contract now accepts a "public key data" structure, which contains the BLS public key and the proof-of-possession. The validator contract verifies this proof-of-possession using a new precompile.
The generate functions now use a Rust binary to generate the proof-of-possession.
The genesis structure is different, corresponding to the change in the header structure described in the Geth PR comment.


Switch to pnpm to support monorepo

It seems that the core has not been built yet during deployment, I will fix it as soon as possible.


Change pidFilePath in MongoDBLauncher into lazy val.

If the variable is initialized in the constructor of MongoDBLauncher abstraction class, an error will occur because an abstract variable, pidFileName, has not yet been initialized. So I changed it to lazy val to defer the initialization.
This patch fixes the following Travis CI failure.
SollmoStudio/northstarserver#125

Sorry for the inconvenience. This issue proves the reason why this should be done asap.

Good. @sgkim126 review plz.

LGTM


Fix typings for use inside node.js

With the current typings, you must write your import as
import PromisePool from 'es6-promise-pool';

however, this causes a runtime error in Node.js:
TypeError: es6_promise_pool_1.default is not a constructor

This commit changes the supported TypeScript import syntax to
import * as PromisePool from 'es6-promise-pool';

which works correctly in Node.js

:x: Build es6-promise-pool 156 failed (commit https://github.com/timdp/es6-promise-pool/commit/31bce7c1c0 by @urish)

Thanks for contributing!
Is this ultimately caused by this TypeScript issue?
In that case, maybe it's also worth mentioning that there's a legacy API with a named export rather than the default one that TypeScript is struggling with. I'm not sure if the compiler will understand it (and you'd need to add typings) but in ES6, this is also possible:
import { PromisePool } from 'es6-promise-pool'

I don't want to keep that API around per se because as I said, it's a legacy thing, but it does seem cleaner than import *, right? What would be the expected behavior here?
I'm no TypeScript expert though. The typings were contributed by @bcherny. Maybe he wants to weigh in as well?

Hi Tim, thanks for the super quick and thoughtful response. Yes, it seems to be related.
From examples in the typescript documentation (and also here), seems like they use the following syntax:
import PromisePool = require('es6-promise-pool');

However, it seems like the current typings don't play well with this syntax (typescript complains about Cannot use 'new' with an expression whose type lacks a call or construct signature), whereas the typings from the PR also makes it happy in this case.

I created a super-small demo repo for this, just git clone, npm install, npm start to watch it in in action:
https://github.com/urish/es6-promise-pool-typescript

Hmm, I'm curious why it worked for @bcherny then.
We use TypeScript at work though. I'll ask someone on my team next week just to make sure we don't break anything. :slightly_smiling_face:

Awesome, thanks!
Feel free to ping me if anything. And thanks for this awesome library, I recently used it in a project and it was a perfect fit

Hi there, any update to this? Currently seems like for ts/es6/cjs purposes many are switching away from default exports since it just makes things easier.

FWIW, I have the same problem trying to use it with TypeScript and the PR fixed it.

Closing due to inactivity.