Failed to bundle npm as a dependency: Cannot find module 'node-gyp/bin/node-gyp'

I can't seem to bundle npm as a runtime dependency.
This is necessary to get Package Phobia on Now 2.0.
Steps to reproduce
git clone https://github.com/styfle/ncc-bug-npm
cd ncc-bug-npm
ncc build index.js
node dist/index.js

Error output
internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module 'node-gyp/bin/node-gyp'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at resolveFileName (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:95521:39)
    at resolveFrom (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:95535:9)
    at module.exports.module.exports (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:95538:41)
    at Object.<anonymous> (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:33356:31)
    at __webpack_require__ (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22:30)
    at Object.<anonymous> (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:47941:19)
    at __webpack_require__ (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22:30)
    at Object.<anonymous> (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:73093:32)
    at __webpack_require__ (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22:30)
    at Object.module.exports.module.exports (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:92854:14)
    at __webpack_require__ (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22:30)
    at Object.<anonymous> (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22110:19)
    at __webpack_require__ (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22:30)
    at Object.<anonymous> (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:57109:13)
    at __webpack_require__ (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:22:30)

I also have a branch called npm-commands in the same repo that gets a different error:
/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:28613
	throw e;
	^

Error: Cannot find module '/Users/styfle/Desktop/ncc-bug-npm/dist/lib/install.js'
    at webpackEmptyContext (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:28611:10)
    at Object.get [as install] (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:33054:41)
    at EventEmitter.npm.load (/Users/styfle/Desktop/ncc-bug-npm/dist/index.js:40778:26)
    at process._tickCallback (internal/process/next_tick.js:61:11)

I just tried this out and get a very different error:
node dist/index.js
npm WARN saveError ENOENT: no such file or directory, open '/tmp/copee/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/tmp/copee/package.json'
npm WARN copee No description
npm WARN copee No repository field.
npm WARN copee No README data
npm WARN copee No license field.

+<EMAIL_ADDRESS>updated 1 package in 0.102s
Success

It says Success right!?
Are you sure you are using ncc 15? We can certainly try to continue working on this though.

@guybedford The build works fine. It's when you try to run the output file is when it fails.
Notice the last step in the repro steps above is node dist/index.js.
I just tested again with ncc 15 and its the same error.
I should be more clear: this is a runtime bug, not a compile time bug.

@styfle ok this is because the code that loads node-gyp is the following:
const DEFAULT_NODE_GYP_PATH = resolveFrom(__dirname + '/npm-lifecycle', 'node-gyp/bin/node-gyp')

where resolveFrom is the custom method defined to contain:
const resolveFileName = () => Module._resolveFilename(moduleId, {
		id: fromFile,
		filename: fromFile,
		paths: Module._nodeModulePaths(fromDir)
	});

so the static analysis just doesn't reach this level unfortunately.
The best thing to do here would be to inline the actual resolveFrom npm package implementation into ncc itself as a specific static analysis that is done to fix this.
Note that you can mimic this already by just ensuring that node-gyp is installed in the output folder -
node_modules/node-gyp. Then you get the other error pointed to above, which is the really interesting obscure bug next :)


Request for Assistance - Modifying backend or client

Hello,
We are currently working on modifying a Texas Hold'em game in the poker project, but we want to implement a different version of poker, specifically Dük Poker.
Here’s what we are trying to achieve:
At the start of the game, each player is dealt one open card and one closed card. Players can see one of each other’s cards.
After this, the first betting round begins.
Then, each player is dealt another open card, followed by a second betting round.
Again, another open card is dealt to each player, and another betting round occurs.
This continues until each player has four open cards and one closed card.
Finally, the showdown happens, and the player with the strongest hand wins.
There are no shared community cards; each player’s hand is entirely made up of their own cards, and the sequence continues with betting rounds between each card dealt. We tried making these changes in both the backend and client code, but the modifications don’t seem to reflect properly in the game.
Could you assist us with implementing these changes? We are open to paying for your time and assistance if needed.
Thank you for your help!
Best regards,

I would start from scratch if I would do that.


Calling a method on &mut Box<T> is not detected as a Unique retag

Given:
struct Counter {
    value: i32,
}

impl Counter {
    fn new() -> Self {
        Self { value: 0 }
    }

    fn increment(&mut self) {
        self.value += 1;
    }
}

This is correctly detected as UB:
fn without_box_fail() {
    let mut counter = Counter::new();
    let ptr: *mut Counter = &mut counter;

    // Miri correctly detects that this invalidates `ptr` ("Unique function-entry retag"):
    counter.increment();

    // Therefore this is reported as UB ("trying to retag from <2456> for SharedReadWrite permission at alloc1257[0x0], but that tag does not exist in the borrow stack for this location"):
    unsafe {
        (*ptr).increment();
    }
    println!("{}", counter.value);
}

But if counter is a Box<Counter> instead, then no UB is reported because the increment() call seemingly is not detected as creating a &mut Counter:
// Same as `without_box_fail()`, but with `Box<Counter>`:
fn with_box_pass() {
    let mut counter = Box::new(Counter::new());
    let ptr: *mut Box<Counter> = &mut counter;

    // Miri doesn't detect that this invalidates `ptr`:
    counter.increment();

    // UB should be reported, but is not!
    unsafe {
        (*ptr).increment();
    }
    println!("{}", counter.value);
}

However, if ptr is instead *mut Counter, then UB is again correctly detected:
// Same as `with_box_pass()` but with taking a pointer to `Counter` and not `Box<Counter>`
fn with_box_fail_deref() {
    let mut counter = Box::new(Counter::new());
    let ptr: *mut Counter = &mut *counter;

    // Miri does correctly detect that this invalidates `ptr`:
    counter.increment();

    // UB is reported:
    unsafe {
        (*ptr).increment();
    }
    println!("{}", counter.value);
}

Also correctly detected if I make the formation of &mut Counter before the method call explicit:
// Same as `with_box_pass()` but with the formation of `&mut` explicit:
fn with_box_fail_explicit() {
    let mut counter = Box::new(Counter::new());
    let ptr: *mut Box<Counter> = &mut counter;

    // Miri does correctly invalidate `ptr` if you make the formation of `&mut` explicit:
    let mref = &mut counter;
    mref.increment();

    // UB is reported:
    unsafe {
        (*ptr).increment();
    }
    println!("{}", counter.value);
}

Thanks for the report!
The aliasing model is not recursive, so this seems expected to me -- a &mut Box<T> is a unique pointer to a Box, but the inner T only becomes unique once you actually manifest a Box<T>.

Also correctly detected if I make the formation of &mut Counter before the method call explicit:

This is because with an explicit &mut counter, you are doing the equivalent of a write to counter (i.e. the Box itself, not the integer inside). An implicit &mut is a two-phase borrow and does not make such uniqueness assertions.

Also, note that if you want to make the implicit &mut explicit, the result will look a bit different: counter.increment() where counter: Box<Counter> becomes (&mut *counter).increment(), not (&mut counter).increment().

Thank you! I think I see what you mean: having a pointer to Box<T> and having a pointer to the underlying T are two different things, and do not alias. Which makes sense because they are two different memory locations.
On one hand, it's then indeed expected that a pointer to the Box<T> is not invalidated by forming a mutable reference to the underlying T, except that I expect that the only way to make a mutable reference to the underlying T is by first taking a mutable reference to its containing Box. deref_mut() takes a &mut self, and I expect that the * operator is just syntactic sugar for calling deref_mut() (or deref()).
In other words, I'd expect that all of these are equivalent:
let mut counter = Box::new(Counter::new());
let ptr: *mut Box<Counter> = &mut counter;

counter.increment(); // 1
(*counter).increment(); // 2
(&mut *counter).increment(); // 3
counter.deref_mut().increment(); // 4
(&mut counter).deref_mut().increment(); // 5

But according to Miri, 1, 2, and 3 don't invalidate ptr, but 4 and 5 do.

This is how Deref and DerefMut seem to be implemented for Box:
#[stable(feature = "rust1", since = "1.0.0")]
impl<T: ?Sized, A: Allocator> Deref for Box<T, A> {
    type Target = T;

    fn deref(&self) -> &T {
        &**self
    }
}

#[stable(feature = "rust1", since = "1.0.0")]
impl<T: ?Sized, A: Allocator> DerefMut for Box<T, A> {
    fn deref_mut(&mut self) -> &mut T {
        &mut **self
    }
}

Which either shoots a hole in my expectation that the * operator is just sugar for deref() / deref_mut() (since then this would be unbounded recursion)... or Box is just magic?

Yeah Box is special, it does not go through DerefMut (similar to how 1 + 2 does not go through Add).

Thank you for the information and help! :) I will close this then, since it is not an issue in Miri.


fix: Use buf actions where possible, do buf-breaking last, don't checkout for buf-breaking

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add rule git_checkout_master

Add specific rule for when you type git checkout master but it doesn't exist and main does exist to suggest git checkout main

Hey, @arjentz! Thanks for contributing!
I'm afraid this functionality is already covered by the git_main_master rule:
https://github.com/nvbn/thefuck/blob/841e3f9e13f52747c18319b55c77ece8095df306/thefuck/rules/git_main_master.py#L1-L16
Could you please try that one and see if it works for you?

Closing, at the expense of https://github.com/nvbn/thefuck/pull/1298


integrate topology viewer based on NextUI

There is another topology visualization framework - NextUI - that can build networking topologies in a nice layout

It has been used in a popular netbox plugin - https://github.com/iDebugAll/nextbox-ui-plugin - to visualise topologies based on data extracted from netbox.
This work is based on a prototype built here and explained in details here (Ru lang)
The way this tool works is that it takes a topology definition structure like pictured below and builds an HTML file with NextUI JS powering the toplogy.
var topologyData = {
    "links": [
        {
            "id": 0,
            "source": 7,
            "srcDevice": "edge-sw01.devnet.lab",
            "srcIfName": "Gi0/2",
            "target": 5,
            "tgtDevice": "core-rtr01.devnet.lab",
            "tgtIfName": "Gi0/0/0/1"
        },
        {
            "id": 1,
            "source": 7,
            "srcDevice": "edge-sw01.devnet.lab",
            "srcIfName": "Gi0/3",
            "target": 3,
            "tgtDevice": "core-rtr02.devnet.lab",
            "tgtIfName": "Gi0/0/0/1"
        },
        {
            "id": 2,
            "source": 4,
            "srcDevice": "dist-rtr01.devnet.lab",
            "srcIfName": "Gi3",
            "target": 3,
            "tgtDevice": "core-rtr02.devnet.lab",
            "tgtIfName": "Gi0/0/0/2"
        },
        {
            "id": 3,
            "source": 4,
            "srcDevice": "dist-rtr01.devnet.lab",
            "srcIfName": "Gi4",
            "target": 1,
            "tgtDevice": "dist-sw01.devnet.lab",
            "tgtIfName": "Eth1/3"
        },
        {
            "id": 4,
            "source": 4,
            "srcDevice": "dist-rtr01.devnet.lab",
            "srcIfName": "Gi6",
            "target": 0,
            "tgtDevice": "dist-rtr02.devnet.lab",
            "tgtIfName": "Gi6"
        },
        {
            "id": 5,
            "source": 4,
            "srcDevice": "dist-rtr01.devnet.lab",
            "srcIfName": "Gi5",
            "target": 2,
            "tgtDevice": "dist-sw02.devnet.lab",
            "tgtIfName": "Eth1/3"
        },
        {
            "id": 6,
            "source": 4,
            "srcDevice": "dist-rtr01.devnet.lab",
            "srcIfName": "Gi2",
            "target": 5,
            "tgtDevice": "core-rtr01.devnet.lab",
            "tgtIfName": "Gi0/0/0/2"
        },
        {
            "id": 7,
            "source": 0,
            "srcDevice": "dist-rtr02.devnet.lab",
            "srcIfName": "Gi3",
            "target": 3,
            "tgtDevice": "core-rtr02.devnet.lab",
            "tgtIfName": "Gi0/0/0/3"
        },
        {
            "id": 8,
            "source": 0,
            "srcDevice": "dist-rtr02.devnet.lab",
            "srcIfName": "Gi4",
            "target": 1,
            "tgtDevice": "dist-sw01.devnet.lab",
            "tgtIfName": "Eth1/4"
        },
        {
            "id": 9,
            "source": 0,
            "srcDevice": "dist-rtr02.devnet.lab",
            "srcIfName": "Gi5",
            "target": 2,
            "tgtDevice": "dist-sw02.devnet.lab",
            "tgtIfName": "Eth1/4"
        },
        {
            "id": 10,
            "source": 0,
            "srcDevice": "dist-rtr02.devnet.lab",
            "srcIfName": "Gi2",
            "target": 5,
            "tgtDevice": "core-rtr01.devnet.lab",
            "tgtIfName": "Gi0/0/0/3"
        },
        {
            "id": 11,
            "source": 1,
            "srcDevice": "dist-sw01.devnet.lab",
            "srcIfName": "Eth1/1",
            "target": 2,
            "tgtDevice": "dist-sw02.devnet.lab",
            "tgtIfName": "Eth1/1"
        },
        {
            "id": 12,
            "source": 1,
            "srcDevice": "dist-sw01.devnet.lab",
            "srcIfName": "Eth1/2",
            "target": 2,
            "tgtDevice": "dist-sw02.devnet.lab",
            "tgtIfName": "Eth1/2"
        }
    ],
    "nodes": [
        {
            "icon": "router",
            "id": 0,
            "model": "CSR1000V",
            "name": "dist-rtr02.devnet.lab",
            "serial_number": "9YZKNQKQ566",
            "layerSortPreference": 7,
            "primaryIP": "<IP_ADDRESS>",
            "dcimDeviceLink": "http://localhost:32768/dcim/devices/?q=dist-rtr02.devnet.lab"
        },
        {
            "icon": "switch",
            "id": 1,
            "model": "Nexus9000 9000v Chassis",
            "name": "dist-sw01.devnet.lab",
            "serial_number": "9MZLNM0ZC9Z",
        },
        {
            "icon": "switch",
            "id": 2,
            "model": "Nexus9000 9000v Chassis",
            "name": "dist-sw02.devnet.lab",
            "serial_number": "93LCGCRUJA5",
        },
        {
            "icon": "router",
            "id": 3,
            "model": "n/a",
            "name": "core-rtr02.devnet.lab",
            "serial_number": "n/a",
        },
        {
            "icon": "router",
            "id": 4,
            "model": "CSR1000V",
            "name": "dist-rtr01.devnet.lab",
            "serial_number": "9S78ZRF2V2B",
        },
        {
            "icon": "router",
            "id": 5,
            "model": "n/a",
            "name": "core-rtr01.devnet.lab",
            "serial_number": "n/a",
        },
        {
            "icon": "router",
            "id": 6,
            "model": "CSR1000V",
            "name": "internet-rtr01.virl.info",
            "serial_number": "9LGWPM8GTV6",
        },
        {
            "icon": "switch",
            "id": 7,
            "model": "IOSv",
            "name": "edge-sw01.devnet.lab",
            "serial_number": "927A4RELIGI",
        }
    ]
};

Containerlab can generate the nextuiTopology.json file similar to the example above and generate the resulting HTML along with serving it

I’d like to propose the following workflow:

A user runs “containerlab graph --json” command to export topology data structure in the same JSON format as used for built-in HTML rendering
After that, a separate utility could be used to read the JSON file, transform the data into CMT format used by NeXt UI and render NeXt UI visualization pages
The visualization pages could then be served via any type of web server

The benefits of this workflow are:

No dependencies on NeXt UI are added to Containerlab
No need to implement a consistent logic of creating node and interface identifiers for CMT format, especially given NeXt UI’s capabilities to show changes of a topology over time that depend on those identifiers. Isolate such implementation into a separate utility
Least amount of new code
The same workflow could be used with other visualization engines without any additional changes

The disadvantages are:

A user would have to install and learn to use a separate utility to generate NeXt UI visualization
In certain cases a user would have to launch a web server to serve the visualization pages

There is one data element that it would be useful to add into the JSON data structure – a custom label to define an icon to use for a node. I suggest to either include all labels into the JSON export, or only those with a specific prefix, like it is done today for ansible.

@bortok that all makes sense
I think in my personal workflow I'd package the transformation logic and the webserver into a separate container so that users would be able to do a docker run and get a ready made http page to browse

I think it's best to use a single tool for both building and visualizing the network topology.
Containerlab already generates the topology definition in the required format for NextUI via the {data} object. What's missing is the ability to serve static files and remove the dependency for an external web server. The net/http go web server has this capability and we can enable it by making minor modification to the graph code as shown here.
Then, we can generate and serve a network topology graph using containerlab graph --topo topo.clab.yml --template custom_template.html --static-dir ./assets.
I have already tested this approach and an example of the topology visualization using NextUI  is shown below:

You can find more info about the template used above from this repo.

Hey @ahmedalodhari nice to see you here!
It makes sense, I agree
Do you want to create a PR, it seems everything is ready =)

The nextui embedded template proposed by @ahmedalodhari has been merged, and now it is a default graph option in containerlab
With the next release the nextui framework will be installed with containerlab by /etc/containerlab/templates/graph/nextui path
The feedback I collected around the proposed template is aggregated here #818. Unfortunately I do not have JS skills to work on that myself, so I resort to contributors to steer this forward


etcd fails if peerRequireSSL is false and requireSSL is true

When deploying cf-release v270 using cf-networking-release's generate-bosh-lite-manifests, the deploy failed with the following error:
2017-08-15 23:29:52.399095 C | etcdmain: advertise URLs of "etcd-z1-0" do not match in --initial-advertise-peer-urls [https://etcd-z1-0.cf-etcd.service.cf.internal:7001] and --initial-cluster [http://etcd-z1-0.cf-etcd.service.cf.internal:7001]

This is because in etcdfab, the initial-advertise-peer-urls is set to https if either peerRequireSSL or requireSSL is set to true while initial-cluster is set to https only if peerRequireSSL is set to true. This means a deploy will fail if peerRequireSSL is set to false while requireSSL is set to true.

cf-release v270 uses etcd-release v104.
This has been fixed in later versions of etcd-release and may be in future versions of cf-release.


Dev branch is not working

Expected Behavior
I want to caught some pokemons
Actual Behavior
[x] PokemonGO Bot v1.0
[x] Configuration initialized
[x] Address found: Boston MA
[x] Position in-game set as: (42.3600825, -71.0588801, 0.0)
Traceback (most recent call last):
File "pokecli.py", line 120, in
main()
File "pokecli.py", line 108, in main
bot.start()
File "/Users/msoedov/misc/PokemonGo-Bot/pokemongo_bot/init.py", line 26, in start
self._setup_api()
File "/Users/msoedov/misc/PokemonGo-Bot/pokemongo_bot/init.py", line 98, in _setup_api
player = response_dict['responses']['GET_PLAYER']['player_data']
KeyError: 'player_data'
Steps to Reproduce
Other Information
OS: MacOS
Git Commit: (run 'git log -n 1 --pretty=format:"%H"' and paste it here)
6d0e579f3223f5210ced6ff34da2c3b92f320b4d

There's update after that commit, how about now?

This is why a proper review system is needed

Some time, code breaks here mean server outage.

@solderzzc nope, servers up, errors the same
Traceback (most recent call last):   File "pokecli.py", line 107, in <module>     main()   File "pokecli.py", line 99, in main     bot.start()   File "/PokemonGo-Bot/pokemongo_bot/__init__.py", line 26, in start     self._setup_api()   File "PokemonGo-Bot/pokemongo_bot/__init__.py", line 142, in _setup_api     player = response_dict['responses']['GET_PLAYER']['player_data'] KeyError: 'player_data'

You're running out of date code or in a dirty environment. Please remove your working directory, cleanup your Python environment, use virtualenv and the dev branch. It should work.

Run the command: PIP uninstall pgoapi
Then download the latest master branch of PGOAPI: https://github.com/tejado/pgoapi/archive/master.zip extract it and copy the pgoapi folder to bot folder

@MaxLeiter please, stop talking on issues if you don't know what the problem is about. I've been helping users fix this issue for 2 days already. Stay cool.

@arberb we're not downloading pgoapi directly anymore. It's downloaded through pip install -r requirements.txt.

i still get this. I have run the pip install -r requirements.txt and I evem tried it with an upgrade.
File "pokecli.py", line 120, in
main()
File "pokecli.py", line 108, in main
bot.start()
File "/home/mike/PokemonGo-Bot/pokemongo_bot/init.py", line 26, in start
self._setup_api()
File "/home/mike/PokemonGo-Bot/pokemongo_bot/init.py", line 81, in _setup_api
self._set_starting_position()
File "/home/mike/PokemonGo-Bot/pokemongo_bot/init.py", line 252, in _set_starting_position
self.position = self._get_pos_by_name(self.config.location)
File "/home/mike/PokemonGo-Bot/pokemongo_bot/init.py", line 262, in _get_pos_by_name
loc = geolocator.geocode(location_name)
File "/usr/lib/python2.7/site-packages/geopy/geocoders/googlev3.py", line 217, in geocode
self._call_geocoder(url, timeout=timeout), exactly_one
File "/usr/lib/python2.7/site-packages/geopy/geocoders/base.py", line 170, in _call_geocoder
raise GeocoderTimedOut('Service timed out')
geopy.exc.GeocoderTimedOut: Service timed out
I can't seem to get it to start on the master branch or the dev branch.

as @douglascamata previously mentioned,
in main folder, step by step:

git co dev
rm -rf pgoapi
pip install -r requirements.txt

-or-
you may completely remove the project folder and clone it again.

I had an older version of a dependency as well.
pip install -U -r requirements.txt

please reopen if you're still facing this issue.


Query editor not visible

I'm submitting a ...

[x] Bug report
[ ] Feature requestdd
[ ] Question / Support request

For bug report please include this information:
Software Versions

Grafana
Zabbix
Grafana-Zabbix Plugin

4.6.2
3.0.3
3.7.0

What did you do?
I just upgraded my Grafana to 4.6.2 and the Grafana-Zabbix plugin to 3.7.0 and I'm not longer able to edit Zabbix queries.
What was the expected result?
I open a create a new graph, select then Zabbix data source and then I'm able to edit the query.
What happened instead?
The query is not visible. Old dashboards still work in view mode, but the editor is broken.
You can see what it looks like at https://imgur.com/a/giMRW
It works fine in 3.6.1.

Try to clear browser cache.

I'm very sorry. I tried refreshing the page a few times before, but I guess some cached files survived even that. I now cleared the entire cache and it works.


Add structured trace profiler

The --profile output is nice for getting a coarse summary of what time is spent on within a file or package, but not as helpful for finding specific locations, especially since the profiler categories are disjoint (so a tactic invocation spending most of the time in many small typeclass synthesis calls will never show up in the profiler). The timing information in the structured traces is better for this use case, but you need to know what trace class to activate in the first place and you likely will still get lost in its pages of output.
This PR introduces a new option trace.profiler (and trace.profiler.threshold defaulting to 10ms) that is independent of the existing profiler option and aims to make finding and exploring expensive locations in traces easier by activating trace nodes not by class but by whether their (inclusive!) execution time exceeds the configured threshold.
$ lean Mathlib/Data/Polynomial/FieldDivision.lean -Dtrace.profiler=true -Dpp.oneline=true
[Elab.input] [5.410904s] theorem derivative_rootMultiplicity_of_root [CharZero R] {p : R[X]} {t : R} (hpt : p.IsRoot t) : [...]
  [Elab.step] [5.312021s] rcases eq_or_ne p 0 with (rfl | hp) [...]
    [Elab.step] [5.311969s] rcases eq_or_ne p 0 with (rfl | hp) [...]
      [Elab.step] [0.065163s] · simp
        [Elab.step] [0.065141s] simp
          [Elab.step] [0.065134s] simp
            [Meta.isDefEq] [0.023725s] ❌ ↑?f (OfNat.ofNat ?n) =?= ↑Polynomial.derivative 0
              [Meta.isDefEq] [0.023450s] ❌ OfNat.ofNat ?n =?= 0
                [Meta.isDefEq] [0.023335s] ❌ instOfNat =?= Zero.toOfNat0
                  [Meta.isDefEq] [0.023310s] ❌ { ofNat := ↑0 } =?= { ofNat := Zero.zero }
                    [Meta.isDefEq] [0.023263s] ❌ ↑0 =?= Zero.zero
                      [Meta.isDefEq] [0.023224s] ❌ NatCast.natCast 0 =?= Zero.zero
                        [Meta.isDefEq] [0.023184s] ❌ NonAssocSemiring.toNatCast.1 0 =?= Polynomial.zero.1
                          [Meta.isDefEq] [0.023157s] ❌ NonAssocSemiring.toNatCast.1 0 =?= { toFinsupp := 0 }
                            [Meta.isDefEq.onFailure] [0.013963s] ❌ NonAssocSemiring.toNatCast.1 0 =?= { toFinsupp := 0 }
                              [Meta.isDefEq] [0.013937s] ❌ NonAssocSemiring.toNatCast.1 0 =?= { toFinsupp := 0 }
                                [Meta.isDefEq] [0.013796s] ❌ ↑0 =?= { toFinsupp := 0 }
            [Meta.isDefEq] [0.017557s] ✅ ↑?f 0 =?= ↑Polynomial.derivative 0
              [Meta.synthInstance] [0.016535s] ✅ ZeroHomClass (R[X] →ₗ[R] R[X]) R[X] R[X]
            [Meta.synthInstance] [0.014352s] ✅ ZeroHomClass (R[X] →ₗ[R] R[X]) R[X] R[X]
      [Elab.step] [0.131247s] simp only [derivative_pow, derivative_mul, derivative_sub, derivative_X, derivative_C, sub_zero, mul_one]
        [Meta.isDefEq] [0.048698s] ✅ ↑Polynomial.derivative (?p ^ ?n) =?= ↑Polynomial.derivative ((Polynomial.X - ↑Polynomial.C t) ^ Polynomial.rootMultiplicity t p)
          [Meta.isDefEq] [0.019443s] ✅ R[X] →ₗ[R] R[X] =?= R[X] →ₗ[R] R[X]
            [Meta.isDefEq] [0.016730s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
              [Meta.isDefEq] [0.016721s] ✅ NonAssocSemiring.toNonUnitalNonAssocSemiring.1 =?= NonAssocSemiring.toNonUnitalNonAssocSemiring.1
                [Meta.isDefEq] [0.016591s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
                  [Meta.isDefEq] [0.016581s] ✅ (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                    [Meta.isDefEq] [0.016527s] ✅ AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a) =?= AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a)
                      [Meta.isDefEq] [0.015472s] ✅ AddCommMonoid.toAddMonoid =?= AddCommMonoid.toAddMonoid
                        [Meta.isDefEq] [0.015461s] ✅ (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                          [Meta.isDefEq] [0.015388s] ✅ AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul =?= AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul
          [Meta.isDefEq] [0.017521s] ✅ LinearMap.instFunLikeLinearMap =?= LinearMap.instFunLikeLinearMap
            [Meta.isDefEq.delta] [0.017476s] ✅ LinearMap.instFunLikeLinearMap =?= LinearMap.instFunLikeLinearMap
              [Meta.isDefEq] [0.015240s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
                [Meta.isDefEq] [0.015231s] ✅ NonAssocSemiring.toNonUnitalNonAssocSemiring.1 =?= NonAssocSemiring.toNonUnitalNonAssocSemiring.1
                  [Meta.isDefEq] [0.015127s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
                    [Meta.isDefEq] [0.015118s] ✅ (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                      [Meta.isDefEq] [0.015092s] ✅ AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a) =?= AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a)
                        [Meta.isDefEq] [0.014201s] ✅ AddCommMonoid.toAddMonoid =?= AddCommMonoid.toAddMonoid
                          [Meta.isDefEq] [0.014191s] ✅ (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                            [Meta.isDefEq] [0.014165s] ✅ AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul =?= AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul
        [Meta.isDefEq] [0.036693s] ✅ ↑Polynomial.derivative (?f - ?g) =?= ↑Polynomial.derivative (Polynomial.X - ↑Polynomial.C t)
          [Meta.isDefEq] [0.018497s] ✅ R[X] →ₗ[R] R[X] =?= R[X] →ₗ[R] R[X]
            [Meta.isDefEq] [0.015961s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
              [Meta.isDefEq] [0.015952s] ✅ NonAssocSemiring.toNonUnitalNonAssocSemiring.1 =?= NonAssocSemiring.toNonUnitalNonAssocSemiring.1
                [Meta.isDefEq] [0.015822s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
                  [Meta.isDefEq] [0.015812s] ✅ (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                    [Meta.isDefEq] [0.015762s] ✅ AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a) =?= AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a)
                      [Meta.isDefEq] [0.014808s] ✅ AddCommMonoid.toAddMonoid =?= AddCommMonoid.toAddMonoid
                        [Meta.isDefEq] [0.014798s] ✅ (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                          [Meta.isDefEq] [0.014761s] ✅ AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul =?= AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul
          [Meta.isDefEq] [0.017675s] ✅ LinearMap.instFunLikeLinearMap =?= LinearMap.instFunLikeLinearMap
            [Meta.isDefEq.delta] [0.017629s] ✅ LinearMap.instFunLikeLinearMap =?= LinearMap.instFunLikeLinearMap
              [Meta.isDefEq] [0.015387s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
                [Meta.isDefEq] [0.015377s] ✅ NonAssocSemiring.toNonUnitalNonAssocSemiring.1 =?= NonAssocSemiring.toNonUnitalNonAssocSemiring.1
                  [Meta.isDefEq] [0.015273s] ✅ NonUnitalNonAssocSemiring.toAddCommMonoid =?= NonUnitalNonAssocSemiring.toAddCommMonoid
                    [Meta.isDefEq] [0.015264s] ✅ (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.nonUnitalNonAssocSemiring Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                      [Meta.isDefEq] [0.015239s] ✅ AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a) =?= AddCommMonoid.mk (_ : ∀ (a b : R[X]), a + b = b + a)
                        [Meta.isDefEq] [0.014329s] ✅ AddCommMonoid.toAddMonoid =?= AddCommMonoid.toAddMonoid
                          [Meta.isDefEq] [0.014319s] ✅ (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...] =?= (Function.Injective.addCommMonoid Polynomial.toFinsupp (_ : Function.Injective Polynomial.toFinsupp) [...]
                            [Meta.isDefEq] [0.014292s] ✅ AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul =?= AddMonoid.mk (_ : ∀ (a : R[X]), 0 + a = a) (_ : ∀ (a : R[X]), a + 0 = a) AddMonoid.nsmul
        [Meta.isDefEq] [0.020091s] ✅ ?a - 0 =?= 1 - 0
          [Meta.isDefEq] [0.019314s] ✅ 0 =?= 0
            [Meta.isDefEq] [0.019267s] ✅ Zero.toOfNat0 =?= Zero.toOfNat0
              [Meta.isDefEq.delta] [0.019253s] ✅ Zero.toOfNat0 =?= Zero.toOfNat0
                [Meta.isDefEq] [0.019221s] ✅ NegZeroClass.toZero =?= Polynomial.zero
                  [Meta.isDefEq] [0.019177s] ✅ NegZeroClass.toZero =?= { zero := { toFinsupp := 0 } }
                    [Meta.isDefEq] [0.019155s] ✅ Zero.zero =?= { toFinsupp := 0 }
                      [Meta.isDefEq] [0.019135s] ✅ Zero.zero.toFinsupp =?= 0
                        [Meta.isDefEq] [0.018959s] ✅ Zero.zero.1 =?= 0
                          [Meta.isDefEq] [0.018903s] ✅ Zero.zero.1 =?= Zero.toOfNat0.1
                            [Meta.isDefEq] [0.018875s] ✅ Zero.zero.1 =?= Zero.zero
                              [Meta.isDefEq] [0.018829s] ✅ Zero.zero.1 =?= MonoidWithZero.toZero.1
                                [Meta.isDefEq] [0.018763s] ✅ Zero.zero.1 =?= 0
                                  [Meta.isDefEq] [0.018714s] ✅ Zero.zero.1 =?= Zero.toOfNat0.1
                                    [Meta.isDefEq] [0.018685s] ✅ Zero.zero.1 =?= Zero.zero
                                      [Meta.isDefEq] [0.018638s] ✅ Zero.zero.1 =?= MulZeroClass.toZero.1
                                        [Meta.isDefEq] [0.018586s] ✅ Zero.zero.1 =?= 0
                                          [Meta.isDefEq] [0.018538s] ✅ Zero.zero.1 =?= Zero.toOfNat0.1
                                            [Meta.isDefEq] [0.018511s] ✅ Zero.zero.1 =?= Zero.zero
                                              [Meta.isDefEq] [0.018465s] ✅ Zero.zero.1 =?= AddMonoid.toZero.1
                                                [Meta.isDefEq] [0.018393s] ✅ Zero.zero.1 =?= Zero.zero
                                                  [Meta.isDefEq] [0.018344s] ✅ Zero.zero.1 =?= Finsupp.zero.1
                                                    [Meta.isDefEq] [0.018314s] ✅ Zero.zero.1 =?= { support := ∅, toFun := 0, mem_support_toFun := (_ : ∀ (x : ℕ), x ∈ ∅ ↔ OfNat.ofNat 0 x ≠ 0) }
                                                      [Meta.isDefEq] [0.016660s] ✅ Zero.zero.1.support =?= ∅
                                                        [Meta.isDefEq] [0.016634s] ✅ Zero.zero.1.1 =?= ∅
                                                          [Meta.isDefEq] [0.016585s] ✅ Zero.zero.1.1 =?= Finset.instEmptyCollectionFinset.1
                                                            [Meta.isDefEq] [0.016545s] ✅ Zero.zero.1.1 =?= Finset.empty
                                                              [Meta.isDefEq] [0.016500s] ✅ Zero.zero.1.1 =?= { val := 0, nodup := (_ : Multiset.Nodup 0) }
                                                                [Meta.isDefEq] [0.015981s] ✅ Zero.zero.1.1.val =?= 0
                                                                  [Meta.isDefEq] [0.015942s] ✅ Zero.zero.1.1.1 =?= 0
                                                                    [Meta.isDefEq] [0.015885s] ✅ Zero.zero.1.1.1 =?= Zero.toOfNat0.1
                                                                      [Meta.isDefEq] [0.015842s] ✅ Zero.zero.1.1.1 =?= Zero.zero
                                                                        [Meta.isDefEq] [0.015796s] ✅ Zero.zero.1.1.1 =?= Multiset.instZeroMultiset.1
                                                                          [Meta.isDefEq] [0.015753s] ✅ Zero.zero.1.1.1 =?= Multiset.zero
                                                                            [Meta.isDefEq] [0.015709s] ✅ Zero.zero.1.1.1 =?= ↑[]
                                                                              [Meta.isDefEq] [0.015664s] ✅ Zero.zero.1.1.1 =?= Quot.mk Setoid.r []
                                                                                [Meta.isDefEq.onFailure] [0.015593s] ✅ Zero.zero.1.1.1 =?= Quot.mk Setoid.r []
                                                                                [Meta.synthInstance] [0.014838s] ✅ SubNegZeroMonoid R[X]
(...)

The new pretty printing option pp.oneline replaces anything but the first line with [...] to keep the output easily scannable. Note that because this option works on the pretty printer level, there may still be multi-line trace nodes, but the output seems reasonable enough.
                  [Elab.step] [0.018801s] refine if h : p.IsRoot t then ?pos✝ else ?neg✝
                    [Elab.step] [0.018756s] expected type: Polynomial.rootMultiplicity t p - 1 ≤ Polynomial.rootMultiplicity t (↑Polynomial.derivative p), term
                        if h : p.IsRoot t then ?pos✝ else ?neg✝
                      [Elab.step] [0.018747s] expected type: Polynomial.rootMultiplicity t p - 1 ≤ Polynomial.rootMultiplicity t (↑Polynomial.derivative p), term
                          let_mvar% ?m✝ := p.IsRoot t; wait_if_type_mvar% ?m✝; dite✝ ?m✝ (fun h => ?pos✝) (fun h => ?neg✝)
                        [Elab.step] [0.014474s] expected type: Polynomial.rootMultiplicity t p - 1 ≤ Polynomial.rootMultiplicity t (↑Polynomial.derivative p), term
                            wait_if_type_mvar% ?m✝; dite✝ ?m✝ (fun h => ?pos✝) (fun h => ?neg✝)
                          [Elab.step] [0.014434s] expected type: Polynomial.rootMultiplicity t p - 1 ≤ Polynomial.rootMultiplicity t (↑Polynomial.derivative p), term
                              dite✝ ?m✝ (fun h => ?pos✝) (fun h => ?neg✝)
                            [Meta.synthInstance] [0.014015s] ✅ Decidable (Polynomial.IsRoot p t)

pp.oneline currently produces non-interactive traces only.
Finally, as the output is otherwise regular trace output, we can in fact use @hargoniX's FlameTC explorer (after one tiny generalization) to print nice-looking and even easier-to-explore flame graphs from it.

In the end, the output structure is not too different from what e.g. perf+hotspot can give us, but on a slightly more abstract, component-based level and importantly with more information about inputs and no danger of stacks getting cut down from too-deep recursion.

Oh, I think I found the reason the diff doesn't load anymore...

!bench

!bench

Essentially no overhead anymore when not using the option, great. Since this change is purely additive and not a critical component, I think we can merge this and then refine later on if needed.

Interactive view of Mathlib.Data.Polynomial.FieldDivision, using @hargoniX' https://github.com/hargoniX/FlameTC/issues/1#issuecomment-1495933952:
https://www.speedscope.app/#profileURL=https://pp.ipd.kit.edu/~ullrich/tmp/flame.gz


Feat:In canteen The canteen should able to see the items they have added plus they can remove them

Describe the feature
Want to add the list in Canteen end where canteen can see what food items they have added

-It will be categorised into breakfast lunch dinner
No screenshot
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Explain it more

hey @hustlerZzZ see Currently When Canteen can add product right but canteen don't have a list where they can check which products they have added so we can create a productlist section where we can provide canteen a feature where they can see the food menu as well as if he wants to remove some item from menu he can do it from there .so for fetching all fooditems we will need to fetch fooditems api and to delete we can use delete api .

Hi @nishant0708, I understood what you are saying. Having prior experience in this tech stack, I will be able to handle this issue as well. Kindly assign this issue to me.

hey @hustlerZzZ SHould i Work on it??

hey @hustlerZzZ SHould i Work on it??

Ya sure


Socket is getting disconnected if there is case of empty frame

I got an issue and debugged it "socket was getting disconnected due to the fact the library is trying to read incoming frame which might not have any bytes available".
Easy proposed solution: Following lines
if (count <= 0)
{
// The end of the stream has been reached unexpectedly.
throw new WebSocketException(WebSocketError.INSUFFICENT_DATA,"The end of the stream has been reached unexpectedly.");
}
in WebSocketInputStream.java with in readBytes() method at line 141 should be commented out.

Thank you for your suggestion. I'm busy now but will surely look into this later. Thanks!

It seems that the issue happens when the WebSocket server closes the WebSocket connection without sending a close frame (other cases are actually "insufficient data"). If it is the case, it means that the WebSocket server does not comply with RFC 6455. What WebSocket server are you using?

Server is written in node.js

My guess is that the behavior is caused by a wrong implementation on the server side. But, it may be doable to add an option to WebSocket class to allow an empty frame and close the connection without raising an exception. However, the modification would not be so simple as you may guess because it would be an exceptional behavior against the closing handshake and of course would be a violation against the specification. If you want to such an option, please let me know.

I found that a certain WebSocket server implementation (echo.websocket.org) closes a WebSocket connection without performing a closing handshake if a WebSocket client does not immediately respond to a PING frame sent from the server.
Disconnection without a closing handshake causes nv-websocket-client to raise the error of "The end of the stream has reached unexpectedly."
Therefore, I improved the implementation to process PING & PONG frames immediately. After the improvement, the error has not been observed at least in my environment.
Please use the new version 1.16. It includes the improvement.

Thanks for updating, I will surely try and tell my experience

Released the version 1.29 for this issue and #63. Below is "Missing Close Frame" section added to README.md. Note that "missing close frame" is not regarded an error by default (but triggers a closing handshake).

Missing Close Frame
Some server implementations close a WebSocket connection without sending a close frame to a client in some cases. Strictly speaking, this is a violation against the specification (RFC 6455). However, this library has allowed the behavior by default since the version 1.29. Even if the end of the input stream of a WebSocket connection were reached without a close frame being received, it would trigger neither onError method nor onFrameError method of WebSocketListener. If you want to make a WebSocket instance report an error in the case, pass false to setMissingCloseFrameAllowed method.
// Make this library report an error when the end of the input stream
// of the WebSocket connection is reached before a close frame is read.
ws.setMissingCloseFrameAllowed(false);

If you find bugs in the implementation for "Missing Close Frame", please let me know.


[Feature Request] Map Provider HERE

I see that there are various Map Providers we're able to pick from if we want something other than Bing.
Personally I'm using HERE in my manual Ortho4XP setup but I've noticed that this isn't an option for autoortho.
Can we have that one added here?
Ortho4XP creates the URL inside the O4_Custom_URL.py file; the referenced function get_Here_value() actually isn't needed necessarily but can be replaced by newest inside the URL.
That would leave the URL as something like this:
url="https://"+random.choice(['1','2','3','4'])+".aerial.maps.api.here.com/maptile/2.1/maptile/newest/satellite.day/"+str(tilematrix)+"/"+str(til_x)+"/"+str(til_y)+"/256/jpg?app_id=VgTVFr1a0ft1qGcLCVJ6&app_code=LJXqQ8ErW71UsRUK3R33Ow"

I had to replace the appId and appCode with a newer one I received from the website requests; I'm not sure how long these are actually valid for so perhaps they should be configurable somehow? Ortho4XP still reads .py files even when running the binary version so changing these from time to time isn't really an issue there; I'm not sure if autoortho also supports that.

Having this more of a plugin style would definitely be nice to have.  I'll look into how supporting sources that require auth.


Publishing docs in two places is no fun

A Little History
The docs for Netlify CMS started in this repo, as a README plus a few files in /docs. Then we created the netlify-cms-www repo to build netlifycms.org, copying over the /docs files into a Hugo setup, adding some marketing content as well.
This meant that the docs were now stored in two places, and of course, that was no good (see #266). @bdougie solved this by adding Markdown Magic to netlify-cms-www (#20). This meant docs could be stored in netlify-cms and pulled automatically into netlify-cms-www.
The Problem
It's been great to have docs stored in just one place, but storing in one place and building in two has caused some significant hassles:

Adding new docs or changing filenames requires changes in two repos. Within-file changes are updated automatically, but file-level changes require an update to the Markdown Magic configuration in netlify-cms-www. This is also a hassle for any images added or changed in the docs.

Previewing docs edits in the built site requires a lot of hoop-jumping. To test locally, you have to copy and paste the doc content into a local copy of the netlify-cms-www repo and build that. To see a deploy preview, you have to make a branch on netlify-cms-www with settings changed in the doc file to pull from the PR branch on netlify-cms (including a new user in the path if it's coming from a fork). If your edit involves file-level changes, you need to create two branches on netlify-cms-www—one for merging to master (pulling from master on netlicy-cms) and another for previewing (pulling from the PR branch on netlify-cms)

Content is interpreted differently in the two locations. For example, inline links to files within GitHub require the .md extension, but these same links in the built site will 404, because they're html files with prettified URLs (https://github.com/netlify/netlify-cms/pull/471#issuecomment-312670664). I just discovered this dual-publishing setup also causes problems for Hugo shortcode delimiters in code blocks (#749).

A Proposed Solution
I think it's time to take docs out of the code repo, and store them in netlify-cms-www. This is actually common for large projects, including, for example, React.
Making the change would be fairly straightforward:

Copy docs file contents into the bodies of their counterparts on netlify-cms-www, and remove them from netlify-cms.
Remove the Markdown magic configuration from netlify-cms-www.
Update contributor guides in both locations to reflect the new (simpler!) workflow.

Any objections? Anything I'm missing?

The only issues I have with this are the following:

determining the docs for a specific version of the CMS will have to be done manually, instead of being tracked in Git alongside the code
contributors are less likely to keep docs up to date with the code when they're in separate repos
it's more difficult to add documentation for different PRs in preparation for merge and merge them both simultaneously

Basically, I'm worried about further drift between the code and the docs, which is already a common issue with our current docs.
The issues we have with markdown-magic don't seem insurmountable - we could have the CI in netlify-cms do a build of netlify-cms-www and report errors in PR threads, and it seems straightforward to get the list of filenames automatically instead of hardcoding them using globs in markdown-magic. The link issue still exists, but markdown-magic has built-in support for transforms.
OTOH, that's a fair amount of dev time itself, so it may be simpler to do as you suggest and just separate them.

I feel like making sure docs get updated in sync with code is a people problem more than it is a code problem. Just like requiring tests or linting for PRs to get approved, we can similarly require docs updates. Auto-versioning in-repo is handy, but only works if people actually update the docs to match. For that purpose, I think I'd rather employ version branching in a separate docs repo, similar to what Kubernetes does.
I think there's definitely room for eventually adding functionality that pulls some of the documentation directly from the code (in comments, for example), and Markdown Magic and other existing tools are great for that. Doing it at a file level, though, feels like more trouble than it's worth, especially with limited dev bandwidth.
As the project scales, I think it would be nice to have the docs in a separate repo, and I have found many examples of OSS projects that do this. On the other hand, there are also a few really big projects (like Rails) that have tons of docs, guides, and tutorials stored right in the code repo. And we could go that route, removing the netlify-cms-www repo and moving all of its code & assets into netlify-cms. Kinda feels so monolithic that way, though. 😉

I'm leaning toward porting the docs out, primarily due to the nature of this project - it isn't a library for developers, it's an application for end users, which is implemented by developers. We could hybridize with implementation/extension docs in the source and user docs outside, but that's a lot for right now.
Giving this a shot is worthwhile - if we realize that any of the potential pain points become real issues in practice, we can always reassess.

Makes sense to me. I've been thinking about some implementation details, and will work on a PRs for the port this week.

Sounds good to me - it's definitely the easiest short-term fix to the links issue.

Actually, as @imorente pointed out in https://github.com/netlify/netlify-cms-www/issues/45#issuecomment-341930868, a one-line _redirects file is probably the easiest fix for the link issue.
On the other hand, I'm really looking forward to easier docs previews. 😅

Update: docs are staying in the repo - @verythorough is working on the transition 🎉
And yeah, redirects, why didn't we do that a long time ago 🙄


fix weird problem loading db in spring (rails)

This fixes a problem that prevented this this gem from being usable with spring (the part of rails that does "magical" preloading, which apparently breaks pretty easily).
Something to do with how spring interacts with constants, like StringToIpa::DATABASE.  I don't totally understand exactly what the problem was, but this fixes it by refactoring to a method that returns a database client, instead of loading it as a constant.
Shouldn't effect non-spring usage.

@gadtfly My latest commit to master 1d71764535c112d331f4f4dbab7f3814590eb41b removes the need for the DATABASE constant and should take care of the Spring problem. If it doesn't, let me know and reopen the case. Thanks for bringing this to my attention!


copy GetPrimaryKeyBytes

Codecov Report

Merging #175 into master will decrease coverage by 0.05%.
The diff coverage is 46.66%.

@@            Coverage Diff             @@
##           master     #175      +/-   ##
==========================================
- Coverage   73.23%   73.18%   -0.06%
==========================================
  Files         111      111
  Lines       17100    17114      +14
==========================================
+ Hits        12524    12525       +1
- Misses       3620     3632      +12
- Partials      956      957       +1

Impacted Files
Coverage Δ

subscriber/common/sink/sink.go
58.46% <46.66%> (-2.33%)
:arrow_down:

memstore/kafka_redolog_manager.go
68.59% <0%> (-4.96%)
:arrow_down:

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 d28f200...c6a874d. Read the comment docs.


[Feature request] Add keybase to F-Droid

F-droid is a free and open-source package manager. I've been trying to avoid Google Play Store as much as possible and I would love to have keybase managed through F-droid on my phone.

never mind, duplicate of https://github.com/keybase/client/issues/6899


Add service account for organizations resource

This adds service account resource for organizations. as mentioned in #2 comments.

Hi @jaspervdj-snyk ,
Thanks for adding the service account to the organization's resources.
I was trying to use it as follows:
resource snyk_organization_service_account "test" {
  organization_id = "aaaa"
  name            = "test"
  auth_type       = "api_key"
  role_id         = "bbbb"
}

But keeps showing the following error:
The provider snyk-terraform-assets/snyk does not support resource type "snyk_organization_service_account".
I checked the release 0.0.5. The code related to the Service Account is not there. Any idea?


MAINT: simplify _SequenceCollectionBase.init

This is the base class for SequenceCollection, Alignment and ArrayAlignment. There's a lot of processing within the constructor, which makes that method unnecessarily complex. Specifically, the class attribute _input_handlers is a mapping to functions that handle different input types. Many different arguments are not well suited to this class (e.g. is_array).
This pre-processing should be handled by a prep_seqs(data: Any) -> tuple[Sequence] function, which takes as input  returns a tuple of Sequence instances that are passed to _SequenceCollectionBase. (prep_seqs() probably needs a singledispatch approach to discriminate between the major input types (e.g. dict, ndarray, etc...)
First step is to refactor private methods that could be functions:

[ ] _names_seqs_order
[x] _guess_input_type (probably addressed by using singledispatch on input values)
[x] _coerce_seqs
[x] _make_named_seqs
[x] _strip_duplicates
[x] _get_container_item

fixed in 7379f47


[Doc Innovation Test] [SBS-messagingextension-searchcommand]

Docs Build status updates of commit 9ea3382:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/sbs-messagingextension-searchcommand.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/sbs-messagingextension-searchcommand.yml
85
36
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 70e295a:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 446960d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/sbs-messagingextension-searchcommand.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/sbs-messagingextension-searchcommand.yml
85
36
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
92
21
link
:white_check_mark:

msteams-platform/sbs-messagingextension-searchcommand.yml
85
36
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 58f11ba:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
:white_check_mark:Succeeded
View

msteams-platform/sbs-messagingextension-searchcommand.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Closing the PR


Allow podman to be used in the Makefile

operator-sdk supports using podman or buildah for running relevant commands. The current contributor guidance recommends running make operator.test, however this doesn't work with Podman.
Please allow podman or an alternative container runtime to be used. This can be accomplished by using an environment variable in the Makefile. Example:
container=${CONTAINER_RUNTIME:-docker}
...
target:
   ${container} build ...

We are not using Makefile anymore. Feel free to reopen if you have more questions


Allow custom dbt packages & overrides

Once #70 merges we should look into how best to add or replace dbt packages. Right now we use the project's: https://github.com/openedx/oars-dbt/blob/main/oars/packages.yml but will want to make that configurable so that operators can add their own custom dbt packages built on top of ours. Doing so may require newer / different versions of packages we use, so it's important they be able to override those as well. This should just be a case of writing a yml file to the right place when running the dbt commands.

If the way to extend DBT is to fork the project, I guess users can just add their own packages to the file.
Is my understanding correct?
If it's, this issue is not needed

There's no need to fork the project to extend it, that's what dbt packages do: https://docs.getdbt.com/docs/build/packages If you want to override the default models for some reason that might require a fork.

Solved here https://github.com/openedx/tutor-contrib-aspects/pull/138


added libvirt to the vagrantfile template

Hi. I am using libvirt as provider, and added this lines for being able to set and configure libvirt from the molecule.yml file. It is not a big deal, but including these lines I would save copying a specific template for libvirt to the molecule templates directory each time I install molecule(which is quite frequent) on my virtual environments.
Thank you.

Please add to docs/source/providers.rst to document this support for libvirt as an alternate provider.

@oserde Yeah, would definitely like to see an example of what the corresponding provider looks like in molecule.yml.
It's nice to see it was possible to get another provider working relatively easily!

I plan to add some features to improve libvirt support. So in a few days I will add the documentation and these new features as well.

Awaiting @oserde to update PR before we merge.

Ok guys. I will have it in a few hours.

mmm...still need to fix the doc urls

done

#123

By the way, I use:

Ubuntu 14.04
libvirtd (libvirt) 1.2.2
Vagrant 1.7.0 with the vagrant-libvirt (0.0.32) plugin
molecule 1.3.0

Despite the issue I previously referenced, vagrant-libvirt seems to work quite nicely on my machine.

@oserde We haven't forgotten you here. We're working on an update to Vagrantfile that will change its behavior somewhat. I'll try to incorporate your changes here as part of that.

ok, thanks. By the way, are you going to incorporate openstack as well?

Status update? I've been using libvirt a lot lately, and since molecule doesn't officially support it, I'm using a custom Vagrantfile template to add the support.

I don't know when we will get around to performing the refactor.  I'm happy to accept a new PR for this, and we'll just add it in.

Sure, I'd be happy to repackage these changes as a new PR. @oserde already did all the work, so I'll make sure to credit appropriately in the commits.

In the future I'd like to rework the Vagrantfile to something like this.  We can then plugin in provisioners a lot easier.

Hey, thanks for pointing out maquina, that definitely looks more readable and maintainable than the jinja nightmare the vagrantfile template has already become. Will take a closer look at maquina!

Closing in favor of #200.


Bump cookie-rs dependency.

@aelita-mergebot r+

@frewsxcv So... I'm confused... Why did we need that, when hyper 0.9 never depended on cookie 0.4, and only cookie 0.2..?

It was for my openssl pr at the time. IIRC in that PR, I disabled cookie-rs support in Hyper via no-default-features and just bumped Servo's cookie-rs dep.

Should have known better than to trust crates.io! Will go cry in a corner.

I'll keep the cookie bump reverted though, because webdriver also depends on cookie 0.2 and that would just make the serde bump even larger.

@frewsxcv Seems like you conflated default-features = false with optional = true. AFAICT cookie was never optional in hyper 0.9.

I really don't remember what I was doing. Maybe I was turning off cookie/secure https://github.com/hyperium/hyper/blob/0.9.x/Cargo.toml#L56 to avoid bringing in an old openssl

No problem. :)


Colourful ModFill

By submitting this PR, I am indicating to the Numberscope maintainers that I have read and understood the contributing guidelines and that this PR follows those guidelines to the best of my knowledge. I have also read the pull request checklist and followed the instructions therein.

This is still marked draft but feedback is welcome.  It adds several colouring abilities to ModFill:

options to choose colour and alpha (transparency) for each rectangle drawn
option to highlight certain terms by using a second colour; a formula box allows you to pick which terms to highlight by a formula on the index, e.g. isPrime(n)
removes boring ModFill gallery items and adds nice ones

Things to do:

[ ] update snapshots
[x] update documentation

Sadly this PR is now showing 41 files changed, which cannot be right. I think it's because maybe Kate merged ui2 with #500 merged into this PR, rather than rebasing this onto ui2 after #500 went into ui2.  Unfortunately it makes reviewing this PR very difficult. Would it be possible to adjust this PR, or scratch it and create a new one, that just has one or more commits limited to the files actually touched by this PR, on top of ui2 as it now stands? Thanks so much.

Replaced by #505 because of gitfusion.


[BUG] Start Reading Now in home page doesn't link to any page.

Description
Start Reading Now under the home page doesn't link anywhere. It can be linked under Books Section.
Screenshots

Any additional information?
No response
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I have read the discussion tab thoroughly and got the project idea
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

@rohansx @k-deepak04 Please assign me this issue under GSSOC'23.

@behldevansh where would you link that page?
i guess before working on this issue we must complete the backend and add books in this so that we can link the things
closing it for now


docs: Add note about long running callbacks

Having a long running callback will result in messages being handled with a significant delay, regardless of the queue_size option. This is especially noticeable for image processing. We should at the very least document that.
This P/R adds a note about using separate threads for image processing, as well as some minimal sample code.

Okay, I believe I see your point.
Using a Queue definitely sounds like overkill, although I do like it being a container - that way we don't need two entities for synchronization.
Regarding your example: it does look simplier, but I still have some issues with it:

latest_img is only created in the callback. This makes it much less discoverable (I don't think a lot of our users know that global keyword can create global variables, not simply reference them; I don't believe this is something that is taught in the introductory Python course);
there is no explicit thread creation; this makes the code seem simplier (and I've thought about doing the same, since the callbacks already arrive in a separate thread), but, well, "explicit is better than implicit".

As for your last point, well, the "best" way would be to do something similar to how OpenCV does that. Most people doing CV-related stuff have already learned some patterns, and this is where your example comes close: having a "main loop" with all image processing is nice (although that would probably lead to mixing image processing code and flight code, which I believe should be discouraged).
Actually, your last point brings up our docs' overall deficiency: we don't have a preferred way of writing complex flight code.

К слову: у нас больше проблем с производительностью обработки картинок вызывал не threading, а то, что на питоне не работает image_transport (http://wiki.ros.org/image_transport#Python_Usage), что вызывает задержку до 0.1 сек при прокачке кадра через рос топик.
Спасало прямое использование OpenCv VideoCapture...
Возможно, ещё какие способы решения этой проблемы известны?...

I investigated the issue a little bit more. The "problem" is actually in this code: https://github.com/ros/ros_comm/blob/noetic-devel/clients/rospy/src/rospy/impl/tcpros_base.py#L795.
The client code does correct thing cutting the latest messages from the buffer (https://github.com/ros/ros_comm/blob/noetic-devel/clients/rospy/src/rospy/msg.py#L225) to process.
But since reading the socket and calling callbacks perform in the same thread (at least for one TCPROSTransport, which apparently means one subscriber+publisher pair), callback function blocks the thread from reading the socket for the certain time. It's OK for small messages, but for large messages (images) it simply overflows the internal OS TCP socket buffer (https://stackoverflow.com/questions/3205953/how-does-a-linux-socket-buffer-overflow). Therefore, the latest packets get dropped by the kernel.
By the way, Linux TCP buffer size can be inspected in /proc/sys/net/ipv4/tcp_rmem, and also can be changed via setsockopt.

@copterspace, не уверен, что проблема была именно в большом времени передачи изображение, а не в той проблеме, которую мы обсуждаем.

Actually, I would call that a bug, which can be simply avoided using separate threads for reading the socket and invoking the callbacks. It deserves issuing and fixing in rospy.

Opened an issue in ros_comm: https://github.com/ros/ros_comm/issues/1901
Test setup is available at https://github.com/sfalexrog/staleness_test


will gorm support tidb auto_random ?

Describe the feature
support auto_random tag
Motivation
tidb use primary key with AUTO_RANDOM tag to avoid hot spot, but gorm doesn't seem to support it！
Related Issues

tidb auto-random

just customize sql type to auto_random should works? also refer https://gorm.io/docs/data_types.html#GormDataTypeInterface


Build the Nessus AMI on a Graviton (AMD64) instance

🗣 Description
This pull request modifies the Packer code to build the Nessus AMI on a Graviton (AMD64) instance.  Note that this requires moving the AMI from Debian to Ubuntu and updating the version of Nessus that gets installed.
💭 Motivation and context
Running the AMI on Graviton should be cheaper and better for the environment.
🧪 Testing
All automated tests pass.  I also built a staging AMI with these changes and verified that it functions as expected.
✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All new and existing tests pass.
[x] Build and test a staging AMI with these changes.

✅ Pre-merge checklist

[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

Nessus does not support ARM64 on Debian.  Newer versions of Nessus support ARM64 on Ubuntu, but not the old version that we are currently using.

Closed in favor of #80.


⚠ Processors has degraded performance

In 872355b, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 79 ms

Resolved: Processors performance has improved in b21f7ba.


L515 not detected with C#

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win 10

Kernel Version (Linux Only)

Platform
PC

SDK Version
<IP_ADDRESS>

Language
C#

Segment
other

Issue Description
In my application, I would use an L515. Actually I work with an SR305. The camera L515 is not detected by my program in C#. I have test with this short code, the SR305 is well detected but the L515 not.
            var ctx = new Context();
            var devices = ctx.QueryDevices();

            Console.WriteLine("There are {0} connected RealSense devices.", devices.Count);
            if (devices.Count == 0) return;
            var dev = devices[0];

            Console.WriteLine("\nUsing device 0, an {0}", dev.Info[CameraInfo.Name]);
            Console.WriteLine("    Serial number: {0}", dev.Info[CameraInfo.SerialNumber]);
            Console.WriteLine("    Firmware version: {0}", dev.Info[CameraInfo.FirmwareVersion]);

The device work well with realsense viewer and with c++ examples from the sdk.

Checked this with sdk 2.41 and L515 camera - everything works as should eather with USB2 or USB3

Checked this with sdk 2.41 and L515 camera - everything works as should eather with USB2 or USB3

Thank you! The"realsense2.dll" file was an old sdk version.
Now it works well.

Thank you! The"realsense2.dll" file was an old sdk version.
Now it works well.


Ruby/Sapphire Correctness Issues

Describe the bug
The route data appears to be built around Emerald, and contains some inaccuracies for Ruby and Sapphire.
To Reproduce
"Reproduction" is starting a new Ruby or Sapphire game and confirming that there are routes/areas that aren't accessible or pokemon data that is incorrect. See the list below.
Expected behavior
Data should be consistent with what's possible in the games
This issue is core to the data in the application, but:
Desktop (please complete the following information):

OS: Windows
Browser: Firefox
Version 116

Smartphone (please complete the following information):

Not tested, but I'm certain the issue is present on all mobile browsers.

Additional context
A few examples:

Littleroot Town: The Kanto starters are only available in Emerald, but are listed for Littleroot Town. Source
Altering Cave: This location only exists in Emerald, Leaf Green, and Fire Red. It does not exist in Ruby nor Sapphire. Source
Mirage Tower: This location only exists in Emerald. Source
Desert Underpass: This location only exists in Emerald. Source
Fiery Path and Route 111 are both listed after Flannery; however, both must be traversed prior to battling Flannery. This is very confusing because it appears the paths are "missing" if trying to follow the tracker top to bottom.

Fiery Path should follow Route 112 in the list
Route 111 should be in the section after Watson. In the current order, it should probably follow route 117. (There is an argument that Route 117 should actually be listed before Watson, since it's fully accessibly before battling him.)

Fortree City: Only Skitty is available here; Plusle is Emerald-only. Source
Artisan Cave: This location is Emerald-only. Source

Debatable Inaccuracies:

Regis:

The application lists the only pokemon accessible on Routes 105, 111, and 120 as Regice, Regirock, Registeel
There are other Pokemon accessible on these routes, and arguably the player has the choice to not take the regis. These other Pokemon should be listed
Arguably, the Regis each have their own case and shouldn't be listed for the route. For example. Regice is in the Island Cave

Route 119: The application lists only Casform as available on this Route. The player is not required to accept the Casform gift Pokemon. The player could simply not talk to the rescued scientists or talk to them with a full party. The other Pokemon accessible on this route should be listed. (And similar to the Regis, Casform is arguably available in the Weather Institute and not Route 119 at all.)
Desert: While not officially supported by Nuzlocke rules, it's not uncommon for players to consider the Hoenn desert to be a unique place even though it doesn't have its own route/location name. It does have a variety of Pokemon that cannot be caught anywhere else and requires a new badge to access, unless the rest of the route. My opinion is that the application should support this by listing it as a separate biome. However, I do understand that this could be misleading to people who don't wish to play that way. Reddit discussion on whether this is a separate biome with split opinions and Lake Valor discussion.
Ocean Route Order: The application lists several of the early ocean routes in the order the player traverses them. However, the player does so via a boat and cannot encounter any wild Pokemon on these routes until much later in the game--when they gain access to Surf. They should be moved until the player is able to have encounters on them. Similarly, at least one route is listed after the 8th gym despite being completely accessible after the player gets Surf (5th badge).

Completely Inaccessible until Surf:

Route 105: Encounters on this route are impossible until after Norman. The player cannot fish on this route or access any part of it without Surf.
Route 108: Listed after Wallace (8th Gym) but the player can have encounters on this route after Norman.

Partially Accessible before Surf:

These are listed because, while the player can get encounters, the cannot get a pokemon from all of these routes until after Surf. This is even more true if a player catches a Pokemon by fishing in Dewford town. The ideal solution would be to create a second, linked entry after the player gets Surf. If the player already caught a Pokemon here, it would show in the linked entry. However, if they hadn't, it would show empty to remind the player the could return to these routes, surf, and catch a new Pokemon.
Route 106: The player could fish this route with an Old Rod before Surf. (Tentacool, Magikarp only)
Route 107: The player could fish this route with an Old Rod before Surf. (Tentacool, Magikarp only)
Route 109: The player could fish this route with an Old Rod before Surf. (Tentacool, Magikarp only)

Some of these changes are actually preset in the data; however, they are not reflected on https://nuzlocke.app/. I'm not sure if that's just an older deployment of the application or if there's something else going on.

I am working on a fix, but it looks like I need to modify the JSON directly. Is there a way to access the .txt files mentioned in the README? I don't see them in the project.
Also, I'm having some issues running the application on my end. Yarn is failing to install pokemon-assets 0.6.0 (404 not found). I tried 0.7.0 but it claims to be getting a malformed response. I'll keep an eye on it and see if either of these issues resolves so I can test my changes before submitting a PR.

I am working on a fix, but it looks like I need to modify the JSON directly. Is there a way to access the .txt files mentioned in the README? I don't see them in the project.

Is this what you're looking for?


building native image with graalvm ce 21 not working

Hi colleagues,
as already talked to Marc

building the native image with graalvm ce 17 is working fine
building the native image with graalvm ce 21 is not working
Best Regards
Chr

Unfortunately there is a bug in GraalVM 17, that was fixed by Oracle in GraalVM 21 (see https://github.com/oracle/graal/issues/6457). To make it work on 17 we added a custom native-image.properties configuration, that has the same effect as the fix automatically applied on GraalVM 21. However on GraalVM 21 this configuration clashes with the provided fix and produces an error.
As SFlight uses Java 17 by default, I would like to keep it compatible with GraalVM 17 by default. If you want to run with 21 you need to remove the native-image.properties file before building the application (make sure to add clean to your Maven build command, if built previously). Then it works with GraalVM 21.


Add curve448

What is the change request for the cPP? Please describe.
NIST SP 186-5 published on 2023-02-03, which approved EdDSA curve25519 and curve448. The DSC cPP v1.0 only allows curve25519 but not curve448.
Describe the solution you'd like
Please consider to include curve448 in DSC cPP v1.1.

This is resolved as part of the crypto update as these are all included in the latest requirements.


Design issues

Some things don't look as desired in dark mode.
Home page

The star sky is visible in the content section, not just the heading.
Legal

The headings appear on top of the nav. This is visible because the text is white in dark mode.
In Firefox, the headings also aren't sticky.

I managed to fix the issues with the legal page with this CSS:
.legalBackground {
    z-index: 0;
    position: relative;
}

.legalSection {
    align-items: flex-start;
}

.stickyHeader {
    z-index: 1;
    margin-bottom: 1em;
}

I might be too busy today to send a PR.

I'll make a PR shortly.


⚠ Bofrost.lu has degraded performance

In 8923e76, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2505 ms

Resolved: Bofrost.lu performance has improved in 1e004af after 15 minutes.


Readability of CLIP notebook

deleted modification of clip.clip.MODELS as it is no longer needed (all models are now there by default, see last commit)

there was a repetition of 17 lines of code twice in interpret. I replaced it with a function. I also added to this function an assertion that checks if the model is coming from Hila Chefer's version of CLIP or an equivalent (https://github.com/hila-chefer/Transformer-MM-Explainability/tree/main/CLIP).

added a function mask_from_relevance for users who would want to display the attention mask in another way than show_cam_on_image.

Oh I forgot to mention:
I also added a bit of documentation to the interpret function

Hi @josh-freeman, thanks for your contribution to this repo! it'll take me some time to review and approve your PR since it contains a significant amount of changes, will get to it ASAP

No worries, pretty sure it's mostly a bug coming from something like conversion of CRLF to LF tokens or something; I'm surprised it says I changed that much.

Dear all,
I have one problem for ViLT. So I try to reproduce the VisualBERT for implementing in VILT. Could you point where is the save_visual_results function definition? I use ViLT for multimodal transformer but cannot use num_tokens = image_attn_blocks[0].attn_probs.shape[-1] to set the number of tokens. For example, VILT for VQA task and image is 384*384 size. The number of vision and text mixed token is 185 including cls token, so the vision token is 144 and the text token is 40 (max length).
Thanks very much


Strongly Typed Plist Parsing

Our usage of [String: Any] prevents full sendabillity conformance so we need to use stronger types in those places.  this introduces PlistObject to allow a strictly scoped set of values which themselves can be Sendable
All feedback welcome, this is currently messy and I wanted to get initial reactions to this direction.

@pepicrft I ended up completing the optimization and ended up with cleaner code in the end.  I was able to remove PlistObject from the core of the PBXProj parsing flow but i'm keeping in in the codebase for now for the other [String: Any] callsites until I address those.   With the test i did with a large (4.4MB) project file, this parsing was taking 60% of the time of the old approach.

@pepicrft I ended up completing the optimization and ended up with cleaner code in the end. I was able to remove PlistObject from the core of the PBXProj parsing flow but i'm keeping in in the codebase for now for the other [String: Any] callsites until I address those. With the test i did with a large (4.4MB) project file, this parsing was taking 60% of the time of the old approach.

This is amazing. Great job @waltflanagan 👏🏼


processDiagnosticMessages.ts: linted, removed unused code

Added following line to generated output:
"// generated from 'src/diagnosticMessages.json' by 'scripts/processDiagnosticMessages.ts'\r\n" +
Fixes https://github.com/Microsoft/TypeScript/issues/3591

@NaridaL,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot


[BUG] Custom beanie.BsonBinary type doesn't work with pydantic 2.6.0+

Describe the bug
There has already been #651, which was solved by implementing beanie.BsonBinary. With the latest pydantic 2.6.0, this type breaks again.
To Reproduce
class Test(Document):
    test: beanie.BsonBinary

Expected behavior
The type work as exspected.
Actual behavior
pydantic.errors.PydanticSchemaGenerationError: Unable to generate pydantic-core schema for <class 'bson.binary.Binary'>. Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.

If you got this error by calling handler(<some type>) within `__get_pydantic_core_schema__` then you likely need to call `handler.generate_schema(<some type>)` since we do not call `__get_pydantic_core_schema__` on `<some type>` otherwise to avoid infinite recursion.

For further information visit https://errors.pydantic.dev/2.6/u/schema-for-unknown-type

It would be good if BsonBinary along with other custom types Beanie provides would be mentioned in the API Documentation. For instance at
https://beanie-odm.dev/api-documentation/custom-types/

This seems to have been fixed in Pydantic v2.6.1
Pull Request
Release v2.6.1

Yeah, seems good now. Thanks for letting me know.


[tutorial] Wrong popper position when initialized with display:none

CodeSandbox demo
https://codesandbox.io/s/react-popper-v2x-issue-template-forked-59dv1
Steps to reproduce the problem
Follow tutorial: https://popper.js.org/docs/v2/tutorial/#functionality

Both reference and popper are inside of container with position: relative (this is a part of page layout). Without position: relative in ant parents an arrow will be positioned wrong.
Popper initialized being display: none, similar to tutorial.
User trigger an event, so a popper became display: block, similar to tutorial.

Tutorial lead you right to the bug which wouldn't be fixed (#413).
What is the expected behavior?
A popper positioned correctly. Tutorial helps you. Tutorial does explain or mention a problem with display: none positioning, and doesn't advice well-known buggy things without well-known solutions to workaround them.
What went wrong?
A popper position is wrong at first render. However if you resize viewport or scroll it, a popper will take correct position. You are trying to research what did you do wrong. Tutorial mess you.
Any other comments?
popperjs/popper-core#413 was found a time ago after a bug hitted. I suppose, I should to initialize a popper only after it becomes display: block and destroy when it becomes display: none. In theory it should to work.
@popperjs/core: 2.6.0

same😢

I'm not sure I understand your issue, the tutorial code creates a Popper instance after the tooltip is shown, and destroys it after it's hidden.
Where do you see it's trying to initialize Popper before?

Tutorial advices to use CSS rules to toggle display between none <=> block. By default it's none. If I'm wrong here?
However tutorial itself implements it in a different way:
https://github.com/popperjs/website/blob/master/src/components/Tutorial.js#L139
But a reader doesn't suspect anything. I'm one on such reader. I did follow tutorial literally, and - ta-da - https://github.com/popperjs/popper-core/issues/413 (wontfix) reproduced in action with help of tutorial.

I see what you mean, I just updated the tutorial with a cleaner approach. Please let me know if it looks now.


Support for Angular 5+

This is a feature request
Additional Notes:
Currently this project does not support Angular 5.0. Build warnings appear:
warning<EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>|| ^4.0.0".
warning<EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>|| ^4.0.0".
warning<EMAIL_ADDRESS>has incorrect peer dependency "<EMAIL_ADDRESS>|| ^4.0.0".
Is there any pre-release that does?
What do we need to change to implement the support?

yea plz as fast as u can :)

@chymz please compile the for Angular 5 as soon as possible. Many thanks Simon!

Any update?

@chymz don't you keep the ng2-ckeditor up to date anymore?

Sorry, I've got a lot of work atm. I will merge #169 soon (this week)

Fixed in 1.1.12


Build travis tests with go-1.8

Coverage increased (+0.07%) to 98.339% when pulling 1c1c43203f3c86f0bd7633f2c0917861d87d5686 on 1.8_build into 0ab671ee2ea8ebdb18c946d4a443c86ed0bc94e1 on master.

1.7 tests take 250s, 1.8 tests take 900s...

Coverage increased (+0.02%) to 98.294% when pulling 326ca78ac6b4abb27097a0807fa0920e0690e45b on 1.8_build into 0ab671ee2ea8ebdb18c946d4a443c86ed0bc94e1 on master.

Coverage increased (+0.09%) to 98.361% when pulling e0254915c42c681dc9767db36e133da5f313e828 on 1.8_build into 0ab671ee2ea8ebdb18c946d4a443c86ed0bc94e1 on master.

Coverage increased (+0.02%) to 98.294% when pulling b79ee37e1ebc03a2aa44f68d2e64017f382afe05 on 1.8_build into 0ab671ee2ea8ebdb18c946d4a443c86ed0bc94e1 on master.

Coverage increased (+0.02%) to 98.294% when pulling 08e2f4d60c04307c36ba34cf9fcdeaf3068f79b3 on 1.8_build into 0ab671ee2ea8ebdb18c946d4a443c86ed0bc94e1 on master.

Coverage increased (+0.09%) to 98.361% when pulling 7df0a007025e71cd551e67c96a27e715b63d8b07 on 1.8_build into 0ab671ee2ea8ebdb18c946d4a443c86ed0bc94e1 on master.

Changes Unknown when pulling 55d7e32a3bd0bca8525b9bef97b161ec6cbff024 on 1.8_build into ** on master**.

Coverage decreased (-0.07%) to 98.296% when pulling f43a44bf8321882c6a06587d6ffaf9b97d168429 on 1.8_build into 7bb89a21d71da172dfee26e5b788e44dd4e2542f on master.

Coverage decreased (-0.07%) to 98.296% when pulling f43a44bf8321882c6a06587d6ffaf9b97d168429 on 1.8_build into 7bb89a21d71da172dfee26e5b788e44dd4e2542f on master.

Changes Unknown when pulling b72d3cd3af2608ded18d0b0442ece34c72c9c587 on 1.8_build into ** on master**.


NOISSUE - Fix variant option for manifest annotate

Signed-off-by: Ivan Milošević<EMAIL_ADDRESS>What does this do?
Fix mistaken use of variant option for manifest annotate command

Codecov Report

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

@@          Coverage Diff          @@
##           master   #765   +/-   ##
=====================================
  Coverage      85%    85%
=====================================
  Files          69     69
  Lines        4467   4467
=====================================
  Hits         3797   3797
  Misses        444    444
  Partials      226    226

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 91274ac...6265431. Read the comment docs.


[CAN] Support sending FD frames

https://github.com/secdev/scapy/blob/master/scapy/contrib/isotp/isotp_soft_socket.py#L849


Fix (Typo):

Change AN/L to AC/L as I believe this was a typo since the neutral was AC/N

Also there is the same typo at the top of page 4 in the documentation


[FR] event-id written in binary_sensor's attribute

Is your feature request related to a problem? Please describe.
I've noticed, that MQTT topic frigate/events isn't always written/published on my system. strangely enough - events' snapshots and clips are being found in the camera/media browser, and binary_sensors are changing it's state so detection works fine. and even if the topic is present - the automation given in the documentation isn't working correctly - notifications are not sent.
Describe the solution you'd like
because binary_sensor works fine even if frigate/events topic can't be found "by hand", it would be great to have event-id written into event_id attribute of corresponding binary_sensor [for example: if it's a person detected, then binary_sensor.*_person_motion shoud have the entity_id written]
Describe alternatives you've considered
alternatively event_id could be written into attribute of event's camera [for example: camera.*_person]
Additional context
reason of having the attribute with event_id is to be able to build an url to snapshot.jpg file with event's photo - so we can ditch the MQTT trigger platform and make "a regular" state trigger in automations, with binary_sensors attached to detected motion

The binary sensors are updated via mqtt as well. Check your mqtt and/or homeassistant logs.

The binary sensors are updated via mqtt as well.

thanks for clarification :) that's how I understood this, and that's why I was surprised when the binary sensors worked, but the topic wasn't showing up.. besides that - would it be a big problem/lot of work to add the event_id as attribute to corresponding binary_sensor? I guess that could simplify some automations, so I'm just browsing for options :)

Check your mqtt and/or homeassistant logs.

will do as soon as I'll be back at home, but AFAIR there were nothing unusual there [at least in HA logs]

big problem/lot of work to add the event_id as attribute to corresponding binary_sensor

There isn't a single event_id tied to a binary sensor since there can be multiple tracked objects. I could do it, but I don't think it is the right solution. You are better off figuring out why your automations aren't working. It would be better to find a way to make the camera available for notifications without using an event_id.

There isn't a single event_id tied to a binary sensor since there can be multiple tracked objects. I could do it, but I don't think it is the right solution. You are better off figuring out why your automations aren't working.

understood. investigation in progress :)

It would be better to find a way to make the camera available for notifications without using an event_id.

it could be me not seeing the other, simpliest solution yet ;) - but I thought that getting the full-sized snapshot.jpg url could be done only with the help of event_id. sure, cameras tied to object's movement could be used to show the event's photo in notification, but I planned to view something bigger and that's when path to snapshot.jpg emerged from my search

You are better off figuring out why your automations aren't working.

ok, so I am after some testing - made some move before the camera and results are as follows:

binary_sensor is changing it's state correctly
events list on the dashboard page [frigate_ip:5000] works correctly & shows events, snapshots, clips etc.
mosquitto.log looks like everything works fine [found the exact time of the event, converted to epoch, searched the log]:

1616588862: Received PUBLISH from frigate (d0, q0, r0, m0, 'frigate/events', ... (809 bytes))
1616588862: Sending PUBLISH to 2wuy6bumzyCNh74dbDKzug (d0, q0, r0, m0, 'frigate/events', ... (809 bytes))
1616588862: Sending PUBLISH to frigate (d0, q0, r0, m0, 'frigate/events', ... (809 bytes))

home-assistant.log didn't showed any errors/warnings related to the frigate, automation, camera or mqtt communication

...and still - my automation with notification didn't worked, and I didn't saw frigate/events in mqtt explorer, but I guess that it could already dissapear before I came back from the driveway and finished getting all the logs [because it is dissapearing after an event, right?]
my frigate config for the camera [personal data redacted, other camera has the same config and also doesn't work with notifications]: frigate_yml_REDACTED.txt
my notification automation:
automation:
- id: 3_out_driveway_occupancy
  alias: 3_out_driveway_occupancy
  mode: single
  max_exceeded: silent
  trigger:
  - platform: mqtt
    topic: "frigate/events"
  action:
  - condition: template
    value_template: "{{ trigger.payload_json['after']['camera'] == '3_out_driveway' }}"
  - service: notify.0_ntf_peejay_telegram
    data_template:
      target: !secret tg_allowed_peejay
      url: "http://*frigate_ip*:5000/api/events/{{trigger.payload_json['after']['id']}}/snapshot.jpg"
      caption: "{{ '\U0001f441 DOG' if trigger.payload_json['after']['label'] == 'dog' else '\U0001f46b PEOPLE' if trigger.payload_json['after']['label'] == 'person' else '\U0001f698 CAR' if trigger.payload_json['after']['label'] == 'car' else '\U0001f441 MOVEMENT' }} at the driveway!"
      verify_ssl: false
  - delay: 60

notify.0_ntf_peejay_telegram - this works fine for sure, as I use the very same service and template for other notifications, so it's not a source of an issue.
\U000xxxxx - are just emoticons sent with the message. they work fine with other notifications
can you please take a look and give me another hint? I already checked the code for misspellings/missed commas, spaces etc. and didn't found any, so I'm guessing it's not that...

ok, I've deleted my "investigation report" comment, as probably found the guilty part of it..
ofcourse - the error is always between a keyboard and monitor ;D
further analysis showed me that probably I did messed up something in notification service, so I am closing this issue. if this won't work after me fixing the issue, I'll be back ;)
thanks for now!


How to do txt2img controlnet?

In the tutorial there is an example only for img2img, but it quite limited to many usecases..

There is sample in README.md . If you want to use multiple contronets, you'll have to set it from webui setttings and restart.

There is sample in README.md . If you want to use multiple contronets, you'll have to set it from webui setttings and restart.

i follow the instruction it works, but when I use own image for canny, I has no effect


docs(changelog) reflect that we are doing an RC instead of a GA

Imported changes from https://github.com/Kong/kong/pull/7008.


Share UX Review of OpenSCD

I'm happy to hears/see the results ;)

Me too :)

Still interested ;)