How to compile symlink module

Actually, I'm working with npm module. After symlink my custom module in my project, i can not compile it.
This is my webpack.config.js:
const PATHS = {
    app: path.join(__dirname, 'app'),
    style: path.join(__dirname, 'app', 'main.css'),
    build: path.join(__dirname, 'build')
};

const common = {
    entry: {
        app: PATHS.app,
        style: PATHS.style
    },
    output: {
        path: PATHS.build,
        filename: '[name].js',
        sourceMapFilename: '[file].map',
        devtoolModuleFilenameTemplate: 'webpack:///[resource-path]?[loaders]'
    },
    plugins: [
        new HtmlWebpackPlugin({
            title: 'Webpack Demo'
        })
    ],
    eslint: {
        failOnError: true
    },
    module: {
        preLoaders: [
            {
                test: /\.jsx?$/,
                loaders: [ 'eslint-loader' ],
                // Define an include so we check just the files we need
                include: PATHS.app
            }
        ],
        loaders: [
            {
                test: /\.js$/,
                exclude: /node_modules\/(?!my-modules)/,
                loader: 'babel-loader',
                query: {
                    cacheDirectory: true,
                    presets: [require.resolve('babel-preset-es2015')],
                }
            },
            {
                test: /\.json$/,
                loader: "json-loader"
            },
            {
                test: /\.scss$/,
                loaders: [ 'style', 'css', 'sass' ],
                include: PATHS.style
            }
        ]
    },
    resolve: {
        extensions: [ '', '.js', '.jsx', '.es6' ],
        fallback: path.join(__dirname, "node_modules")
    },
    resolveLoader: {
        fallback: path.join(__dirname, "node_modules")
    },
};

In my project's package.json, i have:
{
  "name": "webpack-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server",
    "stats": "webpack --profile --json > stats.json",
    "test:lint": "eslint . --ext .js --ext .jsx || true",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.18.2",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.8",
    "babel-plugin-object-assign": "^1.2.1",
    "babel-plugin-transform-runtime": "^6.15.0",
    "babel-preset-es2015": "^6.18.0",
    "clean-webpack-plugin": "^0.1.14",
    "css-loader": "^0.25.0",
    "eslint": "^3.10.2",
    "eslint-loader": "^1.6.1",
    "eslint-plugin-react": "^6.7.1",
    "extract-text-webpack-plugin": "^1.0.1",
    "html-webpack-plugin": "^2.24.1",
    "json-loader": "^0.5.4",
    "markdown-loader": "^0.1.7",
    "purifycss-webpack-plugin": "^2.0.3",
    "style-loader": "^0.13.1",
    "webpack": "^1.13.3",
    "webpack-dev-server": "^1.16.2",
    "webpack-merge": "^0.15.0",
    "webpack-validator": "^2.2.9"
  },
  "dependencies": {
    "babel-polyfill": "^6.16.0",
    "babel-runtime": "^6.18.0",
    "stats-webpack-plugin": "^0.4.2"
  },
  "babel": {
    "presets": [
      "es2015"
    ]
  }
}

And in my module :
{
  "name": "my-module",
  "version": "10.0",
  "main": "./dist/app.js",
  "description": "",
  "scripts": {
    "build": "babel src -d dist  --source-maps inline",
    "prepublish": "npm run build"
  },
  "dependencies": {
    "bean": "^1.0.15",
    "bonzo": "^2.0.0",
    "core-js": "^2.1.1",
    "domify": "^1.4.0"
  },
  "devDependencies": {
    "babel-cli": "^6.18.0",
    "babel-preset-es2015": "^6.18.0"
  },
  "babel": {
    "presets": [
      "es2015"
    ]
  }
}

Today, i have two builder, one for my project and the second for modules.
So, if i compile my module, by npm run build, Webpack see the changement but if I change something in my src files, Webpack does nothing.
How can I watch my symlink module and compile it in my dist folder?
Thanks,

More information, so:
I have my project and multiple npm modules.
|--Project
|  |--src
|  |--node_modules
|     |--moduleA
|     |-- jQuery
|     |-- loadash
|     |-- ...
|  |--webpack.config.js

|--MyModules
| |--ModuleA
    |--src
    |--dist
| |--ModuleB
| |-- ...

1- I do npm install on my project.
2- npm goes to sinopia to download my module.
3- I want to work on my module, I symlink ModuleA in my project:
My module:

npm link

My project:

npm link ModuleA

4- I launch my webpack dev server

npm run start

5- If I do a change in ModuleA. Nothing happens in my builder.   But if I do :

babel src -d dist  --source-maps inline

Webpack will see the change. Is it possible for Webpack to watch directly my src in my symlink module?
Thanks,

+1 here!

+1

+1

+1

+1

+1

+1

+1

+1

since I had the same situations as you but with many linked modules, I ended up with using include: ['src', 'my-moduleA', 'my-moduleB', ...] something you could do to automate this is create an array containing your webpack entries, then push the list of your package dependencies filtered with the ones that are symlinks (haven't tested on windows but works on *nix systems)
quickly it could look like this:
const pkg = require('../package.json');
const getSymLinks = dep => fs.lstatSync(path.join(process.cwd(), 'node_modules', dep).isSymbolicLink();
const linkedDependencies = pkg.devDependencies.concat(pkg.dependencies).filter(getSymLinks);
// ... and in your loader ...
   includes: ['src', 'assets', ...linkedDependencies],

// dependencies now contains the list of all symlink in node_modules

+1

+1

In your dependency you have the entry point being under dist:
{   "name": "my-module",   "version": "10.0",   "main": "./**dist**/app.js",
But dist is missing of course because it will be created after the transpilation step. So your options are either to point at source (but then change it back...) which is not ideal.
Or you could use webpack resolve.alias like this:
   resolve: {        .......        alias: {             "my-module": helpers.root("node_modules/my-module/**src/index.js**")         }
helpers.root just gets the root directory, otherwise you might resolve from the wrong folder.
This will essentially bypass the entry point of your library defined in package.json, and will use the one defined in alias instead.

@cristian-eriomenco could you share the helpers.root function? Thanks.

+1

+1

Should work with webpack@latest (see https://webpack.js.org/configuration/resolve/#resolvesymlinks). Feel free to report new issue with reproducible repo.


doc: remove alpine info

Signed-off-by: Loong<EMAIL_ADDRESS>Part of #19781
Commit Message: remove alpine image info.
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

@phlax could we have it?


Include additional extensions to clean in MultiQC report

Many thanks to contributing to nf-core/chipseq!
Please fill in the appropriate checklist below (delete whatever is not relevant). These are the most common things requested on pull requests (PRs).
PR checklist

[X] This comment contains a description of changes (with reason)
[ -] If you've fixed a bug or added code that should be tested, add tests!
[-] If necessary, also make a PR on the nf-core/chipseq branch on the nf-core/test-datasets repo
[X] Ensure the test suite passes (nextflow run . -profile test,docker).
[ ] Make sure your code lints (nf-core lint .).
[ ] Documentation in docs is updated
[ ] CHANGELOG.md is updated
[ ] README.md is updated

Learn more about contributing: https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md

@drejom It seems like you created this PR with the multiqc_config.yaml from the master branch of this repo. It would need to have been the one from the dev branch. Im going to close this, make the changes you have suggested and push the changes so I can compose a PR to bump the version for a release. Thanks!


Add support for inverse buttons

Inverse buttons were recently added to govuk-frontend but haven't yet made it to the GOV.UK Design System. This change adds support for them so we're ready when they land.

Add support for inverse buttons
Add an example of inverse buttons to the guide

Fixes #427

Might it be possible to show the inverse button example on a brand blue background?

@paulrobertlloyd which shade? 😄

Unfortunately, it seems as though the inverse button style is hard coded to use govuk-colour("blue") and not $govuk-brand-colour. Maybe that’s fine. Anyway, that’s what should be used for the example’s background (govuk-colour("blue")).


image-info: read initrds and emit kmod list

Iterate over all the found boot entries, parse the initramfs files and report the contained kernel modules. This is important info because depending on the included kmods images might not be able to boot on certain systems (i.e. missing block device driver kmod).
The output will be something like contain the filetype, and kmods per found initrd, a la:
"initrd": [
  {
    "initramfs-5.0.9-301.fc30.aarch64.img": {
      "filetype": "gzip compressed data, max compression, ...",
      "kmods": [
        "8250_exar.ko.xz",
        "8250_moxa.ko.xz",
        ...
	]}
  }]

@larskarlitski and I figured out the hacky whacky way to list the kernel modules via cpio contained in the initrd. It is not pretty...

Awesome! I do this by hand so I'll be glad to see it as part of image-info. :-)

Force pushed to add initrd output to all test cases and rebase master to get @teg's test cleanups.

Hm, the list of returned modules is different on my machine and here on travis. I assume because we're still running dracut in host-only mode?

Should we, at least for now. Unconditionally useg dracut-config-generic everywhere?

Should we, at least for now, unconditionally useg dracut-config-generic everywhere?

We should indeed. Now that your work adding this has landed (https://github.com/osbuild/osbuild-composer/pull/170), I rebased this branch. I've run the qcow2 test locally and the modules seem to be correct for that. Letting another computer check the rest though :wink:

Update: add an additional commit which adds dracut-config-generic to fedora30 as well.

GitHub closed this pull request because I renamed osbuild's main branch of development to main, deleting master. If it is still relevant, please reopen it against the main branch. Thank you!


Add lakefs-spec to list of Python integrations

Adds a small paragraph mentioning lakefs-spec as another way to interact with repositories directly from Python.
Examples were taken over from our documentation. The docs are referenced as a source for further reading and more advanced information.
As a note, mention explicitly that lakefs-spec is a third-party project, and direct users to the repository for questions and bug reports.

As previously agreed in the dev channel on the lakeFS Slack. Happy for comments.
cc @ozkatz @maxmynter
NB: The whitespace stuff is the work of Zed's autoformatter, I can drop this again if requested.

IIUC, fsspec support means that Pandas can use lakeFS directly. If indeed so, then it would be great to call that out directly with instructions on how to use fsspec with lakefs-spec from Pandas.

That is indeed so. Let me add it right quick.


Fixes #177 - MVC InputFilterPluginManager missing InputFilterAbstractFactory config

Related to #177
/cc @vaclavvanik

@froschdesign Good job +1

Thanks, @froschdesign!


Create daily_checkpoint.yml

First generation separeate branch pashamango-patch-1

Comment to the approval stage. This branch has no conflicts with the base branch, merging can be performed automatically


create new release with latest bug fixes

Hello @hwbllmnn
Would you mind releasing a new version of the plugin including latest bug fixes please ?
#11, #12, #13
thank you

Hello @hwbllmnn
Sorry for tagging you, but I would really appreciate the release of the component 😀

Sorry for being so slow. I released a new version :see_no_evil:

Hello @simonseyock who's in charge of publishing the version in npm registry ? https://www.npmjs.com/package/semantic-release-maven

This plugin is released under https://www.npmjs.com/package/@terrestris/maven-semantic-release


Admin Dashboard Service Detail

Service name, service giver name, link to service page, service status, how many applications exists so far, list of applications is displayed.
A single application row consists of applicants name and status as in Pending/Declined/Approved.
Member names leads to member profiles in dashboard.
Link to service page leads to service page in the social app.
Service detail shows a history of service logs including service creation, service edition, service deletion, rating creation, rating deletion, service application creation, service application deletion.
Unit tests should verify all aspects.

Improvements are merged.


[Attn][Adreno][OpenCL] Fix workgroup size

It was impossible to execute Llama model on Snapdragon 888 because of OpenCL error CL_INVALID_WORK_GROUP_SIZE. To fix this issue for OpenCL and other targets, it was decided to take the value of thread limit from the target attributes.
This regression was introduced in #1698.

cc: @MasterJH5574, @jinhongyii

Tested this fix on snapdragon 8gen3 and snapdragon 888 - works on both. Previously while 8gen3 was supported, 888 had regressed

Thank you for the catch! This seems to largely relate to the other PR https://github.com/mlc-ai/mlc-llm/pull/1822, so I pushed a co-authored commit there with a helper function I wrote in that PR: https://github.com/mlc-ai/mlc-llm/pull/1822/commits/b7dc6cd0c2d894a15377ccff0ed37f7fe21a27b0. It should

@CharlieFRuan I'm ok with that.

@echuraev please rebase and resolve the conflict and we can get this one in

@tqchen Yes. This PR can be closed.


Gradle for java 15.0.2

I want to ask when you will launch gradle for java 15.0.2 .

Looking at the declared Gradle compatibility in the official documentation, I would say Java 15 is supported in 6.8:

A Java version between 8 and 15 is required to execute Gradle. Java 16 and later versions are not yet supported.

Personally, I don't have any problems using it with 15.0.2. Did you encountered any?
Unless you think it could be a bug in Gradle, a better place to ask about such as things might be a discussion forum.

When I saw the release note of v6.8 and greter than it . There was nothing written about java 15 . So I thought it might be available only till java 14 . Thanks for help . Can I use v6.7.1 or I have to use v6.8  .

@szpak  thanks for help . V 6.8 release note does not show anything about java 15 so I thought it might be available for java 14 only .


fix(gio-form-tags-input): fix disabled state behavior

Description
If the input has some value, the chips will be displayed as disabled.
Prevent calling autocomplete function when the component is disabled.
Additional context

🧪  Gravitee.io Automatic Prerelease @gravitee/ui-policy-studio-angular
npm install<EMAIL_ADDRESS>
yarn add<EMAIL_ADDRESS>

🧪  Gravitee.io Automatic Prerelease @gravitee/ui-particles-angular
npm install<EMAIL_ADDRESS>
yarn add<EMAIL_ADDRESS>

📚  View the storybook of this branch here

there is one already existing, I didn't manage to add one checking that the autocomplete function is not called when disabled 🤷

:tada: This PR is included in version 7.37.5 :tada:
The release is available on:

npm package (@latest dist-tag)
npm package (@latest dist-tag)
npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


 This include Runtime.exec, ProcessBuilder.start. This only happens if the call is performed through delegate/owner lookup (aka callCurrent).
Expected Behavior
Configuration cache problems should be emitted for all forbidden calls regardless of the call method.
Context (optional)
callCurrent interception relies on call interceptors implementing SignatureAwareCallInterceptor. Most of our artisanal interceptors do not implement this interface, only the annotation processor does that by default.
Steps to Reproduce
task("hello") {
    def execClosure = {
        exec("/bin/echo Hello").waitForProcessOutput(System.out, System.err)
    }
    execClosure.setDelegate(Runtime.getRuntime())
    execClosure.setResolveStrategy(Closure.DELEGATE_ONLY)
    execClosure()
}

gradle --configuration-cache hello.
Gradle version
Tip-Of-Tree
Build scan URL (optional)
No response
Your Environment (optional)
No response

One solution is to migrate all hand-made interceptors to the annotation processor.


The csrf_token was missing from the openid login template

Quick fix, for missing csrf token from the openid plugin

Indeed, thanks a lot!


Fixed build_filter bug with NaiveDateTime

Fixes #281.

Any progress on submitting to master?

@smpallen99 usually pops in once in a while. Be patient.

Sorry for the delay guys.


Use VideoProgressListener?

I need to have the progress of any currently converting video. I found the progress method but there you only receive the current percentage.
In the phpffmpeg package I found a class called VideoProgressListener which extends the AbstractProgressListener. So how can I use the VideoProgressListener?
How am I supposed to use the VideoProgressListener with laravel?
I tried to create a new Instance in the progress event, but that seems to be the wrong approach.

Will look into it, maybe it’s for internal use only (in the underlying package)?

It's been a while, but I figured the only way to get access to the ProgressListener is to decorate the Format instance. Would something like this work for you?
<?php

$format = new X264;
$decoratedFormat = ProgressListenerDecorator::decorate($format);

$decoratedFormat->on('progress', function ($video, $format, $percentage) use ($decoratedFormat) {
    $listeners = $decoratedFormat->getListeners();
    $listeners[0]->getCurrentTime();
});

(new MediaOpener)
    ->open('video.mp4')
    ->export()
    ->inFormat($decoratedFormat)
    ->save('new_video.mp4');

Fixed in v7.0


cannot remove xxx.pack: Device or resource busy

Environment:

vagrant 1.8.4
puppet 4.5.2
librarian-puppet 2.2.3
mod 'petems/swap_file', '3.0.1'
host: Win 7
guest: ubuntu/xenial64
vagrant plugins (current versions): vagrant-vbguest vagrant-puppet-install vagrant-triggers

I'd like to do the following cleanup tasks with vagrant destroy:
  config.trigger.after :destroy do
    run "rm -Rf puppet/environments/default/.tmp/*"
    run "rm -Rf puppet/environments/default/.librarian/*"
    run "rm -f puppet/environments/default/Puppetfile.lock"
    run "rm -Rf puppet/environments/default/modules/*"
  end

However, rm -Rf puppet/environments/default/modules/* fails with the following message:
/usr/bin/rm: cannot remove 'puppet/environments/default/modules/swap_file/spec/fixtures/modules/stdlib/.git/objects/pack/pack-817ca3838f77e03f7d65ebde9778cba43a74a5de.pack': Device or resource busy
I need to delete the remaining files in Windows. All other modules can be removed without any problem with the commands above.
Any idea?

This is more of a Vagrant question I'm afraid, the module doesnt manage it's mounting within VM's, closing


Data transfer: column types order

System information:

Operating system (distribution) and version Win10
DBeaver version 7.2.0 EA

Will it be better to show column types in datatransfer wizard in alphabet order (Columns mappimg step)?
Now:

implemented


fixes #247

Codecov Report

Merging #299 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #299   +/-   ##
=======================================
  Coverage   96.71%   96.71%
=======================================
  Files         115      115
  Lines        1004     1004
  Branches      129      129
=======================================
  Hits          971      971
  Misses         15       15
  Partials       18       18

Continue to review full report at Codecov.

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


Interface timeout / hangs on *RST for Rigol DP832

Trying this simple sequence of commands sometimes hangs the LAN interface of the Rigol DP832(A) with firmware version <IP_ADDRESS>.03 and resets the connection:
Python 2.7.6 (default, Nov 23 2017, 15:49:48)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import vxi11
>>> inst = vxi11.Instrument("<IP_ADDRESS>")
>>> inst.ask("*IDN?")
u'RIGOL TECHNOLOGIES,DP832,DP8C194205678,00.01.14'
>>> inst.ask("*RST")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/vxi11/vxi11.py", line 743, in ask
    return self.read(num, encoding)
  File "/usr/lib/python2.7/dist-packages/vxi11/vxi11.py", line 731, in read
    return self.read_raw(num).decode(encoding).rstrip('\r\n')
  File "/usr/lib/python2.7/dist-packages/vxi11/vxi11.py", line 701, in read_raw
    raise Vxi11Exception(error, 'read')
vxi11.vxi11.Vxi11Exception: 15: IO timeout [read]
>>>

$ cat /usr/lib/python2.7/dist-packages/vxi11/version.py
__version__ = '0.9'

Sometimes the connection seems to be only half closed so that further commands or a reconnection to the device fails until the DP832 is power-cycled. In this state the web interface does not work as well.
Doing the same directly via telnet <IP_ADDRESS> 5555 does not cause any problems.

  This is likely a firmware bug, but I don't have access to one of those supplies so there's not much I can do about it.  If you can send me a pcap file, I'll take a look at it, but the answer will probably end up being "don't use *RST on DP832 with firmware version XYZ."

I've hit something similar with a DP821A. I find that after about 15 minutes of doing nothing (after opening a connection) - it stops responding and a reboot of the power supply is all that I can do to make it work.
If you give me instructions to provide debugging information, i can add it.


defaultSeparator is not working

I want to change defaultSeparator from "." to something else, but it is not showing any result but still . is used as separator.

Please provide more details on your setup, expected and actual results
Would be good if you can also provide example code that can be executed in browser
e.g. Setup translation values & options manually & print out result

should work like this :
import I18n from 'i18n-js'; I18n.defaultSeparator = '_'

My code was--
import I18n from "react-native-i18n";
import EN from "../locales/EN";
import HIN from "../locales/HIN";

I18n.fallbacks = true;
I18n.missingBehaviour = "guess"; // It will convert HOME_noteTitle to "HOME note title" if the value of HOME_noteTitle doesn't exist in any of the translation files.
I18n.defaultLocale = "EN"; // If the current locale in device is not en or hi
I18n.locale = "EN"; // If we do not want the framework to use the phone's locale by default
I18n.defaultSeparator = '_'
I18n.translations = {
  EN,
  HIN,
};

export default I18n;

But it was not working. Even I tried to change in module file but no luck.

Here my version of test script modified from yours
No import of i18n (every test env got its own way to load I18n) nor translations
I18n.fallbacks = true;
I18n.missingBehaviour = "guess"; // It will convert HOME_noteTitle to "HOME note title" if the value of HOME_noteTitle doesn't exist in any of the translation files.
I18n.defaultLocale = "en";
I18n.locale = "en";
I18n.defaultSeparator = '_';
I18n.translations = I18n.translations || {};
I18n.translations["en"] = {
  test: {
    key: "Test Value"
  }
};

console.log(I18n.t("test_key"))

I ran this on my project with I18n JS loaded
It does output what I expected it to output

Can you try this and post back the results?
And let me know if there is anything incorrect in my test script


firewall rule: remove DNS rule (was only needed in Qubes 3)

//cc @palainp would you mind to try this out?
fixes #63

hmm, I'm even more curious that rules.ml still has some default_dns_servers hardcoded -- is this and the special dns rule still a thing with Qubes 4.x?

This is compiling and running fine (with docker the sha256 is 1855cb82fce272d93c43ecf06d175ae82e07c309855fe8cd5fdd6313a7f54a0f).
I managed to run a speedtest and this was ok (the bandwidth is still less than a linux sys-firewall, around 60%, the cpu seems to be a possible bottleneck, I have to investigate that later).
The IPs (<IP_ADDRESS> and <IP_ADDRESS>) are those provided by Qubes and seems to be translated to the next AppVM in the network chain:
$ cat /etc/resolv.conf
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>

I'm not sure if we can get them automatically in uplink.ml?

Thinking back, and as the fw shouldn't have to resolve something, I tried to remove that part of the code:
diff --git a/rules.ml b/rules.ml
index f72d6c0..541d621 100644
--- a/rules.ml
+++ b/rules.ml
@@ -10,12 +10,6 @@ module Q = Pf_qubes.Parse_qubes
 let src = Logs.Src.create "rules" ~doc:"Firewall rules"
 module Log = (val Logs.src_log src : Logs.LOG)

-(* the upstream NetVM will redirect TCP and UDP port 53 traffic with
-   these destination IPs to its upstream nameserver. *)
-let default_dns_servers = [
-  Ipaddr.V4.of_string_exn "<IP_ADDRESS>";
-  Ipaddr.V4.of_string_exn "<IP_ADDRESS>";
-]
 let dns_port = 53

 module Classifier = struct
@@ -26,14 +20,6 @@ module Classifier = struct

   let matches_proto rule packet = match rule.Q.proto, rule.Q.specialtarget with
     | None, None -> true
-    | None, Some `dns when List.mem packet.ipv4_header.Ipv4_packet.dst default_dns_servers -> begin
-      (* specialtarget=dns applies only to the specialtarget destination IPs, and
-         specialtarget=dns is also implicitly tcp/udp port 53 *)
-      match packet.transport_header with
-        | `TCP header -> header.Tcp.Tcp_packet.dst_port = dns_port
-        | `UDP header -> header.Udp_packet.dst_port = dns_port
-        | _ -> false
-      end
    (* DNS rules can only match traffic headed to the specialtarget hosts, so any other destination
    isn't a match for DNS rules *)
     | None, Some `dns -> false

and it still works (but probably needs a bit more testing to make sure you don't miss any corner cases).

Thanks @palainp. So from my understanding, the specialtarget `dns should match for dns packets:
(a) in doa.ml (read_network_config) we extract the /qubes-primary-dns already (but there's eventually a /qubes-secondary-dns?)
(b) we should use these value instead of Rules.default_dns_servers to check..
Certainly the entire `dns can be removed -- especially if you don't have any special firewall rules for `dns in your setup. But the semantics in the qubes firewall ruleset is likely that it should respect the QubesDB values.

I added a commit here which removes the hardcoded IPv4 addresses, and uses those from QubesDB (read once at startup). Could you give this a try, @palainp?

It compiles and starts like before, but I somehow got:
[2022-09-07 17:11:30] Raised at Netchannel__Frontend.Make.write.(fun) in file "duniverse/mirage-net-xen/lib/frontend.ml", line 377, characters 16-24
[2022-09-07 17:11:30] Called from Lwt.Resolution_loop.handle_with_async_exception_hook in file "duniverse/lwt/src/core/lwt.ml", line 1144, characters 8-11
[2022-09-07 17:11:30] Solo5: solo5_exit(2) called

Not sure if that is related, but I never got that. I try to reproduce.

hmm, strange...

It's certainly not related (see another appearance of Netif failure https://github.com/mirage/qubes-mirage-firewall/issues/120#issuecomment-932711576 ). I can't reproduce it and it works as before now.
It's ok for me to be merged!

merged as part of #149


timja ssh-cli-auth-module release permissions

Description

I wish to deliver https://github.com/jenkinsci/ssh-cli-auth-module/pull/16
I already have github access as a member of the core team
cc @jglick @olivergondza @batmat @oleg-nenashev
Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[ ] Add link to resolved HOSTING issue in description above

For a new permissions file only

[ ] Make sure the file is created in permissions/ directory
[ ] artifactId (pom.xml) is used for name (permissions YAML file).
[ ] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[ ] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[ ] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[ ] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[ ] Make sure to @mention the users being added so their GitHub account names are known if they require GitHub merge access (see below).
[ ] All newly added users have logged in to Artifactory at least once

Maintainer checklist (not for requesters!)

[ ] Check this if newly added person also needs to be given merge permission to the GitHub repo (please @ the people/person with their GitHub username in this issue as well). If needed, it can be done using an IRC Bot command
[ ] Check that the $pluginId Developers team has Admin permissions while granting the access.
[ ] In the case of plugin adoption, ensure that the Jenkins Jira default assignee is either removed or changed to the new maintainer.
There are IRC Bot commands for it

Closing for now, will re-open when PR is merged

Closing for now, will re-open when PR is merged

Not sure why. As a Core maintainer, you are eligible to get these permissions regardless of the pull request

Closing for now, will re-open when PR is merged

Not sure why. As a Core maintainer, you are eligible to get these permissions regardless of the pull request

does someone need to approve the PR or can I self approve as a member of the team?


Add CI header

Current dependencies on/for this PR:

main

PR #120   👈

This stack of pull requests is managed by Graphite.


Clean up InputBuffer coalescing and preprocessing

This reverts a number of changes to input handling to how it used to be
in conhost v1. It merges the input event coalescing logic into a single
function and inlines the console suspension event handling, because
soon these functions will receive std::span arguments which cannot
be preprocessed anymore, unlike a std::deque.
It also adds back support for Ctrl-S being an alias for VK_PAUSE
which was lost in commit fccc7410 in 2018.
Closes #809
Validation Steps Performed

Unit and feature tests are ✅
Ctrl-S pauses output 🎉

@DHowett-MSFT you guys need to re-open #809 -- the bot closed it.


Using main camera for scan in web

Somehow when using scanner on web, the wide camera in being used instead of main camera.
Is there any way to use main camera?!

Hi @AliEasy, Working on it. Duplicate issue https://github.com/CodingWithTashi/simple_barcode_scanner/issues/14


with firefox it is always disabled

Hi guys,
If I used this component in Firefox it is always disabled.
I have tried both enabled='enabled' and enabled=true.
THere is a solution?

the problem is in the version 1.2.0, the 1.1.1-beta1 works well.

I could not reproduce this problem. You can try out version 1.3.0 released today, if you want. If there still is a problem, please tell me so we can solve this once and for all.


Add ESPN, Game Launcher, and Tips icons

Description
More icons I'm pretty confident in: ESPN, Game Launcher, and Tips
Game Launcher and Tips are both exclusive to Samsung Android, so I didn't know if I should've prefixed them with samsung_ but looking at other examples, I chose to leave it out as the original app names don't include "Samsung" at the beginning. Let me know if this is something desired and I'll change it.
I was also going to do the Bixby icon but the rounding was fighting me, so that might be my next icon, and I'll try and do some from the Google Sheet.
Type of change
:x: Bug fix (non-breaking change which fixes an issue)
:white_check_mark: Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:x: General change (non-breaking change that doesn't fit the above categories like copyediting)
Icons addition information
Icons added

ESPN (com.espn.score_center)
Game Launcher (com.samsung.android.game.gamehome)
Tips (com.samsung.android.app.tips)

I think the names are fine. They might change in the future but for now they're fine.

Must've slipped past me. Changes made


Mac

There are some commands in Exploring Remote Resources section which are only for linux users (nproc --all).
I think it would be better if the commands for Mac users are also added.

fixed in cfd1e91


Update machine-learning-retrain-models-programmatically.md

I updated the doc and replaced Scoring with Predicative, and fixed some typos.

Hi @hning86, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@raymondlaghaeian
Please review this pull request and approve/disapprove with a comment here. Thanks.

Mail sent.

Approved

#sign-off


Fix incorrect numpy to table conversion on windows

Description
np.int32 type is considered as NPY_INTLTR on linux and as NPY_LONGLTR on windows. Because of that numpy array with type np.int32 was incorrectly converted to table with type std::int64_t which lead to data corruption. In this PR we take sizeof of numpy array element into account for correct conversion. Also a new test was added to ensure that this change helps to overcome described issue.

@Vika-F, @Alexsandruss, @samir-nasibli, could you review this PR, please?
@samir-nasibli, I changed the dpctl part that is not enabled yet. Could you provide the custom job configuration so that I ensure I didn't break anything?

@Vika-F, @Alexsandruss, @samir-nasibli, could you review this PR, please?
@samir-nasibli, I changed the dpctl part that is not enabled yet. Could you provide the custom job configuration so that I ensure I didn't break anything?

Thank you @avolkov-intel this part will be fully removed, no worry. You can revert your changes for data_conversion_dpctl.cpp.

/intelci: run

/intelci: run


Fix/v3 dicomweb client prefixs

Dicomweb requests fixes

Refactoring the usage of the dicomweb client to keep one client for all the dicomweb-related operations (still keeping the staticWado client appart)
All relevant details are mentioned here -> https://community.ohif.org/t/qido-wado-endpoints-handling-in-ohif-v3/24/8
Updated config file templates and docs
Also updated the base node image in the dockerfile, the one from the v3/stable was causing issues in the image build process
Slight changes in the DicomWeb Datasource config (needs to specify qido, wado and stow prefixes in the config file)
@swederik this is what we talk last month :) don't hesitate to tell me if you need me to modify anything

@wayfarer3130 can you please review this after you come back from vacation?
@kzgrzendek why we are changing qidoRoot to qidoPrefixURL? (and others)

Hi @sedghi! The goal is to adapt to the way the dicomweb-client we use is working -> https://github.com/dcmjs-org/dicomweb-client/blob/447dfe040b454037ed86d55a1ad35304dbb5041e/src/api.js#L62
It expects a base URL,  then different prefixs for the dicomweb endpoint you want to consume. That way, we use the same dicom web client for QIDO, WADO and STOW.
I've detailed my actions in a series of (too)  long posts in the OHIF Community forum -> https://community.ohif.org/t/qido-wado-endpoints-handling-in-ohif-v3/24/8
PS : I've updated the MR with the laste version of the ohif-v3 branch to resolve conflicts. I've also fixed the Docker that wasn't building at all.

For a single web service, the DICOMweb definition in part 18 specifies:
The Studies Resource enables a user agent to store, retrieve, update, and search an origin server for DICOM Studies, Series, and Instances, along with their /metadata, /rendered, and /thumbnail variants; as well as Frames and Bulkdata.
That actually means that if the studies query response returns a response, you are supposed to be able to fetch data etc from the same path on it.  Now, you can simply say that they are three unrelated services, but the standard's compliant method of doing that is to have the study response include the Tag RetrieveURL included in the response.  Note that this tag MAY be included for series level queries and be different for different series.  It is also allowed to return the RetrieveAE field, and key off the AE name for the next retrieve level.  You can also have some proprietary method to determine the next level, such as having fixed AE names (aka data source names), or the custom prefixes you suggested.
It would be very useful instead of having the logic to determine the paths be embedded in the dicomweb client, to have that determined by the data source provider, and to simply define multiple data sources in the case that they reference different URLs.  That way, one could define a WADO URI retriever, a WADO RS one on several paths, and some sort of method to determine which data source is used for a given level/mapping.  That is, unfortunately, harder to implement.  I think we can probably get by with fewer changes by having some of the values be optional.  Let me try to make some suggestions in the files themselves.

@kzgrzendek Thanks for this PR, any one free you have to work on this?

Hello @sedghi, not at the moment. I can have a look at it on my free time, but atm I'm very busy on other topics, and unfortunately not allowed to do it on my working hours for legal reasons. If you have people available for doing the requested changes, I'd be glad to assist! If not, I'll try to have a look at it in the following days/week but can't give any estimations unfortunately


No NUMA support available on this system.

Windows build number:  10.0.19592.1001

Systeminfo:  system.info.txt

Windows Features:

Linux distro: Ubuntu-18.04 (WSL version 2)

running comand under Ubuntu numactl --show results in:

physcpubind: 0 1 2 3
No NUMA support available on this system.

Strace: numactl.strace.txt

How can I enable Non-uniform memory access in WSL2?
I checked in BIOS that the virtualization is enabled and I have no problem running this command on linux host

You will need to use a custom kernel with "NUMA Memory Allocation and Scheduler Support" enabled.
With an intel i5 9400F CPU:
~$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5
node 0 size: 12747 MB
node 0 free: 12615 MB
node distances:
node   0
  0:  10
~$ numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5
cpubind: 0
nodebind: 0
membind: 0

Forward /dupe #5423 as landing zone (10 likes over there as of this writing).


reva produce 404 status code when einstein send a file to marie

We have the current stack as below:
run three instances from one owncloud source with php -S command.
one Reva instance from Reva source code with this config:
[shared]
gatewaysvc = "localhost:19000"

[grpc]
address = "<IP_ADDRESS>:19000"

[grpc.services.gateway]
authregistrysvc = "localhost:19000"
appprovidersvc = "localhost:19000"
appregistry = "localhost:19000"
storageregistrysvc = "localhost:19000"
preferencessvc = "localhost:19000"
userprovidersvc = "localhost:19000"
usershareprovidersvc = "localhost:19000"
publicshareprovidersvc = "localhost:19000"
ocmcoresvc = "localhost:19000"
ocmshareprovidersvc = "localhost:19000"
ocminvitemanagersvc = "localhost:19000"
ocmproviderauthorizersvc = "localhost:19000"
datagateway = "http://localhost:19001/data"
transfer_expires = 6 # give it a moment
commit_share_to_storage_grant = true
commit_share_to_storage_ref = true

[grpc.services.authregistry]
driver = "static"

[grpc.services.authregistry.drivers.static.rules]
basic = "localhost:19000"

[grpc.services.storageregistry]
driver = "static"

[grpc.services.storageregistry.drivers.static]
home_provider = "/home"

[grpc.services.storageregistry.drivers.static.rules]
"/home" = {"address" = "localhost:19000"}
"123e4567-e89b-12d3-a456-426655440000" = {"address" = "localhost:19000"}

[grpc.services.usershareprovider]
driver = "memory"

[grpc.services.ocmcore]
driver = "json"

[grpc.services.ocmcore.drivers.json]
file = "/var/tmp/reva/shares_server_1.json"

[grpc.services.ocminvitemanager]
driver = "json"

[grpc.services.ocmshareprovider]
driver = "json"

[grpc.services.ocmshareprovider.drivers.json]
file = "/var/tmp/reva/shares_server_1.json"

[grpc.services.ocmproviderauthorizer]
driver = "json"

[grpc.services.ocmproviderauthorizer.drivers.json]
providers = "/etc/revad/providers.json"

[grpc.services.publicshareprovider]
driver = "memory"

[grpc.services.appregistry]
driver = "static"

[grpc.services.appprovider]
driver = "demo"
app_provider_url = "localhost:19000"

[grpc.services.storageprovider]
driver = "nextcloud"
mount_path = "/home"
mount_id = "123e4567-e89b-12d3-a456-426655440000"
expose_data_server = true
data_server_url = "http://localhost:19001/data"
enable_home_creation = true

[grpc.services.storageprovider.drivers.nextcloud]
endpoint = "http://localhost:8080/index.php/apps/sciencemesh/"
user_layout = "{{.Username}}"
shared_secret="dkuowaueXObvkTqLhxexKkQn7mqzfdHv"

[grpc.services.authprovider]
auth_manager = "nextcloud"

[grpc.services.authprovider.auth_managers.nextcloud]
endpoint = "http://localhost:8080/index.php/apps/sciencemesh/"
shared_secret="dkuowaueXObvkTqLhxexKkQn7mqzfdHv"

[grpc.services.userprovider]
driver = "nextcloud"

[grpc.services.userprovider.drivers.nextcloud]
endpoint = "http://localhost:8080/index.php/apps/sciencemesh/"
shared_secret="dkuowaueXObvkTqLhxexKkQn7mqzfdHv"

[http]
address = "<IP_ADDRESS>:19001"

[http.services.dataprovider]
driver = "nextcloud"

[http.services.prometheus]
[http.services.sysinfo]

[http.services.dataprovider.drivers.nextcloud]
endpoint = "http://localhost:8080/index.php/apps/sciencemesh/"

[http.services.ocmd]
prefix = "ocm"

[http.middlewares.providerauthorizer]
driver = "json"

[http.middlewares.providerauthorizer.drivers.json]
providers = "/etc/revad/providers.json"

[http.services.ocs]
prefix = "ocs"

[http.services.ocdav]

[http.services.appprovider]

[http.middlewares.cors]

[grpc.services.ocmcore.drivers.nextcloud]
shared_secret="dkuowaueXObvkTqLhxexKkQn7mqzfdHv"

[grpc.services.ocmshareprovider.drivers.nextcloud]
shared_secret="dkuowaueXObvkTqLhxexKkQn7mqzfdHv"

one MySQL instance.
when einstein shares a file with Marie, Reva receive the share and at the end when wants to call the send API, the logs show error 404.

I'll have a look next week, thanks!

@gmgigi96 can you please take a look together with @michielbdejong  on this issue?

I moved this issue from 'Planned' to 'Todo' in https://github.com/orgs/sciencemesh/projects/14/views/1?layout=board

Moved it from 'Todo' to 'In progress'.
Looks like you're hitting https://github.com/cs3org/reva/blob/v1.19.0/internal/http/services/ocmd/send.go#L119 which means that no resource was found at the Source Path.
Will improve error logging and try to reproduce with latest oc_sciencemesh app.

Trying to reproduce this using ocm-test-suite and improved reva error messaging, temporarily using mesh.pondersource.org as the development server:
./scripts/clean.sh
./scripts/start-from-Revaoc.sh
./scripts/start-to-Revaoc.sh
./scripts/start-meshdir.sh
./scripts/start-tester-firefox.sh

And then browse to http://mesh.pondersource.org:5800/
-> https://github.com/cs3org/ocm-test-suite/issues/58

-> cs3org/ocm-test-suite#59
-> cs3org/ocm-test-suite#60

Next: https://github.com/cs3org/reva/issues/3365#issuecomment-1282013953

I could not reproduce this. Even if I set the source path wrong I get:
2022-10-18 13:04:48.788 ERR ../../reva/internal/http/services/ocmd/send.go:119 > sourcePath /dunno/home/asdfq/ does not exist on the storage backend pid=6 pkg=rhttp traceid=384b77db8feba7e2c07c4b821f185ac5

which is different.
Maybe you have the iopUrl configured wrong.
@mirekys Let's try to debug this on your server with the additional log messages I added, I'll ping you on Gitter!

To debug this, we should:

check out your owncloud/core to the 'pondersource/reva-sharees-type-6' branch
check out your sciencemesh/oc-sciencemesh to the 'pondersource/dev' branch
check out your cs3org/reva to the 'cs3org/ocmd-error-messages' branch
see if the problem is still happening
if so, see what the improved log messages tell us


refactor headings and add (x) large(r) classes

The use case for the .h1, h2... to match the font styling of a heading but still want your text to be displayed inline. So these inline elements should not have a margin (or set the line-height).
After the above change you can still use
 due to the line-height and margin are already set by the h* selector. See also: https://github.com/twbs/bootstrap/issues/18492
i agree with @patrickhlauke that one should use display:inline in the case a semantic heading is needed in-line (but why should you?)
I do not agree with @cvrebert that the .h1 thru .h6 classes generate something similar to large, larger because of the h* also change the font-weight and may change / set the font-family too. So i also add new (x) large(r) classes.
See also: https://github.com/twbs/bootstrap/issues/18491
Some test code below:

heading 4

heading 4, displayed as h1

heading 4, displayed as h1

 h6
 h5
 h4
 h3
 h2
 h1

 small
 Normal text (font-size h6)
 lager, font-size h5
 large, font-size h4
 large, font-size h3
 large, font-size h2
 large, font-size h1

some text
heading 1

Note a more consistent option will possible be to extend the font size variables:
$font-size-lg:               1.25rem !default;
$font-size-sm:               .875rem !default;
$font-size-xs:               .75rem !default;

And declare the (x) large(r) classes and (x)smalle(r) classes with these variables.

Going to punt on adding more classes like this for typography. Doesn't feel that much more useful than the h1-h6 classes.

@mdo yes i can agree cause $headings-font-family and $headings-color are set to inherit by default. But if someone change these variables to customize the headings the the h1-h6 classes become worthless for emphasizing.
Does the above also mean that you do not agree with the change below, which prevent the h1-h6 classes from having a line-height and margin-bottom set?
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: $headings-font-family;
  font-weight: $headings-font-weight;
  color: $headings-color;
}

h1, h2, h3, h4, h5, h6 {
  margin-bottom: $headings-margin-bottom;
  line-height: $headings-line-height;
}


Replay events from a specific event store

Since #160 added the abilit to have event stores per aggregate root, this PR fixes the gap with the replay command so that we replay events from a specific store. Discussed in #162

Thank you!

Could you also send a PR to the documentation?

You're welcome. Sure, I didn't see docs in the repo.

The docs aren't in this repo 😄
You can create a PR for this page by click the edit button: https://docs.spatie.be/laravel-event-projector/v2/using-projectors/replaying-events


Stepped Line Graph

Hello ,
Can I draw a stepped line graph as below?

Sure! The small lines inside the grid require some special work, as there's no provided layer that supports this, but you can of course implement it. The best way to do this would be to create a custom layer, which works similar to the existing guidelines layer.

Thanks for the reply. Is there any chance of adding stepped line graph in Examples

This is just a normal line graph, for which there are already examples... The only special thing about it are the small markers in the grid, but this seems a little too specific.


Reformat and add data store tests

Welcome to Codecov :tada:
Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


[GA] Three parent crossover operator

Missing feature
Description
Missing operator
Motivation

This can not be done in current algorithm model, as crossover operator takes always 2 parents.
I won't close this issue, as we might consider adapting architecture to make this possible.


docs: Typo fix

typo space
Description
There was a typo

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@titansmc please sign the CLA

@titansmc lgtm 🚀 thank you for contribution


Document GeoTrellis write example

See raster-write.html#geotrellis-layers
Related possibly #206

Also need a real "read" example.


Fix issue #264 - based on pdfminer.six fix for i15

Fix from  Philippe Guglielmetti committed on Jan 20, 2017
commit 9b9d69aee96f0e7a35f5b48c6c80f450e629ccd6
in pdfminer.six

Is there any way this can get merged?

I had an issue that led me here, and changing the code locally fixed the issue. Will this be merged?

I also encountered bug #264. Manually editing pdftypes.py with the fix in this PR resolved the issue for me

Thanks for the heads up @FWDekker ! :-)


Add support for BufferWriter to the JsonWriter where T is IBufferWriter

Since JsonWriter contains a BufferWriter field now, it has to be a ref struct.

Maybe _bufferWriter.Ensure should return back the span. I tend to call Ensure and then access the buffer right after (_bufferWriter.Buffer).
Also, calling Flush after each call to Advance is a nuisance.

There is a ~20% regression in performance for the HelloWorld case, across the board (higher constant overhead due to the BufferWriter constructor, roughly 19 ns). However, we get a 15-20% performance improvement for writing a larger json payload. I am not sure why exactly that is. Any ideas?

BenchmarkDotNet=v<IP_ADDRESS>4-nightly, OS=Windows 10.0.14393.0 (1607/AnniversaryUpdate/Redstone1)
Intel Core i7-6700 CPU 3.40GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
Frequency=3328125 Hz, Resolution=300.4695 ns, Timer=TSC
.NET Core SDK=2.2.100-preview1-009007
  [Host]     : .NET Core 2.2.0-preview1-26529-01 (CoreCLR 4.6.26525.04, CoreFX 4.6.26525.01), 64bit RyuJIT
  DefaultJob : .NET Core 2.2.0-preview1-26529-01 (CoreCLR 4.6.26525.04, CoreFX 4.6.26525.01), 64bit RyuJIT

BEFORE:

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Median
Gen 0
Allocated

WriterSystemTextJsonBasic
False
False
11,296.64 ns
216.3541 ns
212.4887 ns
11,262.65 ns
-
0 B

WriterNewtonsoftBasic
False
False
21,245.27 ns
418.2912 ns
663.4542 ns
21,252.39 ns
0.0916
472 B

WriterSystemTextJsonHelloWorld
False
False
67.73 ns
1.3718 ns
1.2832 ns
67.62 ns
-
0 B

WriterNewtonsoftHelloWorld
False
False
216.21 ns
2.9374 ns
2.4529 ns
217.23 ns
0.0739
312 B

WriterSystemTextJsonBasic
False
True
13,256.87 ns
278.9258 ns
481.1333 ns
13,191.37 ns
-
0 B

WriterNewtonsoftBasic
False
True
29,857.70 ns
489.6843 ns
458.0510 ns
29,798.08 ns
0.1221
632 B

WriterSystemTextJsonHelloWorld
False
True
71.91 ns
1.4367 ns
2.0605 ns
71.70 ns
-
0 B

WriterNewtonsoftHelloWorld
False
True
313.56 ns
6.2629 ns
17.5618 ns
308.08 ns
0.1121
472 B

WriterSystemTextJsonBasic
True
False
11,486.53 ns
224.4030 ns
275.5871 ns
11,413.29 ns
-
0 B

WriterNewtonsoftBasic
True
False
18,858.90 ns
393.5725 ns
483.3424 ns
18,687.17 ns
0.0916
416 B

WriterSystemTextJsonHelloWorld
True
False
116.67 ns
0.7400 ns
0.6560 ns
116.68 ns
-
0 B

WriterNewtonsoftHelloWorld
True
False
245.37 ns
2.3336 ns
1.9487 ns
245.17 ns
0.0606
256 B

WriterSystemTextJsonBasic
True
True
12,622.99 ns
17.7916 ns
14.8568 ns
12,621.65 ns
-
0 B

WriterNewtonsoftBasic
True
True
27,754.24 ns
63.0735 ns
52.6692 ns
27,741.40 ns
0.1221
576 B

WriterSystemTextJsonHelloWorld
True
True
112.05 ns
0.7270 ns
0.6444 ns
111.83 ns
-
0 B

WriterNewtonsoftHelloWorld
True
True
343.16 ns
6.8418 ns
7.0260 ns
344.03 ns
0.0987
416 B

AFTER:

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Gen 0
Allocated

WriterSystemTextJsonBasic
False
False
9,538.89 ns
186.580 ns
242.607 ns
-
0 B

WriterNewtonsoftBasic
False
False
19,977.28 ns
226.011 ns
200.353 ns
0.0916
472 B

WriterSystemTextJsonHelloWorld
False
False
82.10 ns
1.630 ns
1.673 ns
-
0 B

WriterNewtonsoftHelloWorld
False
False
242.20 ns
2.962 ns
2.312 ns
0.0739
312 B

WriterSystemTextJsonBasic
False
True
11,179.64 ns
185.413 ns
164.363 ns
-
0 B

WriterNewtonsoftBasic
False
True
28,603.38 ns
566.520 ns
847.940 ns
0.1221
632 B

WriterSystemTextJsonHelloWorld
False
True
87.42 ns
1.712 ns
2.285 ns
-
0 B

WriterNewtonsoftHelloWorld
False
True
316.48 ns
5.985 ns
5.598 ns
0.1121
472 B

WriterSystemTextJsonBasic
True
False
9,215.93 ns
176.737 ns
165.320 ns
-
0 B

WriterNewtonsoftBasic
True
False
20,158.62 ns
402.585 ns
638.543 ns
0.0916
416 B

WriterSystemTextJsonHelloWorld
True
False
142.76 ns
2.516 ns
2.354 ns
-
0 B

WriterNewtonsoftHelloWorld
True
False
280.29 ns
4.935 ns
6.417 ns
0.0606
256 B

WriterSystemTextJsonBasic
True
True
11,498.84 ns
229.579 ns
298.518 ns
-
0 B

WriterNewtonsoftBasic
True
True
28,570.19 ns
551.134 ns
541.287 ns
0.1221
576 B

WriterSystemTextJsonHelloWorld
True
True
142.99 ns
1.430 ns
1.268 ns
-
0 B

WriterNewtonsoftHelloWorld
True
True
351.14 ns
7.372 ns
13.294 ns
0.0987
416 B

I am not sure why exactly that is. Any ideas?

Did you try measuring with just changing JsonWriter to a ref struct? No specific reason I think that would make a difference, but I am curious.

There is a ~20% regression in performance for the HelloWorld case, across the board (higher constant overhead due to the BufferWriter constructor, roughly 19 ns). However, we get a 15-20% performance improvement for writing a larger json payload.

At a guess the regression is from interface dispatch, and the gain is from buffering in span (reduced virtual dispatch + full advance call costs). Don't think much will be from the constructor.

Suggested changes hopefully will keep the gains while removing the regressions.

There is a ~20% regression in performance for the HelloWorld case, across the board (higher constant overhead due to the BufferWriter constructor, roughly 19 ns). However, we get a 15-20% performance improvement for writing a larger json payload.

At a guess the regression is from both boxing the formatters and interface dispatch, and the gain is from buffering in span (reduced costs from less virtual dispatch + full advance calls). Don't think much will be from the BufferWriter constructor.
The suggested changes should remove both the boxing to IBufferWriter and the additional interface dispatch costs against those boxes

Also, calling Flush after each call to Advance is a nuisance.

The methods shouldn't be calling Flush, only Advance.
Flush should be done by the caller after a group of operations.

Also, calling Flush after each call to Advance is a nuisance.

The methods shouldn't be calling Flush, only Advance.
Flush should be done by the caller after a group of operations; and before finishing with the BufferWriter.
i.e. Advance calls "Flush" when it needs to, and an explicit Flush is to clear out anything remaining in the Span that hasn't been Advanced in the underlying Wrtier (e.g. is still buffered)

Since JsonWriter contains a BufferWriter field now, it has to be a ref struct.

The root reason is that now JsonWriter stores/caches the Span. It's done through BufferWriter, but even if you did not use BufferWriter, you would want to cache the span from IBufferWriter, wouldn't you?
On a related note: this PR moves from not caching the span to caching the span and it is only 20% perf improvement?
Also, writing hello world is what JSON Techempower does and so it would be good to drill into why there is a regression here.
Lastly, I suspect the perf loss is because you now have the overhead of BufferWriter without the benefits of caching the span in cases where the JsonWriter is used to write (access the span) a small number of times. As the number of times you access the span increases, the cost of the buffer writer will be amortized but the cost of individual writes will be smaller.

The methods shouldn't be calling Flush, only Advance.

Flush should be done by the caller after a group of operations; and before finishing with the BufferWriter.

[EDIT] The current PR calls BufferWriter.Flush in every json write method, this is a perf killer.

I don't think we can flush on every write. Flush is very expensive when called on Pipelines IBufferWriter. In general, calling flush on every write defeats the purpose of BufferWriter (as Flush will cause Buffer Writer to fish out a new span from Memory)

I agree and it makes sense to me. I will make this change and update the results.
cc @GrabYourPitchforks, since we just talked about this offline as well.

The root reason is that now JsonWriter stores/caches the Span. It's done through BufferWriter, but even if you did not use BufferWriter, you would want to cache the span from IBufferWriter, wouldn't you?

On a related note: this PR moves from not caching the span to caching the span and it is only 20% perf improvement?

We actually end up improving 30%-35%. Here are the updated results with the calls to flush moved to the caller rather than within the JsonWriter APIs (reducing from multiple calls to a single call).

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Median
Gen 0
Allocated

WriterSystemTextJsonBasic
False
False
7,540.44 ns
150.3238 ns
140.6130 ns
7,587.65 ns
-
0 B

WriterNewtonsoftBasic
False
False
20,027.49 ns
171.1728 ns
142.9370 ns
20,002.59 ns
0.0916
472 B

WriterSystemTextJsonHelloWorld
False
False
78.16 ns
1.5752 ns
3.1819 ns
77.67 ns
-
0 B

WriterNewtonsoftHelloWorld
False
False
222.25 ns
4.2226 ns
4.1472 ns
221.30 ns
0.0741
312 B

WriterSystemTextJsonBasic
False
True
9,551.74 ns
155.0085 ns
129.4391 ns
9,557.50 ns
-
0 B

WriterNewtonsoftBasic
False
True
29,313.71 ns
348.3948 ns
308.8429 ns
29,253.00 ns
0.1221
632 B

WriterSystemTextJsonHelloWorld
False
True
78.19 ns
1.5312 ns
1.8228 ns
78.64 ns
-
0 B

WriterNewtonsoftHelloWorld
False
True
318.94 ns
1.6915 ns
1.3206 ns
318.67 ns
0.1121
472 B

WriterSystemTextJsonBasic
True
False
7,792.17 ns
115.3570 ns
102.2609 ns
7,765.99 ns
-
0 B

WriterNewtonsoftBasic
True
False
19,222.77 ns
444.5917 ns
371.2542 ns
19,043.86 ns
0.0916
416 B

WriterSystemTextJsonHelloWorld
True
False
125.39 ns
0.6210 ns
0.5186 ns
125.50 ns
-
0 B

WriterNewtonsoftHelloWorld
True
False
261.20 ns
5.2267 ns
6.0191 ns
261.31 ns
0.0606
256 B

WriterSystemTextJsonBasic
True
True
10,282.52 ns
202.2167 ns
403.8487 ns
10,190.40 ns
-
0 B

WriterNewtonsoftBasic
True
True
29,028.33 ns
574.0739 ns
589.5316 ns
29,175.77 ns
0.1221
576 B

WriterSystemTextJsonHelloWorld
True
True
143.44 ns
3.0589 ns
8.8256 ns
140.09 ns
-
0 B

WriterNewtonsoftHelloWorld
True
True
359.92 ns
7.1477 ns
11.9422 ns
358.37 ns
0.0987
416 B

@benaadams, I followed your suggestion and made JsonWriter generic, to avoid boxing. This regressed performance significantly (2+ times slower than before).
Changed JsonWriter from public ref struct JsonWriter to public ref struct JsonWriter<TBufferWriter> where TBufferWriter : IBufferWriter<byte>
Changed the ctor from public JsonWriter(BufferWriter<IBufferWriter<byte>> bufferWriter,...) to public JsonWriter(BufferWriter<TBufferWriter> bufferWriter,...)
Reverted the performance test changes back to what they were before and used JsonWriter.Create helper method.

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Median
Gen 0
Allocated

WriterSystemTextJsonBasic
False
False
15,334.4 ns
219.009 ns
194.145 ns
15,376.6 ns
-
0 B

WriterNewtonsoftBasic
False
False
19,837.1 ns
78.258 ns
69.373 ns
19,837.9 ns
0.0916
472 B

WriterSystemTextJsonHelloWorld
False
False
109.7 ns
2.024 ns
1.794 ns
108.9 ns
-
0 B

WriterNewtonsoftHelloWorld
False
False
220.3 ns
4.455 ns
6.097 ns
217.7 ns
0.0741
312 B

WriterSystemTextJsonBasic
False
True
20,123.9 ns
105.785 ns
76.489 ns
20,123.3 ns
-
0 B

WriterNewtonsoftBasic
False
True
30,560.0 ns
608.719 ns
1,666.358 ns
29,923.4 ns
0.1221
632 B

WriterSystemTextJsonHelloWorld
False
True
132.3 ns
1.571 ns
1.312 ns
132.5 ns
-
0 B

WriterNewtonsoftHelloWorld
False
True
342.7 ns
6.887 ns
18.263 ns
337.9 ns
0.1121
472 B

WriterSystemTextJsonBasic
True
False
16,718.1 ns
366.409 ns
376.275 ns
16,745.5 ns
-
0 B

WriterNewtonsoftBasic
True
False
20,227.8 ns
401.237 ns
961.337 ns
19,912.5 ns
0.0916
416 B

WriterSystemTextJsonHelloWorld
True
False
155.2 ns
3.028 ns
3.605 ns
153.4 ns
-
0 B

WriterNewtonsoftHelloWorld
True
False
271.0 ns
5.424 ns
8.444 ns
269.8 ns
0.0606
256 B

WriterSystemTextJsonBasic
True
True
20,833.2 ns
412.624 ns
344.560 ns
20,753.4 ns
-
0 B

WriterNewtonsoftBasic
True
True
30,173.9 ns
611.857 ns
1,149.215 ns
29,645.0 ns
0.1221
576 B

WriterSystemTextJsonHelloWorld
True
True
175.4 ns
1.478 ns
1.234 ns
175.7 ns
-
0 B

WriterNewtonsoftHelloWorld
True
True
364.1 ns
5.279 ns
4.408 ns
364.0 ns
0.0987
416 B

Interesting, and using a struct wrapper over ArrayWriterFormatter? https://github.com/dotnet/corefxlab/pull/2358#discussion_r194947621

Interesting, and using a struct wrapper over ArrayWriterFormatter, https://github.com/dotnet/corefxlab/pull/2358#discussion_r194947621 to move it completely away from a shared generic?
I wonder if some methods that previously inlined are no longer inlining due to the additional il complexity that the Jit sees.
Moving from an explicit interface to a generic constraint shouldn't cause a 2x drop in perf for a object type, or there's serious runtime issues?

I wonder if some methods that previously inlined are no longer inlining due to the additional il complexity that the Jit sees.

Moving from an explicit interface to a generic constraint shouldn't cause a 2x drop in perf for a object type, or there's serious runtime issues?

cc @AndyAyersMS, maybe you can provide some insight here, as to why we are seeing the regression. Any ideas?
Version 1 - baseline:
https://github.com/ahsonkhan/corefxlab/blob/5370b7b26ab29aacaafbb129d1ec3527650b4f7c/src/System.Text.JsonLab/System/Text/Json/JsonWriter.cs#L13-L38
Version 2 - 2x slower:
https://github.com/dotnet/corefxlab/blob/1d2604910630b3b64f025bb7101165aaf8fefee2/src/System.Text.JsonLab/System/Text/Json/JsonWriter.cs#L13-L38
Changes to the performance test between v1 and v2:
https://github.com/dotnet/corefxlab/pull/2358/commits/1d2604910630b3b64f025bb7101165aaf8fefee2#diff-ca666b8a8d4a2a773e161e08cdd3cd67L208

My hunch is you may be running into limits inlining methods from one shared generic class into methods from some other shared generic class. I can take a more detailed look later.

Less than great, but you could go for a double implementation. One for structs and an interface based one for classes via interface: sharplab.io
public ref struct JsonWriter<TBufferWriter> where TBufferWriter : struct, IBufferWriter<byte>
{
    private BufferWriter<TBufferWriter> _bufferWriter;

    public JsonWriter(BufferWriter<TBufferWriter> bufferWriter, bool isUtf8, bool prettyPrint = false)
    {
        _bufferWriter = bufferWriter;
    }
}

public ref struct JsonWriter
{
    private BufferWriter<IBufferWriter<byte>> _bufferWriter;

    public JsonWriter(IBufferWriter<byte> bufferWriter, bool isUtf8, bool prettyPrint = false)
    {
        _bufferWriter = new BufferWriter<IBufferWriter<byte>>(bufferWriter);
    }

    // Helper Create methods
    public static JsonWriter<TBufferWriter> Create<TBufferWriter>(
        TBufferWriter bufferWriter,
        bool isUtf8,
        bool prettyPrint = false) where TBufferWriter : struct, IBufferWriter<byte>
    {
        return new JsonWriter<TBufferWriter>(BufferWriter.Create(bufferWriter), isUtf8, prettyPrint);
    }

    public static JsonWriter<TBufferWriter> Create<TBufferWriter>(
        BufferWriter<TBufferWriter> bufferWriter,
        bool isUtf8,
        bool prettyPrint = false) where TBufferWriter : struct, IBufferWriter<byte>
    {
        return new JsonWriter<TBufferWriter>(bufferWriter, isUtf8, prettyPrint);
    }

    public static JsonWriter Create(
        IBufferWriter<byte> bufferWriter,
        bool isUtf8,
        bool prettyPrint = false)
    {
        return new JsonWriter(bufferWriter, isUtf8, prettyPrint);
    }
}

class ArrayWriter : IBufferWriter<byte> { }
struct StructWriter : IBufferWriter<byte> { }

public class Program
{
    public static void Main()
    {
        var aw = new ArrayWriter();
        JsonWriter jw1 = JsonWriter.Create(aw, true, false);
        var sw = new StructWriter();
        JsonWriter<StructWriter> jw2 = JsonWriter.Create(sw, true, false);
    }
}

Then it should completely bypass shared generics

Interesting, and using a struct wrapper over ArrayWriterFormatter, https://github.com/dotnet/corefxlab/pull/2358#discussion_r194947621 to move it completely away from a shared generic?

FYI, wrapping the ArrayFormatter class in a struct does remove the regression.

Also, writing hello world is what JSON Techempower does and so it would be good to drill into why there is a regression here.

Lastly, I suspect the perf loss is because you now have the overhead of BufferWriter without the benefits of caching the span in cases where the JsonWriter is used to write (access the span) a small number of times. As the number of times you access the span increases, the cost of the buffer writer will be amortized but the cost of individual writes will be smaller.

I agree. The ctor of BufferWriter alone has noticeable overhead, and as you said, the cost gets amortized when we have multiple writes. For instance, we break even if we write HelloWorld twice rather than just once.

Less than great, but you could go for a double implementation. One for structs and an interface based one for classes via interface

Remove the enforced interface dispatch and use generic writer type.

For now, I have reverted this change and kept the enforced interface dispatch. I will revisit this change in another PR once I can make sense of the performance trade-offs. The 2x regression needs to be addressed. https://github.com/dotnet/corefxlab/commit/1d2604910630b3b64f025bb7101165aaf8fefee2

@dotnet-bot test Innerloop OSX10.12 Debug Build and Test

I looked at the "slow" generic version 1d26049 vs on the first test WriterSystemTextJsonBasic and here's what I saw:

benchmark is basically timing the speed of WriteValue(long)
in both versions inlining is comparable and neither WriteValue(long) or WriteValueUtf16(long, ..) are inlined. So my hunch above was wrong.
in the slow version the time spent in WriteValueUtf16 is considerably higher because of the relatively high cost of static field access in a generic type (in this case s_newLineUtf16.Length).

So the likely fix is to rework how the statics are implemented -- for instance move them into a non-generic helper class.
I also think perf might be improved in general by not fusing together utf8 and utf16 handling into one class -- both because many methods must check at runtime which mode the writer is in and also because it makes the method code size larger and will tend to reduce the amount of inlining that will happen.

So the likely fix is to rework how the statics are implemented -- for instance move them into a non-generic helper class.

That ends up making a significant impact. Thanks for the analysis, Andy!
There is still a gap in performance though.
Original (fastest)

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Allocated

WriterSystemTextJsonBasic
False
False
7.565 us
0.1456 us
0.1290 us
0 B

WriterSystemTextJsonBasic
False
True
9.460 us
0.1880 us
0.1759 us
0 B

WriterSystemTextJsonBasic
True
False
7.637 us
0.0827 us
0.0645 us
0 B

WriterSystemTextJsonBasic
True
True
9.626 us
0.1793 us
0.1677 us
0 B

Static field access in a generic type (2x slower)

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Allocated

WriterSystemTextJsonBasic
False
False
16.06 us
0.3475 us
0.4984 us
0 B

WriterSystemTextJsonBasic
False
True
20.72 us
0.2223 us
0.2080 us
0 B

WriterSystemTextJsonBasic
True
False
15.86 us
0.1656 us
0.1383 us
0 B

WriterSystemTextJsonBasic
True
True
20.46 us
0.3870 us
0.4141 us
0 B

Using a static helper class (25% slower than original, but significant improvement from before)

Method
IsUTF8Encoded
Formatted
Mean
Error
StdDev
Allocated

WriterSystemTextJsonBasic
False
False
10.08 us
0.1562 us
0.1461 us
0 B

WriterSystemTextJsonBasic
False
True
11.78 us
0.2171 us
0.2031 us
0 B

WriterSystemTextJsonBasic
True
False
10.36 us
0.1123 us
0.1051 us
0 B

WriterSystemTextJsonBasic
True
True
12.33 us
0.2444 us
0.6772 us
0 B

I also think perf might be improved in general by not fusing together utf8 and utf16 handling into one class -- both because many methods must check at runtime which mode the writer is in and also because it makes the method code size larger and will tend to reduce the amount of inlining that will happen.

We had done that previously, but reverted it since it had too little impact on performance to justify splitting the types. We could revisit this again.
https://github.com/dotnet/corefxlab/pull/2348
If, in general, the WriteX methods are not getting inlined anyway, then splitting the types wouldn't improve perf significantly, correct?

Not being generic would be an issue currently for BufferWriterFormatter, StreamFormatter as they are structs; also limit user defined formatters (as it would make structs an issue); so ideally this could be resolved via the generic path.

Not being generic would be an issue currently for BufferWriterFormatter, StreamFormatter as they are structs; also limit user defined formatters (as it would make structs an issue); so ideally this could be resolved via the generic path.

For the struct case, we would avoid boxing and allocation via the generic path, but we still have to account for the ~25% overhead for reference types like PipeWriter (which is an abstract class). Would the guideline then be to wrap any classes that implement IBufferWriter<byte> in a struct before passing it (or maybe, the JsonWriter would do wrap it in a struct as part of its ctor)?

Do you have a branch with "Using a static helper class"?

Do you have a branch with "Using a static helper class"?

https://github.com/ahsonkhan/corefxlab/tree/UseStaticHelper

Move statics to a non-generic helper class (fd5b7a3c16787e92e5f5fe00db98340a9a401f68)
Add a generic JsonWriter to try to optimize the struct case<PHONE_NUMBER>94d155759bf21a469c6cf817f93bb1)

Looking...

Might have something...

How's this? https://github.com/dotnet/corefxlab/pull/2366; not sure it the types aren't a bit strange...

As far as separate classes vs internal utf8/utf16 switching, there is possibly some small code locality benefit as the way the methods are set up now half of each method is going to be coldish code.
I also think of splitting types as future proofing as much as anything. Someday (hopefully soon) we'll be able to give the jit a more adaptive inline policy but the apparent size of a method will always be a consideration in the inlining decision. By fusing two different paths into one method you make it less likely that the method will ever get inlined.

Superseded by https://github.com/dotnet/corefxlab/pull/2374. Closing.


Update case-insensitive, ... to 1.1.0

Updates

org.typelevel:case-insensitive
org.typelevel:case-insensitive-testing

from 1.0.0 to 1.1.0.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (1.0.0).
You might want to review and update them manually.
core/src/main/scala/org/http4s/syntax/StringSyntax.scala
server/src/main/scala/org/http4s/server/staticcontent/ResourceService.scala
server/src/main/scala/org/http4s/server/staticcontent/WebjarService.scala
server/src/test/scala/org/http4s/server/staticcontent/StaticContentShared.scala
server/src/test/scala/org/http4s/server/staticcontent/WebjarServiceFilterSuite.scala
server/src/test/scala/org/http4s/server/staticcontent/WebjarServiceSuite.scala
testing/src/test/scala/org/http4s/testing/ErrorReporting.scala
website/src/hugo/content/changelog.md

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

labels: library-update, semver-minor, old-version-remains

Do on 0.22 instead.


WebView is deprecated in macOS 10.14

Seeing a ton of deprecation warnings when running an app.
What OS are you using (uname -a, or Windows version)?
MacOS Version 10.14.5 Beta (18F96h)
$ uname -a
Darwin 18.6.0 Darwin Kernel Version 18.6.0: Thu Mar 14 21:02:45 PDT 2019; root:xnu-4903.260.65~14/RELEASE_X86_64 x86_64

What programming language are you using (C/C++/Go/Rust)?
$ go version
go version go1.11.2 darwin/amd64

What did you expect to see and what you saw instead?
Saw the following deprecation warnings:
go generate
go build -o myapp
# github.com/zserge/webview
In file included from _cgo_export.c:4:
In file included from webview.go:27:
../../../.go/pkg/mod/github.com/zserge/webview@v0.0.0-20180509070823-016c6ffd99f3/webview.h:84:3: warning: 'WebView' is deprecated: first deprecated in macOS 10.14 - No longer supported; please adopt WKWebView. [-Wdeprecated-declarations]
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebView.h:119:12: note: 'WebView' has been explicitly marked deprecated here
In file included from _cgo_export.c:4:
In file included from webview.go:27:
../../../.go/pkg/mod/github.com/zserge/webview@v0.0.0-20180509070823-016c6ffd99f3/webview.h:1691:17: warning: 'WebView' is deprecated: first deprecated in macOS 10.14 - No longer supported; please adopt WKWebView. [-Wdeprecated-declarations]
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebView.h:119:12: note: 'WebView' has been explicitly marked deprecated here
# github.com/zserge/webview
In file included from ../../../.go/pkg/mod/github.com/zserge/webview@v0.0.0-20180509070823-016c6ffd99f3/webview.go:27:
../../../.go/pkg/mod/github.com/zserge/webview@v0.0.0-20180509070823-016c6ffd99f3/webview.h:84:3: warning: 'WebView' is deprecated: first deprecated in macOS 10.14 - No longer supported; please adopt WKWebView. [-Wdeprecated-declarations]
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebView.h:119:12: note: 'WebView' has been explicitly marked deprecated here
In file included from ../../../.go/pkg/mod/github.com/zserge/webview@v0.0.0-20180509070823-016c6ffd99f3/webview.go:27:
../../../.go/pkg/mod/github.com/zserge/webview@v0.0.0-20180509070823-016c6ffd99f3/webview.h:1691:17: warning: 'WebView' is deprecated: first deprecated in macOS 10.14 - No longer supported; please adopt WKWebView. [-Wdeprecated-declarations]
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebView.h:119:12: note: 'WebView' has been explicitly marked deprecated here
./myapp

Already addressed https://github.com/zserge/webview/issues/198


https://github.com/pnpm/pnpm/issues/6962

https://github.com/pnpm/pnpm/issues/6962

an interesting realisation here is that I should really be always running the pnpm command with --lockfile-only, because bazel manages all the deps.


Create a SignalFX metrics backend

In parallel with the stackdriver and graphite backends.
Should include @AppName and InstanceMetadata components as tags, so we can do service-level slicing in SignalFX

Resolved in PR #96


Android - push notification icon is blank

Expected Behaviour
Actual Behaviour
Reproduce Scenario (including but not limited to)
Steps to Reproduce
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Cordova CLI version and cordova platform version
cordova --version                                    # e.g. 6.0.0
cordova platform version android                     # e.g. 4.1.1

Plugin version
cordova plugin version | grep phonegap-plugin-push   # e.g. 1.5.3

Sample Push Data Payload
Sample Code that illustrates the problem
Logs taken while reproducing problem

@sarathks whelp you didn't fill out the issue template so I'm going to close this issue but I will link you to the docs which explain the most likely cause of this issue:
https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/PAYLOAD.md#images
Sorry to be a jerk but I'm now closing issues that don't follow the issue submission guidelines. This plugin takes a lot of work to maintain and I can't afford the time required to solicit the required info from everyone.
I'm closing this issue but please feel free to re-open the issue if you provide the requested details from the new issue submission guidelines.
https://github.com/phonegap/phonegap-plugin-push/blob/master/.github/ISSUE_TEMPLATE.md


Share on discourse

Share and solicit feedback from community: https://discourse.pangeo.io/

Done https://discourse.pangeo.io/t/introducing-pyvista-xarray-for-3d-visualization/2561


Doesn't allow setting sr/screenResolution

I'd like to be able to scale the screenResolution parameter by the devicePixelRatio to give more useful values.  Would this be possible?

Can you provide a little more context? Do you want to override the default system information that gets sent with a hit? Maybe you can explain how this is useful, or more concretely what type of decision making you're after.
More information will help us understand and evaluate your request.

Haven't heard back. Feel free to reopen the issue if you can provide the requested details.


Remove bad translators

Remove default implementations of String.{Contains,StartsWith,EndsWith} as they use SQL LIKE without handling escape characters (%, _). Every provider needs to implement this on their own.
Closes #7656

@roji can you rebase on the latest dev?

@maumar dne

Merged in 3d765b25599cf3d65922057d7d0fc0938089653b. Thank you for the contribution!


Modify channel and language index search logic

Old logic attempts to find a single index for both channel and language lookups.  Then for each referenced file, it splits the filename on "_", " ", "." and uses the calculated index to determine the channel and language metadata. This causes a segfault when a PTX session file references different length filenames and attempts to access an out of bounds index.
Instead, the fix attempts to find the channel and language index for each individual referenced file in the session.  Also added additional channels (Lsr, Rsr).

I agree there is a crash, but the patch puts several regressions during my tests.
I need some time for checking the reason.
Note: This is my personal fork for creating my own PRs, upstream is https://github.com/MediaArea/MediaInfoLib and PRs should go there.

Regressions were actually better handling of the PTX and IMF files I have, great!
I created a PR on the upstream repo https://github.com/MediaArea/MediaInfoLib/pull/305, let's continue on it.


virtual battery

i can't make a virtual battery with 2 shunts bmv512 it's only taking the value of one of them
thanks in advance

Config please. Virtual batteries don't aggregate, but are aggregated. Try creating a virtual battery for each shunt.


Failing Tests Due to Missing or Inconsistent Fixtures in test_database_operations.py

Issue: Failing Tests Due to Missing or Inconsistent Fixtures
Several tests in test_database_operations.py were failing due to:
Missing fields in fixture data, such as nickname and email in login_request_data.
Inconsistent UUID handling in user_response_data.
Incomplete or outdated token generation in fixtures like user_token, admin_token, and manager_token.
Inefficient use of Faker to generate random and consistent user data for tests, leading to flaky tests.
Lack of coverage for specific edge cases, such as invalid email or URL formats.

Fix: Updates to test_database_operations.py
The following updates were implemented to resolve the issues:

Enhanced Test Fixtures
Improved Token Generation
Robust user_response_data
Fixed login_request_data

Title: Fix Failing Tests Due to Fixture Inconsistencies in test_database_operations.py
Description:
Issue: Several tests in test_database_operations.py were failing due to missing or inconsistent data in fixtures like login_request_data and user_response_data.
Root Cause: Missing fields (nickname, email) and improper handling of UUID in user_response_data. Also, the token generation fixtures were outdated.
Fix:
Enhanced all user-related fixtures to dynamically generate realistic data using Faker.
Standardized UUID usage with uuid4().
Updated token generation fixtures to align with API requirements.
Addressed edge cases for invalid emails and URLs.
Impact: Resolved failing tests and improved the robustness of the test suite.
Pull Request Link: #PR123: Fix Fixture Inconsistencies in test_database_operations.py

https://github.com/chandrA957355/homework-10/tree/user_data_missing_fixtures


Username for requests

Hi,
I saw that we need to use "user/{id || displayname}/animelist" for requesting the animelist. My only problem is how I should do this because I do not know the username of the users which is logged in.
The Oauth method is using the browser so I basically can't know what the username is. Is there a way to know the username?

Just do a get to /user, that will return the basic model of the current authenticated user.
Docs


[FIND MEASURES] Fix 'Conditions' filters

Selecting Conditions are not unspecified or specified breaks search.
TRELLO STORY

 [DIT] Selecting Conditions are not unspecified or specified breaks search


Add base trajectory following controller

Motivation and Context

Add a trajectory follower module that stabilizes around a trajectory -- series of desired states across time.
Required steps to have this run on hardware (not done in this PR):

[ ] Wrap the module within a ROS node with appropriate services / APIs to activate/deactivate, assign trajectories, and command velocities. The Jupyter notebook example will serve as a good example as to how this controller can be used.
[ ] Make the ROS node interfaces accessible from home_robot_hw.remote.StretchClient
[ ] Tune gains -- current gains look good in the kinematic simulation but not sure what the behavior will be on hardware.

Changelog

Add trajectory following controller
Add Jupyter notebook example usage of the controller

How Has This Been Tested

Ran the trajectory follower in a kinematic simulation with action noise, seems to follow the trajectory pretty well, especially compared with an open-loop execution of the trajectory (see example for details).
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have made changes to existing documentation where needed.
[ ] I have added tests that show that the PR is functional.
[ ] I ran tests/hw_manual_test.py on hardware and observed that robot behavior looks normal.

Imo as this is an incomplete feature it would be better to keep this open so whoever builds upon this can have full context of the changes from the diff and the PR description, without having to dig through the commit history. Or, close the PR if the feature is no longer needed.


Feature increase testing

Changelog

Added testing for the getSignedJwtToken
Added testing for Mock HTTP Client

Codecov Report

Merging #28 into main will increase coverage by 4.98%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #28      +/-   ##
==========================================
+ Coverage   32.95%   37.93%   +4.98%
==========================================
  Files          10       10
  Lines         261      261
==========================================
+ Hits           86       99      +13
+ Misses        164      149      -15
- Partials       11       13       +2

Flag
Coverage Δ

#unittests
37.93% <ø> (+4.98%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/helpers/helpers.go
57.37% <ø> (+21.31%)
:arrow_up:

Continue to review full report at Codecov.

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


Question about Isolates and thread_local

Hello everyone
Is it possible to execute different parts of Isolate in the same thread ?
For example, I have an isolate function with await for (final element in transmitter) where transmitter is ReceivePort.
And I've noticed that await for executed with other (getttid() ID) than first line of code in my isolate.
In my case I communicate with native library through FFI and that library uses thread_local values.
So when I'm handling messages from my transmitter I'm executing functions in that library.
But because of different threads my execution is falling.
I want ask about possibility to bind/pin Isolate to specific thread.

This looks like a duplicate of https://github.com/dart-lang/sdk/issues/46943.


app open ad is shown when moving to image picker screen

in my app when i click a button to go to image picker and come back to app after selecting, the open ad is shown first.
expected behavior: No app open add should be shown when moving to image picker and return back to app
version: flutter_admob_app_open: ^1.1.1
device: both in Android 11 and 10

i resolved it by calling     FlutterAdmobAppOpen.instance.pause(); and resume();


Allow relative sets

To do this we'll have to iterate parent directories until we find the Vaultfile

This is already supported.


Add from_json to ordering_graph, change json

Closes #19
Add from_json to ordering_graph, change json and fix bugs

[x] Do pipelines pass?

[x] No uncalled functions?

[x] No development leftovers?

[x] Can any functions be replaced with library functions?

[x] Can (duplicated) code be factored out to new functions?

[x] Efficient storage?

[x] Constants for magic numbers?

[x] Are no functions overly complex?

[x] Is code commented?

[x] Are the comments consistent?

[x] Are variables

[x] Well named?
[x] Properly typed, including constness?
[x] Non-redundant?

[x] Are bounds checked?

[x] Are inputs/arguments validated?

[x] Are all outputs written?

[x] Are all allocated things de-allocated again?


Updates use to the most recent version of grpc.

This PR is just some vendoring upgrades, but they make it so protobuf compilation works again... which it does not now