Rename IMG env var to OPERATOR_IMG

The environment variable used to specify the cryostat operator image in the Makefile is named IMG. Since the Makefile uses environment variables for several different container images (e.g. CORE_IMG, DATASOURCE_IMG), renaming this environment variable would help to identify the operator image when running build commands.

I would like to work on this.


[✨] Optimistic Updates

Is your feature request related to a problem?
Currently, qwik brings server and client boundaries close!
Yet, is there any guide upon how to implement Optimistic Updates with already loaded data from route loaders,
Describe the solution you'd like
Hopefully, there is some guidance around this topic in discussion among qwik community
Describe alternatives you've considered
Alternatively, I created a two separate variables one for loading the data using loader, and another just storing the value and updating it, when the data is loaded on client. using Signal
Additional context
No response

We moved this issue to qwik-evolution repo to create a RFC discussion for this.
Here is our Qwik RFC process thanks.


Integration of log4j fails with JavaFX in nativerun

Hello,
I tried to include log4j 2.17.1 in a JavaFx application. I also tried with older versions of log4j - without success.
All mvn phases run ok, but not nativerun.
Command Line
mvn gluonfx:nativerun
Output
Feb. 05, 2023 9:34:25 PM com.gluonhq.substrate.util.Logger logInfo
INFORMATION: Substrate is tested with the Gluon's GraalVM build which you can find at https://github.com/gluonhq/graal/releases.
While you can still use other GraalVM builds, there is no guarantee that these will work properly with Substrate
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] ==================== RUN TASK ====================
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB] Exception in thread "main" java.lang.ExceptionInInitializerError
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at org.apache.logging.log4j.LogManager.(LogManager.java:61)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at hellofx.HelloFX.(HelloFX.java:42)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB] Caused by: java.lang.IllegalStateException: java.lang.InstantiationException: org.apache.logging.log4j.message.DefaultFlowMessageFactory
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at org.apache.logging.log4j.spi.AbstractLogger.createDefaultFlowMessageFactory(AbstractLogger.java:246)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at org.apache.logging.log4j.spi.AbstractLogger.(AbstractLogger.java:144)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at org.apache.logging.log4j.status.StatusLogger.(StatusLogger.java:105)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at org.apache.logging.log4j.status.StatusLogger.(StatusLogger.java:85)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      ... 2 more
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB] Caused by: java.lang.InstantiationException: org.apache.logging.log4j.message.DefaultFlowMessageFactory
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at java.base@17.0.6/java.lang.Class.newInstance(DynamicHub.java:639)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at org.apache.logging.log4j.spi.AbstractLogger.createDefaultFlowMessageFactory(AbstractLogger.java:244)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      ... 5 more
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB] Caused by: java.lang.NoSuchMethodException: org.apache.logging.log4j.message.DefaultFlowMessageFactory.()
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at java.base@17.0.6/java.lang.Class.getConstructor0(DynamicHub.java:3585)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      at java.base@17.0.6/java.lang.Class.newInstance(DynamicHub.java:626)
[So. Feb. 05 21:34:25 MEZ 2023][INFORMATION] [SUB]      ... 6 more
Configuration
Windows 10,  Maven 3.8.7 ,  Gluon Samples with <gluonfx.maven.plugin.version>1.0.16</gluonfx.maven.plugin.version>
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13)
OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing)
steps to reproduce
Can be reproduced with any JavaFx App. - i.e. try with the one of the https://github.com/gluonhq/gluon-samples  as I did for this report. I took HelloFx

add to the pom.xml:
<dependency>
<!-- log4j API -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<!-- log4j Implementation -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>

add to HelloFx.java
private static final Logger log = LogManager.getLogger();
and ...
public void start(Stage stage) {
log.info("start");

run all mvn gluon phases - all ok, but nativerun fails with above output error (although build succeeds). The executable is created but is not working.

Thanks

You can try the combination of slf4j+logback. This combination performs well whether it is nativeRun or packaged and built to Android.

Sometime using latest stable plugins/tools solve the problem:
com.gluonhq:gluonfx-maven-plugin:1.0.23, com.gluonhq.attach:util:4.0.21 and GraalVM CE Gluon <IP_ADDRESS>-Final


Donating Funds to Zod

Hi Zod community and maintainers. I'm Lucas, a core contributor to the Radworks project. https://radworks.org/
We've been using https://github.com/colinhacks/zod as part of Drips. It's in fact one of our most critical dependencies!
We really appreciate the work you all do and want to ensure you are all well-funded to keep doing it. For that reason, we have decided to donate some funds to your project through Drips(an initiative that is coming out of our organization for funding FOSS).
Who can I talk to about it?
@colinhacks @JacobWeisenburger @scotttrinh

Technically, @colinhacks is the owner and if you sponsor this project, you are sponsoring him alone.
https://github.com/sponsors/colinhacks
As far as I know, we don't currently have a way for your funds to be evenly distributed to all maintainers. So you would have to sponsor each maintainer individually.
Let me know if you have any questions.
If you found my answer satisfactory, please consider supporting me. Even a small amount is greatly appreciated. Thanks friend! 🙏
https://github.com/sponsors/JacobWeisenburger

Hi @JacobWeisenburger thanks for the quick response :)
There's potentially a way to solve this issue. The best in this case is to jump on a quick call to explain. This will also be a good opportunity to share what we are trying to do here, and most importantly hear your thoughts and ideas. Happy to organize a call with multiple ZOD maintainers. Just let me know whats the best way to do it, is or who we should include.

Here's a link to our discord server: https://discord.gg/jJn7kp8ZbX
I'm available most of today and tomorrow for a call. Let me know when works for you.

my tomorrow is filling up fast, so as of now I'm only available tomorrow noon-4pm CST. Does that work for you?

@JacobWeisenburger thing is that we have CET people. Would you have any availabilities on Wed that are early?
Sent you a few options over discord. I'm @lukef5905


Add missing cri-o removal states

Backport of https://github.com/kubic-project/salt/pull/526

Merging, the CI failures are not related with the changes.


Refactor CoursierModule from JavaModule

Sometimes, one want's to resolve dependencies but does not need a full-blown Java/Scala Module, e,g. projects that only assemble deployments need to download/resolve but don't build sources in the classical sense.
It should be possible to split the JavaModule and move all Coursier-related stuff info a CoursierModule and the extends that in the JavaModule.

sounds reasonable


Sakiii 4149 - Re-wording inside of the Add People overlay

https://jira.sakaiproject.org/browse/SAKIII-4149

Merged via squash


Issue 209: Add layers accessors

See issue #209
Note that the accessors return the whole layer, then the data field has to be accessed explicitely. Also theresholds and quantiles can be accessed from the layer.

This looks so much nicer and cleaner than before! I have not checked every line yet.
One thing I mentioned before: Why not store the thresholds in loops? (I'll add an example comment for that.)


not working signout

i did signout method. and reopen app.
but not signout
what should i do?
supabase-flutter version : ^0.3.1+2 -> GOOD
supabase-flutter version : ^1.10.0 -> not working
flutter doctor.
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.10.2, on macOS 13.0.1 22A400 darwin-arm64, locale ko-KR)
    ! Warning: `dart` on your path resolves to /usr/local/Cellar/dart/2.17.5/libexec/bin/dart, which is not inside your current Flutter SDK checkout at
      /Users/artifacts/development/flutter. Consider adding /Users/artifacts/development/flutter/bin to the front of your path.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.77.3)
[✓] Connected device (5 available)
[✓] Network resources

! Doctor found issues in 1 category.

Please follow the issue template format and provide all the necessary information. They are there for a reason.
If this is happening on debug mode after you sign in via deep link, it is probably the same cause as this one https://github.com/supabase/supabase-flutter/issues/383

thank you. bro


Add more basemaps

Currently we only have 2 basemaps.
I think basemaps that show a bit more detail on existing infrastructure could be good, e.g.:

[ ] TransportMap which has good data on public transport routes: https://wiki.openstreetmap.org/wiki/Transport_Map
[ ] CyclOSM: https://leaflet-extras.github.io/leaflet-providers/preview/#filter=CyclOSM

More basemaps would be great! I'd also love to find a more detailed satellite layer for the UK that we have a license to use.
Implementation notes:

Right now we're wired to use maptiler styles: https://github.com/acteng/atip/blob/cbdd647ee4231975cbdb81628dbb3d0414f3aefe/src/lib/Map.svelte#L20. We can of course support more.
Need to update map attribution text
Need to make sure the layer order works with other sources: https://github.com/acteng/atip/blob/cbdd647ee4231975cbdb81628dbb3d0414f3aefe/src/maplibre_helpers.ts#L240
All of our color scheme / design is mostly tuned (very loosely speaking!) for the default style, and looks bad with the satellite option. All of the colors/styling may need to change to reasonably fit other basemaps.

Closing old issue. We've got Google satellite now


Install frontend assets only if requested

Add the variable frontend_include_branding, which governs whether the private dpla_frontend_assets gem is included for branding-related assets.  This defuaults to false.
Addresses one of the problems raised in https://github.com/dpla/automation/issues/117
There's a known issue mentioned in the comments of build_frontend.sh, but this is as good as it gets for now.  This prevents non-DPLA staff from running into build errors.

I'll try this out this weekend, but my sense is 312623f should not be necessary.

There might be some other way but --without wasn't working (Bundler kept fetching the gem) and deleting the line from the file is what finally gave me some relief.
I was testing this with alias ansible-playbook='ansible-playbook -e "github_private_key_path=~/.ssh/id_rsa_test"', where id_rsa_test is a key that does not have access to the private repo.

I checked in with @AudreyAltman earlier this morning and she confirmed that, based on a past experience of hers, the only solution is to remove the gem from the Gemfile in deployment.  She said she came across a discussion in a forum or list debating the correctness of this behavior, but that Bundler will in fact not forego fetching the gem if it's in the Gemfile.

In that case, I have a proposal - how about if we remove the restricted assets gem from the Gemfile and add it conditionally? I'd rather make that kind of surgical change in deployment than add to the complexity here.

OK, I'll see about submitting a quick PR for frontend, assuming that will be quick.

Bu wait ... don't we still add complexity here to add it to the gemfile in automation?

In that case, I have a proposal - how about if we remove the restricted assets gem from the Gemfile and add it conditionally?

:+1: to this.
Slack discussion proceeds from https://dpla.slack.com/archives/tech/p1446485988000043.  I agree with @markbreedlove that this is probably just a bad way of handling the asset deployment. Short of fixing that larger issue, @anarchivist's proposal seems best.

fe5b97d reverses the strategy to add the gem to the Gemfile if branding is turned on.
This depends upon an upcoming PR to frontend that removes the gem.
I've tested this by deploying it in development and can switch back and forth between branded and unbranded deployments.

While I'm thinking of it, do we need to do the same thing with the primary-source-sets application?

I think so ... cc: @AudreyAltman

I'm going to make a similar change for this PR that does the same trick with the primary-source-sets Gemfile and assumes that the primary-source-sets app has an ensuing PR to remove the gem.

I think this should be good now, based on my testing.  We should have the related changes to frontend and primary-source-sets merged before this goes public.

It looks like this needs to be rebased on develop.


Space

Description
[Describe what this change achieves]

Category (Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation)
Why these changes are required?
What is the old behavior before changes and new behavior after changes?

Issues Resolved
[List any issues this PR will resolve]
Is this a backport? If so, please add backport PR # and/or commits #
Testing
[Please provide details of testing done: unit testing, integration testing and manual testing]
Check List

[ ] New functionality includes testing

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented
[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 90.33%. Comparing base (f328fc4) to head (a375000).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main       #6   +/-   ##
=======================================
  Coverage   90.33%   90.33%
=======================================
  Files          32       32
  Lines        2152     2152
=======================================
  Hits         1944     1944
  Misses        208      208

Flag
Coverage Δ

unittests
90.33% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Worked on the sort and filter functions in the rating & reviews session

Make reviews sort by relevance, time and helpfulness
Relevance is calculated as normalized time difference minus normalized helpfulness
When click on a specific rating bar, show reviews of only that rating.
Trello ticket with gif showing the change: https://trello.com/c/aGdhxYYy

@mutton808 @c4mino

Looks great!


Thank you!


chore(compat): fix the compatibility issue with the /gs syntax in Firefox versions below 79

Due to the fact that Firefox browser versions below 79 do not support the /gs regular expression syntax, the application built with this syntax will throw an error when running on Firefox browsers with versions lower than 79. The specific error message is as follows:

Sorry for not noticing this earlier, but I don't think this would be the right fix, as we need to match across multiple lines inside the comment, not after it.
This was fixed in 91f1c62e


Is it possible to pickle only trained model and call it back for test and/or forecast without any training process in another .py folder?

I am trying to pickle a trained xgboost model and call it in another .py folder to only do forecast without any training process. Is it possible to do that with auto_forecast() function, if not how can I do that? (code is below)
"""### XGBoost"""
xgboost_grid = {
'max_depth': [15],
'tree_method': 'gpu_hist'
}
for i, f in enumerate(forecasts):
print('Forecast', i)
f.set_estimator('xgboost')
f.ingest_grid(xgboost_grid)
f.tune()
f.auto_forecast()

After calling f.auto_forecast() and before changing the estimator, the scikit-learn trained model is available in the regr attribute. So, you can use code like this to do what you are asking:
import pickle

xgboost_grid = {
'max_depth': [15],
'tree_method': 'gpu_hist'
}

f.set_estimator('xgboost')
f.ingest_grid(xgboost_grid)
f.tune()
f.auto_forecast()

with open('xgboost_regr.pckl','wb') as pckl:
  pickle.dump(f.regr,pckl)

In a separate issue, I think you need brackets around 'gpu_hist' in the grid. If there is an error with all hyperparam combinations during grid evaluation, the model is trained with default parameters.

Thanks for the response. I tried your suggested solution but I am having error in the process call it back and use it for predictions.
Error;
ValueError: DataFrame.dtypes for data must be int, float, bool or category.  When
categorical type is supplied, DMatrix parameter enable_categorical must
be set to True.
Code;
`with open('xgboost_regr.pckl','wb') as pckl:
pickle.dump(f.regr,pckl)
filename = open("xgboost_regr.pckl", "rb")
xgb_new = pickle.load(filename)
filename.close()
pickle_pred = xgb_new.predict(X_test)`
X_test concludes only date time series that i want to make forecast.

In scalecast, the model is using a whole dataframe of predictors to make forecasts, not just the date-type column. To see the dataframe that is generated for your model, you can run:
f.export_Xvars_df()

You will only be able to use this dataframe to predict one step into the future if you are using any AR terms. You will need to create a process that predicts future values of your AR terms to go more than one step out. But, I think the easiest way to get where you are going is to not pickle out the model and use the forecasts that scalecast produces after running auto_forecast() by default:
f.auto_forecast()
f.export("lvl_fcsts")

The forecast horizon you specified in your analysis when calling f.generate_future_dates() will determine how many forecast steps are exported this way. The reason the package both tests and forecasts with the model in the same line of code is to simplify the dynamic process used to make predictions.

Glad to help! Closing the issue.


Differences with WMI and Camera order

Hi and thanks for you project!
Since I'm not good with C++, neither with low level Windows libraries, I'd like to ask you two questions, please.

What's the difference between your code and the builtin Windows WMI  camera enumeration? (Here it is C# code)

public static List<CameraDevice> GetAllConnectedCameras()
{
    var cameras = new List<CameraDevice>();
    using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Camera')"))
    {
        foreach (var device in searcher.Get())
        {
            cameras.Add(new CameraDevice()
            {
                Name = device["Caption"].ToString(),
                Status = device["Status"].ToString(),
                DeviceId = device["DeviceID"].ToString()
            });
        }
    }

    cameras = cameras.OrderBy(c => c.DeviceId).ToList();
    for (int i = 0; i < cameras.Count; ++i)
        cameras[i].OpenCvId = i;

    return cameras;
}

public class CameraDevice
{
    public int OpenCvId { get; set; }

    public string Name { get; set; }
    public string DeviceId { get; set; }
    public string Status { get; set; }
}

To map your enumeration result to the correct OpenCv indexes, how do you sort the enumeration? In other words, why these two cameras have that ids? Did you sort by Path?

== VIDEO DEVICE (id:0) ==
Name: HD Pro Webcam C920
Path: \\?\usb#vid_046d&pid_082d&mi_00#7&3561b19d&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global

== VIDEO DEVICE (id:1) ==
Name: FLIR USB Video
Path: \\?\usb#vid_09cb&pid_1007&mi_00#6&1e15415f&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global

Thanks a lot!

I am not sure about the WMI code, but regarding the order in which the devices are stored, this C++ library doesn't need to order anything, as it enumerates directly from the operating system, which provides the order.

I understood, thanks: Windows just gives the list in that order.
I asked you that because with WMI Windows lists the devices with always the same order, maybe it is sorting by name or something else, while OpenCv sorts by the connection date of the device. I noticed that because if I have 2 webcams, the second plugged has always the id 1.
Thanks for your work!


Gas Limit has no unit

https://www.iotexscan.io/wallet/transfer

isn't Rau the unit in the picture?

Meant to say - gas limit should not have unit.

Default gas limit set to 100K
suggestion: implement suggested gas limit by payload size


mock is cached from test to test

Describe the bug
I'm not sure if it's a bug or if I'm doing something wrong. Declaring a mock for an external module seems to cache its value for the rest of the tests, even if they are declared in isolation inside of each test scope.
I've tried to use clearAllMocks and resetModules in a beforeEach with no luck.
Reproduction
In this couple of tests, the first works and the second fails because the reactfire mock value is cached from the first test and the second declaration doesn't overwrite the first one.
function getMockedAuth(type: 'admin' | 'user') {
  return {
    useUser: () => ({
      data: {
        uid: type,
      },
    }),
    useFirebaseApp: () => ({
      auth: () => ({
        currentUser: {
          uid: type,
        },
      }),
    }),
  };
}

beforeEach(() => {
  vi.resetModules();
  vi.clearAllMocks();
  cleanup();
});

describe('DashboardPage', () => {
  test('should render Backlog if user is admin', () => {
    vi.mock('reactfire', () => getMockedAuth('admin'));

    render(<DashboardPage />);

    expect(screen.getByText('Backlog')).toBeTruthy();
  });

  test('should not render Backlog if user is not admin', async () => {
    vi.mock('reactfire', () => getMockedAuth('user'));

    render(<DashboardPage />);

    expect(screen.queryByText('Backlog')).toBeNull();
  });
});

System Info
System:
    OS: macOS 13.2.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 68.31 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.13.1 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 8.1.2 - /usr/local/bin/npm
  Browsers:
    Chrome: 111.0.5563.64
    Edge: 111.0.1661.44
    Firefox: 108.0.1
    Safari: 16.3
  npmPackages:
    @vitejs/plugin-react: ^2.1.0 => 2.1.0
    vite: ^3.1.0 => 3.1.8
    vitest: ^0.28.4 => 0.28.4

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

vi.mock call is hoisted, so only one mock is called

@sheremet-va So is there something like isolateModules to mock different values of the same library? How can this be achieved with vitest?

Nevermind, I ended up splitting the cases into two files.

@sheremet-va is there really no other solution than to split the tests into multiple files? This is driving me insane having to get working so I won't have multiple files for what was supposed to be a simple test.

Lol... that would have been so helpful two months ago 😅

Couldn't for the life of me get vi.doMock to work as you describe @sheremet-va but finally got something working.
import { useSession } from "@blitzjs/auth"

import HomePage from "pages/index"
import { render, screen } from "test/utils"

vi.mock("@blitzjs/auth", async () => {
  const actual = await vi.importActual<Record<string, unknown>>("@blitzjs/auth")
  return {
    ...actual,
    useSession: vi.fn(),
  }
})

describe("User state", () => {
  beforeEach(() => {
    vi.resetAllMocks()
  })

  test("does not render upload button when logged out", () => {
    ;(useSession as any).mockReturnValue({ userId: null, role: null, isLoading: false })

    render(<HomePage />)

    expect(screen.getByRole("button", { name: /sign up/i })).toBeInTheDocument()
    expect(screen.getByRole("button", { name: /create/i })).not.toBeInTheDocument()
  })

  test("renders upload button when logged in", () => {
    ;(useSession as any).mockReturnValue({ userId: 1, role: "USER", isLoading: false })

    render(<HomePage />)

    expect(screen.getByRole("button", { name: /sign up/i })).not.toBeInTheDocument()
    expect(screen.getByRole("button", { name: /create/i })).toBeInTheDocument()
  })
})


Added checkIfGraphIsTree.py to CheckTree folder

How much time will it take for my PR request to be merged?


[RFC] Automate enumValues generation

When dealing with SQL databases most of the times the enums will store simply integer values, like:
enum Sex {
  Male = 0,
  Female = 1
}

Having to specify the following for each of them could be annoying:
enumValues:
  Sex:
    MALE: 0
    FEMALE: 1

It would be nice to have a way to specify defaults other than the name of the value.
Something like:
enumDefaultValues: to-integer#toInteger

which would be obviously overridden by enumValues itself.

@darkbasic with enumValues you can point to a file and a enum identifier, without the need to deal specifically with each value. Does that help you? It should allow you to point it like that: enumValues: ./my-file#Sex

without the need to deal specifically with each value

@dotansimha  in the codegen config maybe, but I will still have to specify the following in my-file:
export enum Sex {
  MALE = 0,
  FEMALE = 1
}

With your solution I will still have to manually create the enums I use for the SQL tables, which could be fine if our source of truth wasn't the schema. Because of that I'd rather generate the enums from the schema instead of having to duplicate them (one time is the schema and another time in the SQL-related code). If I use enumValues: ./all-my-enums and for some reason I want to add more keys to one of my enums (for example I want to add the Blue key to the Color enum because I want to support additional colors) then I will have to remember to update both the schema and all-my-enums.
On the contrary if we use functions to generate the enum values for us that won't be a problem anymore because we will have a single source of truth: the schema.
The following
enumDefaultType: enums#NumericFromZero
enumType:
  Sex: enums#NumericFromOne
  Color: enums#AllUppercase

would generate something like
export enum Status {
  PENDING = 0,
  ACCEPTED = 1,
  DECLINED = 2,
  BLOCKED = 3
}

export enum Cover {
  INDOOR = 0,
  BOTH = 1,
  OUTDOOR = 2
}

export enum Sex {
  MALE = 1,
  FEMALE = 2
}

export enum Color {
  GREEN = "GREEN",
  RED = "RED",
  BLUE = "BLUE"
}

and thus eliminating every kind of duplication, allowing to have a single source of thruth: the schema.
Obviously if you need a custom enum which doesn't obey any linear function to translate its keys to values, then you will still have to specify enumValues for that one.

I see. Got it. PRs are welcome ;)


Rename, and possibly simplify, run-apache.sh

Right now the run-apache.sh script, contrary to its rather specific name, does a bunch of things:

Creates symlinks for all the extensions and skins
Syncs all the files, using rsync
Calls update-docker-gateway.sh
Checks permissions for the relevant directories, and modifies them if they were not set correctly
Keeps calling wait-for-it.sh until the wiki DB is generated
Exits if the /user-extensions and /user-skins directories are not set up correctly (this should have been done first, no?)
Calls MW's update.php (but only if LocalSettings.php exists, for some reason)
Calls mwjobrunner.sh (which in turn calls MW's runJobs.php for the main job types, like "refreshLinks")
Calls mwtranscoder.sh (which in turn also calls runJobs.php, but for "webVideoTranscode" jobs)
Calls mwsitemapgen.sh (which in turn calls MW's generateSitemap.php)
Finally, runs Apache 😄

At the very least, I think this script should be renamed to something indicating that it's a sort of master do-everything kind of script: setup-all.sh, setup.sh, something like that. It also could be good if any of steps 1, 2 and 4 could be turned into their own scripts, to try to break up the code more. Step 1 takes about 40 lines, step 2 takes about 10 lines, and step 4 takes about 20 lines; so step 1 would be the most obvious candidate for splitting off, into a script called create-symlinks.sh or something.

This is already done in Taqasta, can  we keep it close to each other?

We definitely should. Can you create a PR?

I looked through the Taqasta implementation of this. The main script there is still called run-apache.sh, but a lot of its functionality was moved to a separate script, run-maintenance-scripts.sh:
https://github.com/WikiTeq/Taqasta/blob/master/_sources/scripts/run-maintenance-scripts.sh
Looking through the code, it looks like the Taqasta equivalent includes at least the following additional functionality:

Support for SQLite
Some additional permissions-setting that I don't fully understand (making some directories writable?)
Calling of the installer for the CLDR extension, which is not in Canasta (I didn't realize anyone wanted to include CLDR)
Calling of SMW scripts like updateEntityCollation.php
Calling of CirrusSearch scripts like UpdateSearchIndexConfig.php
Calling of the Monit script, to (I think) support a Slack client
Conversely, the symlinking of extensions and skins is not there?

At least some of this seems useful for Canasta - but integrating this into Canasta will require some discussion; it can't just be done with one big PR. And I still think run-apache.sh should be renamed to something more general. So for now, I think the PR I created is the better course of action. Though it's good to know about all the Taqasta stuff.

Looks cool!

Support for SQLite

Out of scope for Canasta. We shouldn't be supporting SQLite - we have no need for something with less support by the WMF than MySQL.

Calling of the Monit script, to (I think) support a Slack client

This is probably WikiTeq-specific.

Conversely, the symlinking of extensions and skins is not there?

Yeah, this is a Canasta-specific approach that is necessary for maximum flexibility. I don't think WikiTeq developers shared the same enthusiasm for this idea, which is understandable and not a problem. There's more than one way to skin a cat.

And I still think run-apache.sh should be renamed to something more general.

Completely agreed.

Here are some ideas for how to simplify run-apache.sh. I submitted an issue to USAF Iron Bank on the hardened Canasta issues I was having and they fixed them last week. They were able to move things out of run-apache.sh and into the Iron Bank Dockerfile where they could be run as root.
I'll add some details and links below.

@olsonjaredm - thank you, this is very helpful.
The "Map host for VisualEditor" code was never in Canasta, I don't think - it looks like custom code that you (collectively) added to run-apache.sh, then decided was better in the Dockerfile. If possible, could you create a patch for it?
I don't know why all of the MediaWiki-related scripts are called via runuser, so that they can be called as "$WWW_USER". What, indeed, is the reason for this - does anyone know?
Finally, the rsync command is indeed part of run-apache.sh - it's step 2 in my initial listing. That seems like a reasonable move also - Jared, if you don't mind, could you also create a patch for that? (Assuming you know how to make a multi-file patch.)

By the way, one thought I had for how to simplify this whole thing, and make it more customizable, is to create a new directory that would hold a set of shell scripts to be called after update.php is run, i.e. after we know the database has been fully set up. The directory might be called custom-scripts/ or final-setup/ or something else. It could include mwjobrunner.sh, mwtranscoder.sh and mwsitemapgen.sh (original steps 8-10), plus the SMW and CirrusSearch setup scripts from Taqasta (assuming those make sense to add in) - and then spinoff images could easily add their own additional scripts to this directory - like Taqasta's CLDR and Monit calls.

100% agreed. Perhaps we should do that first before we incorporate the Iron Bank changes into vanilla Canasta?

I'm glad there's agreement on this "automated script directory" idea! (By the way, maybe it should be called maintenance-scripts/ - to borrow the wording from Taqasta.) But does the timing of the changes matter? I ask only because making at least those two Iron Bank changes discussed before - for "map host" and rsync - seems quite easy, whereas adding this feature would be at least moderately difficult.


Better handling of closed connections

Mux should differentiate between when a connection is closed while reading a mux segment and when it is closed when waiting for a new mux segment. The former is an immediate problem while the latter may not be (as in clean shutdown).

Related to #711

This was implemented in cb27a8976.


Banned for Additional Mods when using the same mods as others

Banned for using additionals mods while those mods are used by other ingame players aswell.
MC name: AltyBalty

I can even show you that my mod files has been changed

I apologise for the delay in responding. Anyway, you were banned again as we had found you had 'Auto-fish' mod enabled after you were unbanned. The agreement of your un-ban was that you would disable / delete any other mods upon your unbanning. Though you have provided evidence of your mods folder, we can easily say that you removed that certain mod before showing this folder.

You can count the mods and check that with the modcount when I joined the server

1-2 was before my unban, and the last time I edited this folder is alos 24-1

Was meant to post this too:

Here we have 11, and in your screenshots show 9.

I had 9 not 11 I am pretty sure.

I apologise for the delay in responding again. After looking into this ban again, I've learnt that I was reading the mod login incorrectly, so I will unban you. But like I've stated before and really hope this isn't an issue again, please disable any server-rule breaking mods whenever you log in. Do consider yourself lucky, most people don't get 2 unbans.


Null-forgiving operator

Null-forgiving operator

Fix grammar
Specify semantic restrictions
Add to precedence table
Add to MLR group

Addresses issue #1190

Note: The grammar validation will fail until the validator is updated. The validator is a work-in-progress and there is a mutual dependency between that and this PR. The PR for the validator will follow in the not too distant future…
@BillWagner – I suggest holding off merging this even once approved until a validator PR is good to go as well.

@KalleOlaviNiemitalo & @BillWagner – I only came here to fix the grammar! ;-)
Thanks Kalle for the research and further analysis.
It's clear the original spec was never in a released compiler and so we can go straight to allowing value types.
However as Kalle has shown the implemented operator does more than override (aka “forgive”) a compiler’s static analysis determination that a null might be present – it can be a “nullability forgiving operator” and cancel any nullability warnings that an compiler might choose to provide.
I’ve moved the PR to Draft while I determine a suitable spec.

General question: Anybody think an example explaining null! would be good and maybe also wish to suggest one, and where to included it, if so?

@BillWagner wrote:

One other question for @jskeet: Typically, we've used hard breaks only for paragraphs. I don't know if the hard returns will create problems for the word converter.

The word convertor errors are not due to hard breaks. One of the subclause titles has emphasised text in it and the convertor doesn’t like that. It will be removed or replaced with quotes in the next commit.


Separate subnet for master nodes and worker nodes

Hello,
In acs-engine, it is possible to define different subnets within a vnet for the master nodes and worker nodes.  Does the advanced networking for AKS also allow deploying the master nodes and worker nodes to their own subnets?  Thank you.

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

ID: 22ad4873-c73d-4b90-2063-927a1060d2a2
Version Independent ID: 8e6643ad-7333-a786-8712-3d17291e12a7
Content: Network configuration in Azure Kubernetes Service (AKS)
Content Source: articles/aks/networking-overview.md
Service: container-service
GitHub Login: @mmacy
Microsoft Alias: marsma

Thanks for the question! We are investigating and will update you shortly.

@jungho I am not aware if this is possible.
@mmacy, @neilpeterson, @iainfoulds would any of you know this off the top of your head?

I am not sure. @aanandr can you help out with this question?

@jungho I am working offline to find an answer for you. I will update as soon as i have one.

The acs-engine configuration file has separate subnet settings for Master and Agent and so you should be able to specify different subnets. But i havent tried setting it up this way.
With AKS you can only specify 1 subnet so you cannot put the two in different subnets

Thanks @aanandr!
@jungho I will close this for now. If you have additional questions just let us know and we can reopen and continue.


test_transaction fails in Azurite

The test_transaction fails
test table::clients::partition_key_client::integration_tests::test_transaction ... FAILED
I think this is due to https://github.com/Azure/Azurite/issues/792 where it is just not supported yet in Azurite.
azurite -d azurite.log

$env:AZURE_STORAGE_ACCOUNT="devstoreaccount1"
$env:AZURE_STORAGE_KEY="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
cargo test --features test_integration test_transaction

The request is:
POST http://<IP_ADDRESS>:10002/devstoreaccount1/$batch HTTP/1.1
content-length: 915
content-type: multipart/mixed; boundary=batch_93e29533-82b3-4ed8-9439-fc40dd3242c9
x-ms-date: Mon, 14 Jun 2021 21:57:52 GMT
x-ms-version: 2019-12-12
authorization: SharedKey devstoreaccount1:kCYIWFkLqKCC2w2NeQXoWjDAIfHaQ3wKWGjEQjyuYxc=
accept: */*
host: <IP_ADDRESS>:10002

--transaction_93e29533-82b3-4ed8-9439-fc40dd3242c9
Content-Type: multipart/mixed; boundary=changeset_ddf52622-28d4-466e-bd34-3d5df4ce8087

--changeset_ddf52622-28d4-466e-bd34-3d5df4ce8087
Content-Type: application/http
Content-Transfer-Encoding: binary

POST http://<IP_ADDRESS>:10002/devstoreaccount1/PartitionKeyClientTransaction HTTP/1.1
accept: application/json;odata=fullmetadata
content-type: application/json

{"PartitionKey":"Milan","name":"Francesco","RowKey":"Cogno"}
--changeset_ddf52622-28d4-466e-bd34-3d5df4ce8087
Content-Type: application/http
Content-Transfer-Encoding: binary

POST http://<IP_ADDRESS>:10002/devstoreaccount1/PartitionKeyClientTransaction HTTP/1.1
accept: application/json;odata=fullmetadata
content-type: application/json

{"PartitionKey":"Milan","name":"Francesco","RowKey":"Potter"}

--changeset_ddf52622-28d4-466e-bd34-3d5df4ce8087--
--transaction_93e29533-82b3-4ed8-9439-fc40dd3242c9

With azurite 3.12.0 returning:
HTTP/1.1 500 Internal Server Error
Server: Azurite-Table/3.13.1
Date: Mon, 14 Jun 2021 21:57:52 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Content-Length: 0

This looks like the relavant part of the log:
2021-06-14T22:10:40.904Z ce55097a-24bc-47b4-8723-a00c23a40421 error: ErrorMiddleware: ErrorName=TypeError ErrorMessage=console_1.exception is not a function ErrorStack="TypeError: console_1.exception is not a function\n    at TableBatchSerialization.extractBatchBoundary (C:\\Users\\cataggar\\.fnm\\node-versions\\v14.15.1\\installation\\node_modules\\azurite\\dist\\src\\common\\batch\\BatchSerialization.js:30:29)\n    at TableBatchSerialization.deserializeBatchRequest (C:\\Users\\cataggar\\.fnm\\node-versions\\v14.15.1\\installation\\node_modules\\azurite\\dist\\src\\table\\batch\\TableBatchSerialization.js:36:14)\n    at TableBatchOrchestrator.processBatchRequestAndSerializeResponse (C:\\Users\\cataggar\\.fnm\\node-versions\\v14.15.1\\installation\\node_modules\\azurite\\dist\\src\\table\\batch\\TableBatchOrchestrator.js:43:51)\n    at TableHandler.batch (C:\\Users\\cataggar\\.fnm\\node-versions\\v14.15.1\\installation\\node_modules\\azurite\\dist\\src\\table\\handlers\\TableHandler.js:400:50)\n    at processTicksAndRejections (internal/process/task_queues.js:93:5)"
2021-06-14T22:10:40.904Z ce55097a-24bc-47b4-8723-a00c23a40421 error: ErrorMiddleware: Set HTTP code: 500

Looks like https://github.com/Azure/Azurite/issues/792 has been fixed with https://github.com/Azure/Azurite/pull/830. Can we turn the test be reenabled now?

After a release is made, we can try it out.  It will be in the release after 3.13.1.

Upcoming Release
Added support for PATCH Verb in Table Batch Operations / Entity Group Transactions.
https://github.com/Azure/Azurite/blob/master/ChangeLog.md

@ctaggart is this still an issue?


require more materials behind the dlnproof?

could you send me more cryptography materials (such as, paper) about the dlnproof? weird why this bit challenge setting.
and how about we just use the hash challenge, I mean set c = Hash(g, h, a, \alpha) instead of 128 binary challenge?
https://github.com/bnb-chain/tss-lib/blob/master/crypto/dlnproof/proof.go#L35

@notatestuser could you give me some help? thanks

@yycen could you help? thanks


Support hub commands?

hub is this insanely useful tool that adds github specific commands like fork, pull-request etc.
I primarily use it to create PRs from the cli, and this is the only reason I even switch to my terminal for doing git related things. [I just use GitSavvy for everything else.]
It'd be really great if we could have support for hub commands (especiall pull-request) in Savvy!

There is some work started on this(GitSavvy/issues#364).
I think this would be nice to have in a separate package since there is many git server not related to github.com in any way.
Thanks for opening issue.

Yeah, I think this will hard to support well, since hub is a moving target, whereas most of the Git commands we rely on have been present for several years.  It'd probably be easier, honestly, to port the features to GitSavvy directly.  We do have some minimal support for PRs.
If there are specific features that you find yourself going to the terminal to run, open a narrower issue (or PR!) describing the workflow and what you're trying to accomplish.


Switch to extension manifest V3

Manifest V3 docs: https://developer.chrome.com/docs/extensions/mv3/intro/

Fixed in commit 7b59c5a


WIP: [Artwork View] Auction flow buttons

Adds Auction bid buttons to Artwork view
Moves BidButton, BuyNowButton and MakeOfferButton into children sub components of CommercialButtons

#skip_new_tests

Added #skip_new_tests for rearranged button files which tests are covered in CommercialButtons-tests file

Fails

:no_entry_sign:
Missing Test Files:

src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/BidButton-tests.tsx
src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/BuyNowButton-tests.tsx
src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/MakeOfferButton-tests.tsx

If these files are supposed to not exist, please update your PR body to include "#skip_new_tests".

:no_entry_sign:

🃏 FAIL in CommercialButtons-tests.tsx

renders Buy Now button if isAcquireable

Full message

Invariant Violation: Relay(BuyNowButton) tried to render a context that was not valid this means that Relay(BuyNowButton) was rendered outside of a query renderer.
    at invariant (/home/travis/build/artsy/emission/node_modules/fbjs/lib/invariant.js:40:15)
    at forwardRef (/home/travis/build/artsy/emission/node_modules/react-relay/lib/buildReactRelayContainer.js:77:56)
    at renderWithHooks (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:12839:18)
    at updateForwardRef (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:14253:20)
    at beginWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:15457:16)
    at performUnitOfWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19108:12)
    at workLoop (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19148:24)
    at renderRoot (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19231:7)
    at performWorkOnRoot (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20138:7)
    at requestWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19886:7)
    at scheduleWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19707:5)
    at scheduleRootUpdate (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20368:3)
    at updateContainerAtExpirationTime (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20396:10)
    at updateContainer (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20453:10)
    at ReactRoot.Object..ReactRoot.render (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20749:3)
    at /home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20886:14
    at unbatchedUpdates (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20250:14)
    at legacyRenderSubtreeIntoContainer (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20882:5)
    at Object.render (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20951:12)
    at render (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:418:26)
    at fn (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:342:37)
    at Object.batchedUpdates$1 [as unstable_batchedUpdates] (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20235:12)
    at Object.act (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom-test-utils.development.js:1161:27)
    at act (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:342:13)
    at Object.wrapAct [as render] (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:404:16)
    at new ReactWrapper (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:134:16)
    at mount (/home/travis/build/artsy/emission/node_modules/enzyme/build/mount.js:21:10)
    at Object. (/home/travis/build/artsy/emission/src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/CommercialButtons-tests.tsx:86:23)
    at Object.asyncJestTest (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:102:37)
    at resolve (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/queueRunner.js:43:12)
    at new Promise ()
    at mapper (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/queueRunner.js:26:19)
    at promise.then (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/queueRunner.js:73:41)

renders both Buy Now and Make Offer buttons when isOfferable and isAcquireable

Full message

Invariant Violation: Relay(BuyNowButton) tried to render a context that was not valid this means that Relay(BuyNowButton) was rendered outside of a query renderer.
    at invariant (/home/travis/build/artsy/emission/node_modules/fbjs/lib/invariant.js:40:15)
    at forwardRef (/home/travis/build/artsy/emission/node_modules/react-relay/lib/buildReactRelayContainer.js:77:56)
    at renderWithHooks (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:12839:18)
    at updateForwardRef (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:14253:20)
    at beginWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:15457:16)
    at performUnitOfWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19108:12)
    at workLoop (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19148:24)
    at renderRoot (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19231:7)
    at performWorkOnRoot (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20138:7)
    at requestWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19886:7)
    at scheduleWork (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:19707:5)
    at scheduleRootUpdate (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20368:3)
    at updateContainerAtExpirationTime (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20396:10)
    at updateContainer (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20453:10)
    at ReactRoot.Object..ReactRoot.render (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20749:3)
    at /home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20886:14
    at unbatchedUpdates (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20250:14)
    at legacyRenderSubtreeIntoContainer (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20882:5)
    at Object.render (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20951:12)
    at render (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:418:26)
    at fn (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:342:37)
    at Object.batchedUpdates$1 [as unstable_batchedUpdates] (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom.development.js:20235:12)
    at Object.act (/home/travis/build/artsy/emission/node_modules/react-dom/cjs/react-dom-test-utils.development.js:1161:27)
    at act (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:342:13)
    at Object.wrapAct [as render] (/home/travis/build/artsy/emission/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:404:16)
    at new ReactWrapper (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:134:16)
    at mount (/home/travis/build/artsy/emission/node_modules/enzyme/build/mount.js:21:10)
    at Object. (/home/travis/build/artsy/emission/src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/CommercialButtons-tests.tsx:102:23)
    at Object.asyncJestTest (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:102:37)
    at resolve (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/queueRunner.js:43:12)
    at new Promise ()
    at mapper (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/queueRunner.js:26:19)
    at promise.then (/home/travis/build/artsy/emission/node_modules/jest-jasmine2/build/queueRunner.js:73:41)

commits the Buy Now mutation

Full message

Error: Method “props” is meant to be run on 1 node. 0 found instead.
    at ReactWrapper.single (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1718:17)
    at ReactWrapper.props (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1013:21)
    at props (/home/travis/build/artsy/emission/src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/CommercialButtons-tests.tsx:142:18)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
    at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:22)
    at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:97:21)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
    at invoke (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:135:20)
    at /home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:145:13
    at /home/travis/build/artsy/emission/node_modules/react-tracking/node_modules/core-js/modules/es.promise.js:105:22
    at flush (/home/travis/build/artsy/emission/node_modules/react-tracking/node_modules/core-js/internals/microtask.js:26:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)

commits the Make Offer mutation

Full message

Error: Method “props” is meant to be run on 1 node. 0 found instead.
    at ReactWrapper.single (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1718:17)
    at ReactWrapper.props (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1013:21)
    at props (/home/travis/build/artsy/emission/src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/CommercialButtons-tests.tsx:167:21)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
    at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:22)
    at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:97:21)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
    at invoke (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:135:20)
    at /home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:145:13
    at /home/travis/build/artsy/emission/node_modules/react-tracking/node_modules/core-js/modules/es.promise.js:105:22
    at flush (/home/travis/build/artsy/emission/node_modules/react-tracking/node_modules/core-js/internals/microtask.js:26:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)

  Generated by :no_entry_sign: dangerJS

Warnings

:warning:
Missing Test Files:

src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/BidButton-tests.tsx
src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/BuyNowButton-tests.tsx
src/lib/Scenes/Artwork/Components/CommercialButtons/__tests__/MakeOfferButton-tests.tsx

If these files are supposed to not exist, please update your PR body to include "#skip_new_tests".

  Generated by :no_entry_sign: dangerJS

#mergeOnGreen


define Token toString

In golang, toString()  should be String() and you need to implement it with test cases!

fixed it!


[feature request] notice with rgb value

It would be handy to display the rgb value as a notification, when its in clipboard.
Maybe like this:
notify-send "XColor" --icon=xcolor "$(echo -e "RGB value\n#65c9ff\ncopied to clipboard.")"

If I'm not mistaken this should be easy enough to script yourself?
Would something like this not work for you?
get_color() {
  picked=$(xcolor)
  notify-send "xcolor" "'$picked' was copied to the clipboard"

yes:
get_color() {
picked=$(xcolor)
notify-send --icon=xcolor "xcolor" "'$picked' was copied to the clipboard"
}
did the trick. thanks!


Static methods registered by factory (docblock) Not Generated

Hi. I am contributor of SleepingOwlAdmin.
So this nice history:
We have some littlebit static methods like
AdminColumn::select(params)
That AdminColumn is alias of SleepingOwl\Admin\Display\TableColumn
Having that:

So registering in factory

Have docblock, have registry
But after call php artisan ide-helper:generate

And show must go on.

that worked some time ago (3-4 month)
how i can resolve that?

So manually i can fix that by remove all generated section from ide_helper.php

like that
and all works fine

Is this still an issue?


Disabled gibbed sanity checking

Would it be possible to add an option to disable the sanity checking from within the Gibbed save editor?
There's a super randomizer mod from the BLCM wiki which as the name suggests randomizes weapon and item parts and enemies.
When I get a weapon drop and try to use Gibbed to open my save to look at the parts a lot of lines change to none, and the weapon changes entirely when I go to open the save in game again.

There is no sanity checking in the save editor that restricts you from doing things in the editor. All of that is purely a visual warning.
If you're referring to the red outlines on part selection, that's a limitation of the save file format, not the save editor. And would require modding on the game side to make those items save properly.

I've noticed it happening more when a weapon spawns with a DLC part without the weapon explicitly being set to a DLC weapon. For example if I try to add a DLC gun barrel to a gun from the base game that part will not stay set and it will be set back to the original.

Yep. That's the game itself saving it without the part, not the save editor resetting it. Because it can't save weapons that have incompatible parts like that.

I'm talking about within the Gibbed save editor though, not in game.

The format the game stores weapons and items in is designed in such a way that it is impossible to define things with incompatible parts that mods such as the randomizer causes. Even with the sanity checker disabled in the game, it is not actually possible to store the items in this incompatible way.
There are two ways to get around this:

Mod the game to make everything available in a given asset library set, which is what the game uses for save data. This would have a side effect on making it incompatible with the save editor out of the box though, because the save editor has a copy of the asset library sets the game has by default.
Mod the game to forcefully save these weapons/items in to the WeaponData/ItemData part of the save, instead of PackedWeaponData/PackedItemData, the save editor doesn't have visual editors for those though, except in the Raw tab, because the game itself does not use those.

If the save editor uses the game files, maybe I'm misunderstanding what's actually happening.

It's just the way weapon and item data is stored that makes it impossible without modding the game itself.


Bump node 0.10 references to node 4+

Create React App requires Node 4 or higher.

Simply changing all reference of Node 0.10 -> Node 4.

This is intentional—we want the file to work on old Node, just long enough to print a nice error instead of crashing the parser.


Update to newer versions of dependencies and add nicer tests output

Nothing major here, just an update to newer versions of dependencies (primarily because of RxJS 3.0.0) and a nicer tests output using faucet.

thanks !

cool, thanks for quick merge! :+1:


Underscore first

Is it possible to have all imports with an underscore first?

Can you be more specific? The default profile already sorts underscores at the top of each of their sections.
# before
import threading
import __main__
import main
import _thread

import api

# after
import _thread
import threading

import __main__
import api
import main


[KeyVault] Ensure we have samples in both TS and JS

The updated guidance for samples includes having samples in both TypeScript and JavaScript. We should provide examples for the following in both languages:

[x] Keys
[x] Secrets
[x] Cryptography
[x] Certificates

Fixed by https://github.com/Azure/azure-sdk-for-js/pull/5538


Remove explicit call to Context.Clients.leave

For @heatherbshapiro's work an explicit call to Leave was required. I had to do the same with an identity problem that existed within SignalR. This issue is to just make sure we don't forget about Heather's fix as well.
Currently line 708 in Chat.cs: Clients.Caller.leave(userViewModel, room.Name);

Validate now that everything else (identity, db) in  place. This issue may be a caching issue?


DTSPO-16138 - Update cloudinit

Jira link (if applicable)
https://tools.hmcts.net/jira/browse/DTSPO-16138
Change description
Update cloudinit to use bash for installing dynatrace
Error message in cloudinit logs says bash is required
Checklist

[x] commit messages are meaningful and follow good commit message guidelines
[x] README and other documentation has been updated / added (if needed)
[x] tests have been updated / new tests has been added (if needed)
[x] Does this PR introduce a breaking change

Plan Result (nonprod_dynatrace_activegate)
Plan: 0 to add, 2 to change, 0 to destroy.

Update

azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate"]
azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate-private"]

Change Result (Click me)

  # azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate"] will be updated in-place
  ~ resource "azurerm_linux_virtual_machine_scale_set" "main" {
      ~ custom_data                                       = (sensitive value)
        id                                                = "/subscriptions/b44eb479-9ae2-42e7-9c63-f3c599719b6f/resourceGroups/dynatrace-activegate-nonprod/providers/Microsoft.Compute/virtualMachineScaleSets/dynatrace-activegate-nonprod-vmss"
        name                                              = "dynatrace-activegate-nonprod-vmss"
        tags                                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/dynatrace-activegate"
            "businessArea" = "CFT"
            "criticality"  = "Medium"
            "environment"  = "staging"
            "startupMode"  = "always"
        }
        # (24 unchanged attributes hidden)

        # (7 unchanged blocks hidden)
    }

  # azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate-private"] will be updated in-place
  ~ resource "azurerm_linux_virtual_machine_scale_set" "main" {
      ~ custom_data                                       = (sensitive value)
        id                                                = "/subscriptions/b44eb479-9ae2-42e7-9c63-f3c599719b6f/resourceGroups/dynatrace-activegate-nonprod/providers/Microsoft.Compute/virtualMachineScaleSets/dynatrace-activegate-private-nonprod-vmss"
        name                                              = "dynatrace-activegate-private-nonprod-vmss"
        tags                                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/dynatrace-activegate"
            "businessArea" = "CFT"
            "criticality"  = "Medium"
            "environment"  = "staging"
            "startupMode"  = "always"
        }
        # (24 unchanged attributes hidden)

        # (7 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.

Plan Result (prod_dynatrace_activegate)
Plan: 0 to add, 2 to change, 0 to destroy.

Update

azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate"]
azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate-private"]

Change Result (Click me)

  # azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate"] will be updated in-place
  ~ resource "azurerm_linux_virtual_machine_scale_set" "main" {
      ~ custom_data                                       = (sensitive value)
        id                                                = "/subscriptions/2b1afc19-5ca9-4796-a56f-574a58670244/resourceGroups/dynatrace-activegate-prod/providers/Microsoft.Compute/virtualMachineScaleSets/dynatrace-activegate-prod-vmss"
        name                                              = "dynatrace-activegate-prod-vmss"
        tags                                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/dynatrace-activegate"
            "businessArea" = "CFT"
            "criticality"  = "High"
            "environment"  = "production"
            "startupMode"  = "always"
        }
        # (24 unchanged attributes hidden)

        # (7 unchanged blocks hidden)
    }

  # azurerm_linux_virtual_machine_scale_set.main["dynatrace-activegate-private"] will be updated in-place
  ~ resource "azurerm_linux_virtual_machine_scale_set" "main" {
      ~ custom_data                                       = (sensitive value)
        id                                                = "/subscriptions/2b1afc19-5ca9-4796-a56f-574a58670244/resourceGroups/dynatrace-activegate-prod/providers/Microsoft.Compute/virtualMachineScaleSets/dynatrace-activegate-private-prod-vmss"
        name                                              = "dynatrace-activegate-private-prod-vmss"
        tags                                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/dynatrace-activegate"
            "businessArea" = "CFT"
            "criticality"  = "High"
            "environment"  = "production"
            "startupMode"  = "always"
        }
        # (24 unchanged attributes hidden)

        # (7 unchanged blocks hidden)
    }

Plan: 0 to add, 2 to change, 0 to destroy.


Provide support for picking the provisioner

Right now weirdo jobs are wired to use the ci.centos node provisioner by default.
We need to have a toggle to either turn off the provisioner entirely (i.e, provision on localhost) or use an arbitrary one.
I had originally designed weirdo with deployment on both ci.centos and openstack clouds in mind so things are already fairly decoupled -- though I slashed the openstack support to keep the scope as narrow and simple as possible.

current provisioning depends on the ci-centos writing an ansible inventory to be able to target [openstack_nodes]. just like the delorean_url, it would be possible to specify the target as an extra variable such as --extra-vars target_nodes=<IP_ADDRESS>. Or what would be the preferred approach?

I still need to think about it but basically the ci-centos role will be optional in the playbooks and you would invoke ansible-playbook with an inventory file with localhost inside the openstack_nodes group.

After commenting out the centos-ci provisioning tasks and providing a basic inventory fil, it is possible to run:
tox -e ansible-playbook -- -i ~/workspace/target -vv playbooks/packstack-scenario001.yml
where workspace/target refers to a basic Ansible inventory file, specifying either localhost or a remote target.
localhost ansible_connection=local

[openstack_nodes]
localhost

or
[openstack_nodes]
*remote_ip*

With the commits that went in today, I decided to give this a try. (fyi: @TristanCacqueray)
I was able to successfully run a full WeIRDO playbook from scratch on a fresh CentOS machine with the following (simple) script: https://gist.github.com/dmsimard/1e1b6fb7123c5c50519c065299f2e47c
There are some little tweaks to do (i.e, the log_destination being a bit weird, still works -- just weird, so I set it manually in the host vars) but it works.


Clicking on the public dataset icon generates a tooltip that doesn't get hidden

Go to the Data Library (or to the dashboard, if you imported a dataset from the library)
Put the cursor over the book icon.

A tooltip appears, but it won't get hidden after clicking outside or moving the mouse.

had a similar issue on the private dashboard, where the view didn't call this.clearSubViews() on the render call. Same issue?

It looks it could be the same problem, yes, but I haven't had a look yet.


[Modal] Add onRendered to ModalProps

@racingrebel It's a great first pull request on Material-UI 👌🏻. Thank you for giving it a shot!


Very Slow to Load/Import

Python 3.6
Every time I import the library, it is extremely slow (~50 seconds).
I don't have time to review the codebase right now for a solution, so I am going to look for other libraries, but this really is a huge problem when you just want to rattle off some code quickly in the shell.
I tried with Python 3.7 from Anaconda distribution and normal 3.6, but both were exceedingly slow. I also tried calling cpi.update() and then closing and re-opening the shell and importing again, but it was still extremely slow.

I'm having the same problem. I'm working only with "Housing" and just in New Jersey. Would it be possible to partition the data by "items" and/or "area" so as to reduce the load time?

Another strategy would be to target users who are looking to make only the most rudimentary CPI calculations using the CPI-U series. I have no evidence to back this up, but I suspect this would represent the lion's share of use cases. Were that to be a driving design principle, a carved out, slimmed down version containing only that data series could be initially imported, with access to the larger, more complete database only being made when requested.

How can I help implement this? I use cpi in a project that needs to put data from several sources on a consistent $-year. Not having to write and maintain code for this is worth the ~40-50 seconds needed to load cpi, but it would be great to cut down the import time.
Here is the lprun output for parsing all 21 files in parsers.FILE_LIST that happens on import (which is nearly all of the import time).
Total time: 46.1686 s
File: /Users/greg/opt/miniconda3/envs/powergenome/lib/python3.7/site-packages/cpi/parsers.py
Function: parse_indexes at line 180

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   180                                               def parse_indexes(self):
   181         1          7.0      7.0      0.0          logger.debug("Parsing index files")
   182                                                   # Loop through all the files ...
   183        22         72.0      3.3      0.0          for file in self.FILE_LIST:
   184                                                       # ... and for each file ...
<PHONE_NUMBER>    8193080.0      3.1     17.7              for row in self.get_file(file):
   186                                                           # Get the series
<PHONE_NUMBER>    8400675.0      3.2     18.2                  series = self.series_list.get_by_id(row['series_id'])
   188
   189                                                           # Create an object
<PHONE_NUMBER>    1090450.0      0.4      2.4                  index = Index(
<PHONE_NUMBER>     885840.0      0.3      1.9                      series,
<PHONE_NUMBER>    1695671.0      0.7      3.7                      int(row['year']),
<PHONE_NUMBER>    2739748.0      1.1      5.9                      self.periods.get_by_id(row['period']),
<PHONE_NUMBER>    5248789.0      2.0     11.4                      float(row['value'])
   195                                                           )
   196
   197                                                           # If the value has already been loaded ...
<PHONE_NUMBER>    8241058.0      3.2     17.8                  if index.date in series._indexes[index.period.type]:
   199                                                               # ... verify this value matches what we have ...
<PHONE_NUMBER>    5225930.0      4.5     11.3                      assert index == series._indexes[index.period.type][index.date]
   201                                                           else:
   202                                                               # ... and if the series doesn't have the index yet, add it.
<PHONE_NUMBER>    4447276.0      3.1      9.6                      series._indexes[index.period.type][index.date] = index

If only the cu.data.1.AllItems table is parsed, import time might drop to < 2 seconds
Total time: 1.46556 s
File: /Users/greg/opt/miniconda3/envs/powergenome/lib/python3.7/site-packages/cpi/parsers.py
Function: parse at line 151

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   151                                               def parse(self):
   152         1     208850.0 208850.0     14.3          self.series_list = self.parse_series()
   153         1    1256705.0 1256705.0     85.7          self.parse_indexes()
   154         1          1.0      1.0      0.0          return self.series_list

Total time: 1.08048 s
File: /Users/greg/opt/miniconda3/envs/powergenome/lib/python3.7/site-packages/cpi/parsers.py
Function: parse_indexes at line 180

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   180                                               def parse_indexes(self):
   181         1          6.0      6.0      0.0          logger.debug("Parsing index files")
   182                                                   # Loop through all the files ...
   183         2          3.0      1.5      0.0          for file in self.FILE_LIST:
   184                                                       # ... and for each file ...
   185     57618     241452.0      4.2     22.3              for row in self.get_file(file):
   186                                                           # Get the series
   187     57617     252653.0      4.4     23.4                  series = self.series_list.get_by_id(row['series_id'])
   188
   189                                                           # Create an object
   190     57617      21515.0      0.4      2.0                  index = Index(
   191     57617      18628.0      0.3      1.7                      series,
   192     57617      34797.0      0.6      3.2                      int(row['year']),
   193     57617      55336.0      1.0      5.1                      self.periods.get_by_id(row['period']),
   194     57617      99604.0      1.7      9.2                      float(row['value'])
   195                                                           )
   196
   197                                                           # If the value has already been loaded ...
   198     57617     177766.0      3.1     16.5                  if index.date in series._indexes[index.period.type]:
   199                                                               # ... verify this value matches what we have ...
   200                                                               assert index == series._indexes[index.period.type][index.date]
   201                                                           else:
   202                                                               # ... and if the series doesn't have the index yet, add it.
   203     57617     178725.0      3.1     16.5                      series._indexes[index.period.type][index.date] = index

I tossed a couple of ideas out in my first comment in the thread. I'm totally open to a proposal with a pull request.

I believe I have a solution to this problem prototyped in the lazy loader branch right now. If everything goes according to plan, I should have a solution released in the coming days. I mention this because I'd welcome any input or help roadtesting it in advance of the change. I am aiming for full backwards compatibility but that's easier said than done.


Unread Filter does the same thing as All Filter

Unread filter does the same thing as All filter
Reproduce: Have links marked as read and unread and set filter to unread
Expected outcome: Only unread items are in the list.
Actual Outcome: All items in list.

I believe the problem to be in filterproxymodel.cpp if a bool is in use the there are only 2 possible results true or false, if the bool is replaced by enums, a switch can be used to determine the outcome such as:
switch (MYENUM) {
case Read:
return WHATEVER;
case Unread:
return SOMETHINGELSE;
case ALL;
return BOTHWHATEVERANDSOMETHINGELSE;
}
Alternatively you can just return straight from your conditional statements.

Thx to you for your request , but I hope that I have already fixed this problem. Application will be updated today evening, I hope.


Using built in methods to format knex log messages in to runnable queries?

Environment
Knex version: 1.0.3
Database + version: mysql
OS: any
Feature discussion / request
Explain what is your use case
We log queries in dev by setting debug: true in config. This is generally useful to see what queries are running but the formatting of the log messages does not allow the queries to be copied directly in to a query console without interpolating all of the binding values in to the sql string.
So a query log looks something like this:
{
  method: 'select',
  options: {},
  timeout: false,
  cancelOnTimeout: false,
  bindings: [2],
  __knexQueryUid: 'J_SsZJXbQhF7tyzlXkjuW',
  sql: 'select `foo`.`bar` from `db`.`table` where `table`.`col` = ?'
}

and to get the actual query I need to replace ? with 2 to get
'select `foo`.`bar` from `db`.`table` where `table`.`col` = 2'

this is not fun when there are 40 bindings.
Explain what kind of feature would support this
In the knex config, I can intercept the log messages and format them before logging but there doesn't seem to be any builtin toString() type message for the logs.
This will log the message (as formatted in the example above):
const mysqlKnex = knex({
  ...
  log: {
    debug(message) {
      console.log(message);
    }
  }
});

but I would prefer to be able to do something like this:
const mysqlKnex = knex({
  ...
  log: {
    debug(message) {
      console.log(message.toString());
    }
  }
});

and have the log out put look like:
'select `foo`.`bar` from `db`.`table` where `table`.`col` = 2'

I don't see any such built in methods for message in the docs so it seems like my only option is implementing the interpolation code myself like:
const mysqlKnex = knex({
  ...
  log: {
    debug(message) {
      console.log(formatMyLogMessage(message));
    }
  }
});

Give some API proposal, how the feature should work
I guess the API proposal would be a toString method on message similar to the toString method on a query but that just interpolates the binding values in to the sql string.
Even better would just be a format config under log that would let you specify 'query' etc. and format the output accordingly (while keeping the option to format them manually like the examples above)
My hope is that this either already exists and I'm missing it or I'm just wrong about my approach here :)

Hi @gpspake,
I had similar needs in my project and ultimately decided to simply replace the bindings characters in places where I desire detailed logging - in my case I use specific event listeners. You can use this simple example and insert it where you need.
Hope it helps :)
const knex = require('knex')({
    ...dbConfig,
});

knex.on('query', query => {
    if (query && query.bindings) {
        query.sqlWithBindings = query.sql;
        query.bindings.forEach((param, index) => {
            const knexBindingChar = `$${index + 1}` // hardcode or insert logic for binding char by the database dialect you use .. ie. @p, :, $ and index value
            query.sqlWithBindings = query.sqlWithBindings.replace(knexBindingChar, Number.isNaN(Number(param)) && param !== 'null' ? `'${param}'` : param);
        });
    }
    console.log(query.sqlWithBindings || query.sql);
});

await knex
    .select()
    .from('users')
    .where('user_id', 1)
    .whereRaw('user_name = :userName', { userName: 'Admin' });

// select * from "users" where "user_id" = 1 and user_name = 'Admin'


scispacy model installation via PyPi / Spacy

There appears to be no straightforward option to include scispacy models as dependencies for PyPi projects.
Are there plans to distribute en_core_sci_sm with either:
pip install en_core_sci_sm
or
from spacy.cli import download
download("en_core_sci_md")

Hi, @vgainullin,
You can simply add the full url to the model to your requirements.txt file.
e.g
https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.2.4/en_core_sci_sm-0.2.4.tar.gz

@DeNeutoy, thanks for the reply. Correct me if I am wrong, but packaging for PyPi does not include dependencies specified in requirements.txt.

@vgainullin  Ah! Sorry you are right, I miss read your question. Spacy also does not provide this functionality, so it is unlikely we will. It's possible you can call spacy.cli.download with a url path, i'm not sure. Regardless, I don't think having models as dependencies is 100% useful (they can be large, you want to cache them in a way you don't want to with normal dependencies) so it's unlikely we will implement this. Sorry!


No fallbacks and distorted colors when true color is not supported

Current behaviour
When using hex() method in a terminal having only 256 colors, the following things happen:

There is no fallback to the closest color from 256-color palette,
The following output has distorted colors that can not even be forced to normal.

Expected behaviour

There should be fallback to the lower palette level, similar to Chalk behaviour, it should find a color closest to the requested one;
If a certain color is not supported, that should not alter the next output.

Reproduction Example
import { ansi256, hex, white } from "ansis";

const pink = hex("#F5A9B8");
const blue = hex("#5BCEFA");

// running in 256 colors mode
console.log(ansi256(199)("Color 199")); // works
console.log(pink("This should be pink")); // no fallback to 256
console.log(blue("This should be blue")); // no fallback to 256, wrong color
console.log("This should be default"); // does not return to default color
console.log(white("Forced white")); // can not even force white

Environment

OS: macOS
version of Node.js: v20.11.1
version of Webpack: not applicable
version of the Plugin<EMAIL_ADDRESS>
Additional context
Using built-in Terminal on MacOS having 256 colors.
For comparison, this is how it looks when running in iTerm having true color support

Here is a similar code, but using chalk v4.1.2
import chalk from "chalk";

const pink = chalk.hex("#F5A9B8");
const blue = chalk.hex("#5BCEFA");

console.log(chalk.ansi256(199)("Color 199"));
console.log(pink("This should be pink"));
console.log(blue("This should be blue"));
console.log("This should be default");
console.log(chalk.whiteBright("Forced white"));

Running it in built-in Terminal on MacOS having 256 colors gives the desirable output:

Hallo @RobinTail,
Thanks for the feature request!

I will check the issue with default color in the next output.
Yes, it is very important to have a fallback for a terminal supported 256 colors only.
I will implement it in the next version.

Grüß aus Köln

Yes, it is very important to have a fallback for a terminal supported 256 colors only.
I will implement it in the next version.

Thank you, @webdiscus
Ideally it should have fallbacks down to the minimal supported palette.
True color —> 256 colors —> 16 colors —> no colors.
For example, doing hex("#5BCEFA") in environment having 16 colors only, it should fall back approximately to cyan.

I have implemented the detection of color spaces: truecolor, 256 colors, 16 colors,  mono.
The fallback truecolor —> 256 colors —> 16 colors —> no colors works too.
I'm by testing and refactoring.

I'm glad to read it, @webdiscus , great news!
Let me know if you need any help.

@RobinTail
the new version 3.0.0 is released with fallback to supported color space.

Awesome! I'm going to try it today, @webdiscus

Dear @webdiscus ,
It works perfectly! Thank you so much for all the effort you applied to this feature and your attention to details.
I highly appreciate that you measured the performance and updated documentation.
Fallbacks, named imports, CommonJS compatibility — everything works well.
I tested it in iTerm, Terminal of MacOS and GitHub CI.

By the way, @webdiscus
I noticed you also switched to vitest, and I'd like to inform you that vitest now also has benchmarking tools:
https://vitest.dev/api/#bench
So that you can have a single dependency both for testing and benchmarking.
I use it myself and I like how it works.

@RobinTail
Thank You for the very useful feature request!
This makes the library even better.
I have invested a time to optimize performance and size for the new features.
New features adds in bundle only ~600 bytes and the code bundle is still < 4 KB.

vitest now also has benchmarking tools: https://vitest.dev/api/#bench

Thanks @RobinTail for the info.
Yes, I know, and I will switch the benchmark to vitest/bench, but in next step. First I wanted to release the feature and then optimize the benchmark.
Vitest is a very cool tools. This allow to test ESM modules "out of the box". Jest doesn't work with ESM in JetBrains IDEA, so I switched to vitest.

New features adds in bundle only ~600 bytes and the code bundle is still < 4 KB.

That's a great result, @webdiscus !
I highly appreciate your passion.
I think the issue is resolved, so I'm going to close it.
Thank you so much for all the support :)

@RobinTail
I have create some simple tests suits using vitest bench.
I am saddened :-(

it's still very raw and is not yet released:Benchmarking is an experimental feature.
Breaking changes might not follow SemVer, please pin Vitest's version when using it.

it's very very buggy and does not work stably. Using only 4 suits occurs fatal error:Allocation failed - JavaScript heap out of memory

test results are false and cannot be trusted, e.g., the simple bench for chalk.red('foo') and ansis.red('foo') have  results:chalk  7.000.000
ansis 23.000.000 (x3 faster than chalk - this is unreal/FALSE result)

To compare with the result of the benchmark:chalk 73.000.000
ansis 69.000.000 (this is TRUE result)

So, we cannot trust the results of the vitest bench.
We need to wait until the first release appears.

Alright, you seem to made a deep research on that topic.
Perhaps it's not yet ready for the project of your scale.
Regarding the accuracy of the measurements.
I think it's different because vitest runs the tests against the transformed code (using esbuild and rollup under the hood). Perhaps it does it differently for ansis and chalk.
I hope it will get better soon. Thanks for letting me know, @webdiscus


TextDirection.rtl isn't supported

Hello, I used for clock numbers but just worked for ltr not worked for rtl for example 48 seconds in rtl 84 seconds

Hello, I used for clock numbers but just worked for ltr not worked for rtl for example 48 seconds in rtl 84 seconds

Hi Amid, thanks for opening this issue. I'll look what I can change.

@aminsamad I'm sorry, I don't have much free time right now. If you'd like to contribute, please open a pull request. The code of the package is not that complex, so if you have some experience in Flutter, you should be able to add the right to left text support.

@aminsamad
You can use directionality and add textdirection LTR and since numbers always LTR directed may it work with you since it worked well for me and below is code.
Directionality(
textDirection: TextDirection.ltr,
child: SlidingNumber(
number: 230,
style: Theme.of(context).textTheme.headlineLarge!.copyWith(
color: kGradientButtonTextColor,
fontWeight: FontWeight.w700),
duration: const Duration(milliseconds: 1000),
curve: Curves.linear,
),
),


CUI-7390 Coral.Shell.MenuBar.Item button should have type="button"

Description
In AEM, so that pressing Enter key with focus on a Search button within a Shell.MenuBar will open dialog and set focus to the Search box in forms mode, announcing the combobox with its accessibility name, the Shell.MenuBar.Item button button should have type="button".
We also need a way to set aria-haspopup and aria-expanded properties for buttons within Shell.MenuBar.Item.
Related Issues
https://jira.corp.adobe.com/browse/CUI-7390
https://jira.corp.adobe.com/browse/CQ-4293363
How Has This Been Tested?

Types of changes

[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 change)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.

@icaraps, @adobe/coral-spectrum, @indra2gurjar, @CezCz

Can I get a review?


npm build not work

Hello! When I try call "npm: Run Build" script in CommandMenu or using MacBook TouchBar -
extension does not pick up npm script "build"
$ npm build
$ npm WARN build `npm build` called with no arguments. Did you mean to `npm run-script build`?

According to this npm build is no longer a valid command. It should be npm run build instead. Is this extension still maintained or did I miss a fix?

Will be fixed in 0.3.27


Added PhantAuth server template

PhantAuth is a Random User Generator + OpenID Connect Provider.
PhantAuth was designed to simplify testing for applications using OpenID Connect authentication by making use of random generated users. Like Lorem Ipsum, but for user accounts and authentication.
Check PhantAuth Developer Portal for more info: https://www.phantauth.net/
It is ideal for testing OpenID Connect workflows since it doesn't require any client or user registration.
Please merge this pr and deploy to https://openidconnect.net/

Sorry, it was a mistake, it should go to Auth0 forked repo..


Add possibility to report critical errors

Changes proposed in the pull request:

Added a button for reporting a serious translation error or an error in the source text, available only in the pairwise task
Updated the script for exporting scores
Added a regression test

Note that I started working on that before cleaning master/main branch, so some commit messages are appearing despite the fact that they are already in the main branch. Also note that it includes some pieces of code for extending this to reporting translation error types for future work.
@AppraiseDev/core-team

Need to look at this on an actual computer, not my phone 🙂

This is now in develop. Closing.


send text to avs

How to send text to Alexa instead of audio file? Is there any way?

Not that I am aware of. You can, however, send the text to a text to speech service then send hte resulting audio to alexa voice service using this client:

https://console.aws.amazon.com/polly/home/SynthesizeSpeech (select MP3 16000Hz)
convert it to wav: $ffmpeg -i input.mp3 -ar 16000 output.wav
Upload the AVS using this library


Dispatch events

I think we're missing an integral part of Lit I don't remember adding (and it flew over my head sorry) anythign related to dispatching events from the LitElement
class MyEventSource extends LitElement {

  raiseEvent() {
    const evt = new Event('my-event', { bubbles: true, cancelable: true, composed: true });
    this.dispatchEvent(evt)
  }

  render() {
     html`
       <button @click=${this.raiseEvent}>I will send an Event</button>
     `;
  }
}

in F# we would need to do something like this
[<Emit("new Event($0, $1)")>]
let createEvent name opts = jsNative

[<LitElement("my-event-source")>]
let private MyEventSource () =
  LitElement.init()
  let raiseEvent ev =
    let evt = createEvent "go-back" {| bubbles = true; composed = true; cancelable = true |}
    (ev.target :?> HTMLElement).dispatchEvent evt

  html
    $"""
       <button @click={raiseEvent}>I will send an Event</button>
  """

Which I guess it's fine, but the target of the event won't be the web component itself (as in Lit) but the button that is dispatching the event
I think if we add a helper function in the LitElement class defined here
type LitElement() =
   (* ... other members ... *)
   static member inline dispatchEvent (event: Event) =
       // I'm not sure if this is really the HTMLElement but my intuition tells me so
       jsThis<HTMLElement>.dispatchEvent(event)

could fix the dispatch target.
[<Emit("new Event($0, $1)")>]
let createEvent name opts = jsNative

[<LitElement("my-event-source")>]
let private MyEventSource () =
  LitElement.init()
  let raiseEvent ev =
    let evt = createEvent "go-back" {| bubbles = true; composed = true; cancelable = true |}
    LitElement.dispatchEvent evt

  html
    $"""
       <button @click={raiseEvent}>I will send an Event</button>
  """

The creation of events can be worked in the fable-browser repo because I think we've (mostly I, plead guilty) been recently adding helpers in many of the samples and I think that should belong there to be honest 😀
Reference: https://lit.dev/docs/components/events/#dispatching-events

Yes, we should add a helper to dispatch custom events, thanks for the reminder :+1: And we should also make it easier to get a reference to the this instance. Maybe returning it together with the props in the LitElement.init function?
About fable-browser, right now is what we call a "pure binding" meaning the package only contains metadata and no actual code. So we only need to reference the .dll so the F#/Fable compiler doesn't need to parse the sources. Because of this, it's better not to add helpers for now. Having them in Fable.Lit should work 👍


Create a pip install ability?

Can we put this on pypi so that others can easily download it? It's a little janky to download and install from repo.

I agree


[QUESTION]: .npy bulk_insert problem

Is your question answered elsewhere?

[X] searched the existing issues.
[X] read the documentation.

What is your question?
milvus version 2.4.1 .npy bulk_insert Writes a recurring error log, Is there any problem?
[2024/05/20 03:03:05.022 +00:00] [WARN] [datanode/services.go:225] ["compaction plan contains segment which is not flushed"] [traceID=81390a89f3bd52bb3f7f5ead8d6758fc] [planID=449883080978496091] [segmentID=449883080975841543]
[2024/05/20 03:03:05.022 +00:00] [WARN] [datacoord/session_manager.go:203] ["failed to execute compaction"] [node=1] [error="segment with flushed state not found: segment not found[segment=449883080975841543]"] [planID=449883080978496091]
[2024/05/20 03:03:05.022 +00:00] [WARN] [datacoord/compaction.go:401] ["Failed to notify compaction tasks to DataNode"] [traceID=81390a89f3bd52bb3f7f5ead8d6758fc] [planID=449883080978496091] [nodeID=1] [error="segment with flushed state not found: segment not found[segment=449883080975841543]"]
Look forward to your reply.
Anything else?
No response

milvuslog.txt

thanks for reporting this issue. since this does not appear to be a doc issue, i'd suggest opening a new issue in the main Milvus repository at https://github.com/milvus-io/milvus/issues. the Milvus team will be better able to assist you there :)