Remove nwb

Fixes #490 (hopefully)
It appears that webpack v5 will be the first version to support ES module output files via an experimental feature https://webpack.js.org/configuration/experiments/

right now I am using commonjs2 for the es target, which I am hoping works but not really sure? https://webpack.js.org/configuration/output/#outputlibrarytarget

Here I am using webpack v4.41.5 because that is what create-react-app uses and v5 is still in beta

I modified the create-react-app scripts for a bunch of reasons:

tests: got rid off all things jest and @testinglibrary, added a karma config instead https://github.com/hubmapconsortium/vitessce/compare/keller-mark/nwb-bad?expand=1#diff-c3ce07ad1a971575599220c4a08f29f0R8
two builds: build-demo and build-lib, where build-lib has multiple targets and no html outputs
list of output paths now includes libBuild and libIndexJs https://github.com/hubmapconsortium/vitessce/compare/keller-mark/nwb-bad?expand=1#diff-e389ed4107fbd6139ae8b315cb04e04dR47
anywhere you see isTargetDemo or isTargetLib in the webpack config factory https://github.com/hubmapconsortium/vitessce/compare/keller-mark/nwb-bad?expand=1#diff-a58d55bdb5770c78ad512f8e91f8d051R57

I experimented with making a new create-react-app project, copying the build-lib/es into a node module and adding this to App.js:
import React from 'react';
import vitessce from 'vitessce/es/index.es.js';
import './App.css';

console.log(vitessce);

function App() {
  return (

      <vitessce.Scatterplot />

  );
}

export default App;

which rendered with no errors but I did not take the time to actually style and provide the scatterplot with data.

This could be related to the build failure: https://github.com/travis-ci/travis-ci/issues/8836#issuecomment-356362524

I'll have feedback to you by noon!

Karma now works but cypress does not due to fetch is not defined

Based on a conversation I just had with @ilan-gold
It may be useful to evaluate 3 different options:

ejected create-react-app, as  in this PR
simplified / minimal ejected create-react-app

the webpack config file that is ejected by create-react-app is a big "factory function" that generates webpack config objects. We could just take the result of this function as a more static config object that contains the minimal information that we need for our use case, and strip out all the extra stuff. We could also remove some of the files such as config/pnpTs.js which are not useful to us right now. The tradeoff is that if we do become interested in using that "extra" functionality in the future, we will have deviated further from the ejected create-react-app. But if our config is simpler, it may also be the case that it is easier to modify our simplified config to support such features in the future.

rollup

* This much boilerplate code makes me cringe... Do I just need to get over that?

No, this is my comment above where I discuss taking the minimal amount of code that was ejected from create-react-app and discard the things we are not using. If everyone is on board with that approach I will do that.

I got rollup building the whole thing in viv (i.e including depenedencies).  I blasted away my package-lock.json to try to solve the issue I was seeing (https://github.com/babel/babel/issues/11216) and it worked.  Now the thing that was stopping the build before only prints a warning!
Here's my new rollup.config.js:
// thank you https://github.com/gzuidhof/zarr.js/blob/master/rollup.config.ts
// for giving me a starting point :)

// We run linting on all files so this one is checked too.
/* eslint-disable import/no-extraneous-dependencies */
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import json from '@rollup/plugin-json';
import babel from 'rollup-plugin-babel';
import sourceMaps from 'rollup-plugin-sourcemaps';
import glslify from 'rollup-plugin-glslify';

const pkgObj = require('./package.json');

const libraryName = '@hubmap/vitessce-image-viewer';

function getExternals(pkg) {
  const { peerDependencies = {} } = pkg;
  return Object.keys(peerDependencies);
}

export default {
  input: 'src/index.js',
  output: [
    { file: pkgObj.main, name: libraryName, format: 'umd', sourcemap: true },
    { file: pkgObj.module, format: 'es', sourcemap: true }
  ],
  // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash')
  // external: getExternals(pkgObj),
  watch: {
    include: 'src/**'
  },
  plugins: [
    // Allow json resolution
    json(),
    babel({
      exclude: 'node_modules/**',
      presets: ['@babel/env', '@babel/preset-react']
    }),
    glslify({ basedir: 'src/layers/XRLayer' }),
    // Allow bundling cjs modules (unlike webpack, rollup doesn't understand cjs)
    commonjs({
      include: ['node_modules/**'],
      namedExports: {
        // left-hand side can be an absolute path, a path
        // relative to the current directory, or the name
        // of a module in node_modules
        'node_modules/geotiff/dist/geotiff.bundle.min.js': ['fromUrl', 'Pool'],
        'node_modules/probe.gl/env.js': ['global', 'isBrowser', 'getBrowser'],
        'node_modules/react/index.js': [
          'createElement',
          'cloneElement',
          'PureComponent'
        ]
      }
    }),
    // Allow node_modules resolution, so you can use 'external' to control
    // which external modules to include in the bundle
    // https://github.com/rollup/rollup-plugin-node-resolve#usage
    resolve(),
    // Resolve source maps to the original source
    sourceMaps()
  ]
};

You can see where the deck.gl dependencies go a bit off the rails.  Here's the log:

><EMAIL_ADDRESS>build-component /Users/ilan_gold/gehlenborg/vitessce-image-viewer
> mkdir dist || rm -r dist && rollup --config

src/index.js → dist/index.umd.js, dist/index.es5.js...
(!) Missing shims for Node.js built-ins
Creating a browser bundle that depends on 'path' and 'util'. You might need to include https://www.npmjs.com/package/rollup-plugin-node-builtins
(!) Plugin node-resolve: preferring built-in module 'util' over local alternative at '/Users/ilan_gold/gehlenborg/vitessce-image-viewer/node_modules/util/util.js', pass 'preferBuiltins: false' to disable this behavior or 'preferBuiltins: true' to disable this warning
(!) Plugin node-resolve: preferring built-in module 'fs' over local alternative at 'fs', pass 'preferBuiltins: false' to disable this behavior or 'preferBuiltins: true' to disable this warning
(!) Plugin node-resolve: preferring built-in module 'module' over local alternative at 'module', pass 'preferBuiltins: false' to disable this behavior or 'preferBuiltins: true' to disable this warning
(!) Plugin node-resolve: preferring built-in module 'path' over local alternative at 'path', pass 'preferBuiltins: false' to disable this behavior or 'preferBuiltins: true' to disable this warning
(!) Circular dependencies
<EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>-><EMAIL_ADDRESS>...and 5 more
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
util (imported by<EMAIL_ADDRESS>fs (imported by<EMAIL_ADDRESS><EMAIL_ADDRESS>module (imported by<EMAIL_ADDRESS>path (imported by<EMAIL_ADDRESS>(!) Missing global variable names
Use output.globals to specify browser global variable names corresponding to external modules
module (guessing 'Module')
path (guessing 'path')
fs (guessing 'fs$7')
util (guessing 'util$1')
(!) Import of non-existent export
<EMAIL_ADDRESS>1: import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2: import _createClass from "@babel/runtime/helpers/esm/createClass";
3: import { Vector3, equals as _equals, assert, MathUtils } from 'math.gl';
                                                ^
4: var scratchPosition = new Vector3();
5: var scratchNormal = new Vector3();
created dist/index.umd.js, dist/index.es5.js in 6.9s

The final error is the one that was breaking things before but now appears to be solved?  Perhaps I got an update when I threw away the package-lock.json.

P.S I don't know if the build works or not but it didn't not build.

simplified / minimal ejected create-react-app
rollup

FWIW I would push for one of these options. I trust your judgement for which would make the most sense for both a library/demo build. I've found rollup to be easier to work with, but bundling larger applications has been super painful in my experience. For vitessce-image-loader I use a very minimal rollup config, but managing all the peer deps and bundling css/sass could be really painful going this route. A few more plugins would be required to handle import ____ from "____.{svg|json}.".

In a new create-react-app project, if you copy the contents of build-lib/es to the new project's node_modules/vitessce, then the following code in src/App.js will show a vitessce scatterplot:
import React from 'react';
import vitessce from 'vitessce/index.es.js';
import 'vitessce/static/css/main.css';
import './App.css';

console.log(vitessce);

function App() {
  const uuid = "my-scatterplot";
  const view = { target: [0, 0, 0], zoom: 0.75 };
  const cells = {
    1: {
      mappings: {
        PCA: [2, 1]
      }
    },
    2: {
      mappings: {
        PCA: [5, 1]
      }
    },
    3: {
      mappings: {
        PCA: [6.5, 4]
      }
    },
    4: {
      mappings: {
        PCA: [6, 4.5]
      }
    },
    5: {
      mappings: {
        PCA: [5.5, 5]
      }
    },
    6: {
      mappings: {
        PCA: [0.5, 4]
      }
    },
    7: {
      mappings: {
        PCA: [1, 4.5]
      }
    },
    8: {
      mappings: {
        PCA: [1.5, 5]
      }
    },
    9: {
      mappings: {
        PCA: [2, 5.25]
      }
    },
    10: {
      mappings: {
        PCA: [5, 5.25]
      }
    },
    11: {
      mappings: {
        PCA: [4.5, 5.35]
      }
    },
    12: {
      mappings: {
        PCA: [3.5, 5.45]
      }
    },
    13: {
      mappings: {
        PCA: [2.5, 5.35]
      }
    }
  };
  const cellColors = null;
  const mapping = "PCA";
  const selectedCellIds = new Set();
  const updateCellsHover = (hoverInfo) => {};
  const updateCellsSelection = (selectedIds) => {};
  const updateStatus = (message) => {};
  const updateViewInfo = (viewInfo) => {};
  const clearPleaseWait = (layerName) => {};

  return (

        <vitessce.Scatterplot
          uuid={uuid}
          view={view}
          cells={cells}
          mapping={mapping}
          selectedCellIds={selectedCellIds}
          cellColors={cellColors}
          updateStatus={updateStatus}
          updateCellsSelection={updateCellsSelection}
          updateCellsHover={updateCellsHover}
          updateViewInfo={updateViewInfo}
          clearPleaseWait={clearPleaseWait}
        />

  );
}

export default App;

Right, although we are not using https, .env files, or typescript, I think it is fine to leave those configuration options here for now

I am fine with that, as we discussed in the standup today.

I will merge this and hopefully everyone can npm install the new dependencies and try everything out (if you have not done so already).


Allow '--noEmit' to override  'emitDeclarationOnly' from config.

Search Terms

TS5053
emitDeclarationOnly

Suggestion
Using "emitDeclarationOnly": true in your tsconfig.json prevents you to do typechecking only runs as running tsc --noEmit will throw the following error.
error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'.

And the CLI does not look like to have any flag to bypass the error (eg. something like --noEmitDeclarationOnly).
I don't see a reason why a noEmit cli flag would not take precedence over the emitDeclarationOnly from the tsconfig.
Use Cases
With a project with a tsconfig.json set with emitDeclarationOnly and using another compiler like babel to produce the built javascript code, you want to be able to both:

Compile declaration files (running tsc)
Perform typechecking as a test stage (eg. travis) (running tsc --noEmit). Especially since you do not use TypeScript to compile (so a build could pass with typings errors).

Examples
https://github.com/mgcrea/node-influx-syslog
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

Hmm. What could go wrong? The worst I can think of is if someone passes --emitDeclarationOnly on the command line when they already have "noEmit": true in tsconfig.json, if they already had declaration or composite set for some reason, then the simplest implementation approach would probably still end up emitting nothing ...

+1

+1

@SamB seems reasonable, although to retain the general idea that CLI flags generally override configured behavior, cli flags should always override code emit settings from config, and noEmit should only override emit requests at the same level
For example, the noEmit flag overrides other flags that request code be emitted, and noEmit key in config overrides other keys in config that request code to be emitted. However, flags requesting code to be emitted will override noEmit key in config.
Pseudo-code for logic:
if (noEmit_flag) {
  do not emit anything
} else if (noEmit_flag && emitSomething_flag) {
  do not emit anything
} else if (noEmit_key && emitSomething_flag) {
  emit what was requested, cli flags always override
} else if (noEmit_key && emitSomething_key) {
  do not emit anything
}

FYI, this works:
tsc --noEmit --emitDeclarationOnly false

Why is this issue stale? I think that the request is a valid one, and many other plugins do the same. I am seconding @aryzing s comment, that cli flags should overwrite configuration flags, so that if I generally want to emit only declarations when compiling with typescript, I add that to the config, and otherwise, I run tsc with the --noEmit flag, when I am only typechecking.
Until that, @draperunner s workaround is okay, but I think that if cli parameters do not take precedence over the config parameters, this could lead to other strange bugs, which won't be as easily solvable as this one.


irregular square wave

I'm analyzing the square sound wave with Audacity spectrum and I view that the square wave is not perfect but so irregular as you can see in the capture:
https://i.ibb.co/W2ThYHd/tonejs-irregular-wave.png
Its a bug? its possible to get a perfect wave?
Thank you!

I wonder if Audacity is distorting the wave somehow. Or if what is being visualized is not the waveform, but something else. i'm not so familiar with Audacity, so i don't know what's being visualized, but i see the values center around -60, which makes me think that it might be showing loudness in decibels instead of the waveform.
Here is a square wave plotted with Plot.ly from the browser:

And here's the same square in Ableton Live:

Hi Yotam. Thank you for your answer.
Its strange for me because I have same results in a mobile device.
Have you the code for that wave graph?
My code is the next:
var o = new Tone.Oscillator().toMaster();
o.type="square";
o.frequency.value=2;
o.start();

I use the OfflineAudioContext to try and get the cleanest recorded output and i use a wrapper of Plot.ly that i built for testing to graph it: https://codesandbox.io/s/polished-sea-i51dv
I downloaded Audacity to see if i can see what you're seeing, using a file generated from the above code, i still get the same square wave, but i do see an option to show the waveform in decibels vs the raw waveform:

two questions: does it make a difference if you change it to "waveform" instead of "waveform (db)"? also, how are you recording the waveform output?

Hi Yotam,
Your example dont launch the wave sound as my script in  http://www.emdr-es.com/waves.html
The output recorded in audacity showed in DB.
Look the irregular continuous sound bands in 6k, 2k, 1.5 K.... etc... (neither  its should not exist in a pure square wave)
https://i.ibb.co/ftcMv5b/oscillator-tonejs-irregular-wave-db.png
https://i.ibb.co/ftcMv5b/oscillator-tonejs-irregular-wave-db.png

The example i posted just renders audio straight to an AudioBuffer which removes the potential for speakers or physical audio hardware to interfere with the signal.
From my measurements, it looks to me like the square wave is rendering as expected, but maybe the issue is that you want to render an ideal square wave which modules between ±1?
If you'd like an ideal square wave at 2hz, i think the easiest way to do that would be to generate an audio buffer at your desired length, and manually fill the samples (f(t) < PI ? 1 : -1). You can set that to an AudioBufferSourceNode and set it to loop=true.
A little more info about ideal vs approximate square waves:
The Web Audio API renders all waveforms with a fourier series. This is part of the Web Audio specification which Tone.js uses to generate the square wave, so i don't really have any control over how it renders waveforms. i think they probably chose this method for practical considerations.
Given this harmonic approximation the square wave should have peaks at odd harmonic multiples of the fundamental which looks consistent with your spectrogram image.
This conversation also seems related to #125 about ideal vs imperfect square waves.


Refactory data modules

I worked on the ability to easily create a Transaction object and also convert it to JSON.
I added the methods toJSON for JSON serialization.
I renamed TxOutputs to TxOutput, TxInputs to TxInput.
I added a method that returns an instance with initialized values.
I enabled the constructor of TxInput to be overload.
Relates to #180

Rebase is required.

I rebased this PR.

Please, do not write TypeScript code like we write D code. Those are two very different languages and we can't just use the same idioms in both. Not to say some idioms can't be used, but I see a lot of code being needlessly complicated because it's attempting to be written the same way as it is in D.
Also, why do we need the toJSON methods ? It looks like in at least some places, the method that was added does exactly the same thing as the default behavior.

Please, do not write TypeScript code like we write D code. Those are two very different languages and we can't just use the same idioms in both. Not to say some idioms can't be used, but I see a lot of code being needlessly complicated because it's attempting to be written the same way as it is in D.
Also, why do we need the toJSON methods ? It looks like in at least some places, the method that was added does exactly the same thing as the default behavior.

The reason for adding this is to easily change the object to JSON string. In the case of Transaction, it was difficult with a single method call because of the mix of array and object. And there's a test code for this.
https://github.com/bpfkorea/stoa/blob/v0.x.x/tests/ValidationJSON.test.ts#L154-L179

The reason for adding this is to easily change the object to JSON string.

We can have toJSON hooks, but there is no reason to add them if they just do what the default is.


Pull in main into the feature/iot pnp branch.

/azp run c - client - test

/azp run c - client - tests


symlink assets folder

@fenekku I will add a test, remove the cookiecutter_wrapper.py leftover and then push again :) I don't want to make more changes so you can focus on the refactoring part without any conflicts. After you can integrate these changes as you find more suitable in the overall redesign. What do you think?


Fix for PHP 7.4

The second commit revels an issue with current code.
Zend\View\Variable implements ArrayObject but array_key_exists doesn't work in this case, as eplained in https://wiki.php.net/rfc/deprecations_php_7_4
This PR is not complete, as with 7.4.0RC3 I still encounter an issue
There were 2 errors:

1) ZendTest\View\Helper\PartialLoopTest::testNestedCallsShouldNotOverrideObjectKey
Trying to get property 'helper' of non-object

/dev/shm/BUILD/zend-view-4f5cb653ed4c64bb8d9bf05b294300feb00c67f2/test/Helper/_files/modules/application/views/scripts/partialLoopChildObject.phtml:10
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Renderer/PhpRenderer.php:506
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/Partial.php:61
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:83
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:61
/dev/shm/BUILD/zend-view-4f5cb653ed4c64bb8d9bf05b294300feb00c67f2/test/Helper/_files/modules/application/views/scripts/partialLoopParentObject.phtml:15
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Renderer/PhpRenderer.php:506
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/Partial.php:61
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:83
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:61
/dev/shm/BUILD/zend-view-4f5cb653ed4c64bb8d9bf05b294300feb00c67f2/test/Helper/PartialLoopTest.php:329

2) ZendTest\View\Helper\PartialLoopTest::testNestedCallsShouldNotOverrideObjectKeyInLoopMethod
Trying to get property 'helper' of non-object

/dev/shm/BUILD/zend-view-4f5cb653ed4c64bb8d9bf05b294300feb00c67f2/test/Helper/_files/modules/application/views/scripts/partialLoopChildObject.phtml:10
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Renderer/PhpRenderer.php:506
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/Partial.php:61
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:83
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:61
/dev/shm/BUILD/zend-view-4f5cb653ed4c64bb8d9bf05b294300feb00c67f2/test/Helper/_files/modules/application/views/scripts/partialLoopParentObject.phtml:15
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Renderer/PhpRenderer.php:506
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/Partial.php:61
/dev/shm/BUILDROOT/php-zendframework-zend-view-2.11.2-1.fc29.remi.x86_64/usr/share/php/Zend/View/Helper/PartialLoop.php:83
/dev/shm/BUILD/zend-view-4f5cb653ed4c64bb8d9bf05b294300feb00c67f2/test/Helper/PartialLoopTest.php:640

See #192

@webimpress sorry I miss this PR,
BTW second commit still make sense ?

Yes, As I explain in initial description, there is some issue.
In current array_key_exists is used which have never work for ArrayAccess, so don't know how it works (test suite) with PHP <= 7.3

@remicollet Ok, thanks, I'll have a look on it later on and will try to release bugfix version with PHP 7.4 compatibility later today. Thanks for your effort!

@remicollet I've fixed other failing tests - see commit c711fbd.
So current function on object is not working either - https://3v4l.org/kZidu
I've changed your fix to keep the previous behaviour and added tests to cover the fix.
Let me know what do you think please.
(BTW. yeah, I do not like it too much, but I don't want introduce BC with the fix...)

Tested 2.11.2 + pr #192 + pr #195
Everything seems ok

FYI, according to Fedora CI, excepted zend-server, ZF seems in good shape for 7.4

Thanks, @remicollet!


User Managed caches do not support cache listening.

Currently, unless I am missing something, user managed caches cannot be used with event listeners.

Needs #165 to be finished first


[Question] how to add mask to a group?

A problem with my own code
In PhaserCE  I Can add mask to group like this.

var mask = game.add.graphics(x,y);
mask.beginFill(0x000000);
mask.drawRect(0, 0, width, height);
if (group.mask !== null) {
    group.mask.destroy();
}
group.mask = mask;

but group in phaser3 does not have mask property, how to add a mask for a group?

Group is no longer a node in Phaser 3, it now performs just like a list (think a more powerful Array), and so come with no visual properties like mask.

Correct, there are no plans to add anything visual to Groups (such as masks) as they are non-exclusive collections of Game Objects. We will discuss it for Containers.


[ENH] Pythonic Metadata Filters

Description of changes
This PR supersedes #1089 as I need to amend it to make it pass tests but I do not have write permissions to akimos-tech/chroma.
Summarize the changes made by this PR.

Improvements & Bug fixes

Pure Pythonic where metadata filters

Test plan
How are these changes tested?
New tests were added to test the where filter construction.

[x] Tests pass locally with pytest for python, yarn test for js

Documentation Changes
A notebook was added. In 4.11 we should add documentation to the website and cutover to this way being the default.

Closing due to test failure. Will let @tazarov continue with #1089


Put initrd on separate line to support multiple initramfs

With this change users don't have to extract the CoreOS image but can simply add their additions as a second initramfs. Much less effort.
See http://www.syslinux.org/wiki/index.php?title=SYSLINUX#INITRD_initrd_file for background info.

Sorry this took so long to give a minimal test. Thanks for the contrib!


Added period for Note in README

Description

Added period for Note in README
Checklist:

[x] I have run ./ci/run_stable_checks.sh
[x] I have reviewed my own code
[x] I have added tests – if this is a bug fix, these tests will fail if the bug is present (to stop it from cropping up again). If this is a feature, my tests prove that the feature works.

LGTM


Add relative humidity utility

Pull Request Checklist:

[ ] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #xyz

[x] Tests for the changes have been added (for bug fixes / features)
[x] Documentation has been added / updated (for bug fixes / features)
[x] HISTORY.rst has been updated (with summary of main changes)
[ ] bumpversion (minor / major / patch) has been called on this branch
[ ] Tags have been pushed (git push --tags)

What kind of change does this PR introduce?

Adds a utility function to convert temperature and dew point temperature to relative humidity, useful for example in the fire weather indexes computation when RH is not directly available.

Je pense que @Paattrriicckk ou @EmilieBresson connaissent mieux que moi ce calcul-là? Est-ce que ma version a de l'allure?
RH = 100 * exp( -L * ( T - Td) / (Rw * T * Td ) )

Salut Pascal, il y a plusieurs formulations possibles pour l'humidité relative; on pourra en jaser demain.

Pull Request Test Coverage Report for Build 1691

14 of 14 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.6%) to 89.026%

Totals

Change from base Build 1671:
0.6%

Covered Lines:
2166

Relevant Lines:
2433

💛  - Coveralls

I think this is good enough for now.
@RondeauG  Est-ce que ça répond à ton besoin futur?
@Paattrriicckk Si tu as le teps, pourrais-tu jeter un coup d'oeil pour nous assurer que je fait pas n'importe quoi? J'ai pris quelques méthodes un peu au hasard, je pense qu'on en propose un nombre raisonnable pour l'instant mais si tu penses qu'une autre est plus commune et mériterait de se trouver ici, c'est pas difficile à ajouter.

De ce que je vois, ton code fait seulement la conversion de humidité spécifique vers humidité relative ? J'aurai besoin d'aller dans les deux directions :
huss --> hurs --> post-process hurs --> huss

Ah ouais! Ça fait ça.

Suggestion after discussion with @Zeitsperre :
Let's move this thing, the surface wind funcs, and the tas helper to a new xclim.indices.variables submodule (maybe not the best name?).  Also, I could move the history updating to a function/decorator and use it there. The aim would be to have an new class of methods that are not indices (cause no stats) or indicators (cause no health checks nor need for the whole formatting machinery), but still have updated metadata (and history) and unit checks when needed. The checks could all be optional to have less restrictive methods.
Whatcha think @huard  and @tlogan2000 ?

I remain unconvinced ; ) I suggest a telco.

@huard  So I moved everything to indices and atmos. I called the files "conversion" cause that's how I think they are going to be used. Also made the tests simpler without the huge dataset that I took from somewhere on the net.

Any relation with https://unidata.github.io/MetPy/latest/api/generated/metpy.calc.html ? Is this something we could leverage ?

Sorry I never answered to that. MetPy does way more than what this PR. It could be used side-by-side with xclim for small scale projects. However, it returns pint.Quantity objects, not DataArrays and is not lazy. For use in a big-data pipeline, that's not cool.
Also, the current state of this PR fails because I used wrapped_partial in the way that #394 makes it work. Thus, I am now in a git mess. I'll wait for answers on mahmoud/boltons#242 to see the best way forward.

@aulemahal Looks like things are good on the boltons front. Anything I can do to help?

Once we merge #394 here, I believe very little will be left to do!

@aulemahal don't forget to bump2version patch!

Looks like one of the libraries hasn't yet built a wheel for Python3.8. This should resolve soon.


Parse and paint turn arrows

The implicit arrows (drawn when there are no turn arrows specified) shown at the bottom need tweaking, but otherwise this looks serviceable!
EnumSet is super easy to use and very ergonomic.

We're very close to lane-level turning movements now, right? The big chunk of missing logic is how to handle 3 lanes merging into 2 and things like that.

You're right that we've got (almost) all the data plumbed through that we need. I think they'll get implemented on a case-by-case basis because of complications like mismatched lane counts. Also, classifying which arms of an intersection constitute "slight left" vs "left" and things like that.
The last piece of that puzzle is the connectivity relation, which answers the question for us in complicated situations (and is our escape hatch to avoid inventing inferences that are too clever). But plumbing it through is complicated, just like complex turn restriction relations.


EMERGENCY! Node suddenly cannot open BBOLT db. "file size too small"

Background
PLEASE HELP!  Here's what I get:
Jul 10 00:48:35 dietnode systemd[1]: Stopped LND Lightning Network Daemon.
Jul 10 00:48:35 dietnode systemd[1]: Started LND Lightning Network Daemon.
Jul 10 00:48:35 dietnode lnd[1406]: Attempting automatic RPC configuration to bitcoind
Jul 10 00:48:35 dietnode lnd[1406]: Automatically obtained bitcoind's RPC credentials
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.560 [INF] LTND: Version: 0.13.0-beta commit=v0.13.0-beta, build=production, logging=default, debuglevel=info
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.561 [INF] LTND: Active chain: Bitcoin (network=mainnet)
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.564 [INF] RPCS: RPC server listening on <IP_ADDRESS>:10009
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.578 [INF] RPCS: gRPC proxy started at <IP_ADDRESS>:8080
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.579 [INF] LTND: Opening the main database, this might take a few minutes...
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.579 [INF] LTND: Opening bbolt database, sync_freelist=false, auto_compact=false
Jul 10 00:48:35 dietnode lnd[1406]: 2021-07-10 00:48:35.583 [INF] LTND: Shutdown complete
Jul 10 00:48:35 dietnode lnd[1406]: unable to open databases: unable to obtain database backends: file size too small
Jul 10 00:48:35 dietnode systemd[1]: lnd.service: Main process exited, code=exited, status=1/FAILURE
Jul 10 00:48:35 dietnode systemd[1]: lnd.service: Failed with result 'exit-code'.
Your environment
lnd 0.12, 0.13 - happens with both. dietpi 64-bit on an RPi4
Steps to reproduce
Happened suddenly while a rebalance script was running.

How large is channel.db on disk? That error is returned by bolt, the underlying database when it goes to set up the initial memory map.  The error is triggered when it fails to perform the memory map, as the underlying file size is less than 2x the page size. Sounds like maybe the file has been replaced, or truncated or for some reason.

I'm not seeing a channels database file, actually.
How is that possible? Could the database have been corrupted in such a way that the filesytem won't list it?
Excuse me if I'm missing something obvious, I'm rather in a panic.
bitcoin@dietnode:~ $ ls /mnt/ext/lnd/data/chain/bitcoin/mainnet/ -lAF
total 2024
-rw-r----- 1 bitcoin bitcoin     293 May  3 18:11 admin.macaroon
-rw-r--r-- 1 bitcoin bitcoin      83 May  3 18:11 chainnotifier.macaroon
-rw-r--r-- 1 bitcoin bitcoin   58279 Jul  9 07:39 channel.backup
-rw-r--r-- 1 bitcoin bitcoin     132 May  3 18:11 invoice.macaroon
-rw-r--r-- 1 bitcoin bitcoin      91 May  3 18:11 invoices.macaroon
-rw-r----- 1 bitcoin bitcoin   20480 Jul  9 07:38 macaroons.db
-rw-r--r-- 1 bitcoin bitcoin     217 May  3 18:11 readonly.macaroon
-rw-r--r-- 1 bitcoin bitcoin      91 May  3 18:11 router.macaroon
-rw-r--r-- 1 bitcoin bitcoin      92 May  3 18:11 signer.macaroon
-rw-r----- 1 bitcoin bitcoin 1957888 Jul 10 00:37 wallet.db
-rw-r--r-- 1 bitcoin bitcoin     114 May  3 18:11 walletkit.macaroon

Thanks, @Roasbeef ! Did I hit another file size limit somehow?
-rw-r--r-- 1 bitcoin bitcoin<PHONE_NUMBER> Jul 10 00:37 channel.db

Attempting compacting with chantools on a more memory-rich machine. Hopeful this will work.

Worked. I apparently need to be more careful with my database size regardless of architecture.
Sorry to bother you, @Roasbeef , and thanks again for the help!


Fix baselayerchange event argument (fix #3677)

Should fix #3677
Unittest wasn't actually run, because of missing map.setView.

:+1:


To Reproduce
Just add:
![](https://raw.githubusercontent.com/JasonStein/Notepads/master/ScreenShots/1.png)

to your md file, then type other things. The preview will show the image, but also flicker with every character you type.
Expected behavior
The images should not flicker.
 There is no diff rendering or caching at all. So it basically renders the whole document again and again when text changed.
The MarkdownTextBlock I use is from Windows Community Toolkit repo and I am replying heavily on the community to improve it. I don't see any updates there and there are quite few bugs so I forked it and now it is part of Notepads codebase. I already did several fixes to the MarkdownTextBlock and just after you send out this issue, I did below changes to cache the images:
https://github.com/JasonStein/Notepads/commit/1dbf6c1add05089f7db370418c839e1a4f877ebc
To further improve it and resolve this issue. Few things can be done:

Only render the lines you have actually touched/changed and keep existing rendered text and images as it is. (This requires a lot of refactoring work and logic changes)
Introduce periodic rendering. So it renders every few seconds after you made changes to save computation resources as well as improving performance on large MD files.

I am more focusing on the editor side and I will re-visit above topics once I am free.


Rules in GCS causes scanner to not run

Forseti 2.25?
If a rule path is to a file in GCS, the scanner_builder will not return the scanner, thus the scanner will not run.
https://github.com/forseti-security/forseti-security/blob/e05949567b4c3869e66c32863ebe7aaa28acd55b/google/cloud/forseti/scanner/scanner_builder.py#L127-L130

This check was added 26 days ago in this PR: https://github.com/forseti-security/forseti-security/commit/42d6d738473e872414951ab9bc85703f1f992aa5#diff-b3ab31b8737b069d164ab56066436a0b
@gkowalski-google is there any reason the check is needed?

@gkowalski-google @joecheuk I'll work on a fix this morning.

@kevensen @joecheuk This issue has already been resolved as part of the v2.25.0 release: https://github.com/forseti-security/forseti-security/pull/3541; it was merged into the release branch. This check was added as part of moving the sample rules out of the rules directory. The Config Validator scanner does not have a rule file. For the other scanners, if the rules file is not present then the scanner will not build successfully. I put this check in to make it more obvious what the issue is.


Universal notes view

As a user, I want to be able to see all notes in the application in a single place.

This view should also show the objects each note is attached to.
This view should also be able to filter by tagged user (#174) so that an individual can find notes tagged with themselves.

Changes staged on develop


Wildcard Pattern Matching in java and c

💥 Proposal
Given two strings 'str' and a wildcard pattern 'pattern' of length N and M respectively,  You have to print '1' if the wildcard pattern is matched with str else print '0' .
The wildcard pattern can include the characters ‘?’ and ‘’
‘?’ – matches any single character
‘’ – Matches any sequence of characters (including the empty sequence)
Note: The matching should cover the entire str (not partial str).
Example 1:
Input:
pattern = "baa?"
str = "baaabab"
Output: 1
Explanation: replace '' with "aab" and
'?' with 'b'
Have you read the [Contributing Guidelines on Pull Requests]
YES
I would like to code it as a gssoc participant

/assign

can you reopen this?

I have already close 1 issue


Is there an existing issue for this?

[X] I have searched the existing issues.

Which plugins are affected?
Core, Other
Which platforms are affected?
Android
Description
When running the app, it is suppose to run but it does not run because of the 3.3.0 version. It shows this error: Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$1 found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk8-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10)
Reproducing the issue
Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$1 found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk8-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10)
Firebase Core version
3.3.0
Flutter Version
3.24.0
Relevant Log Output
What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk8-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10)

Flutter dependencies

Expand Flutter dependencies snippet

Replace this line with the contents of your `flutter pub deps -- --style=compact`.

Additional context and comments
No response

Duplicated of https://github.com/firebase/flutterfire/issues/13060


why emulating tabs with gtk button?

This would differ with different theme styles, tabs aren't buttons and look ugly on many themes :/ On my system they look quite big and embossed out, not exactly how tabs would look. I looked over here : https://developer.gnome.org/gtk3/stable/GtkNotebook.html and the default style is better than the button style.
And another small question, why using Gtk::ReliefStyle::RELIEF_NONE instead of Gtk::ReliefStyle::RELIEF_NORMAL
And link provided in source code is broken for me:
//Based on http://www.micahcarrick.com/gtk-notebook-tabs-with-close-button.html
  std::string data =  ".button {\n"
                      "-GtkButton-default-border : 0px;\n"
                      "-GtkButton-default-outside-border : 0px;\n"
                      "-GtkButton-inner-border: 0px;\n"
                      "-GtkWidget-focus-line-width : 0px;\n"
                      "-GtkWidget-focus-padding : 0px;\n"
                      "padding: 0px;\n"
                      "}";

The tab is made up of Gtk::Box containing a label and a button. This was done since the standard Gtk::Notebook tabs does not include a close button. Tested the tab visualisation on several platforms, and the current code was the best way I found to keep the tabs as small as possible. If you know of a better way to do this feel free to make a pull request, and I can test it on older Linux system as well as OS X and Windows.
Gtk::ReliefStyle::RELIEF_NONE was added to make the close button as small as possible on older systems like Ubuntu 14 if I remember correctly.
http://www.micahcarrick.com/gtk-notebook-tabs-with-close-button.html is not working for me either anymore, but I guess you can use a web page buffer service to view the older version.
What platform are you using?

@eidheim arch linux (lldb disabled) with vertex theme - https://github.com/horst3180/vertex-theme/.

Would you mind post a screenshot of juCi++ with this theme showing the tabs?

I tried Vertex Theme on Debian testing and did not see anything strange with the tabs using this theme (tried both light and dark).

Yup here is the screenshot

Gedit for comparision.

Aha, I know what it is. juCi++ sets the theme in preferences (control-comma). You can change gtk_theme.name and variant there, as well as source.style (choose from your installed styles, although the juci styles might work best: juci-light, juci-dark and juci-dark-blue (see comments).

@eidheim I had already changed the theme and in previous screenshot both apps are using same theme. I digged around and found out some properties to play with. Here's an unfinished version :smile:

I misunderstood, see now what you mean. Agree that the screenshot above is looking much better. Remember that the tabs got a bit more ugly when I added the possibility to move the tabs around. Looking forward to a PR making the tabs more pretty:)

Solved I think in https://github.com/eidheim/jucipp/commit/75cc29def5f9095bdadc04ad727a46279e264921

Glad to see these changes :smile: would you mind updating ( or placing a new screenshot) with more than 1 tabs?


Refactor and improvements for method com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.createVMFromSpec()

Description
This PR goal is to refactor the method createVMFromSpec(final VirtualMachineTO vmTO) in class com.cloud.hypervisor.kvm.resource.LibvirtComputingResource and improve its logs, javadocs, while adding unit tests for all of the code that is extracted and modified.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[x] Cleanup (Code refactoring and cleanup, that may add test cases)

How Has This Been Tested?
All unit tests have been tested, and I've checked that the results on the main branch are the same of this refactor.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 351

@DaanHoogland I literally debug the existing tests in main and checked the VM XML settings for each test. And I repeated this process on the branch where I made the changes to compare the results.

@DaanHoogland I literally debug the existing tests in main and checked the VM XML settings for each test. And I repeated this process on the branch where I made the changes to compare the results.

tnx, code looks good, but need testing.

@GabrielBrascher Thanks for the suggestions. Most have been implemented, although there is a suggestion that I don't quite understand how useful it is.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian. SL-JID 564

Trillian test result (tid-1291)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 37598 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5149-t1291-kvm-centos7.zip
Smoke tests completed. 88 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@DaanHoogland Thanks for the review.
I agree with your opinion about the LXC support, but I think is better to discuss this in an issue or an PR specific for it.

Looks really nice @SadiJr.
@davidjumani this PR will require some effort to test on KVM ensuring there are no regressions, let's try to find some time for testing it

@blueorangutan package

@davidjumani a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian. SL-JID 611

@blueorangutan test keepEnv

@davidjumani a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1332)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 43232 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5149-t1332-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_routers_iptables_default_policy.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 88 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Failure
571.39
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Failure
422.31
test_vpc_redundant.py


Added Specification / Attribute Registry

Added Specification Registry

[x] Attributes

[x] age
[x] amount
[x] date
[x] email
[x] first_name
[x] last_name
[x] middle_name
[x] name

[x] Constraints

[x] regex

[x] Pre Processors

[x] register.json

[x] broadcast.json

Linked to Issue : #6

@bharatkashyap kindly do review the PR. Thanks !


[Bug]: File Upload not working

Browser
Firefox
Package version
3.0.382
React version
18.2.0
Description
When using file upload, onChange event is sending an empty file list to the onChange handler.
Source code
`
import { useState } from 'react';
import {  Button, Container, FileUpload , Form, FormField , SpaceBetween } from '@cloudscape-design/components';
function FileUploadForm() {
const [filesVal, setFilesVal] = useState([]);
function updateFilesVal(values) {
console.log("updateFilesVal got values " + JSON.stringify(values));
setFilesVal(values)
console.log("filesVal is now " + JSON.stringify(values));
}
return (
<form onSubmit={e => {
sendData(e)
e.preventDefault();
}}>
<Form className="testForm"
actions={

Cancel

Submit

}        >
<Container
header={

Edit Document Collection

}
>

<FileUpload
onChange={({ detail }) => updateFilesVal(detail.value)}
value={filesVal}
i18nStrings={{
uploadButtonText: e => e ? "Choose files" : "Choose file",
dropzoneText: e => e ? "Drop files to upload"  : "Drop file to upload",
removeFileAriaLabel: e => Remove file ${e + 1},
limitShowFewer: "Show fewer files",
limitShowMore: "Show more files",
errorIconAriaLabel: "Error"
}}
multiple
/>

);
}
`
Reproduction
https://codesandbox.io/s/nifty-volhard-gq5rn3?file=/src/App.js
Expect that when onChange prints the file data it receives, it doesn't print out empty file data.:
 updateFilesVal got values [{}] [index.js:27:25](webpack:////home/circleci/codesandbox-client/node_modules/console-feed/lib/Hook/index.js)
filesVal is now [{}]
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems

Hi @davetbo-amzn, thanks for reaching out!
In your code you console.log the the JSON representation of the File array (given by the FileUpload's onChange event). It is not possible to directly convert a File object into JSON notation (more info on the MDN docs).
When you remove the JSON.stringify method in your log statement, you'll see the actual File array in your DevTools console.
Feel free to re-open this issue if you have any further questions about.


Fixed UnsupportedOperationException when releasing an user-provided URLStreamHandlerFactory

CopyOnWriterArrayList iterator remove operation was invoked when
de-registering a user-provided URLStreamHandlerFactory.
I also added a test case for that.

Hi,
Thanks for the patch.
Fix is available in trunk and Tomcat 8 (for 8.0.29 onwards).
Regards,
Violeta


Volume mounts not working with podman runtime

Volume mounts are working with nerdctl and docker, but not with podman:

default
docker
podman

$ lima nerdctl run -v $PWD/hello:/hello docker.io/busybox cat /hello/world
Hello, World!
$ export DOCKER_HOST=unix://$HOME/docker.sock
$ docker run -v $PWD/hello:/hello docker.io/busybox cat /hello/world
Hello, World!
$ export CONTAINER_HOST=unix://$HOME/podman.sock
$ podman --remote run -v $PWD/hello:/hello docker.io/busybox cat /hello/world
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob sha256:01c2cdc137396a9b78be86c47e5773388e6eed953dec79e257777518134b45f1
Copying config sha256:cabb9f684f8ba3edb303d578bfd7d709d853539ea1b420a3f6c81a08e85bb3d7
Writing manifest to image destination
Storing signatures
Error: error preparing container beb192f8ed88b02e3f3fcbdb3551d29de12770f9aa590e7987af6ec0d4d5e659 for attach: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/home/anders/lima/hello" to rootfs at "/hello" caused: operation not permitted: OCI permission denied

It does work with regular root containers, but not with rootless containers.
$ limactl shell podman sudo podman run -v $PWD/hello:/hello docker.io/busybox cat /hello/world
Hello, World!

(For some reason it pulls the image every time, probably an upstream bug?)

Running locally shows warnings:
WARN[0000] The cgroupv2 manager is set to systemd but there is no systemd user session available
WARN[0000] For using systemd, you may need to login using an user session
WARN[0000] Alternatively, you can enable lingering with: `loginctl enable-linger 1000` (possibly as root)
WARN[0000] Falling back to --cgroup-manager=cgroupfs

But lima did run that command ?

Installing crun fixed it:
sudo apt install crun
Looks like podman is not compatible with runc, when running under cgroups v2.
$ podman --remote run -v $PWD/hello:/hello docker.io/busybox cat /hello/world
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob sha256:01c2cdc137396a9b78be86c47e5773388e6eed953dec79e257777518134b45f1
Copying config sha256:cabb9f684f8ba3edb303d578bfd7d709d853539ea1b420a3f6c81a08e85bb3d7
Writing manifest to image destination
Storing signatures
Hello, World!

(For some reason it pulls the image every time, probably an upstream bug?

This bug happens when using a podman4 client, towards the podman3 server.
When using a podman 3.2.1 client with the podman 3.2.1 server, it doesnt happen.


Small (but annyoing) error in bower.json

The line
"main": "octokat.js",

in bower.json shoiuld read
"main": "dist/octokat.js",

otherwise tools like main-bower-files can't be used to automatically bundle octokat.

Thanks for catching that! I pushed the change to master and it will be included in the next minor version release


Cancel seed

Hi,
I love this plugin, thanks for your work !
It would be great to be able to interrupt the seed anytime. (ex: a cancelSeed function).
Thanks !

it is very easy to cancel the seed, just add a option, and determine the status in the function _seedOneTile


MedPerf Client needs to ensure TLS unless an "allow-insecure-comms" flag is set.

Right now, the medperf client doesn't require use of TLS, which is risky because the username/password could be sent over the network if the user doesn't pay attention to the URL they set the server to.
We need the client to ensure TLS is in use (verify=True only applies when TLS is used. It doesn't force it's use).
For now, to support development, we can add a --allow-insecure-comms flag to medperf CLI to skip the TLS check (which doesn't have anything to do with verify=True in requests).
In the meantime, we need to scope using self-signed certs for local development deployments. Django appears to support using self-signed certs, so if we can simply pass that same cert to the client, it can set that cert path in the verify field, e.g. "verify=../server/self_signed_cert.crt". That would ensure the client only connects to a server whose cert matches the self-signed cert on the local filesystem.

Looking at this guide
https://ubuntu.com/server/docs/security-certificates
I found that one could add a certificate to the default list of certificates by adding it to /etc/ssl/certs and /etc/ssl/private. I think following this structure is really appealing, as the user doesn't have to care in most scenarios about the certificate. If running things locally, the certificate will be automatically added to those paths and the platform will trust the self-signed certificate. If then they use a remote deployment with a CA-signed certificate then nothing changes from the user's perspective.
Would it be possible for the server to create this certificates and automatically move them to the specified folders? That would be amazing

This was fixed with PR #189


[MXNET-294] Fix element wise multiply for csr ndarrays

Description
Fixes Issue https://github.com/apache/incubator-mxnet/issues/10431
JIRA
Tensor value was being used without initialization causing garbage values to crop up and make the product wrong.
First use with +=
https://github.com/apache/incubator-mxnet/blob/6f6a1dc4d350dcec3058abbe4ca5123b5fce536e/src/operator/tensor/elemwise_binary_op-inl.h#L339
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] Initialize tensor

Comments

There is already a test for this.

@eric-haibin-lin @anirudh2290 @cjolivier01 Please review

Can you add a test which calls elemwise_mul with same ndarray ?

Thanks, added

Seems like a flaky test, opened an issue for the same: https://github.com/apache/incubator-mxnet/issues/10476. Can you please retrigger.

@anirudh2290 Build passed

@eric-haibin-lin can this be merged ?


Alternative to Numpy

I would like to try your code on the pyboard and the OpenMV boards.  Unfortunately, Numpy is huge so it cannot be installed on a microcontroller.  Will it be possible to using list, a bytearray, or an array.array; to implement the functions you are using from numpy?

Hi abencomo
Yes sure, you can easily replace Numpy. In the code I provided I used Numpy only for element-wise matrix addiction and matrix-scalar multiplication. If you create your own function for these two operation you are done. I used matrices but you can use lists instead. However you should be careful because some algorithm are computationally expensive. The limited hardware of a microcontroller could take hours to converge to stable solutions. What I suggest you is to find an optimal policy running the script on a workstation and then load the policy in you microcontroller.


Craft 1 Flint with 2, 3, or 4 gravel

We should remove two of those options.

I removed the 3->1 recipe from Tinker's Construct, and I removed the recipe added by PrimalCore. I'm not sure if that was the 2->1 or the 4->1 recipe, but either way, we should only have one left.

Looks like this is fixed. Lance complained about the 2->1 and 3->1 recipes not working (they'll still show up in JEI until we update the client configs). I'm curious what mod adds the 4->1 recipe so I could disable that then add my own. I'm honestly okay with the 2->1 ratio that seems to have been added by PrimalCore.


Named chunks

@sokra as per our discussion here I'm working on implementing the name parameter.
I think it should work for both regular and dynamic requires. For dynamic requires it should be a regex that extracts the name from the filename being processed. A few questions:

should I use the same name parameter for both and detect in some way if it's a plain string or regular expresion? or better to use different parameters?  Any examples of loaders that use regex in the query?
is it safe to suppose that the filename is always the last part of remainingRequest?

Hi,
is this implemented in the bundle-loader? I tried to do the following.
require(
      `bundle?name=moment_local_[name]!moment/locale/${locale}.js`
    )

It will require all locale files, but just creates one bundle with all modules inside. The Name of the module is moment_locale_firstLocaleFound. So, [name] is replaced, but not dynamically for each file but just for the first file required. I was expecting it creates one bundle for each included file.

@BowlingX
for me it is worked:
require(`bundle?name=[name].settings.lang!./lang/${locale}.json`)

I got separate files for each of my translated languages like these:
1.en.settings.lang.js
2.ru.settings.lang.js
which are included separetelly

I'm still seeing this issue that require(bundle-loader?name=[name]&lazy!./resources/nls/${lang}/localeElements); is only creating one chunk


Increase size of default memory allocation

Reported by ansley b manke on 2 Feb 2009 23:55 UTC
It's probably time to increase the default amount of memory Ferret gets to start. Everyone has more memory these days and the beginner/casual user won't know to use the .ferret startup file increase the size. How about a modest increase to 16 mWords as the default.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1628

Comment by ansley.b.manke on 6 Feb 2009 22:37 UTC
Done: increased by a factor of 4 to 25.6 and noted in the documentation.


Include  in FormatterFwd

Summary
Without this header, the project might not compile is some environments.
Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

Thanks for the contribution! Are you able to sign the commit according to the Developer Certificate of Origin? If you agree, you can amend the commit with git commit --amend --signoff

https://developercertificate.org

Also, this is vendored code; they will probably appreciate this fix upstream at github.com/CLIUtils/CLI11 as well.

Also, this is vendored code; they will probably appreciate this fix upstream at github.com/CLIUtils/CLI11 as well.

Yes, will do so. Thanks for pointing it out!

@osrf-jenkins run tests please


add helm to quick_start

Issue
Logging does not work when using quick_start.sh
Cause
quick_start.sh does not help the user install helm
Solution
Add helm to quick_start.sh

Looks good to me!


ERROR in ./node_modules/react-pdf/dist/esm/eventBus.js

Hi, I am getting this error when I am using the package on my rails react app,
"export 'EventBus' was not found in 'pdfjs-dist/lib/web/ui_utils'

It's a simple import not anything fancy
import DocViewer from "react-doc-viewer";

const docs = [
    { uri: "http://www.orimi.com/pdf-test.pdf" },
  ];

  <DocViewer documents={docs} />

Would appreciate any help on this.
My rails version is 5.2.3
My react version is 16.3.0
My node version is 13.7.0
I am using yarn instead of npm as it goes with my project. Using webpack to compile the JS.
Thanks

did you ever figure this out??


add project libcompose for docker org

I think that libcompose is missing in docker org  which is added to make docker org more complete.
Thanks.
Signed-off-by: yuexiao-wang<EMAIL_ADDRESS>

Thank you for contributing to openstack/stackalytics!
openstack/stackalytics uses Gerrit for code review.
If you have never contributed to OpenStack before make sure you have read the
getting started documentation:
http://docs.openstack.org/infra/manual/developers.html#getting-started
Otherwise please visit
http://docs.openstack.org/infra/manual/developers.html#development-workflow
and follow the instructions there to upload your change to Gerrit.


update rest-client dependency to 1.8.0

updating rest-client to 1.8.0.
some useful gems require rest-client 1.8, but ruby-pushbullet require 1.7.2. I cannot use them together.

@tdtds thanks :+1:


there are 2 menu in the same sidebar

there  is a heading of menu and and the first element in the sidebar's name is also "menu". we can change it to something like home also the login element is concatenated in a single word ill change it too so please assign it to me

No, it has been corrected. I suggest you should always use "git pull origin main" before changing in codebases, it pulls origin main before making changes ensure that the local codebase is up-to-date with the remote repository


What is the number of events?

Hi @jts,
Thanks for developing nanopolish. I hope to know the definition of "an event". For a given position of a read (e.g., 993f8b8c-04ca-45a5-9003-1c3ebcfdb302) aligned to a given transcript (e.g., ENST000001), why are there multiple records in event align output file? What does "a position of a read has multiple records to a given transcript" mean?
Thanks,
WOody

Hi,
I explain some of the core ideas here:
http://simpsonlab.github.io/2015/04/08/eventalign/
Jared


TEMP: Probe "testing" demo with updated cratedb-toolkit

About
Aims to verify another patch for cratedb-toolkit.

https://github.com/crate-workbench/cratedb-toolkit/pull/115

Works! 🥳


Move app styling to Data framework (?)

I was just thinking about this. Would we like to have a structured App Styling in the Data Framework which we can apply in the app? Would that make sense and be useful in the long run?

Yes - that is what I was wondering as well (if it would make sense in the Data framework). Maybe a separate framework is better in that case.
To answer your question: yes, it would be app colors, icons, fonts.
But then again, we can also just put this in with the app itself. 🤔


Random Names with Fixed Seed

adds test to verify names are different even with seed fixed
verifies test failed before and now passes

Enabling automerge since its a small change

Does this mean that for say a distributed training run, each rank would get a different run_name?

Does this mean that for say a distributed training run, each rank would get a different coolname? So we would get:

Hm... ok yea... I agree that's bad. Let me change it to do only on rank0 and then share


Update specs2-core, specs2-mock to 4.15.0

Updates

org.specs2:specs2-core
org.specs2:specs2-mock

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

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

labels: test-library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #466.


whitelist the a[rel] attribute

I don't think the rel attribute can be used as attack vector, and preserve it is useful (especially for rel="nofollow")

ping


Please rerank PaperFold

Please rerank Paperfold. I am getting sick and tired of people complaining it's too hard for a 7. Also, they're correct.
I don't know why approver decided to rank it 7 when the average ranking was 6, but I am still dealing with frustrated users on a regular basis, and I would like that to STOP.
Please rerank to 6 kyu.

Pushed back to beta.

Pushed back to beta.

reapproved at 6

reapproved at 6

Thanks guys.

Thanks guys.


Firewall Alteration

Hello all,
I would like to make an alteration to the firewall.
The pdf discribes the alteration proposed
Firewall Alteration.pdf

`/**

Copyright 2011, Big Switch Networks, Inc.
Originally created by Amer Tahir

Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
**/

package net.floodlightcontroller.firewall;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.MappingJsonFactory;
import org.projectfloodlight.openflow.types.DatapathId;
import org.projectfloodlight.openflow.types.EthType;
import org.projectfloodlight.openflow.types.IPv4AddressWithMask;
import org.projectfloodlight.openflow.types.IpProtocol;
import org.projectfloodlight.openflow.types.MacAddress;
import org.projectfloodlight.openflow.types.OFPort;
import org.projectfloodlight.openflow.types.TransportPort;
import org.restlet.resource.Delete;
import org.restlet.resource.Post;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FirewallRulesResource extends ServerResource {
protected static Logger log = LoggerFactory.getLogger(FirewallRulesResource.class);
@Get("json")
public List<FirewallRule> retrieve() {
	IFirewallService firewall =
			(IFirewallService)getContext().getAttributes().
			get(IFirewallService.class.getCanonicalName());

	return firewall.getRules();
}

/**
 * Takes a Firewall Rule string in JSON format and parses it into
 * our firewall rule data structure, then adds it to the firewall.
 * @param fmJson The Firewall rule entry in JSON format.
 * @return A string status message
 */
@Post
public String store(String fmJson) {
	IFirewallService firewall =
			(IFirewallService)getContext().getAttributes().
			get(IFirewallService.class.getCanonicalName());

	FirewallRule rule = jsonToFirewallRule(fmJson);
	if (rule == null) {
		return "{\"status\" : \"Error! Could not parse firewall rule, see log for details.\"}";
	}
	String status = null;
	if (checkRuleExists(rule, firewall.getRules())) {
		status = "Error! A similar firewall rule already exists.";
		log.error(status);
		return ("{\"status\" : \"" + status + "\"}");
	} else {
		// add rule to firewall
		String res = checkRuleOverlap(rule, firewall.getRules());
		if(res != null){ // isOverlapable
			/**
			 * ATENTION THIS ALGORITHM can overlap only a single rule!
			 */
			status = "Rule Not added";
			log.error(res);

			return ("{\"status\" : \"" + status + "\"}");
		}
		//Still have to conflict Check
		firewall.addRule(rule);
		status = "Rule added";
		return ("{\"status\" : \"" + status + "\", \"rule-id\" : \""+ Integer.toString(rule.ruleid) + "\"}");

	}
}

/**
 * Takes a Firewall Rule string in JSON format and parses it into
 * our firewall rule data structure, then deletes it from the firewall.
 * @param fmJson The Firewall rule entry in JSON format.
 * @return A string status message
 */

@Delete
public String remove(String fmJson) {
	IFirewallService firewall =
			(IFirewallService)getContext().getAttributes().
			get(IFirewallService.class.getCanonicalName());

	FirewallRule rule = jsonToFirewallRule(fmJson);
	if (rule == null) {
		//TODO compose the error with a json formatter
		return "{\"status\" : \"Error! Could not parse firewall rule, see log for details.\"}";
	}

	String status = null;
	boolean exists = false;
	Iterator<FirewallRule> iter = firewall.getRules().iterator();
	while (iter.hasNext()) {
		FirewallRule r = iter.next();
		if (r.ruleid == rule.ruleid) {
			exists = true;
			break;
		}
	}
	if (!exists) {
		status = "Error! Can't delete, a rule with this ID doesn't exist.";
		log.error(status);
	} else {
		// delete rule from firewall
		firewall.deleteRule(rule.ruleid);
		status = "Rule deleted";
	}
	return ("{\"status\" : \"" + status + "\"}");
}

/**
 * Turns a JSON formatted Firewall Rule string into a FirewallRule instance
 * @param fmJson The JSON formatted static firewall rule
 * @return The FirewallRule instance
 * @throws IOException If there was an error parsing the JSON
 */

public static FirewallRule jsonToFirewallRule(String fmJson) {
	FirewallRule rule = new FirewallRule();
	MappingJsonFactory f = new MappingJsonFactory();
	JsonParser jp;
	try {
		try {
			jp = f.createParser(fmJson);
		} catch (JsonParseException e) {
			throw new IOException(e);
		}

		jp.nextToken();
		if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
			throw new IOException("Expected START_OBJECT");
		}

		while (jp.nextToken() != JsonToken.END_OBJECT) {
			if (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
				throw new IOException("Expected FIELD_NAME");
			}

			String n = jp.getCurrentName();
			jp.nextToken();
			if (jp.getText().equals("")) {
				continue;
			}

			// This is currently only applicable for remove().  In store(), ruleid takes a random number
			if (n.equalsIgnoreCase("ruleid")) {
				try {
					rule.ruleid = Integer.parseInt(jp.getText());
				} catch (IllegalArgumentException e) {
					log.error("Unable to parse rule ID: {}", jp.getText());
				}
			}

			// This assumes user having dpid info for involved switches
			else if (n.equalsIgnoreCase("switchid")) {
				rule.any_dpid = false;
				try {
					rule.dpid = DatapathId.of(jp.getText());
				} catch (NumberFormatException e) {
					log.error("Unable to parse switch DPID: {}", jp.getText());
					//TODO should return some error message via HTTP message
				}
			}

			else if (n.equalsIgnoreCase("src-inport")) {
				rule.any_in_port = false;
				try {
					rule.in_port = OFPort.of(Integer.parseInt(jp.getText()));
				} catch (NumberFormatException e) {
					log.error("Unable to parse ingress port: {}", jp.getText());
					//TODO should return some error message via HTTP message
				}
			}

			else if (n.equalsIgnoreCase("src-mac")) {
				if (!jp.getText().equalsIgnoreCase("ANY")) {
					rule.any_dl_src = false;
					try {
						rule.dl_src = MacAddress.of(jp.getText());
					} catch (IllegalArgumentException e) {
						log.error("Unable to parse source MAC: {}", jp.getText());
						//TODO should return some error message via HTTP message
					}
				}
			}

			else if (n.equalsIgnoreCase("dst-mac")) {
				if (!jp.getText().equalsIgnoreCase("ANY")) {
					rule.any_dl_dst = false;
					try {
						rule.dl_dst = MacAddress.of(jp.getText());
					} catch (IllegalArgumentException e) {
						log.error("Unable to parse destination MAC: {}", jp.getText());
						//TODO should return some error message via HTTP message
					}
				}
			}

			else if (n.equalsIgnoreCase("dl-type")) {
				if (jp.getText().equalsIgnoreCase("ARP")) {
					rule.any_dl_type = false;
					rule.dl_type = EthType.ARP;
				} else if (jp.getText().equalsIgnoreCase("IPv4")) {
					rule.any_dl_type = false;
					rule.dl_type = EthType.IPv4;
				}
			}

			else if (n.equalsIgnoreCase("src-ip")) {
				if (!jp.getText().equalsIgnoreCase("ANY")) {
					rule.any_nw_src = false;
					if (rule.dl_type.equals(EthType.NONE)){
						rule.any_dl_type = false;
						rule.dl_type = EthType.IPv4;
					}
					try {
						rule.nw_src_prefix_and_mask = IPv4AddressWithMask.of(jp.getText());
					} catch (IllegalArgumentException e) {
						log.error("Unable to parse source IP: {}", jp.getText());
						//TODO should return some error message via HTTP message
					}
				}
			}

			else if (n.equalsIgnoreCase("dst-ip")) {
				if (!jp.getText().equalsIgnoreCase("ANY")) {
					rule.any_nw_dst = false;
					if (rule.dl_type.equals(EthType.NONE)){
						rule.any_dl_type = false;
						rule.dl_type = EthType.IPv4;
					}
					try {
						rule.nw_dst_prefix_and_mask = IPv4AddressWithMask.of(jp.getText());
					} catch (IllegalArgumentException e) {
						log.error("Unable to parse destination IP: {}", jp.getText());
						//TODO should return some error message via HTTP message
					}
				}
			}

			else if (n.equalsIgnoreCase("nw-proto")) {
				if (jp.getText().equalsIgnoreCase("TCP")) {
					rule.any_nw_proto = false;
					rule.nw_proto = IpProtocol.TCP;
					rule.any_dl_type = false;
					rule.dl_type = EthType.IPv4;
				} else if (jp.getText().equalsIgnoreCase("UDP")) {
					rule.any_nw_proto = false;
					rule.nw_proto = IpProtocol.UDP;
					rule.any_dl_type = false;
					rule.dl_type = EthType.IPv4;
				} else if (jp.getText().equalsIgnoreCase("ICMP")) {
					rule.any_nw_proto = false;
					rule.nw_proto = IpProtocol.ICMP;
					rule.any_dl_type = false;
					rule.dl_type = EthType.IPv4;
				}
			}

			else if (n.equalsIgnoreCase("tp-src")) {
				rule.any_tp_src = false;
				try {
					rule.tp_src = TransportPort.of(Integer.parseInt(jp.getText()));
				} catch (IllegalArgumentException e) {
					log.error("Unable to parse source transport port: {}", jp.getText());
					//TODO should return some error message via HTTP message
				}
			}

			else if (n.equalsIgnoreCase("tp-dst")) {
				rule.any_tp_dst = false;
				try {
					rule.tp_dst = TransportPort.of(Integer.parseInt(jp.getText()));
				} catch (IllegalArgumentException e) {
					log.error("Unable to parse destination transport port: {}", jp.getText());
					//TODO should return some error message via HTTP message
				}
			}

			else if (n.equalsIgnoreCase("priority")) {
				try {
					rule.priority = Integer.parseInt(jp.getText());
				} catch (IllegalArgumentException e) {
					log.error("Unable to parse priority: {}", jp.getText());
					//TODO should return some error message via HTTP message
				}
			}

			else if (n.equalsIgnoreCase("action")) {
				if (jp.getText().equalsIgnoreCase("allow") || jp.getText().equalsIgnoreCase("accept")) {
					rule.action = FirewallRule.FirewallAction.ALLOW;
				} else if (jp.getText().equalsIgnoreCase("deny") || jp.getText().equalsIgnoreCase("drop")) {
					rule.action = FirewallRule.FirewallAction.DROP;
				}
			}
		}
	} catch (IOException e) {
		log.error("Unable to parse JSON string: {}", e);
	}

	return rule;
}

public static boolean checkRuleExists(FirewallRule rule, List<FirewallRule> rules) {
	Iterator<FirewallRule> iter = rules.iterator();
	while (iter.hasNext()) {
		FirewallRule r = iter.next();

		// check if we find a similar rule
		if (rule.isSameAs(r)) {
			return true;
		}
	}

	// no rule matched, so it doesn't exist in the rules
	return false;
}
public static final int DPID_BIT 	= 1;
public static final int IN_PORT_BIT = 2;
public static final int DL_SRC_BIT 	= 4;
public static final int DL_DST_BIT 	= 8;
public static final int DL_TYPE_BIT	= 16;
public static final int NW_SRC_BIT 	= 32;
public static final int NW_DST_BIT 	= 64;
public static final int NW_PROTO_BIT= 128;
public static final int TP_SRC_BIT 	= 256;
public static final int TP_DST_BIT 	= 512;
//public static final int PRIORITY_BIT= 1024;
public static final String NEW_RULE_OVERLAPS = "WARNING: This rule overlapes another firewall rule with rule id: ";
public static final String NEW_RULE_OVERLAPED = "WARNING: The rule is overlaped by another firewall rule with rule id: ";

/**
 * Checks for Rule Overlaping in following conditions
 * New rule having priority lower or equal to current rules
 * New rule having having equal parameters and wildcards
 * @param rule
 * @param rules
 * @return error a String error message. Null if no overlap event is found
 */
public static String checkRuleOverlap(FirewallRule rule, List<FirewallRule> rules) {
	Iterator<FirewallRule> iter = rules.iterator();
	while (iter.hasNext()) {
		FirewallRule r = iter.next();
		// New rules with higher priority are not evaluated has overlapable
		// only check overlapability in cases where priority is lower or equal.
		// wheter priority is lower or equal we need to check overlapability because
		// they can be overlapable or not.
		// When new rule has higher priority we accept the rule. overlapability does not matter
		// Some actual configured rules might be overlaped by a higher priority rule because
		// since the have lower priority they will never be verified.
		// Possible existence of "junk rules".
		if(rule.priority == r.priority){

			int overlap = 0;
			boolean whoOverlapes = false; // if true , new rule overlapes else new rule is overlaped
			int sameField = 0;

			// Check Switch Overlap
			if(rule.any_dpid ^ r.any_dpid){
				overlap += DPID_BIT;
				whoOverlapes = (rule.any_dpid && !whoOverlapes) ? true : false;
			}

			if(rule.any_in_port ^ r.any_in_port){
				overlap += IN_PORT_BIT;
				whoOverlapes = (rule.any_in_port && !whoOverlapes) ? true : false;
			}
			if(rule.dpid.equals(r.dpid))
				sameField += DPID_BIT;
			if(rule.in_port.equals(r.in_port))
				sameField += IN_PORT_BIT;

			if((overlap | sameField) == 3 && overlap > 0)
				return ((whoOverlapes) ? NEW_RULE_OVERLAPS : NEW_RULE_OVERLAPED) + r.ruleid;
			// Check Layer 2 Overlape
			if(rule.any_dl_src ^ r.any_dl_src){
				overlap += DL_SRC_BIT;
				whoOverlapes = (rule.any_dl_src && !whoOverlapes) ? true : false;
			}
			if(rule.any_dl_dst ^ r.any_dl_dst){
				overlap += DL_DST_BIT;
				whoOverlapes = (rule.any_dl_dst && !whoOverlapes) ? true : false;
			}
			if(rule.any_dl_type ^ r.any_dl_type){
				overlap += DL_TYPE_BIT;
				whoOverlapes = (rule.any_dl_type && !whoOverlapes) ? true : false;
			}
			if(rule.dl_src.equals(r.dl_src))
				sameField += DL_SRC_BIT;
			if(rule.dl_dst.equals(r.dl_src))
				sameField += DL_DST_BIT;
			if(rule.dl_type.equals(r.dl_type))
				sameField += DL_TYPE_BIT;

			if((overlap | sameField) == 31 && overlap > 0)
				return ((whoOverlapes) ? NEW_RULE_OVERLAPS : NEW_RULE_OVERLAPED) + r.ruleid;

			// Check Layer 3 Overlape
			if(rule.any_nw_src ^ r.any_nw_src){
				overlap += NW_SRC_BIT;
				whoOverlapes = (rule.any_nw_src && !whoOverlapes) ? true : false;
			}
			if(rule.any_nw_dst ^ r.any_nw_dst){
				overlap += NW_DST_BIT;
				whoOverlapes = (rule.any_nw_src && !whoOverlapes) ? true : false;
			}
			if(rule.nw_src_prefix_and_mask.equals(r.nw_src_prefix_and_mask))
				sameField += NW_SRC_BIT;
			if(rule.nw_dst_prefix_and_mask.equals(r.nw_dst_prefix_and_mask))
				sameField += NW_DST_BIT;

			if((overlap | sameField) == 127 && overlap > 0)
				return ((whoOverlapes) ? NEW_RULE_OVERLAPS : NEW_RULE_OVERLAPED) + r.ruleid;

			// Check Layer 4 Overlape
			if(rule.any_nw_proto ^ r.any_nw_proto){
				overlap += NW_PROTO_BIT;
				whoOverlapes = (rule.any_nw_proto && !whoOverlapes) ? true : false;
			}
			if(rule.any_tp_src ^ r.any_tp_src ){
				overlap += TP_SRC_BIT;
				whoOverlapes = (rule.any_tp_src && !whoOverlapes) ? true : false;
			}
			if(rule.any_tp_dst ^ r.any_tp_dst){
				overlap += TP_DST_BIT;
				whoOverlapes = (rule.any_tp_dst && !whoOverlapes) ? true : false;
			}
			if(rule.nw_proto.equals(r.nw_proto))
				sameField += NW_PROTO_BIT;
			if(rule.tp_src.equals(r.tp_src))
				sameField += TP_SRC_BIT;
			if(rule.tp_dst.equals(r.tp_dst))
				sameField += TP_DST_BIT;

			if((overlap | sameField) == 1027 && overlap > 0){
				return ((whoOverlapes) ? NEW_RULE_OVERLAPS : NEW_RULE_OVERLAPED) + r.ruleid;
			}

			/*// isOverlapable at priority level
		if(rule.priority == r.priority)
			sameField += PRIORITY_BIT;
		if((overlap | sameField) == 2047)
			return ((whoOverlapes) ? NEW_RULE_OVERLAPS : NEW_RULE_OVERLAPED) + r.ruleid;*/
		}
	}
	return null; // No overlap exists
}

}
`

@khayatkd please commit your updated file through a commit rather than copy and paste. You should also take a look to see what tests are failing. Thanks

@rizard please check : https://github.com/khayatkd/floodlight/commit/c1cbbd5ecd4354541c85be24222098c9990899a6

@khayatkd I don't see your firewall changes in this pull request. Also, this pull request is to the v1.2 branch of Floodlight. Can you open a new pull request to the master branch that include your firewall changes?


Bump T1 dependencies

Updated: nix/t1/_sources/generated.json
nix/t1/_sources/generated.nix

Closed in favor of #723


Schematic preview visible after removing the schematic from inventory

Describe the Bug
after positioning a schematic, it stays visible after removing it from the toolbar
Reproduction Steps

Create a schematic
position it in the world
remove the schematic from your toolbar

Expected Result
schematic preview disappearing after removing the schematic from the toolbar
Screenshots and Videos
https://github.com/Fabricators-of-Create/Create/assets/65607498/81d05320-660f-4e56-8b70-a11528a46e6d
Crash Report or Log
No response
Operating System
Windows 11
Mod Version
0.5.1f
Minecraft Version
1.20.1
Other Mods
EMI
Mod Menu
Trinkets
Additional Context
No response

pretty sure this occurs on forge aswell, can you check there aswell?

oup, you're right. I was pretty sure it worked fine on forge but I must've misremembered.


compilation error

I get this compilation error when including the header file neo4j-client.h:

#g++ neo.cpp -L/usr/lib64 -lneo4j-client
In file included from neo.cpp:1:0:
neo4j-client.h:1946:26: error: expected "," or "..." before "buf"
char ** restrict buf, size_t * restrict bufcap

my system info is:

"Red Hat Enterprise Linux Server" VERSION="7.2 (Maipo)"
gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)

Hi @srooznow,
I suspect this is the same as #3 aims to fix. I'm just checking a couple of options to do that, and then we should have a fix.
Meanwhile, in your C++ code, can you try adding #define restrict __restrict__ before including the header?
Cheers,
Chris

Thanks Chris,
I added #define restrict __restrict__ before #include <neo4j-client.h> and the issue is resolved.

Thanks for the feedback @srooznow! It should now be resolved, and I'll make a new release with the updated header.


Inconsistent hiding of cursor on input screens

Solution:
Write wrapper to automatically show and hide cursor

Fix 1.38.1