Refactoring

The code is not as clean as I want it to be. Therefore some refactoring should happen to improve code and the differentiation between Core and GUI.
For this the console UI could be updated to work again, this should show which features are UI independent and should be available in the core.

FYI: Console UI was removed to reduce code to maintain.

Will have a look at what can be done here.

What I want to do here is to tidy up the core a bit. It is very messy and could use some restructuring.
Everything else is refactored anyway all the time 😄

Did, what I could in some commits.


TST: refactor pip tests to use constraints files

Realized that tests were failing on Python 3.5 with the specified
versions and bumped the minimum pandas version to 0.20.1 (for
pandas.testing
support).
Added tests to run against Python 3.8 (just in time for Python 3.9 to
come out next week!)

[ ] tests added / passed
[x] passes nox -s blacken lint
[x] docs/source/changelog.rst entry

Logged test failure (found locally) at https://github.com/pydata/pandas-gbq/issues/332


File resources repository

Specific Demand
We should have a repository for files used throughout the organization. I'm improving the docs.rs of each crate to include the Dioxus logo, but I can't find the "official" file of it. In fact, the dioxus-fullstack docs use the organization avatar URL, which I'm not a huge fan of.
Also, awesome.json could be in this repository. Not sure what other files.

There is a Dioxus icon here https://github.com/DioxusLabs/dioxus/blob/master/packages/desktop/src/assets/default_icon.png. It would be nice to have a more clear place to put the logos/branding related thing (either a new folder or a new repo). A generic "files" repository seems a bit too broad, awesome.json and the Dioxus logo file don't have much in common.
We need the logo to be inside of somewhere inside of the main repo for the desktop default icon, so I think a folder inside of the main repo would make more sense for now, but if the amount of branding related files grows we can pull it out into it's own repo later

I made a branding repo!


How to compile the crash handler?

When I run the bat it doesn't compile it.  Can we get a guide or something?

I am considering changing the crash handler code to something else as using hxWidgets is proven to be too much of a hassle (plus it produces quite a big binary for a simple crash handler). I'll think of something whenever I have time to get to this project.


Automatically generate type definition files during npm run build

Description
Thank you for the wonderful library!
While using midi-writer-js in TypeScript, I noticed that some methods were not being auto-completed, so I created this PR.

In the above, Track.controllerChange and others are not listed.

By adjusting tsconfig.json, it is possible to automatically output d.ts files under build/types when running npm run build, so I have changed it to automatically output at build time.
With this PR method, type definition files will be output to build/types and browser/types when running npm run build.
I believe this may result in a change in the project's policy, so please consider it.
Screenshots
As far as I have reflected the changes in node_modules/midi-writer-js of my project, I have confirmed that Track.controllerChange is also auto-completed by this method.

Thanks, @tri-star!  Admittedly I'm still a bit new to TypeScript so this is very much appreciated.


Improvements to the GAPlugin for Blackberry

Fixed issue #376 in blackberry/WebWorks-Community-APIs
Removed inaccessible methods from the plugin JavaScript file, that did not meet the GAPlugin Cordova interface
Added an example application

I can't merge it in. Can you pull in the changes that are here and re-push. There's probably just a small commit in the way.

My bad. The pull request is ready now.


Drop IEventAggregator

Using an event aggregator was a nice idea. But it is way too limited and specific. Also the idea to distinguish between DOM events and "other" events has some drawbacks. What if I want from JavaScript to access such events? Also why do I need two mechanisms when the DOM already provides one that is quite generic.
Therefore I'll drop the event aggregator and implement IEventAggregator in the IBrowsingContext. The parsers will throw events directly (.NET event handler style), which will be also emitted by the context (dispatched). This will be also true for requests and everything else.
I am also thinking about extending the DOM outside of AngleSharp. Currently implementing, e.g., Performance (see http://www.w3.org/TR/navigation-timing-2/ and http://www.w3.org/TR/performance-timeline-2/) is much harder than it could / should be.

Implemented, see #328.


Small fixes and improvements

Small fixes, noting to add in changes

What does this fix? Many of these changes seem unrelated to each other. Many of them are incorrect, or shuffle things around for no apparent reason.
Looking through your other recent PRs, it seems you're making these sorts of changes to a lot of projects. Please be respectful of maintainers time by not making unnecessary changes and clearly explaining the reasons for the changes you do make.

What does this fix? Many of these changes seem unrelated to each other. Many of them are incorrect, or shuffle things around for no apparent reason.
Looking through your other recent PRs, it seems you're making these sorts of changes to a lot of projects. Please be respectful of maintainers time by not making unnecessary changes and clearly explaining the reasons for the changes you do make.

I really like to improve readablity of code. This is my fetish. All my code is correct. Look carefully. Most of projects like this one. Please recheck:
this one will fix logic and improve speed (bool is faster then work with string)
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R651
this code incapsulate ad-hoc constant to the one place in code (ye better to create const somewhere, but I don't know the right place)
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R760
access to right char is faster then slice
https://github.com/pallets/flask/pull/3799/files#diff-1f51c8ded4d4ff7e13badab599ef22436c529c2b5f9c25dc6250c1f9fd985440R295
multiple update faster then many access, will be optimized by python
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R651
style changes, else and elif after return is not very good
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R651
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R651
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R651
here I removed also 'else'
https://github.com/pallets/flask/pull/3799/files#diff-fed8939d1905b99bba605ad91e9ccdf5ede6223e03ccbc3f0121853035051e62R651

Many of them are incorrect
If I've made incorrect change, please say where, I don't want to break something. If I've made this, only by mistake.

I really try help with style, small mistakes, improve readability and code support (remove unneeded tabs when you have return + else/elif
may be can fix this PR in some case

Please tell, what about other changes.
I can revert some changes

I don't think it makes much sense to do anything with this PR - none of the changes are really worth a PR...

I don't think it makes much sense to do anything with this PR - none of the changes are really worth a PR...

Thanks, Ive really tried.

If you're interested in contributing, there are plenty of open issues with stuff we're actually asking for. However, we won't accept random changes like this.


Tags to Shortcode tasks fails to run

Affected Version
CWP 2.4, SS 4.4.3
Description

Upgraded from SS3 to SS4.4.3, CWP 2.4 successfully.
After successful starting and completing the MigrateFileTasks,  I tried running the TagsToShortcodeTasks  via the job queue, which fail to run.
Tried to run it immediately and it fails as well. Checked on both our new PROD and UAT environment.

Steps to Reproduce

Go to to dev/tasks
Select TagsToShortcodeTasks and run in job queue
View job queue, status changes to running
Within a minute it fails, status is broken
Message in job queue below

[2019-09-14 19:41:17][INFO] Job caused exception HashFileIDHelper::buildFileID requires an $hash value. in /sites/cccweb/releases/20190913085827/vendor/silverstripe/assets/src/FilenameParsing/HashFileIDHelper.php at line 37
[2019-09-14 19:41:17][INFO] HashFileIDHelper::buildFileID requires an $hash value.
[2019-09-14 19:41:17][INFO]
[2019-09-14 19:41:17][INFO] Job paused at 2019-09-14 19:41:17

Other notes
I downloaded and reviewed our FILE table, we have 40,000+ entries, there are 9 files/images that have no HASH.

I'm not sure how you could end up with files without an hash after running the migrating script.
Can you give us more info about those 9 files:

filename
did they get migrated correctly
are they actually in the DB
if you manually call sha1sum on them, what do you get?

As there was no further information, and SS3 > SS4 migrations are becoming less and less common, and we are starting to move towards CMS5, I am closing this issue.
If you can provide more information as requested by Max, feel free to re-open this issue and do so.


Use temporary LevelDB to store contents index

Attempt to re-implement #454 in a bit different way.
In order to reduce stress on main aptly DB, create temporary levelDB to be used only while generating contents indexes.
Idea and code borrowed shamelessly from #454.
Description of the Change
Current implementation might use a lot of memory to store map of paths to packages.
Checklist

[ ] unit-test added (if change is algorithm)
[ ] functional test added/updated (if change is functional)
[ ] man page updated (if applicable)
[ ] documentation updated
[x] author name in AUTHORS

I did rough test for xenial component main (only amd64 arch) publish:
       27.43 real        21.18 user         2.92 sys
  95551488  maximum resident set size
         0  average shared memory size
         0  average unshared data size
         0  average unshared stack size
     45540  page reclaims
       260  page faults
         0  swaps
         8  block input operations
       103  block output operations
         0  messages sent
         0  messages received
         6  signals received
      4683  voluntary context switches
     25465  involuntary context switches

That's with contents per package pre-cached already, only indexes are generated

Uncompressed Contents index is 63MB.

thanks @sliverc!
I've added compaction throttling, but only to temporary DB which is being used to build contents index

@smira Great... this looks good!

Thanks @sliverc!

After hitting this issue, I'm wondering when we can expect to see the next release which includes this fix?

You can try nightly builds (https://www.aptly.info/download/) which already include that fix. I don't have any exact date for the next release so far, but it looks like we're getting close to it


TN-1764 PO-to-MO compiler

Add flask compile-po-files for compiling backend PO files to MO files

flask requires MO files to load translations from

Hello @ivan-c! Thanks for submitting the PR.

In the file portal/models/i18n_utils.py, following are the PEP8 issues :

Line 280:1: E302 expected 2 blank lines, found 1


CCDA to FHIR conversion issue

Hi Team, Currently we have the CCD template available in GitHub. Could you please provide us the CCDA template as well.
We tried converting the CCDA using CCD templates but lot of information was missing from FHIR JSON.

Hi, we provide some ready-to-use templates as examples. If needed, you can create a new template, or modify existing templates to meet your specific conversion requirements using Liquid templating language.


Create a new  robot chassis

As we switch from MG996R to HS-485HB hobby servo motors we will be making 2 main changes.
The first change is that we will move the location of the toe in the neutral position from outside of the knee too directly below the knee. Testing has shown that this will put less stress on the servo motors.
The second change is that we are moving from an M3 metric screw standard to an imperial 2-56 screw standard. This means that our tapped holes now go from 3mm to 0.086 inches. We will be using 2 sizes of drills to accommodate this new screw standard.

When we want our 2-56 screws to pass through the part via non threaded holes we will use a 3/32" (0.09375") drill holes. An example of when we do this is the connection of the ankle servo horn to the lower shin.
When we want our 2-56 screws to thread into a part we will use a 0.07" drill to make the hole. An example of when we do this is the connection of the foot to the ankle servo.

Have a new foot design and have saved the tool paths as a template in the cloud. Feeds are OK and finish seems passable.

looks good. The foot looks shorter than the old one, or it this just my pathetic eyesight? Wondering if having the stub at the end a little longer would make it easier to attach "boots" is a stable way?

Having the foot length variable depending on whether or not a boot is attached, and how thick it is, would complicate the math. Maybe we should adopt a standard boot thickness, and either never have him go barefoot, or accept inaccuracies if he does.

I think it must be the perspective of the model I choose to show the new design. The new foot is exactly the same length as the old one. This may be an issue now that I think of it. My plan is to machine shoes that will add to the foot length. I guess I can shorten the leg to account for the shoe. My plan is to porches rubber coating that we can dip the shoes into to get grippy feet.


Editor: Reverting Scene State should not reset active camera position as well.

It seems weird that the camera resets position when exiting play mode.

Which camera is that? Scene editor viewport camera does not reset. Game view camera is supposed to reset because it is part of scene state that is restored.

I guess you meant editor viewport camera. I later found it does indeed reset and that was fixed.


Adding an Armstrong Number Checker

Project title
Armstrong Number Checker
Project Description
A number is thought of as an Armstrong number if the sum of its own digits raised to the power number of digits gives the number itself.
Stack:

[x] Html
[x] CSS
[x] JavaScript

/assign


248 styling

Complete:

added the total periods to the denominator of Number of Periods Included
added static help icon images in three locations (should create a reusable component?)
updated some styling to more closely match the design

Still needs attention:

thousand commas on Whole-home UA BTU (use browser locale functionality or d3format)
tailwind's border radius utilities  (rounded-md) not yet working

Will fix import issues on another PR


Compatibility with custom vocoder checkpoints?

Greetings!
I've tried to replace your supplied pretrained ParallelWaveGAN checkpoint with a different one I trained (Using the implementation over at https://github.com/kan-bayashi/ParallelWaveGAN ), to go along with a custom StarGANv2-VC checkpoint.
I copied the parameters from the config.yml that you supply with your pretrained checkpoint exactly, and used your checkpoint for finetuning.
However, the resulting vocoder checkpoint cannot use the output of StarGANv2-VC correctly - it produces near-clipping, way too low-frequency-centric output, even when running over the original wave files for testing.
After some investigation (and a lot of headache), it seems that the mel spectrograms produced by StarGANv2-VC use a different log base and are not compatible. So I trained a PWG vocoder with log() instead of the default log10(), but this also did not yield acceptable results.
It seems that the normalization you use for StarGANv2-VC is different, also. (?)
Your own vocoder checkpoint was trained with those changes implemented, since it works fine out of the box. But they're not documented.
If possible, could you please share details about what changes you made when training your ParallelWaveGAN checkpoint, so that other vocoder checkpoints may be correctly trained for use with StarGANv2-VC? That would be great.

Please read the ASR & F0 Models section:

The pretrained F0 and ASR models are provided under the Utils folder. Both the F0 and ASR models are trained with melspectrograms preprocessed using meldataset.py, and both models are trained on speech data only.

The ASR model is trained on English corpus, but it appears to work when training StarGANv2 models in other languages such as Japanese. The F0 model also appears to work with singing data. For the best performance, however, training your own ASR and F0 models is encouraged for non-English and non-speech data.

You can edit the meldataset.py with your own melspectrogram preprocessing, but the provided pretrained models will no longer work. You will need to train your own ASR and F0 models with the new preprocessing. You may refer to repo Diamondfan/CTC_pytorch and keums/melodyExtraction_JDC to train your own the ASR and F0 models, for example.

I replaced the preprocessing and normalization code bits in the ParallelWaveGAN repo with the ones you pointed at, but I'm getting nowhere.
Unlike your nicely structured StarGANv2-VC repo, the PWG code is neither compact nor easy to understand and I'm severely out of my league trying to make the code edits work together with the rest of the implementation because bits of it are scattered across way too many files.
The PWG dataset preparation fails at the compute-statistics stage with:
ValueError: X has 406 features, but StandardScaler is expecting 458 features as input.
May be my fault. Actually most likely is my fault. I don't know if I'm passing it data in the right way.
I understand why it needs those statistics but I don't understand how to fix it up so it tolerates the different preprocessing.
Do you know if there is any fork/repo out there that has the necessary changes implemented already? Does not have to be clean code.

The first thing you will need to do is to make sure the hop_size, win_length, and`` sample_rate are set correctly in the configuration files of ParallelWaveGAN because the size mismatch is most likely caused by those setting issues (i.e. sampling rate not divisible by hop size). Then you need to modify [line 213 in parallel_wavegan/bin/preprocess.py] (https://github.com/kan-bayashi/ParallelWaveGAN/blob/master/parallel_wavegan/bin/preprocess.py#L213) to replace logmelfilterbank with the preprocess function above. You also need to make sure that [normalize.py] (https://github.com/kan-bayashi/ParallelWaveGAN/blob/master/parallel_wavegan/bin/normalize.py) does nothing because I didn't use the speaker statistics when training the vocoder as it appears to be unnecessary.
Unfortuantely, I moved on from ParallelWaveGAN to HifiGAN because as you said the repo is very messy and hard to maintain,  so I didn't save the training code where I've made the change.

Oh hm... HifiGAN I'm more familiar with, also. Grafting the normalization from your repo into it shouldn't be as hard as with PWG, though that raises the question in my mind if that'll have further repercussions.
Since tacotron2 is involved in the teacher-forcing part of dataset preparation (for fine-tuning, which is the only feasible route given I mostly have small datasets to work with), that would mean I'd have to retrain a model for that as well, due to the replaced preprocessing + normalization?
And so I'd need to have full-fledged datasets, which is kinda throwing a wrench into the huge benefit of StarGANv2-VC, namely that it works with unannotated data and thus opens up interesting possibilities for playing around with voices one would normally not be able to build tts models for...
So I'm curious how you're using it.

Why would you need to use tacotron 2 in this case? HifiGAN does not need any labels to train either, because it is just a vocoder.

True, though the datasets I have are truly tiny and don't succeed when training from scratch. So far I've had success when using teacher-forcing when processing them, and for that I need tacotron2 parent models. Which were also finetuned. Maybe that explains my worry.
Unless there is a way I'm not aware of -- feel free to tell me my approach is unnecessarily complex. I'd be delighted to just run across a vocoder for once that doesn't involve esotheric procedures for training and is easy to use.

I finally got ParallelWaveGAN to accept the new preprocessing and produce a vocoder checkpoint that works with the other parts of your repo. 😤 Used your checkpoint for finetuning. I kept the speaker statistics.
Thank you very much for pointing me in the right direction.

@Kreevoz , how did you manage to achieve that -- i.e. changed PWGan code to accept new preprocessing ? I was finetuning StyleMelGan from the PWGan repo, but had the same issue as you -- vocoder checkpoint from Demo notebook just produce distorted sound.
So I understand that your took PWGan checkpoint from this repo and continued training? I guess in my case I'd had to start from the start.


LXML 5.2.0 breaks import

ImportError: lxml.html.clean module is now a separate project lxml_html_clean.

I tried installing it separately, and the error doesn't come up. But, bare_extraction() stops working.

same problem anyone solve this????
ImportError: lxml.html.clean module is now a separate project lxml_html_clean.

I downgraded to lxml == 5.1.0
And that solved it for me

but i use trafilatura package inside lxml. And i try this solution. Not worked me!!!

using lxml==5.1.0 will fix your problem..

Alternatively you can update Trafilatura to its latest version (1.8.0), lxml.html.clean has been removed.

This is now fixed in #535, I'll issue a new Trafilatura release shortly.

The issue is now fixed in release 1.8.1.

It's already done, or can you be more specific?

It's normal, that's the bug fix for now.

LXML will be up-to-date in the next version, see #593.


Add Header Tools by Path

This PR changes which header tools are shown depending on the path given. I've also added tests for the components I touched. I've help off adding functionality here using a mobx store until #16 is merged with the ImageStore. I'll add button functions in a separate PR.
Edit page layout
Subjects Page layout

Alright, good points above. I rigged the app to accept routes with parameters (eg. /projects/123/workflows) and found out react-router-dom has a matchPath helper for determining if a path matches a route, so no need to do any regex or worry about capitalization woes. I think this should be a suitable solution, and tests are still passing.
Also, I added wrap onto the header tools box, so that should take care of the messy header, but let me know if there are still any outstanding issues.

👍 Noice! The path-matching changes look good in the code; I'll test this when I'm back from today's London expedition.
(But if you can't wait to merge, then I think the latest changes LGEnoughTM. 👌)

PR Review (Update)
Righto, I've checked the updates 👌

The new full paths look and function well 👍 - e.g. http://localhost:3000/projects/123/workflows/123/subject-sets/123/subjects/123/edit now replaces http://localhost:3000/projects/workflows/subject-sets/subjects/edit and the code does path matching quite well.
The header tools still seem to not wrap properly on small viewports, though.

I'm still seeing this...

...when I'm expecting...

That second screenshot was achieved by adding a 'wrap' here...
export default function EditorHeader ({ buttons }) {
  return (
    <Box as='header' direction='row' pad={{ bottom: 'small' }} border='bottom'>
      <Box direction='row' justify='between' border='right' fill='horizontal'>
        <Box align='center'>
          <StyledHeader level='2'>Text Transcription Project</StyledHeader>
        </Box>
        <Box align='center' direction='row' gap='small' pad={{ horizontal: 'medium' }} wrap>  // <-- HERE
          {buttons.map((HeaderButton, i) => <HeaderButton key={`HEADER_BUTTON_${i}`} />)}
        </Box>
      </Box>
      <Badge />
    </Box>
  )
}

However, since you mentioned "I added wrap onto the header tools box", I'm not sure if you perhaps added it already, but haven't pushed the commit?

Oops. Yes, that's exactly what happened. I just forgot to push that commit. My change was the one as you described above. Sorry for the confusion.


add :adapter option

Closes #66.
Note that the option is added to Req.build/3, for a few reasons:

the adapter runs like a request step, but it is really a required attribute of the request, unlike any other steps
because the adapter is required and required to run last, it seemed confusing to make changes to something that is required as part of the process of adding defaults. It feels more natural to modify the request defaults when building the request.

I did not add new tests. I did update the two tests that use a custom adapter to add it using this option. Let me know if a separate test is desirable.

Thanks for the PR. If we have the :adapter option I wonder if we need the put_adapter function anymore, I feel like we don't. WDYT? Let me think about it some more.

I don't disagree. If the request needed to be changed after the initial build there is always the option to modify that attribute of the struct directly - it's not like put_adapter was performing any validation or other valuable work prior to updating the struct.

Thank you!


Obfuscation (coin mixing) liquidity is very low presently

Coin mixing is reliant upon how many users are mixing at that very moment.  Encouraging others to mix, lower the TX fees, and some form of incentive that doesn't compromise the anonymity of coin mixing.

How many people need to be mixing to make obfuscation work at any one time?
Asking around we have a good number of people partaking, but nobody is seeing results.


log scale step size too large

On https://www.chartjs.org/chartjs-chart-financial/ it's choosing increments of 10 which results in lots of whitespace (you need to change the dropdown to logarithmic)

I have a branch that works significantly better: https://github.com/benmccann/Chart.js/tree/log-scale-ticks
Unfortunately it fails more than a hundred tests. We'd probably have to change the log scale tests to image tests in order to make any improvements to tick generation

The overall tick generation strategy for the log scale is not very well thought out. I believe that the wider range of data you have the more ticks it will generate. Instead we should do something like use LinearBase.getTickLimit to determine how many ticks can fit on the scale.
I'm removing this from the 3.0 milestone though because these are longstanding issues and shouldn't be a blocker for the release

I'm not sure what the most expected behaviour is. I believe the log scale expands the range down to the start of the power-of-10, i.e. the range is expanded down to start at 10 even if the data min is 30. I think the reason I wrote it that way was that usually log charts are used when the data range is very large and so expanding a bit isn't a problem. It generates so many ticks to out of the box generate something that looks like https://i.stack.imgur.com/zxKqo.jpg
We didn't have minor ticks as a concept when the log scale was introduced. Perhaps we could use that? Declare major ticks at 1, 10, 100, etc and then minor ticks in between. Before switching the generation options too much, I think its worthwhile to do a bit of research and see what other libs do

If you do a Google image search for logarithmic chart you can find lots of examples of how other charts are drawn. Very few begin at powers of 10 and for those that do it's typically because the data is near a power of 10, so you don't end up with much white space at the bottom of the chart. For finance chart examples you can try Yahoo Finance or TradingView as two popular sites that both offer log scales with interactive charts.
Here's an image where the data is far apart. We end up with probably too many ticks.

Here's an image where the data is close. We end up with not enough gridlines. I think it'd be easier to tell what the data points are if we had ticks at 10, 12, 15, 20 for example.

The two charts are the same number of pixels, so should show roughly the same number of ticks in my opinion. This is how the other scales we have today like the linear and time scale work.

Right, my comment was more around the first chart. If the data min is 20, I think starting the axis at 10 looks a lot better and is clearer to understand.  That being said, there are too many ticks in the top chart and I think that's because the filtering is done in the label callback.
Perhaps we can apply the linear algorithm to the powers of 10. In the top chart, its equivalent to linear ticks at 1, 4, 7, ... which are easier to control. I'm not sure how to best control when to add minor grid lines. In the top chart, it would be cluttered, but if the range was smaller, I'd want to see grid lines at 10, 20, 30, etc.

Here's what it looks like starting at the nearest power of 10 vs not. I'm not sure I see any issues starting with 20. Doing so would be more consistent with the other chart types to have the tick range be close to the data range. I think starting at a power of 10 can make it look kind of squished with a lot of whitespace.
master

my branch

I like how the current code chooses numbers starting with 1, 2, 5. I had tried generating every number and letting the auto-skipper do its thing before, which would sometimes choose other numbers. That didn't look as nice because the numbers wouldn't be spread out appropriately when plotted

I like the results on your branch. How are you keeping the grid lines at 30 and 40 but not generating the labels?

It generates the ticks and then the tick formatter formats them as empty string. That's what happens in master and in 2.9. I didn't change that part

Is there anything we could do to make the test changes easier? I'm sure there are lots of old tests in the log scale that could be removed / simplified

I haven't looked too closely. I think a lot of tests probably test duplicate functionality and we could get away with removing most of them and replacing the rest with image tests. I don't really have more time to work on this though.

i just want to share how I have done these. I use a callback to create the ticks i want. im sure some JS magic could make this dynamic.

var ctx = document.getElementById('myChart').getContext('2d');
--
  | var myChart = new Chart(ctx, {
  | type: 'line',
  | data: {
  | labels: ['January', 'February', 'March', 'April', 'May','house','home','apartment','trailer'],
  | datasets: [{
  | label: 'Corrects',
  | data: [10, 60, 70, 180, 190, 250, 350, 450, 550],
  | fill: false,
  | borderColor: 'green',
  | pointStyle: 'triangle',
  | pointRadius: 10,
  | pointHitRadius: 20,
  | lineWidth: 10,
  | },
  | {
  | label: 'Incorrects',
  | data: [.10, 20, 30, 40, 50, .05, .5, 3, 8],
  | fill: false,
  | borderColor: 'red',
  | pointStyle: 'star',
  | pointRadius: 10,
  | pointHitRadius: 20,
  | lineWidth: 10,
  | }
  | ]
  | },
  | options: {
  | //  tooltips: {
  | //     titleFontSize: 30,
  | //     bodyFontSize: 30
  | // },
  | responsive: true,
  | maintainAspectRatio: false,
  | title: {
  | display: true,
  | text: 'Chart Title',
  | fontColor: 'Black',
  | fontSize: 30,
  | },
  | legend: {
  | position: 'bottom',
  | },
  | scales: {
  | xAxes: [{
  | ticks: {
  | fontSize: 30,
  | max: 90,
  | maxTicksLimit: 6,
  | }
  | }],
  | yAxes: [{
  | type: 'logarithmic',
  |
  | ticks: {
  | fontSize: 30,
  | autoSkip: false,
  | min: .001,
  | max: 1000,
  | callback: function (value, index, values) {
  | if (value == .001 \|\| value == .01 \|\| value == .1 \|\| value == 1 \|\| value == 10 \|\| value == 100 \|\| value == 1000) {
  | return value + '/min';
  | }
  | },
  | }
  | }],
  | },
  | },
  | });


Prompt to save unsaved changes on Exit

Prompt to save unsaved changes on Exit

fix implemented and tested in v0.3.1 branch


Custom Cover Backup

Describe your suggested feature
In order to be future-proof for more common mass migrations between apps and forks, I would very appreciate a feature which would allow the backup and restoration of custom cover arts. This is currently one of the only things which gets lost in migration, while being used to a moderate degree.
Other details
Similar issues and suggested solutions were mentioned in these issues.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an official extension, I should be opening an issue in the extensions repository.
[X] I have updated the app to version 0.15.3.
[X] I will fill out all of the requested information in this form.

For me, the cover.jpg files were kept (at least for local manga) but they didnt render until I opened each library entry.

Agree. I have had to reinstall & restore backup while debugging/troubleshooting many times, and it is a pain to reset custom covers each and every time. This feature would be massively appreciated. 🙌

+1

while looking through the data files in my android today, i found this folder
Android/data/app.mihon/files/covers/custom/

which does actually contain my custom covers, i am not sure but copying this folder or the entire covers folder(if you don't want to waste data downloading them again), might solve the issue for custom covers being lost?

while looking through the data files in my android today, i found this folder
Android/data/app.mihon/files/covers/custom/

which does actually contain my custom covers, i am not sure but copying this folder or the entire covers folder(if you don't want to waste data downloading them again), might solve the issue for custom covers being lost?

i can't even access that folder without a computer; i don't think it would work for many users

you can easily access that folder with the following methods:

a file manager that uses SAF(Storage Access Framework) like (Fossify file manager (fork of SMT file manager)
androids own file manager DocumentsUI(DUI) which doesn't have a shortcut so you will have to use a third party app to launch it, like Activity Launcher (launch "com.android.documentsui.files.FilesActivity" you can find it by searching any one the words in it) or you can use a launcher like Material File Manager which instead of using SAF just opens the folder in DUI

i hope that clears it?

while looking through the data files in my android today, i found this folder
Android/data/app.mihon/files/covers/custom/

which does actually contain my custom covers, i am not sure but copying this folder or the entire covers folder(if you don't want to waste data downloading them again), might solve the issue for custom covers being lost?

I tried this approach. Some custom cover files are correctly recognized, but some are mapped to the wrong manga entry.

I tried this approach. Some custom cover files are correctly recognized, but some are mapped to the wrong manga entry.

i guess then the only option is to custom set covers from the copied folder manually


Line Breaks are not rendered

While the doucment Parser detects line breaks, those are not rendered.
I already have a fix and will create PR soon

@zVolodymyr Ready for review/merge

@zVolodymyr  this is a very important addition. Please review the PR by @theimo1221 as it is needed by the community of user who depend on this library like me.

I guess he fixed it himself with b8e67d692388036faea35e58a82acbea7c20a0a8
As it includes some other fixes/changes I'll need to resolve some merge conflicts in regards to my other improvements, before opening more PR's


PACKIT_COMMIT_SHA content differs from the built NVR

What happened? What is the problem?
The merge_pr_in_ci config is true by default, so the Copr build contains a merge (target) sha in RPMs' NVRs. This sha is not visible anywhere.
The $PACKIT_COMMIT_SHA though contains the bare SHA from git push.
This situation can cause big headaches when the TF test cases attempt to find the corresponding NVRs using PACKIT_COMMIT_SHA.
Workaround is to set merge_pr_in_ci: false.
What did you expect to happen?
The $PACKIT_COMMIT_SHA should contain the same have the built RPMs.  No matter the merge_pr_in_ci config.
Example URL(s)
No response
Steps to reproduce
Let the Copr build finish, and compare the RPMs' NVS with `git show` SHA, the hashes are different.

What is the impacted category (job)?
Testing Farm tests
Workaround

[X] There is an existing workaround that can be used until this issue is fixed.

Participation

[ ] I am willing to submit a pull request for this issue. (Packit team is happy to help!)

The task is to:

[ ] provide env.vars to cover both merged hash and head of the PR
[ ] clearly document at https://packit.dev/docs/configuration/actions


Remove TestSubteamChats, add better test

Remove TestSubteamChats in current form, do not try to create subteam and try to chat in it because it's very flaky. Systests is not a good place for chat testing.
New test tests both outcomes of JoinSubteam argument.
Fix a bug that I introduced where CreatorAdded return value was not being set properly.

I'm find with this, but I'm curious does TestSubteamCreate test anything we don't already test?  in teams/create_test.go there is TestCreateSubteam and friends.

Hmm right, adding few more assertions to TestCreateSubteam would cover what this is testing. However maybe cli.TeamCreate API test is worth it, for example nothing caught my breakage of result.CreatorAdded.

Ok, sounds good.

Thanks! I'll spend some more time trying "slow gregor" though.


net.kuujo.copycat.netty.NettyTcpProtocolClient$1 is not a @Sharable handler, so can't be added or removed multiple times

(on master branch)
2015-03-09 00:06:51,148 WARN  [io.netty.channel.ChannelInitializer] (nioEventLoopGroup-8-1:) Failed to initialize a channel. Closing: [id: 0xa96c6eff]
io.netty.channel.ChannelPipelineException: net.kuujo.copycat.netty.NettyTcpProtocolClient$1 is not a @Sharable handler, so can't be added or removed multiple times.
at io.netty.channel.DefaultChannelPipeline.checkMultiplicity(DefaultChannelPipeline.java:463)
at io.netty.channel.DefaultChannelPipeline.addLast0(DefaultChannelPipeline.java:135)
at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:128)
at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:119)
at net.kuujo.copycat.netty.NettyTcpProtocolClient$2.initChannel(NettyTcpProtocolClient.java:133)
at net.kuujo.copycat.netty.NettyTcpProtocolClient$2.initChannel(NettyTcpProtocolClient.java:122)
at io.netty.channel.ChannelInitializer.channelRegistered(ChannelInitializer.java:69)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRegistered(AbstractChannelHandlerContext.java:158)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRegistered(AbstractChannelHandlerContext.java:144)
at io.netty.channel.DefaultChannelPipeline.fireChannelRegistered(DefaultChannelPipeline.java:732)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:443)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$100(AbstractChannel.java:375)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:419)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:370)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
The sample code:
public static void main(String[] args) {
ClusterConfig cluster = new ClusterConfig()
.withProtocol(new NettyTcpProtocol())
.withLocalMember("tcp://<IP_ADDRESS>:5004")
.withMembers("tcp://<IP_ADDRESS>:5000", "tcp://<IP_ADDRESS>:5001", "tcp://<IP_ADDRESS>:5002"
, "tcp://<IP_ADDRESS>:5003", "tcp://<IP_ADDRESS>:5004");
    LeaderElection.create("election", cluster).open().thenAccept(election -> {
        election.addListener(member -> {
            System.out.println(member.uri() + " was elected leader!");
        });
    });
}

After switch to local protocol, still not success:
2015-03-09 00:43:15,596 WARN  [net.kuujo.copycat.raft.FollowerState] (copycat-coordinator:) local://foo
java.util.concurrent.CompletionException: net.kuujo.copycat.protocol.ProtocolException: Invalid server address bar
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:593)
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1969)
at net.kuujo.copycat.cluster.internal.coordinator.DefaultRemoteMemberCoordinator.lambda$send$70(DefaultRemoteMemberCoordinator.java:66)
at net.kuujo.copycat.cluster.internal.coordinator.DefaultRemoteMemberCoordinator$$Lambda$69/1680852222.accept(Unknown Source)
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
public static void main(String[] args) throws InterruptedException {
ClusterConfig cluster = new ClusterConfig()
.withProtocol(new LocalProtocol())
.withMembers("local://foo", "local://bar", "local://baz");
    LeaderElection.create("election", cluster.copy().withLocalMember("local://foo")).open().thenAccept(election -> {
        election.addListener(member -> {
            System.out.println(member.uri() + " was elected leader!");
        });
    });

    TimeUnit.SECONDS.sleep(30L);
}

The unit test LeaderElectionTest is passed, btw.

Hi,
I have the same problem. Is there any solution for this issue?
Thanks.

Hmm... Should be an easy fix... It shouldn't be using a singleton handler.
There were issues with that Netty implementation. This will actually be fixed in the upcoming first release, but I don't expect it to be stable for a couple weeks.
I would say, don't get too dependent on the code in the master branch. It will never be released. The final API will be stable within a couple days, and probably merged in to master in a week. I am going to put a note about the coming changes (primarily simplifying and solidifying the API) in the README.

On May 21, 2015, at 3:40 AM, aqualuk<EMAIL_ADDRESS>wrote:
Hi,
I have the same problem. Is there any solution for this issue?
Thanks.
—
Reply to this email directly or view it on GitHub.

I have the same problem. i know

  ClusterConfig clusterConfig = new ClusterConfig()
            .withProtocol(new NettyTcpProtocol())
            .withLocalMember("tcp://<IP_ADDRESS>:5001")
            .withMembers(
                    "tcp://<IP_ADDRESS>:5001",
                    "tcp://<IP_ADDRESS>:5002",
                    "tcp://<IP_ADDRESS>:5003"
            );

    CopycatConfig config = new CopycatConfig()
            .withClusterConfig(clusterConfig);

    Copycat copycat = Copycat.create(config);

    copycat.open()
            .thenCompose(c -> c.createLeaderElection("election").open())
            .thenAccept(election -> {
                election.addListener(member -> System.out.println(member.uri() + " was elected leader!"));
            });
    System.out.println("what ! " + copycat.cluster().member().type().name());

run three jvm instance，
and output ：what ! ACTIVE
and why not output  member.uri() + " was elected leader!"
thans!

java8 hard to understand

The 0.6.0 branch has been merged into master and is significantly more stable than the previous development branch. This is no longer an issue.


select2_from_array without pivot table this is possible?

Hello Everyone good morning
I have on my controller this code
[ // select_from_array 			    'name' => 'forma_int', 			    'label' => "Forma de Integración", 			    'type' => 'select2_from_array', 			    'options' => ['WEBSERVICE' => 'WEBSERVICE', 'BIZTALK' => 'BIZTALK'], 			    'allows_null' => false, 			    'allows_multiple' => true, // OPTIONAL; needs you to cast this to array in your model; 			    'pivot' => true 			]
I dont have a pivot table
and I have this error message send to me for SQL
"Array to string conversion "
select2_from_array without pivot table this is possible?
thanks for all

I don't think what you're doing is possible (obviously) but a hunch says to me that if you rethink what you are doing maybe the AJAX versions may work?
https://laravel-backpack.readme.io/docs/crud-fields#section-select2_from_ajax_multiple

I'd suggest trying with AJAX.


Update ondat cli docs

This PR focuses on updating the Ondat CLI page and provides clear guidance on how to download and install the CLI on supported platforms (linux, windows, macOS and kubernetes distributions).

I have tested each deployment method (kubernetes deployment and supported workstation distributions).
I have removed the "Run CLI as a container" section in favour of the CLI kubernetes deployment method to keep everything as simple as possible.

I have also removed the Ondat CLI sub command pages to reduce the number of documents to maintain long-term basis.

As the product and the CLI capabilities continue evolve, a recommendation would be to refer end users to use the man pages in the CLI storageos help as the single source of truth for commands, subcommands and flags introduced.

We should set up redirects for all the files that are removed

@cannischan I have made the final changes to make the instructions a bit more clearer and consistent.

@hubvu if we won't have anything underneath the folder cli then we can keep what we have right now, didn't notice that we have removed the folder altogether!


Non-deterministic crash: ([assert] source/common/network/connection_impl.cc:424] assert failure: !connecting_)

Title: Envoy sometimes crashes with: [assert] source/common/network/connection_impl.cc:424] assert failure: !connecting_
Repro steps:
In one shell, run:
$ tcpkali -T86400 -em 'GET / HTTP/1.1\r\nHost: localhost\r\n\r\n' <IP_ADDRESS>:1111 -c50

In another, run:
$ envoy-static -c repro.json

Envoy will crash after some period of time. Sometimes Envoy crashes very quickly, sometimes it takes much longer. The assert above is the most common one seen, but we have seen others as well.
Config:
{
  "listeners": [
    {
      "address": "tcp://<IP_ADDRESS>:1111",
      "filters": [
        {
          "type": "read",
          "name": "http_connection_manager",
          "config": {
            "codec_type": "auto",
            "stat_prefix": "whatever",
            "route_config": {
              "virtual_hosts": [
                {
                  "name": "local-whatever",
                  "domains": ["*"],
                  "routes": [
                    {
                      "prefix": "/",
                      "cluster": "local-whatever"
                    }
                  ]
                }
              ]
            },
            "filters": [
              {
                "name": "health_check",
                "config": {
                    "pass_through_mode": true,
                    "endpoint": "/health",
                    "cache_time_ms": 10
                }
              },
              {
                "type": "decoder",
                "name": "router",
                "config": {}
              }
            ]
          }
        }
      ]
    }
  ],
  "admin": {
    "access_log_path": "/dev/null",
    "address": "tcp://<IP_ADDRESS>:8001"
  },
  "cluster_manager": {
    "clusters": [
      {
        "name": "local-whatever",
        "connect_timeout_ms": 1000,
        "type": "strict_dns",
        "lb_type": "round_robin",
        "health_check": {
          "type": "http",
          "timeout_ms": 1000,
          "interval_ms": 5000,
          "unhealthy_threshold": 1,
          "healthy_threshold": 3,
          "path": "/health"
        },
        "hosts": [
          {
            "url": "tcp://localhost:4444"
          }
        ]
      }
    ]
  }
}

Call Stack:
$   bazel-bin/source/exe/envoy-static -c ~/Downloads/repro-2.json
[2018-05-17 16:45:19.567][4674270][info][main] source/server/server.cc:180] initializing epoch 0 (hot restart version=disabled)
[2018-05-17 16:45:19.568][4674270][info][main] source/server/server.cc:182] statically linked extensions:
[2018-05-17 16:45:19.568][4674270][info][main] source/server/server.cc:184]   access_loggers: envoy.file_access_log,envoy.http_grpc_access_log
[2018-05-17 16:45:19.568][4674270][info][main] source/server/server.cc:187]   filters.http: envoy.buffer,envoy.cors,envoy.ext_authz,envoy.fault,envoy.grpc_http1_bridge,envoy.grpc_json_transcoder,envoy.grpc_web,envoy.gzip,envoy.health_check,envoy.http_dynamo_filter,envoy.ip_tagging,envoy.lua,envoy.rate_limit,envoy.router,envoy.squash
[2018-05-17 16:45:19.568][4674270][info][main] source/server/server.cc:190]   filters.listener: envoy.listener.original_dst,envoy.listener.proxy_protocol,envoy.listener.tls_inspector
[2018-05-17 16:45:19.568][4674270][info][main] source/server/server.cc:193]   filters.network: envoy.client_ssl_auth,envoy.echo,envoy.ext_authz,envoy.http_connection_manager,envoy.mongo_proxy,envoy.ratelimit,envoy.redis_proxy,envoy.tcp_proxy
[2018-05-17 16:45:19.569][4674270][info][main] source/server/server.cc:195]   stat_sinks: envoy.dog_statsd,envoy.metrics_service,envoy.statsd
[2018-05-17 16:45:19.569][4674270][info][main] source/server/server.cc:197]   tracers: envoy.dynamic.ot,envoy.lightstep,envoy.zipkin
[2018-05-17 16:45:19.569][4674270][info][main] source/server/server.cc:200]   transport_sockets.downstream: envoy.transport_sockets.capture,raw_buffer,ssl
[2018-05-17 16:45:19.569][4674270][info][main] source/server/server.cc:203]   transport_sockets.upstream: envoy.transport_sockets.capture,raw_buffer,ssl
[2018-05-17 16:45:19.598][4674270][info][config] source/server/configuration_impl.cc:53] loading 1 listener(s)
[2018-05-17 16:45:19.608][4674270][info][config] source/server/configuration_impl.cc:87] loading tracing configuration
[2018-05-17 16:45:19.609][4674270][info][config] source/server/configuration_impl.cc:109] loading stats sink configuration
[2018-05-17 16:45:19.609][4674270][info][main] source/server/server.cc:386] starting main dispatch loop
[2018-05-17 16:45:19.609][4674270][info][upstream] source/common/upstream/cluster_manager_impl.cc:132] cm init: all clusters initialized
[2018-05-17 16:45:19.609][4674270][info][main] source/server/server.cc:370] all clusters initialized. initializing init manager
[2018-05-17 16:45:19.609][4674270][info][config] source/server/listener_manager_impl.cc:637] all dependencies initialized. starting workers
[2018-05-17 16:45:45.263][4674289][critical][assert] source/common/network/connection_impl.cc:424] assert failure: !connecting_
[2018-05-17 16:45:45.263][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:114] Caught Abort trap: 6, suspect faulting address 0x7fff5b2b5b6e
[2018-05-17 16:45:45.269][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:87] Backtrace obj<envoy-static> thr<123145559920640>:
[2018-05-17 16:45:45.269][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:99] thr<123145559920640> obj<envoy-static                        0x000000010efcaaf6 _ZN8backward7details6unwindINS_14StackTraceImplINS_10system_tag10darwin_tagEE8callbackEEEmT_m>
[2018-05-17 16:45:45.269][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:105] thr<123145559920640> #0 0x10efcaaf6:
[2018-05-17 16:45:45.269][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:99] thr<123145559920640> obj<envoy-static>
[2018-05-17 16:45:45.270][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:105] thr<123145559920640> #1 0x10efca665: backward::StackTraceImpl<backward::system_tag::darwin_tag>::load_here(unsigned long) + 101
[2018-05-17 16:45:45.307][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:105] thr<123145559920640> #2 0x10efca461: backward::StackTraceImpl<backward::system_tag::darwin_tag>::load_from(void*, unsigned long) + 49
[2018-05-17 16:45:45.307][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:105] thr<123145559920640> #3 0x10efc89be: Envoy::BackwardsTrace::captureFrom(void*) + 46
[2018-05-17 16:45:45.307][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:105] thr<123145559920640> #4 0x10efc887f: Envoy::SignalAction::sigHandler(int, __siginfo*, void*) + 143
[2018-05-17 16:45:45.307][4674289][critical][backtrace] bazel-out/darwin-fastbuild/bin/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:110] end backtrace thread<PHONE_NUMBER>20640
Abort trap: 6

Forgot to mention, this was tested with 554e57a89e95a9d9bed684e5d663d217a1ea502c.

This isn't new issue, is it?
My guess is that the read-readiness event is triggered before write-readiness, and the ASSERT(!connecting_) is wrong.
I didn't see that happening before, but maybe it can happen on macOS?

@PiotrSikora it looks like the answer is yes: here is what I see... trimmed to what I think is relevant:
[2018-05-17 20:31:12.971][155067][trace][connection] source/common/network/connection_impl.cc:321] [C104] writing 134 bytes, end_stream false
[2018-05-17 20:31:12.971][155067][trace][http] source/common/http/conn_manager_impl.cc:1018] [C104][S3087342949634306169] encode data called: filter=0x35a8e00 status=0
[2018-05-17 20:31:12.971][155067][trace][http] source/common/http/conn_manager_impl.cc:1025] [C104][S3087342949634306169] encoding data via codec (size=57 end_stream=true)
[2018-05-17 20:31:12.971][155067][trace][connection] source/common/network/connection_impl.cc:321] [C104] writing 57 bytes, end_stream false
[2018-05-17 20:31:12.972][155067][trace][connection] source/common/network/connection_impl.cc:227] [C104] readDisable: enabled=false disable=false
[2018-05-17 20:31:12.974][155067][trace][connection] source/common/network/connection_impl.cc:384] [C104] socket event: 1
[2018-05-17 20:31:12.974][155068][debug][http] source/common/http/conn_manager_impl.cc:785] [C281][S4854120499184202524] request end stream
[2018-05-17 20:31:12.974][155067][trace][connection] source/common/network/connection_impl.cc:422] [C104] read ready
[2018-05-17 20:31:12.974][155071][critical][assert] source/common/network/connection_impl.cc:424] assert failure: !connecting_
[2018-05-17 20:31:12.974][155067][trace][connection] source/common/network/raw_buffer_socket.cc:25] [C104] read returns: 4096

Full log: out.log


Typo "GitHub Action runner"→"GitHub Actions Runner"

https://github.com/Azure/mysql/blob/master/README.md
#PingMSFTDocs

Text change only in documentation approved


Einsum in python

In addition or instead of supporting np.einsum, it was agreed that finch should have a more flexible einsum interface. It would look like this:
allocating scaled matrix add
einsum("d[i, j] += a[i, j]*b[] + c[i, j]", a=a, b=b, c=c)

in-place scaled matrix add
einsum("d[i, j] += a[i, j]*b[] + c[i, j]", a=a, b=b, c=c)

max-plus matmul
einsum("c[i, j] max= a[i, j] + b[i, j]", a=a, b=b)

etc. If you want to use your own function you could pass it in
einsum("c[i, j] f= a[i, j] + b[i, j]", a=a, b=b, f=f)

we would target https://github.com/willow-ahrens/Finch.jl/issues/428 and probably utilize https://github.com/lark-parser/lark or https://ply.readthedocs.io/en/latest/ or a custom recursive descent parser to parse the string.
@mtsokol @kylebd99

While einsum is great and we can (and should) support it, I'd suggest first supporting the functional forms of these operations. For examples given in the comment these would be:
# First two are identical
d += a * b + c
finch.max(c, a + b, out=c)
f(c, a + b, out=c)

The main reason is that the array API standard doesn't contain einsum, and we want users of the standard to be able to get the full performance benefits of fused operations. Quoting design principle 5:

an interface should have clearly defined and delineated functionality which, ideally, has no overlap with the functionality of other interfaces in the specification. Providing multiple interfaces which can all perform the same operation creates unnecessary confusion regarding interface applicability (i.e., which interface is best at which time) and decreases readability of both library and user code. Where overlap is possible, the specification must be parsimonious in the number of interfaces, ensuring that each interface provides a unique and compelling abstraction. Examples of related interfaces which provide distinct levels of abstraction (and generality) include ... einsum

For a discussion on existing ways to handle laziness in Python, see: https://github.com/pydata/sparse/discussions/618

That's okay, we'll work on the python side of this later! We wanted to agree on something that seemed doable because there was interest from the julia side in einsum and we were designing things to ensure that python wouldn't be locked out of it.

Kyle or I can tackle this after my next paper submission

Hameer, I'm curious how we can represent the following in the tensor API, it's important in graph kernels:
C[i, j] max= A[i, k] + B[k, j]

@hameerabbasi , I'm curious how we can represent the following in the tensor API, it's important in graph kernels:

C[i, j] max= A[i, k] + B[k, j]

Something like C = finch.max(A[:, None, :], B.transpose((1, 0))[None, :, :], axis=1)
An assumption made here is that A, B, C are all 2D and stored in the order i, j, k with k being the "contiguous" variable where present. Also, C doesn't exist beforehand. If that's not true, one would add/modify transpositions, or add another max with C like finch.max(C, ..., out=C).

okay. I still think the einsum is much clearer here, but I do see how this could eventually work through the fused interface, we would need indexing to be lazy too, which might be farther off.


Adding decoherence noise models fails when RX angles are perturbed from +/-pi or +/-pi/2

Two ways to fix this:

Quick: allow angles to deviate from pi within some tolerance (e.g., 10^{-10}) that is much stricter than any anticipated gate error.
Slow: actually implement a mechanism to translate arbitrary pyquil gates (including parameters) to symbolic or numeric matrices. This would have to be able to resolve the default gateset AND check the program for defgates and extract those when applicable. As a benefit, we could support helpers for noise models for arbitrary gates.

@mpharrigan what are your thoughts?

Is this an issue in practice? Can we do quick in the near term and slow eventually in the context of noise models for arbitrary gates

Yeah, it was an issue for me today when I tried to add noise after compiling the program an external user wants to simulate with noise. I am happy to do the quick fix first


Migrate from Newtonsoft.Json to System.Text.Json

Why switch?
Over the years System.Text.Json has come a long way and improved a lot, even beyond Newtonsoft.Json. Some major reasons of switching to System.Text.Json include:

A major increase in performance when serializing and deserializing Data
Cutting down on a 3rd party library and replacing it with an official one
More robust in terms of security and reliability
Performance that is tailored towards the targeted framework

Additions with switching
A lot of code will need to be migrated over to System.Text.Json, many things that used to be specified with attributes when using Newtonsoft.Json will now need to be added as a setting in the serializer/deserializer.
Problems with switching
No problems should arise if everything is tested correctly after the code was migrated over.

Done in v. 2.0


Inter-block spacing is incorrect for hat blocks in the flyout

Hat blocks have a bit more spacing between them in the flyout relative to Scratch; in general blocks are spaced the same, and I suspect this may be due to the hat not being taken into account/being positioned negative relative to the block's bounds or something along those lines.

The spacing between the hat blocks seems to be appropriate.


Add ability to generate and upload SVGs instead of PNGs as images

Will require some viewBox and preserveAspectRatio manipulation.

This will no longer be necessary as spout will not generate images in the next release. The NSRR server no longer requires images of variables for display purposes. Issue closed in light of #85.


Skip snakebite tests on Python 3.

I wonder if we should just convince @wouterdebie to move the minicluster functionality to a separate repo and make it compatible with Python 3 :)


System.ArgumentException while running a test from VS

Hi all,
I am using VS2012 with NUnit (V.2.0).
I am facing this strange issue while running my test from within VS. My test works fine when I run it from NUnit GUI, but fails when I run it from within the VS (Test Explorer) window. It throws the following exception.
Message returned System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Invalid token for impersonation - it cannot be duplicated.
at System.Security.Principal.WindowsIdentity.CreateFromToken(IntPtr userToken)
at System.Security.Principal.WindowsIdentity..ctor(SerializationInfo info)
at System.Security.Principal.WindowsIdentity..ctor(SerializationInfo info, StreamingContext context)
--- End of inner exception stack trace ---
Strangely enough, when I run the same test from Resharper Unit Test Explorer window it works fine again. It is driving me mad.
I am pretty sure this has something to do with NUnit being running under different identity, but how can I change it.
Any advice !!
Thanks,
DS

Not an adapter issue.


[Bug] Pie chart can display the same colours as neighbouring

CoffeeScript and Elm are two different languages but have the same colour and are next to each other

Hi!
This is default color. We will add more colors to our palette for languages.
Also, we need to update Elm caption.

@wende we've improved colors and titles for all of our supported languages. Give it a try.


Create LICENSE

As the project currently has no explicit license, it is effectively NOT open source, and anyone currently using this project could arguably be said to be infringing copyright by some witty legal team/copyright troll.
I think this should be resolved ASAP as it hinders the adoption of this project.
See more here.
PS: I have no particular attachment to the MIT license, I simply copied over the same license as the one found in jsontypedef/json-typedef-js (while also updating the year)
Closes jsontypedef#22

Thank you for this!
As a point of clarification, the individual crates for this code all have a license = MIT attribute in their Cargo manifests. But I agree that a top-level LICENSE file is a good idea. I'll merge this now.


Clicking an empty/ material slot in advanced import settings for a GLB crashes the editor

Godot version
4.0 beta 7
System information
Windows 7, Linux Mint 21 Xfce
Issue description
When trying to assign a material in the advanced import options menu for a GLB that has an empty material slot the editor crashes. Impacted slots are always labeled <Unnamed Material>, although in this case they had names set in Blender before being exported from it. This happens on both my Windows 7 and Linux Mint systems.
Steps to reproduce
1: Open the minimal reproduction project.
2: Double click the wall_hedge_crawl_end.glb file in the FileSystem toolbox to open the advanced import settings menu.
3: Click the materials tab.
4: Click on one of the  materials.
The editor should hang and then crash or just crash immediately.
Minimal reproduction project
GLBCrashReproduction.zip

This was supposedly fixed by https://github.com/godotengine/godot/pull/59834 (see https://github.com/godotengine/godot/issues/54807).

I can reproduce the bug with the above steps in 4.0-beta7 and current master (a7937fe54cd2c1f407a529e46e2708aea5ce7243).
Stacktrace:
Thread 1 "godot-git" received signal SIGSEGV, Segmentation fault.
0x00000000085addf8 in CowData<TreeItem::Cell>::_get_size (this=0x190) at ./core/templates/cowdata.h:81
81                      if (!_ptr) {

(gdb) bt
#0  0x00000000085addf8 in CowData<TreeItem::Cell>::_get_size (this=0x190) at ./core/templates/cowdata.h:81
#1  0x00000000085a7994 in CowData<TreeItem::Cell>::size (this=0x190) at ./core/templates/cowdata.h:131
#2  0x00000000085a0d60 in Vector<TreeItem::Cell>::size (this=0x188) at ./core/templates/vector.h:90
#3  0x0000000008577b07 in TreeItem::select (this=0x0, p_column=0) at scene/gui/tree.cpp:1030
#4  0x00000000079935f7 in SceneImportSettings::_select (this=0x120b6190, p_from=0x12162b10, p_type=..., p_id=...) at editor/import/scene_import_settings.cpp:738
#5  0x0000000007993db2 in SceneImportSettings::_material_tree_selected (this=0x120b6190) at editor/import/scene_import_settings.cpp:808
#6  0x00000000079ab123 in call_with_variant_args_helper<SceneImportSettings>(SceneImportSettings*, void (SceneImportSettings::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (
    p_instance=0x120b6190, p_method=(void (SceneImportSettings::*)(SceneImportSettings * const)) 0x7993c1c <SceneImportSettings::_material_tree_selected()>, p_args=0x0, r_error=...)
    at ./core/variant/binder_common.h:262
#7  0x00000000079aad8a in call_with_variant_args<SceneImportSettings> (p_instance=0x120b6190,
    p_method=(void (SceneImportSettings::*)(SceneImportSettings * const)) 0x7993c1c <SceneImportSettings::_material_tree_selected()>, p_args=0x0, p_argcount=0, r_error=...) at ./core/variant/binder_common.h:376
#8  0x00000000079aaaa4 in CallableCustomMethodPointer<SceneImportSettings>::call (this=0x121a4130, p_arguments=0x0, p_argcount=0, r_return_value=..., r_call_error=...)
    at ./core/object/callable_method_pointer.h:104
#9  0x0000000009e9282f in Callable::callp (this=0x2542c238, p_arguments=0x0, p_argcount=0, r_return_value=..., r_call_error=...) at core/variant/callable.cpp:50
#10 0x000000000a194a30 in Object::emit_signalp (this=0x12162b10, p_name=..., p_args=0x0, p_argcount=0) at core/object/object.cpp:1046
#11 0x0000000006287fd5 in Object::emit_signal<>(StringName const&) (this=0x12162b10, p_name=...) at ./core/object/object.h:868
#12 0x00000000085899dd in Tree::select_single_item (this=0x12162b10, p_selected=0x121ae530, p_current=0x121ae530, p_col=0, p_prev=0x0, r_in_range=0x0, p_force_deselect=false) at scene/gui/tree.cpp:2514
#13 0x0000000008589c6b in Tree::select_single_item (this=0x12162b10, p_selected=0x121ae530, p_current=0x7fffa0001f20, p_col=0, p_prev=0x0, r_in_range=0x0, p_force_deselect=false) at scene/gui/tree.cpp:2551
#14 0x000000000858b374 in Tree::propagate_mouse_event (this=0x12162b10, p_pos=..., x_ofs=0, y_ofs=0, x_limit=284, p_double_click=false, p_item=0x121ae530, p_button=MouseButton::LEFT, p_mod=...)
    at scene/gui/tree.cpp:2780
#15 0x000000000858c1a4 in Tree::propagate_mouse_event (this=0x12162b10, p_pos=..., x_ofs=0, y_ofs=0, x_limit=284, p_double_click=false, p_item=0x7fffa0001f20, p_button=MouseButton::LEFT, p_mod=...)
    at scene/gui/tree.cpp:2942
#16 0x00000000085900fe in Tree::gui_input (this=0x12162b10, p_event=...) at scene/gui/tree.cpp:3647
#17 0x0000000008308c5f in Control::_call_gui_input (this=0x12162b10, p_event=...) at scene/gui/control.cpp:1713
#18 0x0000000008205c74 in Viewport::_gui_call_input (this=0x120b6190, p_control=0x12162b10, p_input=...) at scene/main/viewport.cpp:1326
#19 0x0000000008206b6b in Viewport::_gui_input_event (this=0x120b6190, p_event=...) at scene/main/viewport.cpp:1559
#20 0x000000000820e74e in Viewport::push_input (this=0x120b6190, p_event=..., p_local_coords=false) at scene/main/viewport.cpp:2796
#21 0x000000000824cd68 in Window::_window_input (this=0x120b6190, p_ev=...) at scene/main/window.cpp:1096
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x0000000008272e60 in call_with_variant_args_helper<Window, Ref<InputEvent> const&, 0ul> (p_instance=0x120b6190,
    p_method=(void (Window::*)(Window * const, const Ref<InputEvent> &)) 0x824c976 <Window::_window_input(Ref<InputEvent> const&)>, p_args=0x7fffffffc8d8, r_error=...) at ./core/variant/binder_common.h:262
#23 0x00000000082703ed in call_with_variant_args<Window, Ref<InputEvent> const&> (p_instance=0x120b6190,
    p_method=(void (Window::*)(Window * const, const Ref<InputEvent> &)) 0x824c976 <Window::_window_input(Ref<InputEvent> const&)>, p_args=0x7fffffffc8d8, p_argcount=1, r_error=...) at ./core/variant/binder_common.h:376
#24 0x000000000826d146 in CallableCustomMethodPointer<Window, Ref<InputEvent> const&>::call (this=0x120bfed0, p_arguments=0x7fffffffc8d8, p_argcount=1, r_return_value=..., r_call_error=...)
    at ./core/object/callable_method_pointer.h:104
#25 0x0000000009e9282f in Callable::callp (this=0x7fffffffc880, p_arguments=0x7fffffffc8d8, p_argcount=1, r_return_value=..., r_call_error=...) at core/variant/callable.cpp:50
#26 0x00000000052cd227 in DisplayServerX11::_dispatch_input_event (this=0xbf933c0, p_event=...) at platform/linuxbsd/x11/display_server_x11.cpp:3297
#27 0x00000000052ccf9f in DisplayServerX11::_dispatch_input_events (p_event=...) at platform/linuxbsd/x11/display_server_x11.cpp:3268
#28 0x0000000009e37c05 in Input::_parse_input_event_impl (this=0xb943670, p_event=..., p_is_emulated=false) at core/input/input.cpp:663
#29 0x0000000009e38f0e in Input::flush_buffered_events (this=0xb943670) at core/input/input.cpp:885
#30 0x00000000052d1c20 in DisplayServerX11::process_events (this=0xbf933c0) at platform/linuxbsd/x11/display_server_x11.cpp:4294
#31 0x00000000052b4710 in OS_LinuxBSD::run (this=0x7fffffffd1a0) at platform/linuxbsd/os_linuxbsd.cpp:874
#32 0x00000000052ac180 in main (argc=2, argv=0x7fffffffd718) at platform/linuxbsd/godot_linuxbsd.cpp:73

The cause (and the stacktrace) is different from #54807 which should still be fixed (tested with a similar MRP).
Seems to happen because the mesh has 2 surfaces with empty materials, but I need to investigate more.

This issue still exists in Beta 14.
I'm sorry but I can't post the logs (like the one from Akien) of the crash, because I don't know where to find them.
Where do I find the crash logs?


locationd: replay tests with erroneous data

Generate refs with some input, then introduce things like gyro spikes in the input log. Confirm that the output doesn't differ.

done


chore(main): release 0.2.8

:robot: I have created a release beep boop
0.2.8 (2023-01-13)
Bug Fixes

Use left alignment by default (#32) (c4ba148)

Miscellaneous

main: release 0.2.8-SNAPSHOT (8a46dde)
main: release 0.2.8-SNAPSHOT (#31) (615d911)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/paulschuberth/mdgen/releases/tag/v0.2.8 :sunflower:


HONKS token

HONK HONK

Could you also squash your commits into a single one ?

fixed, but i have 0 idea how to squash, google doesnt help. sorry, github noob.

This has been handled manually.


Hierarchy and Tree synchronization

sync graph and tree viewer components
data structures linked, so on graph node selection we have a reference of the tree and viceversa

I'm closing this one, since we have another PR for feature/_15 which is more stable than this one.


⚠ Bofrost.at has degraded performance

In 8feddcd, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1290 ms

Resolved: Bofrost.at performance has improved in b231a96 after 6 minutes.


Add support for studer inverter brand

refer to the docs: https://api.studer-innotec.com/swagger/ui/index
please add the integration in : https://github.com/openclimatefix/open-source-quartz-solar-forecast/tree/main/quartz_solar_forecast/inverters by creating <your_inverter>.py file

I'll work on this issue as you test the other one.


suggest:image info should have port information,user can use it create service

In GitLab by @cuiaq123 on Mar 23, 2018, 11:34
If you are reporting a problem, please make sure the following information are provided:

Version of board (last git commit number) , docker engine and docker-compose.
Config files of board, you can get them by packaging "board.cfg" and files in the same directory, including subdirectory.
Log files, you can get them by package the /var/log/board/.
Other necessery information.

In GitLab by @yhua123 on Nov 8, 2019, 07:48
workround: UI read dockerfile for analysis port info.
enhancement: apiserver response port directly.

In GitLab by @cuiaq123 on Nov 8, 2019, 07:48
i can not see the port info in image detail

In GitLab by @sokril on Nov 8, 2019, 08:20
assigned to @wknet123


Can't Create Storate pool on M.2 SSD

DSM is Lastest (7.2.1 U5)
I was connect SSSTC CL1-8D256 (for test) on DS3622xs by NVMe PCIe Adaptor
Download lastest version (3.5.89) and Upload it on HDD volume -> Extract -> Edit syno_hdd_vendor_ids.txt (add 0x1e95) -> run -> Reboot
but can't create volume on it

reboot -> try -> fail
reboot -> rerun script -> try -> fail
Script result no warning or error

Is the NVMe PCIe Adaptor a M2D20, M2D18 or E10M20-T1?
Did the script find the SSSTC CL1-8D256?
Did the "M.2 Drive 1-1" show in Storage Manager before you ran the script?
If you go to "Storage Manager > Overview" do you see the PCIe Adaptor?
That "Manage Available Drives" window is new. What version does the Storage Manager package show in Package Center?

Is the NVMe PCIe Adaptor a M2D20, M2D18 or E10M20-T1?
Did the script find the SSSTC CL1-8D256?
Did the "M.2 Drive 1-1" show in Storage Manager before you ran the script?
If you go to "Storage Manager > Overview" do you see the PCIe Adaptor?
That "Manage Available Drives" window is new. What version does the Storage Manager package show in Package Center?

PCIe Adaptor is not synology model (for PC)
Script can recognized CL1-8D256 and added SSSTC on HDDDB
Yes i can find M.2 on Storage manager before used script (It just changed unknown -> SSSTC)
Storage Manager<EMAIL_ADDRESS>U5 (Lastest@Lastest)
Used HDD4@RAID5 + SATA SSD2@RAID1 (Cache)
Now i want to add new volume for fast speed by NVMe disk (Maybe use Oracle F320 or Intel P3600. SSSTC CL1-8D256 is test purpose)

Which brand and model PCIe adaptor do you have?
In "Control Panel > Info Center" what does it show for "PCIe Slot 1" ?
When you get the "Cannot perform this action. No drive are available or meet the requirements." can you click on the "View drive requirements" link and tell me what it says?
Try:
sudo set_section_key_value /usr/syno/etc.defaults/adapter_cards.conf FX2422N_sup_nvme DS3622xs+ yes
sudo set_section_key_value /usr/syno/etc/adapter_cards.conf FX2422N_sup_nvme DS3622xs+ yes
sudo set_section_key_value /usr/syno/etc.defaults/adapter_cards.conf M2D18_sup_nvme DS3622xs+ yes
sudo set_section_key_value /usr/syno/etc/adapter_cards.conf M2D18_sup_nvme DS3622xs+ yes

What do these command return?
sudo grep 'notSupportM2Pool_addOnCard' /var/packages/StorageManager/target/ui/storage_panel.js

Can you run this script and paste the output, or a screenshot?
https://github.com/007revad/Synology_HDD_db/blob/test/nvme_check.sh

You can use https://github.com/007revad/Synology_M2_volume to create the storage pool and volume.
But I'd also like to know the answers to my questions in my previous comment so I can add support for non-Synology PCIe adaptors.

You could also try these commands to enable creating the NVMe storage pool in Storage Manager.
<EMAIL_ADDRESS>sudo sed -i 's/notSupportM2Pool_addOnCard:this.T("disk_info","disk_reason_m2_add_on_card"),//g' "$strgmgr"
sudo sed -i 's/},{isConditionInvalid:0<this.pciSlot,invalidReason:"notSupportM2Pool_addOnCard"//g' "$strgmgr"

Which brand and model PCIe adaptor do you have?
I don't know

I was bought it from aliexpress at few years ago
It just dummy converter (PCIe-NVMe)

In "Control Panel > Info Center" what does it show for "PCIe Slot 1" ?
When you get the "Cannot perform this action. No drive are available or meet the requirements." can you click on the "View drive requirements" link and tell me what it says?

What do these command return?
sudo grep 'notSupportM2Pool_addOnCard' /var/packages/StorageManager/target/ui/storage_panel.js

notSupportM2Pool_addOnCard.txt

Can you run this script and paste the output, or a screenshot? https://github.com/007revad/Synology_HDD_db/blob/test/nvme_check.sh

DS3622xs+
DSM 7.2.1-69057 Update 5
2024-04-11 10:01:34
Checking support_m2_pool setting
/etc.defaults/synoinfo.conf: yes
/etc/synoinfo.conf:          yes
Checking supportnvme setting
/etc.defaults/synoinfo.conf: yes
/etc/synoinfo.conf:          yes
Checking synodisk --enum -t cache
************ Disk Info ***************

Disk id: 1
Slot id: 1
Disk path: /dev/nvme0n1
Disk model: SSSTC CL1-8D256
Total capacity: 238.47 GB
Tempeture: 30 C

Checking syno_slot_mapping
./nvme_check.sh: line 53: syno_slot_mapping: command not found
Checking udevadm nvme paths
nvme0: /devices/pci0000:00/0000:00:01.0/0000:05:00.0/nvme/nvme0
Checking if nvme drives are detected with synonvme
nvme0: It is a NVMe SSD
nvme0: Vendor name: SSDT
nvme0: Model name: SSSTC CL1-8D256
Checking nvme drives in /run/synostorage/disks
nvme0n1
Checking nvme block devices in /sys/block
nvme0n1
Checking logs
Current date/time:   2024-04-11 10:01:34
Last boot date/time: 2024-04-11 09:37:21

Try:
sudo set_section_key_value /usr/syno/etc.defaults/adapter_cards.conf FX2422N_sup_nvme DS3622xs+ yes
sudo set_section_key_value /usr/syno/etc/adapter_cards.conf FX2422N_sup_nvme DS3622xs+ yes
sudo set_section_key_value /usr/syno/etc.defaults/adapter_cards.conf M2D18_sup_nvme DS3622xs+ yes
sudo set_section_key_value /usr/syno/etc/adapter_cards.conf M2D18_sup_nvme DS3622xs+ yes

You could also try these commands to enable creating the NVMe storage pool in Storage Manager.
<EMAIL_ADDRESS>sudo sed -i 's/notSupportM2Pool_addOnCard:this.T("disk_info","disk_reason_m2_add_on_card"),//g' "$strgmgr"
sudo sed -i 's/},{isConditionInvalid:0<this.pciSlot,invalidReason:"notSupportM2Pool_addOnCard"//g' "$strgmgr"

both not work (same result)

You should be able to use https://github.com/007revad/Synology_M2_volume to create the storage pool.

I was give up it
Create volume by terminal
Now all work well
Thanks for help


Update FAQ.md

updated some recent changes in the what is collected list

missed some stuff in my review

ttop collection is not in light collection
jstack was made optional in all modes
we now collect 30 days of queries.json in standard/health-check mode


FEtests (Do Not Merge Yet)

Description
Tested: Route to site ("/"), User Registration, User Log In, User Log Out.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

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

Change Status

[ ] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[ ] Test A
[ ] Test B

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

 Write testing for frontend


[5.9] update swift-cmark dependency to release/5.9

Explanation: This PR updates the package specs to point swift-cmark to release/5.9 instead of main.
Scope: Ensures that the 5.9 release of Swift-Markdown doesn't integrate with unintended code in swift-cmark.
GitHub Issue: None
Risk: None. These branches are currently identical.
Testing: bin/test succeeds.

@swift-ci Please test


Enable use of grouping logic from Python client program

https://github.com/welfare-state-analytics/pyriksprot/blob/e9473ff12856ff061050bc57f2662e0fdef22cf1/pyriksprot/extract_text.py#L343-L343

Closing since related feature has been added to CLI.


Read Arrow C Stream from Arrow PyCapsule Interface

Closes https://github.com/vega/vegafusion/issues/498.
This is essentially just a vendor of these lines of code (and then downported to pyo3 0.20).

Thanks @kylebarron, could you add a quick comment somewhere in the code for how we could replace the vendored code after updating arrow and pulling in pyo3-arrow?

@jonmmease are you able to see why the CI checks failed? It just says "job failed" for me

I haven't had a chance to dig into it, but it's fine to leave things here. I'll finish it up for the next VegaFusion release

Quick update. I'm slogging through updating DataFusion and arrow-rs over in https://github.com/vega/vegafusion/pull/504. Once that lands we can rebase this and drop the vendored code.

@kylebarron I made some updates to this PR after updating arrow to version 52, and updating pyo3-arrow to 0.2.0.  If you have a chance to see if what I have here makes sense, that would be great.
I tested this using Polars, and it seems to be working in general, but I ran into an issue immediately that string columns from Polars are failing to convert with:
C Data interface error: The datatype ""vu"" is still not supported in Rust implementation

Looks like arrow-rs isn't supporting the new UTF8View type in https://github.com/apache/arrow-rs/blob/ca5fe7df5ca0bdcfd6f732cc3f10da511b753c5f/arrow/src/datatypes/ffi.rs#L30. Does that track your understanding?
Seems that work may be needed in arrow-rs, but I don't think I can route Polars through this path until this support is added.

C Data interface error: The datatype ""vu"" is still not supported in Rust implementation

Ah yes, of course we'd hit this.
Correct, arrow-rs isn't supporting the new StringView type until arrow 53. (arrow-rs didn't merge any breaking changes in 52.1 or 52.2). I believe everything is set for this support in arrow 53 though (in september).
The PyCapsule Interface provides a mechanism to handle this: schema requests. It's a way for consumers to ask producers to cast their data export to a specific data type. I'd like to do a follow up PR to polars to implement this, but I haven't yet: https://github.com/pola-rs/polars/pull/17676#discussion_r1688454051. So Polars will currently ignore schema requests.
So the two routes are either:

Wait for arrow 53
Implement schema requests in polars; wait for new polars release; implement schema request logic on the consumer side here (to ask for normal string types instead of string views)

Thanks for the context @kylebarron, I'm fine to wait for Arrow 53. But this will also require waiting for a DataFusion release based on Arrow 53, so I guess that could end up being a month later.
Separately, does the Arrow PyCapsule interface provide a way to query for whether extracting the arrow data is a cheap operation? Ibis is one scenario I have in mind. I believe Ibis supports the PyCapsule interface, but this must require running the SQL query and pulling down every possible column, which can be very expensive. For Ibis, it's much more efficient to request only the specific columns that we actually need.  For a library that already has the Arrow representation materialized in memory, I would expect it to be cheaper to return the full representation rather than build a new representation that has only the needed columns.
It would be nice if there were a way to say, please return these columns, but it's fine to return more if that's cheaper.

does the Arrow PyCapsule interface provide a way to query for whether extracting the arrow data is a cheap operation?

No it doesn't, but I think this largely comes into user semantics. So in the case of ibis, you might have an ibis Table representing a full SQL table. So passing that as arrow_func(ibis_table) will materialize the entire table, but the user can consciously call arrow_func(ibis_table.select(column_names)), which gives the user the ability to limit the amount of data collected and passed to arrow_func.
In my mind the interface is mostly around efficiently communicating between libraries that already have an Arrow representation

As an update here, lamentably arrow 53 supports StringView/BinaryView but not through C FFI, see https://github.com/apache/arrow-rs/pull/6368. So if you're restricted to using a released version of arrow (e.g. not a git tag), we'll have to wait here until arrow 53.1

I think we are restricted to using a released crate because we publish the Rust crates to crates.io so that conda-forge can rebuild the sdist from source and I don't think this will work with a tagged dependency.

If you publish to crates.io, then yes, you can only use released versions. I might be able to get around this in arro3 specifically by vendoring the relevant parts of the FFI fixes

Arrow 53.1 was released, which appears to fully support string view and binary view: https://github.com/kylebarron/arro3/pull/219

Awesome, I'm working on updating to DataFusion 42 and Arrow 53.1 over in #513. I've started a v2 branch and I'm planning to retarget this PR to v2 after merging that one.
For VegaFusion 2, I want to make pandas and pyarrow optional and this PR is a crucial part of that plan.

I started trying to port this to my v2 branch that's updated to arrow 53.1, but ran into a roadblock. The pyarrow feature in the arrow crate requires PyO3 0.22, which is what I've updated VegaFusion to use in v2. But it looks like pyo3-arrow requires PyO3 0.21.
Are there any blockers for you in updating to PyO3 0.22?  I may be able to drop the arrow/pyarrow feature flag eventually, but there's more to figure out here.
In particular, some of VegaFusion's logic currently returns Arrow data from Rust to Python as pyarrow, and we'll need to think about what to do here in order for pyarrow to be an optional dependency. I suppose we could return the PyCapsule object from Rust and that create PyArrow or Polars from that.

Are there any blockers for you in updating to PyO3 0.22?

Yes. I need the numpy crate to support 0.22, which should happen any day now: https://github.com/PyO3/rust-numpy/pull/442, https://github.com/PyO3/rust-numpy/pull/435.

In particular, some of VegaFusion's logic currently returns Arrow data from Rust to Python as pyarrow, and we'll need to think about what to do here in order for pyarrow to be an optional dependency.

All of the relevant pyo3_arrow objects have a to_pyarrow method. Currently, this works in terms of the PyCapsule Interface, so it has a pretty high pyarrow minimum version, but in theory we could implement the older C interface approach with pyarrow for older versions.

Looks like it's scheduled for Wednesday: https://github.com/PyO3/rust-numpy/pull/453

I published pyo3-arrow 0.5 using pyo3 and numpy 0.22: https://crates.io/crates/pyo3-arrow

Starting to work on updating to pyo3-arrow 0.5, and it looks like the minimum Python version is now 3.11 (at least I get compilation errors with abi3-py310 and below). Is that intentional? I guess this is technically exactly in line with spec-0000, but Altair is generally a bit more generous here, following closer to the Python EOL schedule, which would still require Python 3.9 support.
Here are the compilation errors with abi3-py310
   Compiling pyo3-arrow v0.5.0
error[E0432]: unresolved import `pyo3::buffer`
   --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:16:11
    |
16  | use pyo3::buffer::{ElementType, PyBuffer};
    |           ^^^^^^ could not find `buffer` in `pyo3`
    |
note: found an item that was configured out
   --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.22.4/src/lib.rs:442:9
    |
442 | pub mod buffer;
    |         ^^^^^^

error[E0412]: cannot find type `Py_buffer` in module `ffi`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:49:25
   |
49 |         view: *mut ffi::Py_buffer,
   |                         ^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function, tuple struct or tuple variant `PyBuffer_FillInfo` in module `ffi`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:54:28
   |
54 |             let ret = ffi::PyBuffer_FillInfo(
   |                            ^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0412]: cannot find type `Py_buffer` in module `ffi`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:71:75
   |
71 |     unsafe fn __releasebuffer__(mut slf: PyRefMut<Self>, _view: *mut ffi::Py_buffer) {
   |                                                                           ^^^^^^^^^ not found in `ffi`

error[E0412]: cannot find type `Py_buffer` in module `pyo3::ffi`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:34:1
   |
34 | #[pymethods]
   | ^^^^^^^^^^^^ not found in `pyo3::ffi`
   |
   = note: this error originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find function `getbufferproc` in module `pyo3::impl_::trampoline`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:34:1
   |
34 | #[pymethods]
   | ^^^^^^^^^^^^ not found in `pyo3::impl_::trampoline`
   |
   = note: this error originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0412]: cannot find type `getbufferproc` in module `pyo3::ffi`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:34:1
   |
34 | #[pymethods]
   | ^^^^^^^^^^^^ not found in `pyo3::ffi`
   |
   = note: this error originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0425]: cannot find function `releasebufferproc` in module `pyo3::impl_::trampoline`
   --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:34:1
    |
34  | #[pymethods]
    | ^^^^^^^^^^^^ not found in `pyo3::impl_::trampoline`
    |
note: found an item that was configured out
   --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-0.22.4/src/impl_/trampoline.rs:132:15
    |
132 | pub unsafe fn releasebufferproc(
    |               ^^^^^^^^^^^^^^^^^
    = note: this error originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0412]: cannot find type `releasebufferproc` in module `pyo3::ffi`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/buffer.rs:34:1
   |
34 | #[pymethods]
   | ^^^^^^^^^^^^ not found in `pyo3::ffi`
   |
   = note: this error originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)

The minimum Python version does not need to be 3.11. You have three options:

use abi3-py311
Remove any abi3* flag
Take off the buffer_protocol feature flag with no-default-features

pyo3-arrow now supports buffer-protocol input (like numpy arrays) with zero copy, as long as they are C contiguous. But the buffer protocol only became part of Python's ABI-stable subset as of Python 3.11.
Because of this, arro3 builds per-Python version wheels now. https://pypi.org/project/arro3-core/#files

Thanks for the context @kylebarron!  When I disable the default features, I'm seeing this build error (regardless of Python version).
   Compiling pyo3-arrow v0.5.0
error[E0432]: unresolved import `crate::PyArrowBuffer`
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/array.rs:31:13
   |
31 | use crate::{PyArrowBuffer, PyDataType, PyField};
   |             ^^^^^^^^^^^^^ no `PyArrowBuffer` in the root
   |
note: found an item that was configured out
  --> /Users/jonmmease/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pyo3-arrow-0.5.0/src/lib.rs:25:17
   |
25 | pub use buffer::PyArrowBuffer;
   |                 ^^^^^^^^^^^^^
   = note: the item is gated behind the `buffer_protocol` feature

For more information about this error, try `rustc --explain E0432`.
error: could not compile `pyo3-arrow` (lib) due to 1 previous error

It looks like the import here might need to be conditioned on the buffer_protocol. Does that make sense?
https://github.com/kylebarron/arro3/blob/523585bc95fd2a0ee010c5f47a798e808e8f388d/pyo3-arrow/src/array.rs#L31

Ah I need to add a ci check for no default features :/

merged over in https://github.com/vega/vegafusion/pull/517. Thanks for all of the help on this @kylebarron, the combo of arro3 and narwhals + arrow PyCapsule support is really convenient.


Actual room temperature circuit 2

I can't seem to acces
8770 | Room temperature actual value 2 | 24.5 | °C
as it is a layer deeper than what this implementation scans.
It seems to be a layer deeper at [1 RVS21.831F/127] > [Diagnostics consumer] > [Heating/Cooling circuit 2]
Would it be possible to dig a layer deeper by adapting code?

Interesting! Yes it's possible I think.  What version of OZW672 Firmware are you running?

I can't seem to acces
8770 | Room temperature actual value 2 | 24.5 | °C
as it is a layer deeper than what this implementation scans.
It seems to be a layer deeper at [1 RVS21.831F/127] > [Diagnostics consumer] > [Heating/Cooling circuit 2]
Would it be possible to dig a layer deeper by adapting code?

Interesting! Yes it's possible I think. What version of OZW672 Firmware are you running?

I confirm @icefluffy's observation, this is also an issue for me with the current ha implementation.
I run OZW672 v.6.0 as my heating isn't supported by newer revisions.
Example drill-down to "8743 | Vorlauftemperatur Istwert Heizkreis 1" ("heating/cooling circuit 1, actual supply temperature")
Home > 1 RVS21.825E/100 > Diagnostics consumer  > Heating/Cooling circuit 1 > [a dozen values]

get sessionID

get the top level structure
http://>ip</api/menutree/list.json?SessionId=92a23a6a-83f2-4a03-b6e8-be8b78e486ef
OZW672 has Id=2 and heating controller has Id=4015; this starting Id (4015) is randomly chosen after a factory reset, all Id's down the menu structure (and to measurement values) are different in absolute numbers, but the "distance" remains the same!

get the top level inside my heating controller (RVS21.825E/100) which has Id=4015
http://>ip</api/menutree/list.json?SessionId=<..>&Id=4015 -> all top categories inside RVS21.825E/100, among many others (Clock, Status, info etc..) there is "Diagnostics consumer" with Id = 5568

List all inside "Diagnostics consumer"
http://>ip</api/menutree/list.json?SessionId=<..>&Id=5568
Now you get what @icefluffy observes:
There is a mix of further menu items but also measurement values.
e.g. on the website, "Outside Temperature" is shown on the datapoint window (right) while you can further dig down to "Heating/Cooling circuit 1" in the structure browser (left)

in Json, "Heating/Cooling circuit 1" is the second MenuItem:
{
"MenuItems":
[
{
"Id": "5569",

},
{
"Id": "5572",
"Text": {
"CatId": "2",
"GroupId": "4",
"Id": "369",
"Long": "Heiz-/Kühlkreis 1",
"Short": "Heiz-/Kühlkreis 1"
}
},
[..others..], then
],
"Outside temperature" is the first datapoint item:
"DatapointItems":
[
{
"Id": "5660",
"Address": "0x50521",
"DpSubKey": "0",
"WriteAccess": "false",
"Text": {
"CatId": "2",
"GroupId": "2",
"Id": "39",
"Long": "Aussentemperatur",
"Short": "Aussentemperatur"
}
So what we need in this to change the implementation to accept levels that have a mix of "MenuItems" and "DatapointItems" as you can both select Values (->/api/menutree/read_datapoint.json?) as well as dig a level deeper (another /api/menutree/list.json? recursion). Maybe this ends up in changing the way datapoints are selected in the Homeassistant UI.

Thanks - I have implemented recursive submenus in v0.1.4

Excellent!
Works exactly as expected: i can drill down the menu recursively and select one or more branches leading either to further sub-menus or finally the measurement datapoints itself. Everything that was selected shows up in the dashboards then.
Using your implementation is way easier than manually finding the id's through json and pasting them in config.yaml

Thanks - I have implemented recursive submenus in v0.1.4 Please let me know if this works. I had to mock up my test data to simulate this as my OZW672 doesn't have this implementation.

Awesome, drilling down one layer deeper did the trick!
THANK YOU SO MUCH!