DatabaseTarget - Added PrepareDbCommand for faster insert

Configure like this (The AsyncWrapper activates batching):
<targets>
    <target name="db" type="AsyncWrapper" timeToSleepBetweenBatches="100">
            <target name="wrapped_db" xsi:type="Database" prepareDbCommand="True">
                  <commandtext>INSERT INTO FooBar VALUES(@msg, @lvl)</commandtext>
                  <parameter name="@msg" layout="${message}" dbType="String" />
                  <parameter name="@lvl" layout="${level}"  dbType="String" />
            </target>
    </target>
</targets>
<rules>
   <logger name="*" minlevel="Debug" writeTo="db" />
</rules>

PrepareDbCommand activates https://docs.microsoft.com/dotnet/api/system.data.idbcommand.prepare and reuses the same DbCommand for the entire batch (Just replacing the dbcommand-parameter-values)
One needs to explicitly configure the DbType for each parameter to avoid this error:

System.InvalidOperationException: SqlCommand.Prepare method requires all parameters to have a
n explicitly set type.

Custom pre-release-build for those who wants to test (Just remove zip-extension):
NLog.4.6.0-PR3131.nupkg.zip

Custom pre-release-build for those who wants to test performance (Just remove zip-extension):
NLog.4.6.0-PR3131.nupkg.zip

Thanks! moved it to https://github.com/NLog/NLog/pull/3132, so we could easy integrate it into dev and master.

Could this become NLog 4.6, because this is actually a breaking change if NLog 4.6 is released.

Also ready to separate PR that just includes the breaking change in CreateDatabaseParameter. Just to prepare for this PR.

please rebase on dev, thanks!

@304NotModified  please rebase on dev, thanks!

Done

Custom pre-release-build for those who wants to test performance (Just remove zip-extension):
NLog.4.6.0-PR3131.nupkg.zip

2019-02-21 18:33:54.0713 Error DatabaseTarget(Name=wrapped_db): Error when writing to database. Exception: System.InvalidOperationException: SqlCommand.Prepare method requires all parameters to have a
n explicitly set type.
at System.Data.SqlClient.SqlParameter.Prepare(SqlCommand cmd)
at System.Data.SqlClient.SqlCommand.Prepare()
at NLog.Targets.DatabaseTarget.WriteEventToDatabase(IDbCommand command, LogEventInfo logEvent, Layout commandLayout, IList1 databaseParameterInfos, Boolean prepareDbCommand)    at NLog.Targets.DatabaseTarget.Write(IList1 logEvents)

I received this error. I'm going home tonight and will see if I'm missing an attribute on the parameter nodes, but I've essentially mirrored your example + added my connection string.

I received this error. I'm going home tonight and will see if I'm missing an attribute on the parameter nodes, but I've essentially mirrored your example + added my connection string.

Thanks for testing. Have updated the xml in the original issue-post with dbType for each parameter. Please update your test config and try again. See also: https://docs.microsoft.com/en-us/dotnet/api/system.data.dbtype

I received this error. I'm going home tonight and will see if I'm missing an attribute on the parameter nodes, but I've essentially mirrored your example + added my connection string.

Thanks for testing. Have updated the xml in the original issue-post with dbType for each parameter. Please update your test config and try again. See also: https://docs.microsoft.com/en-us/dotnet/api/system.data.dbtype

I tried adding dbType earlier, but I used "int32" as the documentation for DatabaseTarget had an example in lower case. But maybe it's case sensitive. I will try it out with "Int32" instead.

I tried adding dbType earlier, but I used "int32" as the documentation for DatabaseTarget had an example in lower case. But maybe it's case sensitive. I will try it out with "Int32" instead.

Else try doing this instead:
<parameter name="@level" layout="${level:format=ordinal}" dbType="SqlDbType.Int" />

System.InvalidOperationException: SqlCommand.Prepare method requires all parameters to have a
n explicitly set type.

PS: I think we won't do that by default, nor we can do because of backwards comp. So specify al DBtype attributes indeed

I tried adding dbType earlier, but I used "int32" as the documentation for DatabaseTarget had an example in lower case. But maybe it's case sensitive. I will try it out with "Int32" instead.

Else try doing this instead:
<parameter name="@level" layout="${level:format=ordinal}" dbType="SqlDbType.Int" />

I tried both Int32 and SqlDbType.Int with no luck yet; the same error appears. Does this configuration appear to be correct?
  <targets>
    <target name="asyncDatabase" type="AsyncWrapper" timeToSleepBetweenBatches="10000" queueLimit="100" overflowAction="Grow">
      <target name="wrapped_db" connectionstring="${gdc:item=ConnectionString}" xsi:type="Database" prepareDbCommand="True" keepConnection="true">
        <commandText>
          INSERT INTO Logging ([Identifier]) VALUES (@Id);
        </commandText>
        <parameter name="@Id" dbType="SqlDbType.Int" layout="${event-properties:item=Id}"/>
      </target>
    </target>
  </targets>

config looks valid. Could you please capture and post the internal log ? (trace level)

config looks valid. Could you please capture and post the internal log ? (trace level)

I forgot to post an update earlier, but this was due to a brain fart where I hadn't cleaned/rebuilt the solution so the nlog.config file being used was from my first attempt. I was able to bind the parameter in my example as well as dbTypes of SqlDbType.VarChar by specifying the size/length attributes as well.

🎉 great news! Looking forward to the results!

@kwaak maybe this feature is also nice for you :)

@304NotModified Improved the logic when using non-string DbType where Layout-result is string.Empty. Returning default-value instead of errors about unable to convert empty string.

PS ;)

would recommend against calling SqlCommand.Prepare() because the only potential benefit is saving network packets while the downside is taking up more server memory.

https://dba.stackexchange.com/a/129721/32229
... to measure is to know... :)

... to measure is to know... :)

Don't mind removing the Prepare, and just change the parameter to be ReuseDbCommand
Extra caching is needed for SqlClient as SqlCommand-constructor starts as unprepared.

@D9001 Attached an updated build with caching of prepared DbCommands (See original post where new attachment has been added NLog.4.6.0-PS3131.nupkg.zip)

@D9001 Btw NLog tries to perform correct type-conversion based on DbType. But when using "special" types like  SqlDbType.Int then it fails to guess the correct value-type. You can help NLog by doing this (Adding parameterType="System.Int32"):
<parameter name="@ManagerId" layout="${event-properties:item=ManagerId}" dbType="SqlDbType.Int" parameterType="System.Int32" />
NLog will only guess correctly for "special" DbTypes when having these names: Date, TimeStamp, Double, Decimal, Bool, Guid

@snakefoot Thanks for the update. I've added the parameterType attributes for each parameter and have updated the NuGet package used in our test environment.

@D9001 Thank you for the update about what happens on the Server-side. Could you activate the NLog InternalLogger on Trace-Level, so one could see what happens on the Client-side?
See also: https://github.com/NLog/NLog/wiki/Internal-logging (Might have to check the log-file for sensitive information before posting to github).
Btw. if performance is important then you should NOT use the BufferingWrapper. Instead use the AsyncWrapper as shown in the first post for this PR. Make sure that your logger-rules points to the wrapper-target and not the database-target or else the batching will not be activated.

@D9001 Thank you for the update about what happens on the Server-side. Could you activate the NLog InternalLogger on Trace-Level, so one could see what happens on the Client-side?
See also: https://github.com/NLog/NLog/wiki/Internal-logging (You might have to check the log-file for sensitive information before posting it here on github).
Btw. if performance is important then you should NOT use the BufferingWrapper (Mostly for throttle and to ensure high latency). Instead use the AsyncWrapper as shown in the first post for this PR. Make sure that your logger-rules points to the name of the wrapper-target and not the database-target or else the batching will not be activated.

Ah, thanks for explaining that. I thought I had read that BufferingWrapper provided the same functionality as AsyncWrapper as long as sliding timeouts were enabled. I figured it was better since I originally thought it would create one long insert statement. I'll swap to the AsyncWrapper and test that out with internal logging enabled also.

Here's the internal logging from a regular run (not performance) with some sensitive information I've omitted in between: https://justpaste.it/20eml

@D9001 That doesn't look good. Huge latency in the communication with the Database-instance. Guess a solution with sending an entire DataTable is needed for this case.

@D9001 Would you mind trying out #3150 ? (Use xsi:type="DataTable" instead of xsi:type="Database" and configure the parameter updateBatchSize="200"`)

@304NotModified The changes in this PR should still reduce client-side overhead for those using the DatabaseTarget with a local database-instance (without high latency)

This can be closed in favor of #3150?

@304NotModified Have now removed the PrepareDbCommand-logic and instead just made the change to the new NLog 4.6 method: CreateDatabaseParameter

It will create a value for all situations except when extracted rawvalue matches dbtype
Sent from my Sony Xperia
---- Julian Verdurmen wrote ----
@304NotModified commented on this pull request.

In src/NLog/Targets/DatabaseTarget.cshttps://github.com/NLog/NLog/pull/3131#discussion_r262997383:

@@ -884,7 +878,7 @@ protected virtual IDbDataParameter CreateDatabaseParameter(IDbCommand command, D
///
/// Current logevent.
/// Parameter configuration info.

   protected internal virtual object GetParameterValue(LogEventInfo logEvent, DatabaseParameterInfo parameterInfo)

   protected internal virtual object CreateDatabaseParameterValue(LogEventInfo logEvent, DatabaseParameterInfo parameterInfo)

IMO this is more a retrieve/get then a create. It won't create (new) things?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/NLog/NLog/pull/3131#pullrequestreview-211301390, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AK-fnIicl_qP7HrJzKdqS3qsIITcm9d8ks5vT-DMgaJpZM4bGOaP.


Confusing empty output when ran against hidden file

Describe the bug
When you run lsfp against a hidden file, for example when running lsfp .editorconfig, no output is provided, which leads to confusion as you do not know if the file does not exist or what is going on at all. The problem is caused by the following code in the print_item function:
if !flags.all && file_detection::is_hidden(&path) {
    return;
}

As far as I understand, the problem comes when this function is called on a single hidden file, as it returns void, causing the main function to print no content to the screen. A solution may be passing to this function an additional parameter, which evaluate to true if the code is being ran against a single file, then the function returning as if the file was not hidden and therefore getting a proper output.
To Reproduce
Run the code against any single file which is hidden. This does not happen with a file that is not hidden, or with a hidden directory (prints content):
$ lsfp .gitignore

$ lsfp Cargo.toml
Cargo.toml

$ lsfp .vscode
extensions.json
settings.json

Expected behavior
Probably the best would be to just print the file as if was not hidden, but I am sure there are many other possibilities.
Additional context
I have never written any Rust code in my life, except when I added some licenses, but that was not really coding. I would be happy to take this as my first Rust code and challenge if you are fine with that! 😄

Sure, go right ahead! I appreciate your help.

This issue was solved in pull request #33


[Feature]: As a user I want to know what changes have been made when we say "Some changes are platform upgrades from Appsmith"

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
As a user I want to know what changes have been made when we say "Some changes are platform upgrades from Appsmith"
{
    "responseMeta": {
        "status": 200,
        "success": true
    },
    "data": {
        "modified": [
            "metadata.json"
        ],
        "added": [],
        "removed": [],
        "conflicting": [],
        "isClean": false,
        "modifiedPages": 0,
        "modifiedQueries": 0,
        "modifiedJSObjects": 0,
        "modifiedDatasources": 0,
        "aheadCount": 0,
        "behindCount": 0,
        "remoteBranch": "refs/remotes/origin/master",
        "discardDocUrl": "https://docs.appsmith.com/core-concepts/version-control-with-git/pull-and-sync#discard-and-pull-changes"
    }
}

Why should this be worked on?
It gives user correct info

Solving with #24668


Cryptography ImportError: /lib64/libc.so.6: version `GLIBC_2.28'

When trying to run a Fractal server at FMI from a machine on CentOS8 submitting to a CentOS7 cluster, I ran into the following error:
File "/path/to/fractal-server-1.2.2/lib/python3.9/site-packages/jwt/utils.py", line 7, in <module>
    from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurve
  File "/path/to/fractal-server-1.2.2/lib/python3.9/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py", line 10, in <module>
    from cryptography.hazmat._oid import ObjectIdentifier
  File "/path/to/fractal-server-1.2.2/lib/python3.9/site-packages/cryptography/hazmat/_oid.py", line 7, in <module>
    from cryptography.hazmat.bindings._rust import (
ImportError: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /path/to/fractal-server-1.2.2/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so)
srun: error: vcl1049: task 0: Exited with exit code 1

Apparently, when I install fractal server from the CentOS8 machine, it installs cryptography in a way where it can't be used correctly on the cluster nodes afterwards.
First thing I'll try is installing the fractal-server-1.2.2 environment from a CentOS7 machine as well and checking if that can then be used on both the CentOS8 fractal-server machine as well as on the cluster. I'll report updates to this issue

Given that this affect the server environment and not the task environment, we luckily already have a good solution in place!
Using the FRACTAL_SLURM_WORKER_PYTHON, one can set the the Python env that is used for server-work on the cluster side.
The only addition needed to fix this issue: Don't create that second Python version from the CentOS 8 machine, but from another CentOS7 machine that is equivalent to the cluster. If that Python env works on the cluster and is set via FRACTAL_SLURM_WORKER_PYTHON, the issue is solved :)


look ahead

m_targetPosX must be recorded as frames in simulation frame to avoid race conditions.
I have basically mimicked the way CS is recording frames. only this way I can ensure smooth functionality.

will break up


Error In README.md

In the README file, the name of the file which contains feature extraction code should be feature_extraction.py, which is misprinted in file.

I can work on it. Thanks.


Can we have an example on how to use MongoSource?

Just how we have an example of a Sink, I'd like to see one for the experimental source.

There are tests already available on github.


A11y_Model Builder_Create New Experiment_Keyboard: Keyboard focus is going to invisible content for two tab strokes after account picker button in 'Create new experiment' button.

Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.
GitHubTags:
#A11y_Model Builder; #A11yMAS; #A11yTCS; #WCAG2.4.3; #Focus Order; #Keyboard; #Win32; #DesktopApp; #A11ySev2; #ModelBuilder-Win32-Jun2021; #Visual Studio Client;
Environment Details:
Application name: Model Builder
OS Details:
Windows Version 21H1 OS Build (19043.1083)
Microsoft Visual Studio
Repro Steps:

Enable ML.NET Model builder as a preview feature in tools>options>Environment>preview features.
Create a .NET C# project and tab till project under solution explorer and Add machine learning.
Tab till Image classification under scenario tab and press enter.
Select Azure under environment tab and tab till set up workspace and press enter.
In 'Create New Experiment' dialog tab till account picker control and press tab
Verify keyboard focus goes invisible content for two tab strokes

Actual Result:
Keyboard focus is going to invisible content for two tab strokes after account picker button in 'Create new experiment' button.
Expected Result:
Keyboard focus should not go to invisible content for two tab strokes after account picker button in 'Create new experiment' button. After account picker control, keyboard focus should land on 'subscriptions' dropdown, Focus order should always be continuous.
User Impact:
Keyboard users will not understand where focus is landing and might get confused if focus is lost for 2 tab strokes continuously

This is not reproducible on the current latest main.

Issue is fixed. After account picker, keyboard focus is going to 'Subscriptions' dropdown. Focus is not going to invisible content.
https://user-images.githubusercontent.com/83570638/128997139-ac5f88bb-93cd-4639-91dd-0b4c51baabf5.mp4

#Closed;


[Bug] coarse texture generation failed if setting the material_type as "pbr-material"

edit the humannorm-texture-coarse.yaml as below:
material_type: "pbr-material"
material:
    material_activation: sigmoid
    environment_texture: "load/lights/mud_road_puresky_1k.hdr"
    environment_scale: 2.0
    min_metallic: 0.0
    max_metallic: 0.0
    min_roughness: 0.7
    max_roughness: 0.9
    use_bump: true

  # material_type: "no-material"
  # material:
    # n_output_dims: 3
    # color_activation: sigmoid

err occur when gen atlas of stage2 and concerned info pasted below:
[INFO] Using xatlas to perform UV unwrapping, may take a while ...
--- Generated Atlas ---
Utilization: 71.477982%
Charts: 11139
Size: 4521x4485

Traceback (most recent call last):
  File "/mnt/sdb/humannorm/launch.py", line 237, in <module>
    main(args, extras)
  File "/mnt/sdb/humannorm/launch.py", line 180, in main
    trainer.fit(system, datamodule=dm, ckpt_path=cfg.resume)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 538, in fit
    call._call_and_handle_interrupt(
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 47, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 574, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 981, in _run
    results = self._run_stage()
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 1025, in _run_stage
    self.fit_loop.run()
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 205, in run
    self.advance()
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py", line 363, in advance
    self.epoch_loop.run(self._data_fetcher)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/training_epoch_loop.py", line 140, in run
    self.advance(data_fetcher)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/training_epoch_loop.py", line 250, in advance
    batch_output = self.automatic_optimization.run(trainer.optimizers[0], batch_idx, kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 190, in run
    self._optimizer_step(batch_idx, closure)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 268, in _optimizer_step
    call._call_lightning_module_hook(
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 167, in _call_lightning_module_hook
    output = fn(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/core/module.py", line 1306, in optimizer_step
    optimizer.step(closure=optimizer_closure)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/core/optimizer.py", line 153, in step
    step_output = self._strategy.optimizer_step(self._optimizer, closure, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 238, in optimizer_step
    return self.precision_plugin.optimizer_step(optimizer, model=model, closure=closure, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/plugins/precision/amp.py", line 78, in optimizer_step
    closure_result = closure()
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 144, in __call__
    self._result = self.closure(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/utils/_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 129, in closure
    step_output = self._step_fn()
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py", line 317, in _training_step
    training_step_output = call._call_strategy_hook(trainer, "training_step", *kwargs.values())
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py", line 319, in _call_strategy_hook
    output = fn(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py", line 390, in training_step
    return self.lightning_module.training_step(*args, **kwargs)
  File "/mnt/sdb/humannorm/threestudio/systems/humannorm.py", line 71, in training_step
    out = self(batch)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl
    return forward_call(*args, **kwargs)
  File "/mnt/sdb/humannorm/threestudio/systems/humannorm.py", line 39, in forward
    render_out = self.renderer(**batch, render_rgb=self.cfg.texture)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl
    return forward_call(*args, **kwargs)
  File "/mnt/sdb/humannorm/threestudio/models/renderers/nvdiff_rasterizer.py", line 146, in forward
    rgb_fg = self.material(
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/mnt/sdb/conda/envs/hunorm/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl
    return forward_call(*args, **kwargs)
  File "/mnt/sdb/humannorm/threestudio/models/materials/pbr_material.py", line 73, in forward
    perturb_normal = (material[..., 5:8] * 2 - 1) + torch.tensor(
RuntimeError: The size of tensor a (0) must match the size of tensor b (3) at non-singleton dimension 1

please explain why the material can not be added in textture generation and how to fix above err

@xhuangcv


Release 1.0.3

Codecov Report

Merging #86 (9cbba9a) into main (7ffe8be) will increase coverage by 0.75%.
The diff coverage is 63.07%.

@@            Coverage Diff             @@
##             main      #86      +/-   ##
==========================================
+ Coverage   48.68%   49.43%   +0.75%
==========================================
  Files           9       11       +2
  Lines         304      356      +52
==========================================
+ Hits          148      176      +28
- Misses        148      168      +20
- Partials        8       12       +4

Impacted Files
Coverage Δ

pkg/cmd/cryptography/decrypt.go
67.39% <56.25%> (-10.99%)
:arrow_down:

pkg/cmd/cryptography/encrypt.go
81.57% <56.25%> (-18.43%)
:arrow_down:

pkg/cmd/cryptography/genPassphrase.go
65.51% <65.51%> (ø)

main.go
100.00% <100.00%> (ø)

pkg/cmd/cryptography/cryptography.go
76.47% <100.00%> (+1.47%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


The 1.2.0 release is not API compatible with 1.1.1, breaking SemVer assumptions

The 1.2.0 release broke the API, and thus should have been 2.0.0
The breaking change came in https://github.com/holiman/uint256/commit/b323bdcae551374e5fd126f9ba09729127759788
Where NewInt() changed to NewInt(val uint64).
This breaks MVS, and thus all libraries depending on your library, like go-ethereum where currently new developers importing go-ethereum will get the latest compatible version of uint256 (the latest in version 1 which is 1.2.0) but is not actually compatible.
The result is new developers not being able to build their projects.
The steps to rectify this is:

retract version 1.2.0 so that MVS no longer selects it, see: https://golang.org/ref/mod#go-mod-file-retract
tag a new 2.0.0 version

Apologies for the inconvenience, but it's moot at this point to change. uint256 is primarily built for go-ethereum, and I'm not going to retroactively fix this. Updating major version number is simply too cumbersome for such a tiny change -- but yes, in hindsight I agree it would have been the right thing to do.


feat: [IDP-2617]: Added the release notes for IDP v0.25.0

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: Added the release notes for IDP v0.25.0

PR lifecycle
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[x] Code owner review.
[x] No merge conflicts.
[x] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://661613ac39e74e8578bc02a0--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66162ab90a2e5994c16c5e43--harness-developer.netlify.app


setting res.use_express_redis_cache=false in error handler

Hi,
Is it possible to switch off caching of error responses? Setting res.use_express_redis_cache=false in error handler has no effect because it is called after cache.route().

Hey, I believe you should be able to do this by setting TTL to 0 for all error status codes, but that's not currently working (#59).
var cache = require('express-redis-cache')({
  expire: {
      '2xx': 5000,
      //These currently don't work correctly
      '4xx': 0,
      '5xx': 0,
      xxx: 0,
    },
});

This has been resolved now @pswoodworth, so @artursudnik should be able to use this now.

I tried this appraoch,unfortunately I still get cached results for error pages, and even worse, with a wrong  status code. the issues happens for dynamic routes. e.g.
/:city/:name
if the city is not found, the route does a "next()" which can lead to a 404..  this gets somehow cached, and next time a 200 status coe with the error page is returned.

Ran into this as well, shouldn't express-redis-cache check after the route completes as well?
I can see here ( https://github.com/rv-kip/express-redis-cache/blob/06928aa87d084336bde4ceb4db2c6bed97a1eabd/lib/ExpressRedisCache/route.js#L74-L77 ) that we check res.use_express_redis_cache to bypass the cache (calling next()), but in the wrapped res.send() ( https://github.com/rv-kip/express-redis-cache/blob/06928aa87d084336bde4ceb4db2c6bed97a1eabd/lib/ExpressRedisCache/route.js#L180-L207 ), we could also check to see if it has been set by the route / middleware.
@rv-kip I think I could easily submit a PR, would you accept one?

@weisjohn absolutely! please send a PR to the dev branch.

What ended up happening with this issue? Are error results still being cached?


undefined method `exists?' for File:Class

Hi,
Using racksh in a Sinatra + Sequel project. In my gemfile:
group :test, :development do
  gem 'racksh', '~> 1.0'
end

however running racksh from root runs into a problem:
❯ racksh
/Users/thiebo/.rvm/gems/ruby-3.2.1/gems/racksh-1.0.0/lib/racksh/init.rb:28:in `init': undefined method `exists?' for File:Class (NoMethodError)

      eval(File.read(rcfile)) if File.exists?(rcfile)
                                     ^^^^^^^^
Did you mean?  exist?
	from /Users/thiebo/.rvm/gems/ruby-3.2.1/gems/racksh-1.0.0/bin/racksh:19:in `<top (required)>'
	from /Users/thiebo/.rvm/gems/ruby-3.2.1/bin/racksh:25:in `load'
	from /Users/thiebo/.rvm/gems/ruby-3.2.1/bin/racksh:25:in `<main>'
	from /Users/thiebo/.rvm/gems/ruby-3.2.1/bin/ruby_executable_hooks:22:in `eval'
	from /Users/thiebo/.rvm/gems/ruby-3.2.1/bin/ruby_executable_hooks:22:in `<main>'

FYI, I merged this https://github.com/sickill/racksh/pull/15 over at https://github.com/spinels/racksh and published spinels-racksh (https://rubygems.org/gems/spinels-racksh)

Fixed in https://github.com/sickill/racksh/pull/15

Fix published in 1.0.1: https://rubygems.org/gems/racksh/versions/1.0.1


[Create New Issue]: Important Resources and Books

Description
Important Resources and Books.
Domain
Interview Prep
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assigned

/assign

/assign


Normal usage state without "Connector"

possible?

The short answer, it depends :)
The long answer:
If we're talking about components, then no, it is not recommended and not supported.
You should use "Connector" to connect your component to the store.
Connecting components to the store is idiomatic to React-Redux and I've tried to have the same pattern for Blazor-Redux.
If we're talking about some other parts of the application, you can certainly inject the IStore interface directly and subscribe to state change and read the state directly,
Can you elaborate more on the scenario that you have where "Connector" does not fit?

I was looking for a state manager implementation that supports redux-dev-tools and doesn't force me to write a lot of code.
And using connector's I have to write a lot of code, as well as violate the architectural approach to development on blazor.
Thanks for reply for my question, I chose blazor-state and until that me this option suits :)

@0xF6, sure, I'll close the issue. Just out of curiosity, what architectural approach you're referring to?


Reduce scope in ExactAFCalculator uses a poor criterion to choose what alternative alleles to keep; we can do better than that.

@vruano commented on Wed May 18 2016
Bug Report
Affected tool(s)
All tools that use AFCalculators (HC, GenotypeGVCFs etc).
Affected version(s)

master.

Description
When a alternative allele number reduction is needed (e.g. when the number of alt.alleles is larger than --maxAltAlleles). ExactAFCalculator descendants reduce the number of alt alleles using the reduceScope method.  Different implementation of the exact-af-calculator may differ slightly on this but for the most part all of them apply the following algorithm:
For each sample, get its PLs, get the best genotype based on those. Then for the alleles included in that genotype increase their "best allele score" by the GQ of the genotype.
Then we chose those alleles that have the highest scores.
I guess often this is ok when we are dealing with many samples and the "good" alleles are present in the top genotypes with high confidence in a few samples and the "bad" alleles are not. However one can see how this criterion fails when either we are working with just a few samples (e.g. 1 sample in HC GVCF mode) or with low coverage data.
For example with a single sample only the alleles in the best genotype may have a score different than 0. All the rest have the same probability of been picked up if maxAltAlleles gives us room for more. Despite that the likelihoods of other genotypes may indicate which ones are a better choice amongst the "loosers" we throw that info away.
Proposed solution.
Simply do a quick and dirty AF estimation and choose the alleles with the larger frequencies. This estimate should use all the genotype likelihoods rather than just the top genotype giving a nominal score for all the alleles that would allow us to sort them all and make a better and less arbitrary selection.

@vdauwera commented on Mon Nov 14 2016
I believe this was done by @vruano and @SHuang-Broad already -- right guys? Can we close this?

@SHuang-Broad commented on Tue Nov 15 2016
My understanding of the current state is that there are several possible places with alt allele reduction in HC, in order:

The fix I put in, to prevent the calculator from becoming too slow or blow up, so downstream steps won't even include these alleles in their likelihood calculations;
The fix Valentine put in, which happens after the read likelihoods are calculated (and optionally down-sampled).

The relevant code is in HaplotypCallerGenotypingEngine.java around lines 267-279.
This is the state in GATK3, in GATK4 the second possibility is not ported yet.
Regarding alt allele reduction in AF calculator, has this been ported back to GATK3?

@SHuang-Broad commented on Tue Nov 15 2016
By "possible place" I mean they don't always remove alt alleles, just when certain conditions are met, and are independent.

@vdauwera commented on Tue Nov 15 2016
I don't think https://github.com/broadinstitute/gatk/pull/1918 has been backported, no.

@SHuang-Broad commented on Mon Dec 19 2016
Looking more closely, isn't this done already in #1377  ? @vruano ?

@vdauwera commented on Mon Mar 20 2017
@SHuang-Broad @vruano Status update on this?

@vruano commented on Mon Mar 20 2017
@SHuang-Broad this is not fixed by #1377 as this makes reference to the selection executed by the AFCalculator... it might be that @davidbenjamin now AF calculator addressed the issue, but is also possible that he avoid it it entirely and just focused in the new QUAL calculation.

@vruano commented on Mon Mar 20 2017
Looking at the code I made reference in GATK3, it seem that it is still faulty... I guess we need to take a look on whether in GATK4 has been fixed and then back-ported if people are interested.

@vdauwera commented on Mon Mar 20 2017
Alright, thanks for the update. At this point we don't care too much about fixing it in GATK3; we're all about moving forward with GATK4. Do you want me to move this issue to GATK or do you already have an issue for this there?

The new qual score doesn't subset alleles at all because it doesn't need to.  AlleleSubsettingUtils handles this upstream of the new qual.  We're waiting on the HaplotypeCaller tie-out to eliminate the old qual from GATK 4, however.

Ah, do I understand correctly that if the new qual checks out and the old one can be eliminated, this issue no longer applies?

Well, it's possible that people aren't satisfied with allele reduction in general (@vruano and @SHuang-Broad have thoughts on this, I believe), but it won't have anything to do with the AFCalculator.

@vdauwera And just to be clear, if I understood correctly everyone was satisfied in November with the new qual and we are just waiting for HaplotypeCaller to check out in GATK 4 before making any changes like pulling the plug on the old qual.  The reason is that we're looking for GATK 4 results to match as exactly as possible and subbing in the new qual would complicate that.

Ah yes my bad -- we are indeed just waiting on the tie outs to get rid of the old qual and make the new one default. I commented before the full context had resurfaced in my memory... Which means it's bedtime for my brain cells.

Seeing as I just pressed the "close" button by mistake my brain cells could benefit from the same.

Issue moved to broadinstitute/gatk #2958 via ZenHub


Correct meeting time. Fixes https://github.com/chaoss/wg-evolution/is…

Correct meeting time. Fixes https://github.com/chaoss/wg-evolution/issues/416
Signed-off-by: lucasgonze<EMAIL_ADDRESS>

Thanks @lucasgonze


Allow ESC key to close modal ?

ESC to close modal as default option
maybe we can override default behavior by pass an option

Hi @crapthings !
Yes, of course. I'll think about that in a new version.
Thanks.

@marcio Any News ?

Did on v0.5.0!


I don't understand the meaning of this code

I guess this code is to make the image blurred
input_ = scipy.ndimage.interpolation.zoom(label_, (1./scale), prefilter=False)
input_ = scipy.ndimage.interpolation.zoom(input_, (scale/1.), prefilter=False)
But after I code like this, I find the image(channel = 3) become darker than before. Are there any problems?
image = scipy.ndimage.interpolation.zoom(image, (1./scale, 1./scale, 1), prefilter=False)
image = scipy.ndimage.interpolation.zoom(image, (scale/1., scale/1., 1), prefilter=False)

We downscale and upscale to generate base LR image fr training.

There should be no problems with it.


Key bindings not working in vi mode

I had to manually set up the key bindings with the -M flag. Maybe that's something that can be handled automatically?

Ah yes that's an oversight on my part. I seem to have not accounted for VI mode. Let me fix that for you. Thank you for reporting this @prasant94 !

Hi @prasant94 I believe I have fixed the issue. Could you test and let me know if I didn't, please? Thanks!

It's fixed now. Thanks!


Patricia 4 does not 'quit', when UCI options have been set

It seems, that Patricia 4 does not "quit", when a uci option has been set. it needs a Ctrl-C to stop it:
`patriciabot@stockfish:~$ /usr/local/bin/patricia
Patricia Chess Engine, written by Adam Kulju
uci
id name Patricia 3.1
id author Adam Kulju
option name Hash type spin default 32 min 1 max 131072
option name Threads type spin default 1 min 1 max 1024
option name MultiPV type spin default 1 min 1 max 255
option name UCI_LimitStrength type check default false
option name Skill_Level type spin default 20 min 1 max 20
option name UCI_Elo type spin default 3000 min 500 max 3000
uciok
setoption name Threads value 4
setoption name Hash value 1024
quit
patriciabot@stockfish:~$ /usr/local/bin/patricia_4_v3
Patricia Chess Engine, written by Adam Kulju
uci
id name Patricia 4.0
id author Adam Kulju
option name Hash type spin default 32 min 1 max 131072
option name Threads type spin default 1 min 1 max 1024
option name MultiPV type spin default 1 min 1 max 255
option name UCI_LimitStrength type check default false
option name Skill_Level type spin default 20 min 1 max 20
option name UCI_Elo type spin default 3000 min 500 max 3000
uciok
setoption name Threads value 4
setoption name Hash value 1024
quit
^C
patriciabot@stockfish:~$`

Traced the problem to specifically when setting the number of threads, will stamp out that bug as soon as possible.

should be fixed now, thank you for letting me know!

Thanks, my first Christmas present ;)
its online now, PatriciaBot running on 4 threads - lets see how it does!


[publish][m #15]: Modified Test Case

Added more mocking components used by the Finialize Method, which fixed the issue.

Coverage remained the same at 84.615% when pulling 51447a1d05cc552d74aa752d58926cc1c462e3f3 on kittdotech:master into 23da9dd98b709b256ce6c01f354352a8630ef627 on frictionlessdata:master.


Leverage Moshi 1.4's select() API for better performance

This introduces usage of Moshi's new select() APIs when retrieving the name.
Now the generated code looks like this:
package test;

import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.JsonReader;
import com.squareup.moshi.JsonWriter;
import com.squareup.moshi.Moshi;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.reflect.Type;

final class AutoValue_Foo<V> extends $AutoValue_Foo<V> {
  AutoValue_Foo(V item, String name) {
    super(item, name);
  }

  public static final class MoshiJsonAdapter<V> extends JsonAdapter<Foo<V>> {
    private static final String[] NAMES = new String[] {"item","name"};
    private static final JsonReader.Options OPTIONS = JsonReader.Options.of(NAMES);
    private final JsonAdapter<V> itemAdapter;
    private final JsonAdapter<String> nameAdapter;
    public MoshiJsonAdapter(Moshi moshi, Type[] types) {
      this.itemAdapter = moshi.adapter(types[0]);
      this.nameAdapter = moshi.adapter(String.class);
    }
    @Override
    public Foo<V> fromJson(JsonReader reader) throws IOException {
      reader.beginObject();
      V item = null;
      String name = null;
      while (reader.hasNext()) {
        int index = reader.selectName(OPTIONS);
        String name_;
        if (index != -1) {
          name_ = NAMES[index];
        } else {
          reader.nextName();
          reader.skipValue();
          continue;
        }
        if (reader.peek() == JsonReader.Token.NULL) {
          reader.skipValue();
          continue;
        }
        switch (name_) {
          case "item": {
            item = itemAdapter.fromJson(reader);
            break;
          }
          case "name": {
            name = nameAdapter.fromJson(reader);
            break;
          }
          default: {
            reader.skipValue();
          }
        }
      }
      reader.endObject();
      return new AutoValue_Foo(item, name);
    }
    @Override
    public void toJson(JsonWriter writer, Foo<V> value) throws IOException {
      writer.beginObject();
      writer.name("item");
      itemAdapter.toJson(writer, value.item());
      writer.name("name");
      nameAdapter.toJson(writer, value.name());
      writer.endObject();
    }
  }
}

Two bits for discussion from this:

Is this enough? It still has to do the comparison in the switch statement below. Wondering if we should also be keeping track of the adapter and just directly returning it (e.g. keeping a mapping of keys to adapters). CC @jessewilson if you have any insight :)

Testing this repo is extremely hard due to whatever causes this bug - https://github.com/google/auto/issues/342. I can't even run checkstyle :|

@rharter for the failing method checkstyle, can I just bump the limit? Not sure how to make it smaller

If you’re generating the code anyway your switch could be on the index rather than the string.
      while (reader.hasNext()) {
        switch (reader.selectName(OPTIONS)) {
          case 0: {
            item = itemAdapter.fromJson(reader);
            break;
          }
          case 1: {
            name = nameAdapter.fromJson(reader);
            break;
          }
          case -1: {
            reader.nextName();
            reader.skipValue();
            break;
          }
        }
      }

Also, it’d probably be simpler to make null handling the delegate adapter’s job.

Good catch on the int switching, done in 974f49c.
I left the null check for now pending what @rharter thinks. I understand why it's there I think. For custom types it's right, but for the built-ins then it requires custom ones for all of those too. Maybe makes sense as a compiler arg?

Talked with @swankjesse separately. Since moshi already makes the built-ins nullsafe, I agree it should be best left to the adapters. If we remove that peek line, we can remove the entire index variable and just inline the selectName() call directly to the switch. Will push a commit with that, can revert it if others think the peek should stay.

LGTM 👍


Update the default Xcillion theme

Description of the Problem
The current default theme pack (Xcillion) can be enhanced. A new and updated version of this skin has been created by DNNConsulting (Geoff Barlow) and is available in the store:
(https://store.dnnsoftware.com/home/product-details/dnn-xcillion20).
This theme pack has its own name i.s.o. being an update of the existing theme.
Geoff is OK if we bring the source pack to the DNNCommunity organisation on GitHub.
Please note that the source is based on SASS and not plain CSS
Proposed Solution Option 1

Modify it to make it an update of the existing Xcillion 1.0.0 theme

Proposed Solution Option 2 (If Needed, repeat for more)

Make this new theme the default theme for a new installation
Remove the old Xcillion theme 1.0.0 from the DNN platform install pack
Do not touch the old theme installation

Alternatives Researched
Affected version

[x] 9.4.0

@ohine Is it an option to remove the xcillion source files from this repo and only inlude a zip install pack with a release of the xcillion theme?
That way the xcillion theme can get its own repo with releases.  A new release of the theme could be provided to dnnsoftware repo by a PR with the new theme release zip.

@EPTamminga Of course, anything is possible. It's really up to @mitchelsellers on it's final resting place. We already include the CK editor from dnn-connect so I wouldn't see it any different to include the theme from dnncommunity or another similar source.

The only requirement I'd think we'd want to make sure is configured is the 2 person code review requirement on pull requests, and allow the same platform approvers admin access over that repository.

THis is yet another grey area.

Yes, in theory, this skin is optional. However in reality it isn’t. The installer needs it for the default templates. And DNN needs at least one Skin to be operational.

many sites, after installation obviously do not use this theme, some even uninstall it. But not many from what I’ve seen.

This puts it into a situation whereby an external repository, with additional build dependencies and additional developer setup is most likely overkill for a required setup. But on the same token since the new version uses Scss etc that’s a complexity we don’t have in platform build.
This is going to open the Big can of worms again. I’ll look to add this to the TAG agenda.

This is going to open the Big can of worms again. I’ll look to add this to the TAG agenda.

It shouldn't. We have already decided to keep the repos separate after a couple RFCs and many discussions on the TAG call. We need to support the open source community and consume projects which help the platform. We can easily make sure the skin is packaged and the source is included in our source package. However, it shouldn't be a requirement to migrate contributions into our main repository, it only contributes to the mess we're trying to untangle and organize correctly.
The same argument can be made for CDF and CK, without either of them the platform doesn't function, yet they're perfectly ok standalone and they're ignored from the larger debate.
Anyways, I look forward to continuing this conversation on the TAG meeting or in another RFC on the topic.

I’ll make sure this gets added to an agenda and keep this RFC updated

The theme install zip has nothimg to do with sass anymore, it is a standard theme pack  with containers.
The sass is only used as the source of the theme development, like C# for creating a dll.
So I do not see any can of worms here.

@mitchelsellers Is there any news about this? I would like to make some progress with an update of the Xcillion theme.
My preference remains to have the Xcillion theme in it’s own repo in DNNCommunity and provide an update of the theme pack as an install zip in a PR for DNNPlatfform.

@EPTamminga  sorry for the delay on this, we needed to address other issues with the 9.3.0 release and are getting back to this now.  The current skin is part of the DNN Platform source, and is built as part of the DNN Platform source.  This includes the copying of files from the skins folder into the respective pages for install & upgrade.
The easiest solution would be to create a pull request that updates the source within the existing structure & process.  Keeping the same theme name, etc.  This is the preferred route, at this time.
Other solutions, including keeping the source outside of DNN.Platfom, will require changes to our build scripts, the automated build/release pipelines, and more downstream impacts.

Ok, I will follow this route for updating DNNPlatform repo.
For easy developmen and testingt, I will still create a separate repo for the Xcillion theme pack in DNNCommunity.
Once the update is ready, I will update individual files in the platform repo, while trying to keep names and structure as similar as  possible.

Decision made, case closed.

We discussed this in the TAG meeting and we will be bumping bootstrap to latest version and include that in 9.5.0 release

Hi guys
I understand there are other pressing matter. I see this open item is getting pushed further in the timeline each time and we are getting questions from nervous customers. Do we know if the Bootstrap 4 skin will finally get standardized into DNN 9.7 for good?
We're seeing a big disconnect between skin developers who love to build skins with Bootstrap 4 (of course) and module developers have no choice to standardize on Bootstrap 3 because of DNN standards. A module built with Bootstrap 3 will not render correctly on Bootstrap 4. It's not just CSS variations, the different Bootstrap versions have dependency on different jQuery versions that won't work in module development. The customer doesn't understand and are stuck in between confused. We keep telling them they need to find an older skin that uses Bootstrap 3.
Thank you

There is no reason to require bootstrap 3 for dnn.
Each theme can do what it desires.
We do want to get the default theme updated but it doesn’t impact any third party or custom themes.

We originally thought that we needed to update to Bootstrap 4 to resolve a security issue, but found that the latest Bootstrap 3.x had a fix for the security issue as well, so the importance of upgrading Xcillion became much lower.
However, DNN 9.6.1 updated to jQuery 3.5.1, which is compatible with the latest Bootstrap, as far as I'm aware (their Get Started documentation suggest jQuery 3.5.1. and Bootstrap 4.5.0).
If you're having issues with built-in modules having conflicts with the latest version of jQuery, please open a bug report.  If you're having issues with 3rd party modules having conflicts, you'll need to open a support ticket with the vendors of those modules.

@mitchelsellers  We are holding back on Bootstrap 3 is because we're trying to provide a great experience to new DNN users. I'll give you a scenario we often hear from customers:

A new user is trying to get started with DNN. He downloads the DNN install package, struggles with IIS/SQL setup and finally got it running.
He goes shop for let's say an ecommerce or any module (we make the Revindex Storefront module).
He's either still excited or exhausted and doesn't read the requirements. He goes ahead an installs the module package.
It renders nicely because it's standardized on Bootstrap 3. Yeah! He's convinced and is now a DNN user for life.

Now imagine if we upgraded to Bootstrap 4. The last step breaks badly because the HTML just looks weird and broken.

He contacts support if he hasn't abandoned. Support tells him he need to obtains a theme that has Bootstrap 4 and points him to the requirements. He doesn't even know what "Bootstrap" means.
He goes to DNN Store and looks around for a new theme. He makes sure to do a "Find on page" for the word "Bootstrap 4".
Remember he is still trial-ing the free software, but to get the Bootstrap 4 theme, he likely needs to pay money for it and that's a big deterrent.
Boo hoo! We lost a DNN user for life.

@bdukes In practice, it's not so simple. We deal with thousands of customers using our software. Many times their themes have broken javascript or CSS that breaks a page badly. In order to troubleshoot and before putting blame at their theme developer,  we always try to provide proof using the vanilla DNN matching the customer's version. Whether it's DNN 9.2 or 9.6, every vanilla DNN comes with Xcillion Bootstrap 3 makes it difficult to troubleshoot or provide proof if our new requirement is Bootstrap 4.

Certainly, managing a product which must navigate multiple environments is tricky.  One small contribution to make that simpler is https://github.com/DNN-Connect/connect.koi, which attempts to allow you to multi-target your markup based on the framework used by the theme.  It's definitely not a silver bullet (I don't have any idea how many commercial themes include a koi.json file), but one option to try to wrangle this difficult problem.

@bdukes  Thank you for sharing the link. KOI looks like an interesting idea, but in practice, it would be painful to support more than one framework. The razor code would be so heavily bloated.
From a customer support and employee training perspective in a shrinking CMS market, I don't think it's a good idea to encourage using so many different frameworks. I believe the platform should set the technology standards straight and upgrade the standards over time. Better be good at a few things than try to do everything is my kind of philosophy.

There is a concept of each thing having a single responsability, for instance for a module to work on any theme, the module should do it's own thing and not rely on the theme having any specific framework available. Now a lot of people find Bootstrap very popular and want a consistent look across content and modules and the theme. Updating the default theme is in the plans but will it be framework free or rely on bootstrap 4 or maybe bootstrap 5 so we remove the dependency on jQuery ? Who know at this stage. And I see very very few sites that actually run on the default theme, so just things to keep in mind regarding separation of concerns.
KOI although not a bad idea is a bit of work for module developers, like you say, the module then needs to handle all use cases and well, it's a lot of work.
One improvement that should come with Dnn10 is truely reusable web components and css varialbles, this will allow better harmony between look and feel for both the Persona Bar, 3rd party modules and themes. There will be a basic set of very generic info like primary, secondary, tertiary colors and controls radiuses, etc. Then a set of dnn branded reusable components like buttons, inputs, collapsibles, etc will be added and those are standards based and can work in the persona bar, React, Angular, plain html module and so on. I have been working on those for many months and when we start more seriously working on Dnn10, I will merge that here and have blog posts, etc. I have been using them in many custom modules already and they are really nice and tiny and dependency free. You can take a look if you are curious here https://github.com/eraware/dnn-elements ignore the root readme for now, but if you go into each /src/components folder they each have their own little readme explaining the component and it's options.

Your site reminds me of DNN UX. The problem is without sufficient resource, it becomes unmaintained, falls behind modern standards, and nobody you can hire wants to learn it. I think it's more reasonable and achievable to stick with the few big frameworks and just nudge developers and designers to adapt the chosen standards and not try to create your own or have too many.
For example, if DNN officially makes Bootstrap "The Official Framework", the site will already look more or less the same (the look of the persona bar does not really matter, because it lives in an iframe outside the page). Any new designer can create nice themes out of Bootstrap to make the page pretty because the HTML/modules render following the same layout/pattern. Ultimately, to thrive in the ecosystem, developers need simplicity, predictability and consistency. Developers can earn a living selling themes/modules at a decent ROI without worrying that it becomes obsolete or integration bugs overwhelming them. Bootstrap may change with times and remove jQuery and we may have to adapt but at least it's far better than having another slow dying unmaintained standard.
"Having standards is good, but having too many standards is just the same as having no standards at all."

Anyone is free to use a bootstrap theme, this is a choice. Dnn by convention tries to not enforce anything that is not a standard. Bootstrap being popular does not make it a standard.
By standards, I mean web standards like CSS, HTML and Javascript. Those are real true standards and don't depend on any framework.  I am not sure what you mean by slow dying unmaintaned standard but when you say that developers without worriyng that it becomes obsolete then locking into a framework goes directly against that. Developers should learn to make their modules standalone, they should just work on any theme and not rely on a theme having a specific framework. Granted, they can opt-in using something like KOI, but we cannot make enforce bootstrap or any other framework, We are be our own mentra open and locking into a specific framework goes against that mantra.

@valadas  I appreciate your work for trying to unify the CSS and we'll be happy to use it when it becomes widely adopted. It's really good if it works out because it allows unifying the themes, modules and the persona bar world.
It's just my opinion. What I'm trying to say is developers/designers need more guidance from DNN (call it "standards" or "best practices" if you want). Those who want to use other framework can do so, there's nothing stopping them. But for those who are trying to build a stable unified system it's pretty important commercially. When you have a developer who builds modules and does not speak to the designer who sells themes, we still need to understand each other at the end of the day that what we build will "just work" easily. KOI, for example is a great idea, but it needs to be better communicated by DNN (maybe an official page for developers/designers on what are the current "recommended" standards). I haven't heard of KOI and I think it existed for 3 years now and I don't think I ever saw any themes using it so it's only going to be useful if it gets to mass adoption.
A couple of months ago, we had wanted to invest some serious money and build 100+ new themes so customers would have more choices. We needed to know what is the current recommendation for building themes that has a higher chance of being future-proof knowing that DNN is planning to go .NET Core, Razor, etc.. Themes are kind of fundamental to any CMS so we thought surely there must be some published standards or roadmap or discussion, but we didn't find any. So we had to ask the question in the forum. I think the best answer we got is something like "just keep building using Webforms because we're still far away from migration". It might turn out to be the correct answer, but it doesn't instill confidence. The investment was eventually shelved because we can't invest if we don't know if it's going to be worth it. The same problems plague module developers. We don't know if we should invest time to code for Bootstrap 3 or 4 or some other framework, but we cannot sustain more than one framework otherwise it becomes cost prohibitive. Likewise, designers are building themes using Bootstrap 4 not knowing if the modules will work on them.
I know it's all volunteer work and nobody has time, but I think we can get more developers/designers excited if there was more guidance.

I understand the request. But I’ll offer a different standpoint from my perspective.
A lot like other platforms we don’t want to “recommend” or endorse a specific paradigm as it could unnecessary limit what people think is acceptable.
I see some vendors, in a manner that I support, having internal support for multiple frameworks, or simply launching to isolated environments for edit.
There is a bit of a long term but here. But I don’t think DNN should suggest any sort of limitation to the types of frameworks being used.

Documentation about KOI would be nice, the Dnn documentation project is open source, you could contribute your findings at https://dnndocs.com
As for investing in a framework assuming everybody will just adopt that one... dont.
Dnn will not enforce a framework and even if Dnn would, nobody can force developers to follow that rule. Again we try to be open and allow people to use or not their framework of choice. It has been tried before with the Dnn UI/UX was an attempt at guiding people towards a common Dnn specific way of doing things, very few developers followed it and we now have a pain in the neck trying to not make these things a breaking change while trying to move Dnn forward to new technologies.
Themes are still webforms based, right now it is the way to go until we have a clear direction on a technology shift. And to future proof any solution, you should get as barebone and follow as much as possible just know standards like html/css/javascript. Any usage of a framework and more importantly enforcing one, would make the transition to newer technologies more difficult and breaking changes more unavoidable.

Just one additional item. koi documentation would not be proper in dnndocs. @david-poindexter correct me if I’m wrong

Just one additional item. koi documentation would not be proper in dnndocs. @david-poindexter correct me if I’m wrong

You are correct - KOI is a 3rd-party solution by 2sic.  It is not part of DNN Platform and therefore does not belong in the core DNN Docs.  That said, there would be nothing wrong with a "Lab" being added to dnndocs.com show how to use it in the context of DNN stuff.  Hope that makes sense.

Oh, and one more note (before someone mentions it).  Just because the Xcillion theme has a koi.json file does not mean that KOI as a solution is part of DNN Platform.  This is simply a JSON file in the theme to tell anyone using KOI which CSS framework is being used by the theme.  😉

@stephen-lim I get where you are coming from.  I also understand the perception that this rock is just being kicked down the road.  We have recently changed our project milestones to help with this perception a bit.
The reason the base theme (Xcillion) has not been updated to Bootstrap 4 is that it would be a breaking change.  Therefore, it has to wait until we get to the next major release.  By the time we get there, my guess is Bootstrap 5 will in the conversation.  ;-)
Therefore, as @bdukes mentioned earlier, we found out that we could address security concerns by simply upgrading the them to the latest Bootstrap 3 version.
Finally, Xcillion is just the default theme.  As @valadas mentioned, it is very rarely ever used in production.   Therefore, it is up to the implementor of the site to use it, a 3rd party theme, or develop their own.  There is no such thing as a one-size-fits-all theme.  Now, that being said, we personally use the same modern tooling (nvQuickTheme) for every custom theme we build.  We focus on our own "best practices" and those contributed by the community to help refine the tooling.  Sometimes we use that tooling with Bootstrap.  Sometimes we use it with no CSS framework at all and go pure web "standards" based.  Sometimes we use that tooling with Foundation.  Someone recently used it with Tailwind CSS.  My point is it is really up to the implementor (not DNN Platform) as to how they want to use or not use CSS frameworks.
I hope this helps.

@david-poindexter  I appreciate all the hard work you guys put in and I respect the idea of keeping an open platform. I hope I shared some concerns from a vendor perspective and the struggles we go through. I'm glad we had this conversation and learned about KOI. We started testing with KOI today and were able to convert many files to support both Bootstrap 3 and 4 so this is very promising. I think it's something we will use and tell theme vendors to implement.
I understand Xcillion is the default theme and you probably want to install a unique theme eventually. It depends on the use case. If a new user is looking to launch a static site, they will start with a replacement skin and slowly add modules. On the other, if a customer is looking for complex functionality to achieve a particular goal (e.g. ecommerce module to sell online), they will start with the Xcillion theme to test drive the module before browsing for a replacement theme. I'll share an actual conversation our team had with a customer recently (every few weeks we get customers complaining our module won't work with such and such theme running Bootstrap 4):

Customer: I purchased Revindex in the past: but never used it. Actually it didn't work with my skin but i never figured out.
Customer: I'm starting a new site now.
Customer: I am currently installing a fresh Windows Server 2019, SQL 2019 Express, and DNN_Platform_9.6.2
Support: sounds good
Support: We also have hosting support now
Customer: are you aware of any IIS settings which are required for DNN for Windows Server 2019?
Support: No, it will just work out of the box
Customer: does your storefront offer videos and download?
Support: You can upload any file for people to download after purchasing (sell digital product).
Support: The next release allows you to show videos as part of your image galleries
Customer: do you allow for multiple languages?
Support: yes
Customer: OK so i can just download and install to try? will it work with my skin?
Support: You need to look for skins that uses Bootstrap 3. The default skin is compatible.
Support: yes, after your DNN install, you can install the module like usual
Customer: it's a new install so I didn't put a skin.
Support: yup, that should work.
Customer: so any skin will work?
Support: no, only skins with Bootstrap 3. just look for a skin that says "Bootstrap 3"
Customer: what if it doesn't say, will it work?
Support: most likely, you can give it a try. And if it doesn't work, you can try contacting the skin developer to ask if they have an older release with Bootstrap 3. In the future, we'll support the newer Bootstrap 4.
Support: Do you know if your skin has Bootstrap 3?
Customer: no. not sure. I bought it 2 years ago after I bought the module. I don't think my vendor exists anymore.
Support: you can look inside the css and js files for any mention of Bootstrap and version.

The conversation went on and on for many more lines with the customer asking questions about functionality. The customer ended up installing the module on the Xcillion skin. Had he started with a 3rd party skin with Bootstrap 4, it would have bombed badly. Next release will be compatible with Xcillion and skins running Bootstrap 4 with KOI. But I think you can feel the friction in the sales process. I'm sure he'll contact us again in a few weeks once he starts with a different skin and realizes some skins will break the module.

@stephen-lim thanks for the insight and feedback.  As a module vendor myself, I can empathize with the pain.  😉

If a module does not work with such or such theme, the module has a serious problem. Extensibility requires decoupling and if a module needs something on the theme, it is wrong (well mainly for off-the shelf modules, if you do build your own themes and modules to go with them, it is a bit more debatable). I don't know enough about RevIndex but if the only provided template needs bootstrap 3 to be present on the theme, I find this very wrong in my opinion. A slightly better solution would be for the module to provide it but with a scope to not interfere with the rest of the theme and other modules as shown here https://stackoverflow.com/a/14145510 or even better rely on plain css/javascript or templating to allow integrators to customize them. The upcoming Dnn css variables will help a lot in relying less on frameworks to provide some sort of styling harmony between themes and modules and more.
To make a simple analogy for a module needing something specific to exists on the theme (in this case Boostrap 3), it would be like building stoves that only work with a specific brand of pots (framework) and then making it even worst by just making them work with one size of pot (framework version). Now the solution to this problem is not to standardize the pots and only manufacture one brand and one size even if that is the most popular brand and size, the solution is to not build stoves that rely on a brand and a size of pot.

The good news is we just made a release that now supports both Bootstrap 4 and 3. The code is a bit more bloated than we like but it works!
It would be nice if the module can be framework agnostic to the theme. Unfortunately, to get anything looking nice with some level of uniformity, we must rely on the theme to style the entire site especially for basic controls. Most DNN themes are built with Bootstrap. The author modifies the CSS values to change the color of the buttons, text, margins, etc. to make it look custom. That's fine and we would like our module to participate in that customization so the colors, text, margins, etc. stay uniform across the site.
We normally don't require a specific version of Bootstrap. We needed it uniquely this time because Bootstrap 4 is a major rewrite and released with many breaking changes. For example, to render tabs in Bootstrap 3 used to be like this:
<div>
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
  </ul>
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
  </div>
</div>

In Bootstrap 4, it's very different. If it was just CSS rules, we could override it or render different CSS files, but some of the breaking changes require modifications to the HTML.
<nav>
  <div class="nav nav-tabs" id="nav-tab" role="tablist">
    <a class="nav-item nav-link active" id="nav-home-tab" data-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true">Home</a>
    <a class="nav-item nav-link" id="nav-profile-tab" data-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="false">Profile</a>
  </div>
</nav>
<div class="tab-content" id="nav-tabContent">
  <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">...</div>
  <div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab">...</div>
</div>

Just to throw in another example where frameworks can complicate the module development and make the code bloated. To render tabs with Foundation, it would look like this:
<ul class="tabs" data-tabs id="example-tabs">
  <li class="tabs-title is-active"><a href="#panel1" aria-selected="true">Home</a></li>
  <li class="tabs-title"><a data-tabs-target="panel2" href="#panel2">Profile</a></li>
</ul>
<div class="tabs-content" data-tabs-content="example-tabs">
  <div class="tabs-panel is-active" id="panel1">
    <p>..</p>
  </div>
  <div class="tabs-panel" id="panel2">
    <p>...</p>
  </div>
</div>

For a large module, it would take a large amount of resources to support more than one UI framework. So while DNN is still being released with default theme that uses Bootstrap 3, the understanding is modules should at least continue supporting Bootstrap 3 and figure a path forward to support Bootstrap 4 to be compatible with 3rd party themes sold online working around the breaking changes in Bootstrap.

Bootstrap 4 is a major rewrite and released with many breaking changes

Yep, that's what frameworks do

We normally don't require a specific version of Bootstrap.

Well you kinda do, event though we are talking about major versions, that is the tradeoff of using a third party framework, you never know when there will be a breaking change and the more parts you make depend on it, the more rewrite you have to do when that happens. We are discussion going to bootstrap 4 and bootstrap 5 is in the works. It's an endless chase.

For a large module, it would take a large amount of resources to support more than one UI framework

Yep and this is why I believe modules should not rely on the theme having any framework, a module should be standalone and work on any theme.

the understanding is modules should at least continue supporting Bootstrap 3 and figure a path forward to support Bootstrap 4

I just cannot wrap my head around this reasoning. The theme responsability is styling and using bootstrap there I see no issue, but modules should not depend on the theme; the theme could style the module, as long as modules have a css scope this is possible in any and all themes.

 Suppose the module has a Save (primary) and Cancel (secondary) button. It would be nice if every button on the site follows the same color scheme. The theme decided that primary buttons should be blue and secondary buttons should be gray with 8 px margin between them and buttons should be 120 px wide. Using a framework like Bootstrap, the theme author can easily style the site consistently because basic components always apply the same classes (btn-*).
<button type="button" class="btn btn-primary">Save</button>
<button type="button" class="btn btn-secondary">Cancel</button>

Of course, the buttons will work even without styling and who cares if primary button is off by 2px margin. It only matter if we care about achieving super nice looking sites.

If the module did not follow the framework, we would have to style it ourselves hoping the module matches the look-and-feel of the current running theme. Even if we CSS scoped it (we actually do that already), it doesn't really help because we can't rely on the theme author to style every module reliably. They're not willing to do so because there are too many modules to keep up with and it's difficult to target components without a standard (e.g. it's hard to keep track of which button is primary vs secondary without CSS classes that follow a convention).

That was the main reasoning behind the Dnn UI/UX pattern and well, that did not live very far.
What is coming up for Dnn 10  are a set of css variables and a set of web components. The css variables will be just living there on the page and provide very basic pieces of information like primary color, controls-radius, all preferences a site admin can adjust with a UI. Then there a set of dnn styled web-components. So a developer that wants controls to be the same as the core one can do  and  and those will look like all the core buttons (persona bar, module settings, etc.) This is just a button but there is a whole set in the works including modals, collapsibles, etc. You can take a peak here https://github.com/eraware/dnn-elements/tree/development/src/components
Now for those developer who don't like that, they can also just consume the css-variables and write up their own styles but have access to know the primary and secondary colors as well as button rounding preferences on that site. It would look something like:
.my-module button {
   color: var(--dnn-color-primary);
   border-radius: var(--dnn-controls-radius);
}

And well, there will always be those who won't like it and and prefer a framework, the only thing I can say about that is that it is impossible to convince all themes and all modules to agree on which framework and even then when versions change, it all has to start over and themes and modules get out of sync.

This is very nice. I think I understand more what you're trying to achieve. I didn't fully understand it the first time you mentioned it. I hope you will you be including more components like tabs, pills, table, cards, calendar, date picker, dropdown, etc. I think it needs to be extensive enough so we get the general buy-in from developers and designers.

Yeah, that will expand to probably include pretty much all the common stuff starting with most stuff we use in the Persona Bar but re-implemented so it does not rely on React but are standard web components.

still an issue


check_stream does not respect the quiet flag

Pretty simple request, in line 216 of isort/api.py there is a printer.error statement that always fires, irrespective of if the quiet flag has been set as a config argument.

Opened PR: https://github.com/timothycrosley/isort/pull/1370

Hi @quoimec,
Thanks for forwarding your feedback! And putting together a PR!
Can you help me understand what it is you are trying to accomplish that this is blocking you from being able to?
The current documentation says the quiet option should
Shows extra quiet output, only errors are outputted.. And in fact, what it is that you don't want to be outputed is the error it talks about. I'm trying to understand, quiet or not, why check would be used without wanting the errors to be outputted.
Thanks!
~Timothy

Hello!
So on my end what I am aiming to accomplish is the ability to run isort, count the number of files changed and then display that information to a user.
I'm using the sort_file method to make the changes but as far as I can see, there is no output from that operation to check if the file has actually changed. My approach was to make a call to check_file beforehand and record if there are changes that need to be made, but then this obviously throws up an error message every time, hence the issue.
I had missed that point in the documentation re: error printing and I think it definitely makes sense but in saying that, I'm not exactly sure if the check method confirming that a file needs to be changed counts as an error? Is check_stream used elsewhere in the package for the purposes of flagging an error?
Super happy to use a different approach if you have one and if this is too much hassle for you, no worries at all hahaha - counting file changes is not mission critical to what I am building, definitely falls into the nice to have bucket.
Cheers!
Charlie

Hi Charlie!
Thanks for providing the additional background information! How would you feel if the sort_file method started returning a boolean value to indicate whether or not the given file had changed? This would make it more in-line with other API methods.
My main concern with changing the behaviour of the --quiet flag, is just because of the number of users of isort, it's hard to know for sure what unexpected behaviour people might depend on, so I try to minimize these kind of changes to major releases, and another one isn't expected for a year at least.
Thanks!
~Timothy

Yeah totally understandable and that would be fantastic - I'll make the changes and send up another PR shortly!

@quoimec I may have been too quick to act! I would have happily accepted your PR, however I did make one already here: https://github.com/timothycrosley/isort/commit/79bad69f55d50ab35712ca7f01feefddccfe1add.
That said, I did not write a test for it! If you would be willing to make a PR that adds a test case, that would be really appreciated.
Thanks!
~Timothy

All good! I'll have a look when I get a chance tonight. Thank you for all of your prompt help on this.

Always happy to help!

Closing as the API improvements have landed in the 5.3.0 release


fix _debugPaint stroke width for web

Description
In web debug stoke not worked. strokeWidth required. See https://github.com/flutter/flutter/issues/49328
Type of change
Please delete options that are not relevant.

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

Checklist:
If something is unclear, please submit the PR anyways and ask about what you thought was unclear.

[x] This branch is based on v1.0.0
[ ] This PR is targeted to merge into v1.0.0 (not master or develop)
[ ] I have added an entry under [next] in CHANGELOG.md
[x] I have formatted my code with flutter format
[ ] I have made corresponding changes to the documentation
[ ] I have added examples for new features in doc/examples
[ ] The continuous integration (CI) is passing

We are in the middle of changing the structure we handle git branches, if you rebase this on the develop branch it should become green. Other than that it looks good!


Owners icons not rendered in IE

Chrome renders the icons but in IE on Win8 and 10, they don’t load.

Caused by https://github.com/NuGet/NuGetGallery/issues/2613

Can be fixed using something like CamoDotNet

Can I be unassigned from this one? :-)

This is fixed. Owners icons (Gravatars) are all served over HTTPS. Icon URLs are covered by https://github.com/NuGet/NuGetGallery/issues/2613.


Redirect/Bounce Mails

Hi,
I missed the Plugin to redirect/Bounce Mails Like in the Thunderbird Plugin 'Mail Redirect'.
It's very important for me as administrator.
Thanks
Malte

Seems to be duplicate of #622

Duplicate of #622


Roll flutter engine.

Changes since last roll:

[fuchsia] depend on correct observatory target (#4741)
Read assets out of APK on Android (#4742)
roll dart to a4c69b772950c65cd73e6a84e550cc9f46083504

This PR will now have to wait as you have reverted the dart roll into the engine correct.

Right, this was failing analyzer test, that's what led to decision to roll back dart from engine(to unblock other engine rolls into flutter).


Mojo::Exception inheritance

Mojolicious version: 6.62
Perl version: 5.20.2
Operating system: Gentoo Linux 13.0

Steps to reproduce the behavior
I would like to customize Mojo::Exception by adding additional fields: code,data, ...
But this constructor prevents me to do so:
sub new { @_ > 1 ? shift->SUPER::new(message => shift) : shift->SUPER::new }
Expected behavior
I would like to have ability to inherit Mojo::Exception and add additional fields.
Is it possible to change it atleast too @_ == 2 ? shift->SUPER::new(message => shift) : shift->SUPER::new(@_) ?

Just overload new and perform the check yourself.

To be more clear, and extension like this would only be considered if there was a use case for it in the Mojolicious core distribution.

Well, I wanted to get to the Mojo::Base to fullfill fields defined by: has

And you can't do that now?

I can, but it will be a bit hackish, especially if you decide to add one more layer between Base <- HERE -> Exception in future
If I still call Base's new directly, I will loose this logic.
So I'm just asking to keep this in OOP way. I do't want to define the particular name of the class, I still want this to be done for me with SUPER keyword.


[bug] Could not resolve "rpc-websockets/dist/lib/client" in @web3modal/solana/react

Link to minimal reproducible example
https://github.com/rtomas/solana-walletconnect-example
Summary
Trying to run a simple example using @web3modal/solana/react as you can see in my github project and having
 [ERROR] Could not resolve "rpc-websockets/dist/lib/client"

    node_modules/.pnpm/@solana+web3.js@1.91.7_bufferutil@4.0.8_utf-8-validate@5.0.10/node_modules/@solana/web3.js/lib/index.browser.esm.js:12:37:
      12 │ import RpcWebSocketCommonClient from 'rpc-websockets/dist/lib/client';
         ╵                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  The path "./dist/lib/client" is not exported by package "rpc-websockets":

    node_modules/.pnpm/node_modules/rpc-websockets/package.json:5:13:
      5 │   "exports": {
        ╵              ^

  You can mark the path "rpc-websockets/dist/lib/client" as external to exclude it from the bundle,
  which will remove this error and leave the unresolved path in the bundle.

✘ [ERROR] Could not resolve "rpc-websockets/dist/lib/client/websocket.browser"

    node_modules/.pnpm/@solana+web3.js@1.91.7_bufferutil@4.0.8_utf-8-validate@5.0.10/node_modules/@solana/web3.js/lib/index.browser.esm.js:13:22:
      13 │ import createRpc from 'rpc-websockets/dist/lib/client/websocket.browser';
         ╵                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  The path "./dist/lib/client/websocket.browser" is not exported by package "rpc-websockets":

    node_modules/.pnpm/node_modules/rpc-websockets/package.json:5:13:
      5 │   "exports": {
        ╵              ^

  You can mark the path "rpc-websockets/dist/lib/client/websocket.browser" as external to exclude it
  from the bundle, which will remove this error and leave the unresolved path in the bundle.

List of related npm package versions
    "@solana/wallet-adapter-wallets": "^0.19.32",
<EMAIL_ADDRESS>"^1.95.0",
    "@web3modal/solana": "^5.0.6",

solved when using this version
  "dependencies": {
    "@solana/wallet-adapter-wallets": "0.19.32",
<EMAIL_ADDRESS>"1.91.9",
    "@web3modal/solana": "^5.0.6",
    "react": "18.3.1",
    "react-dom": "18.3.1",
    "rpc-websockets": "7.11.0"
  },

Looks like some packaging issue
I uninstalled the "rpc-websockets": "7.11.0", then I removed node_modules -> did pnpm i again and issue hasn't reproduced

this is solved in latest


SSL Handshake issue

I get an SSL handshake issue after uploading my .crt file and running:
from betfair import Betfair
client = Betfair('my_appid','certs/betfair.pem')
client.login('my_user_name', 'my_pw')

where my_appid is taken from https://developer.betfair.com/visualisers/api-ng-account-operations/getDeveloperAppKeys
and my_user_name and my_pw are my usual login details.
any ideas?

The application ID (mine is five digits) isn't the same as the application key (mine is a longer alphanumeric string). Make sure you're using your application key here. If you still run into errors, feel free to post the traceback, but be sure to exclude your username / password / application credentials if you do!

yup, that is what I am using (ie the longer alphanumeric)... traceback below, taken from pycharm
/Applications/anaconda/bin/python2.7 /Users/ammarorama/Documents/GIT/betfair.py/scratchpad.py
25-05 22:10:14 requests.packages.urllib3.connectionpool INFO     Starting new HTTPS connection (1): identitysso.betfair.com
Traceback (most recent call last):
File "/Users/ammarorama/Documents/GIT/betfair.py/scratchpad.py", line 13, in
client.login('my_user_name', 'my_pw')
File "/Users/ammarorama/Documents/GIT/betfair.py/betfair/betfair.py", line 90, in login
'Content-Type': 'application/x-www-form-urlencoded',
File "/Applications/anaconda/lib/python2.7/site-packages/requests/sessions.py", line 504, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/Applications/anaconda/lib/python2.7/site-packages/requests/sessions.py", line 461, in request
resp = self.send(prep, **send_kwargs)
File "/Applications/anaconda/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/Applications/anaconda/lib/python2.7/site-packages/requests/adapters.py", line 431, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:1426: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
Process finished with exit code 1

actually ... scratch that, this all seems to be an issue w using anaconda as opposed to the native python implementation ... closing the issue


Create function for BCVA (Best Corrected Visual Acuity Score) endpoint

Create function for BCVA - Best Corrected Visual Acuity Score (incorporating both Study Eye and Fellow Eye) endpoint.
Derivation is provided with Box.com folder, under "Ophtha ADaM specs" within ADOE Parameters tab and also "Ophtha_ADaM_Specifications_Novartis" under ADVA.
Recommendation is to use Criteria flags e.g. CRIT1, CRIT1FL etc. Note: The programming style should follow the Novartis specs (which are using criteria flags) but for now, please see the Roche derivations in the ADOE Parameters tab to pick up the change from baseline categories.
It may be worth creating "AdmiralOphtha" specs so that this is the specifications file we use as a team.

Just adding some notes on potential functions from Admiral to create change from baseline variables:

Derive Change from Baseline (CHG, PCHG) (https://pharmaverse.github.io/admiral/articles/bds_finding.html#bchange)
Derive Baseline (BASETYPE, ABLFL, BASE, BASEC, BNRIND) (https://pharmaverse.github.io/admiral/articles/bds_finding.html#baseline)
Derive Results (AVAL, AVALC) (https://pharmaverse.github.io/admiral/articles/bds_finding.html#aval)

Use the existing workflow for dataset. Ref: https://exbpbox.ent.box.com/folder/135158344442?s=wbsc3rkhbyxdvuua1csh4sez5n6nwl7n


Should we implement merger kicks?

The mergers of two compact objects can produce a strong kick. Is this in COSMIC? Should we add it? It seems like it could be important for CO distributions (#42) as well as DCO locations (#46)

As far as I'm aware this is not implemented in COSMIC but it also doesn't affect our results for the first couple of applications so let's leave this for later.
We'll need to consider how to assign spins since I know these kicks are spin dependent.


[Bitly URL Shortener] ...

Extension
https://www.raycast.com/blessanm86/bitly-url-shortener
Description
Invalid URL on choosing action
Steps To Reproduce
No response
Current Behaviour
When I pick "Shorten URL" I get "Invalid URL": https://cdn.zappy.app/d890347001458b1ad3f3dda4282693e4.png
Expected Behaviour
Should be able to shorten url successfully.

You have to have a valid URL in your clipboard before invoking shorten url.
If you are confident it is, u can try calling the api directly and see if it returns an error
https://github.com/raycast/extensions/blob/167496535be8649d4221bedcbaa2f9645611c4cd/extensions/bitly-url-shortener/src/index.tsx#LL25C5-L34C8

I had https://www.facebook.com/ copied to my clipboard.  Upon picking "Shorten URL" I got the same "Invalid URL" error in Raycast.
Upon trying hitting the API directly via Postman, I got 200 OK.
You can see both in this screen recording: https://cdn.zappy.app/v944c9d9440ad7d0bde92f26242b05703.mp4
Let me know if there's any other info I can provide, thanks!

@pzelnip Seems like ur using raycast clipboard history extension which works a bit differently.
I have updated the extension to use raycast latest API's.
It should start working once my PR gets merged


Create Diagnostic To Inform User To Use Other Apply "Names"

In the cases where a target method has ref or ref readonly return values, or optional values, the method must be ApplyWithRefReturn, ApplyWithRefReadonlyReturn, and ApplyWithOptionals, respectively. Write code that checks the target method for these conditions, and if the right Apply name isn't use, create a diagnostic.

I ended up making it on the user. If you need to create a PAF for a method that has optionals, but you only have one method, then you could use Apply. It's up to the user to create unique names if they hit the special cases. I'll make sure that's in the documentation :).

I ended up making it on the user. If you need to create a PAF for a method that has optionals, but you only have one method, then you could use Apply. It's up to the user to create unique names if they hit the special cases. I'll make sure that's in the documentation :).


[INLONG-10213][SDK] SortSDK support unified sort configuration

Fixes #10213
Motivation

Modifications

Verifying this change
(Please pick either of the following options)

[ ] This change is a trivial rework/code cleanup without any test coverage.

[ ] This change is already covered by existing tests, such as:
(please describe tests)

[ ] This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a follow-up issue for adding the documentation

I saw inlong-sort-standalone/sort-standalone-source/src/main/java/org/apache/inlong/sort/standalone/source/sortsdk/v2/SortSdkSource.java  also in #10220, is it duplicated?

I saw inlong-sort-standalone/sort-standalone-source/src/main/java/org/apache/inlong/sort/standalone/source/sortsdk/v2/SortSdkSource.java also in #10220, is it duplicated?

Yes, it's a duplicated file for test, I just forgot to delete it.


Read .kube/config instead of relying on kubectl

Is your feature request related to a problem? Please describe.
Some versions of kubectl try to communicate with the server when you read the config. That is super anoying when your cluster is in a private network eg. need to connect via VPN first. When the apiserver is not avaiable the shell hangs between each command.
This could easily be solved by reading the kube config instead of relying on kubectl for it. It would probably also be faster under normal circumstances.
Is your feature request related to new section on prompt? Then consider the following questions:
no
Describe the solution you'd like
Use standard cli commands eg. grep and sed to get what you need from the config file.
Describe alternatives you've considered
none
Documentation, adoption
it will just be the implementation details nothing user facing changes.

grep'ping context name from the config file is easy, but retrieving the current namespace of that context would require parsing YAML file, which isn't as neat.
Just curious, what kind of kubectl versions talk to server?

damn now I can for some reason not replicate the issue, but I remember having it before on another machine as well.

Lets just close for now.

Ugh, I am running into this. The issue is that I have a huge .kube/config file with all of our EKS clusters, and each one uses aws-iam-authenticator to get a token to talk to the API server. When I do not have proper AWS keys, it just hangs for 30s-1m on all calls. I used to use https://github.com/jonmosco/kube-ps1 which had a nice on or off alias so you could just disable stuff. I might try to create a PR for this but not sure how to implement toggling things?

When I do not have proper AWS keys, it just hangs for 30s-1m on all calls.

Ugh, that's painful even to read.


Better handling of extension conflicts, other injection tweaks

Just wanted to keep you guys up to date with a couple edits we made to our implementation after observing it in production. I updated the implementation guidance doc with these changes, but wanted to explain them as well.
Handling extension conflicts
This is a minor issue that came up here. Users can have multiple extensions installed that are trying to set the Global Privacy Control DOM value. We want to be sure that if a different extension is setting GPC to true, we don't override it with false. Check out the edits to https://github.com/globalprivacycontrol/gpc-implementation-guidance/blob/main/client-implementation.markdown#gpcjs and https://github.com/globalprivacycontrol/gpc-implementation-guidance/blob/main/client-implementation.markdown#gpc-mozjs to see how this can be done.
Injection into non-html pages
It turns out that Chrome will inject content script tags into non-html pages, which can cause the script text to appear in the content. To avoid this, we specifically check to make sure that the content type of the page isn't xml, json, or rss. See edits to https://github.com/globalprivacycontrol/gpc-implementation-guidance/blob/main/client-implementation.markdown#gpcjs for fix.
Injecting multiple times per frame
I came across a couple sites that managed to trigger injection multiple times per iframe. It turns out this can happen when sites add a blank iframe to the page first, then update the iframe location. This causes onCommitted to be fired multiple times for these frames, which then triggers the content scripts to be injected into all frames each time. The solution is specify which frame the content script should be injected into (rather than allFrames). See https://github.com/duckduckgo/duckduckgo-privacy-extension/pull/523/files for details.
Hope this is helpful, and my apologies for not catching these the first go round.

Thanks so much, @dharb! We will look into these ...

Thanks for the updates @dharb, they're much appreciated!
@SebastianZimmeck, I went through and updated our source code as applicable, I have the changes in branch issue-128. I will open a pull-request to bring the changes in.
Some notes for myself:
With regards to the DOM property extension conflicts, I added the extra check for navigator.globalPrivacyControl === true before setting our own, though we only ever set our DOM property if the user does in fact want to send the signal to the first party domain. Hence, it doesn't do much at the moment, since we would only ever override a prior signal with our intent to set navigator.globalPrivacyControl = true. In the future we can update our signal in accordance with the spec and set a false when the user does not want to send the GPC signal, though this will take some code revamping. (This is the same for our Mozilla version.) For the moment, I think it is okay to leave it as it is.

Thanks for the updates @dharb, they're much appreciated!
@SebastianZimmeck, I went through and updated our source code as applicable, I have the changes in branch issue-128. I will open a pull-request to bring the changes in.
Some notes for myself:
With regards to the DOM property extension conflicts, I added the extra check for navigator.globalPrivacyControl === true before setting our own, though we only ever set our DOM property if the user does in fact want to send the signal to the first party domain. Hence, it doesn't do much at the moment, since we would only ever override a prior signal with our intent to set navigator.globalPrivacyControl = true. In the future we can update our signal in accordance with the spec and set a false when the user does not want to send the GPC signal, though this will take some code revamping. (This is the same for our Mozilla version.) For the moment, I think it is okay to leave it as it is.

Excellent, @kalicki1!
Feel free to close this issue if it is resolved.

Excellent, @kalicki1!
Feel free to close this issue if it is resolved.