Fix non-linux builds

Adding build tags for linux and added stubs for other operating systems. This should ensure that code using it will always compile, but only work on linux.
I am unsure if FreeBSD and friends are expected to work, but for now it is "linux or nothing".

Hi @klauspost thank you for your contribution (+ other useful libraries you released)! multi-platform support is the top requested feature and it is definitely that need to be done.
In fact I started working on it as well, see multi-platform branch that you have in your forked repo. It does pretty much the same as what you did but package os specific in one file e.g. os_linux.go.

I also work on MacOSX support, see it here https://github.com/anatol/smart.go/blob/multi-platform/os_darwin.go

If you need this os separate to unblock your work then I can merge your change and rebase my changed on top of your. Or another option you can wait till I complete my work (will take a week or two). Let me know what do you think.

And the final goal is to support as many platforms as possible. I see that smartmontools has a broad OS coverage. I would love to see the same for smart.go.

If you need this os separate to unblock your work then I can merge your change and rebase my changed on top of your. Or another option you can wait till I complete my work (will take a week or two). Let me know what do you think.

I can wait a week or two. If you open a PR we can track there, and this can be closed.
As I propose, ideally the exported functions should be the same. That would mean the package can be used without build tags which makes it much easier to use. I don't know if the structs can be presented platform independent manner.

After thinking for a while I've decided to go with your PR instead. It has a platform-specific files for each device type that might be a cleaner structure.
Thank you for your contribution @klauspost!

https://github.com/anatol/smart.go/commit/4d973e3143b78ddf4b54d09a14261c27f0fc71ca


➕Added Trending Github Repo™

Typing for ChatBot client variable
Added Trend Command as subcommand to github
Updated Default card for welcome
Added Few DocStrings for External_functions function
Moved get_invite to Mod.py

Solves #82  Issue, this new API works

Fixed View_raw Prefix command

Cache Update
Used my regular Variables class
for creating a cache file inside __pycache__

This may not be the best idea, but it works, it updates whenever time difference crosses 86400 seconds


how to run "autofix" manually, not as part of Save

I find the autofix of _ = foo quite handy but it feels pretty distracting when writing new code.  Alas, I habitually save my files all the time, so autofixes trigger often.
Is there a way to run autofix separate from saving?

Open the command pallete and search for "Fix All". You can also add a keybind to that command.


fix(tsconfig): package up as es5

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Return types with response_model are less clear now

The update from #860 is great, but it made the return types less clear. Now, instead of specific types, we get T | Any, which doesn't tell us an exact type and makes working with types downstream much more complicated.
Working towards a solution: We could override the method definition for the case of response_model being defined or None. Downside is we double the number of function overloads.
Here a short snippet from our internal wrapper for illustration:
@overload
def completion(
    model: ModelType,
    messages: list,
    response_model: None = ...,
    max_retries: int = ...,
) -> Any: ...

@overload
def completion[T_Model: BaseModel](
    model: ModelType,
    messages: list,
    response_model: Type[T_Model],
    max_retries: int = ...,
) -> T_Model: ...

def completion[T_Model: BaseModel](
    model: ModelType,
    messages: list,
    response_model: Type[T_Model] | None = None,
    max_retries: int = 1,
) -> T_Model | Any:

Would be glad to hear your thoughts and then happy to support working on a pull request.

we should do that, thats an oversight on my side @ssonal

would love a PR

Sorry I wasn't able to figure this one out.
I did find that type checking is off for async clients though - was that the issue @noxan? Looks ok for standard clients / simple types / BaseModels.

@ssonal Thanks for investigating. I believe the problem lies in how we wrapped instructor while the typing still were more fuzzy.
Here an example: https://github.com/noxan/instructor-typing-sample/blob/main/main.py#L27
I can confirm instructor works great with the first two sample calls, however the return types are all over the place with the wrapper function. Originally we had custom generic types does not make a difference to importing T from instructor. Regardless this is most likely me messing up generic types or a limitation of pyright to infer the exact return type.

Let me know if you have any thoughts, else I believe we can close this again, as it seems not directly related to instructor.

I think we should increase the overloads. Unfortunately, there is a side effect of Python's system.
@ivanleomk next time you make changes can you make sure we don't break the types

I would almost rather tell people if you want to use instructor with response=None just use a different client

@jxnl added a few more examples and continued the investigation. the new type annotations do not work with pyright and actually made things worse. here an example project https://github.com/noxan/instructor-typing-sample/actions/runs/10409008348/job/28827657705
might also be related to https://github.com/jxnl/instructor/issues/893


chained block reads

Problem
Currently, only "one depth" of compressed or archived file is supported.
e.g. can read syslog stored in logs.tar.  Cannot read syslog.gz in logs.tar, nor logs.tar stored in logs.tar.xz.
e.g. can read syslog stored in syslog.gz.  Cannot read syslog.gz stored in syslog.gz.xz.
Solution

refactor block reading to handle arbitrary "chains" of reads.

Relates to Issue #7.

Also touches Issue #13


update cnx epub to 0.31.2

Thanks @rnathuji ! @kswanson33 created this PR because she ran into the exact issue you mentioned!
She pulled this neb PR into book-pipeline for testing and noticed that cnx-epub was still on an old version. :tada:


Create vm wizard - Storage

This is build on top of #4 and there are currently two unfixable bugs for the table: #8 , #9

published storybook

I created EditableDraggableTable component which can also be used for the Network; supports:

inline editing with custom inner components
drag and drop
renders custom definitions from columns.renderConfigs

@rawagner

I needed to use FormFactory in other way so I refactored it. dunno if you want the changes from that commit into #4 or if it is enough to merge just with this one

can you plan better handling and passing the values and validation to CreateVmWizard. I  am just passing disks and validation back to CreateVmWizard for now. I think it would be better to move the first step to its own component

@lizsurette

Deleting wasn't described in the design doc. Please look at the storybook and let me know what you think about it. I just added delete button for each row (which is disabled when editing)

note: ConfirmButtons [X] is only used to discard edit changes

also we need to let user somehow know that the first disk in the first row will be bootable. Can we add some label behind it's name or annother column?

@suomiy there should be some validation which disallows you to create a disk without the required params.

Deleting wasn't described in the design doc. Please look at the storybook and let me know what you think about it. I just added delete button for each row (which is disabled when editing)

Good catch! I like what you've done, but I think to stay consistent with the other list/table views in the app we should probably use the kebab with an option to Delete in each row. Thoughts on this?

also we need to let user somehow know that the first disk in the first row will be bootable. Can we add some label behind it's name or annother column?

Yeah, I think simply adding something like "(bootable)" after the name would be a good start. I am showing this in the mockup above, too. What do you think?

@suomiy can you rebase please?

Pull Request Test Coverage Report for Build 39

161 of 314 (51.27%)  changed or added relevant lines in 16 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+28.8%) to 46.967%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/components/buttons/ButtonWithIcon.js
2
3
66.67%

src/components/forms/FormFactory.js
18
19
94.74%

src/utils.js
0
1
0.0%

src/components/wizards/import-vm/ImportVmWizard.js
1
5
20.0%

src/k8s/request.js
54
58
93.1%

src/components/wizards/create-vm/CreateVmWizard.js
32
41
78.05%

src/components/wizards/create-vm/StorageTable.js
5
48
10.42%

src/components/table/EditableDraggableTable.js
9
99
9.09%

Totals

Change from base Build 37:
28.8%

Covered Lines:
163

Relevant Lines:
321

💛  - Coveralls

@lizsurette I fixed bootable and delete  kebap. Can you please look at it?
validations are not fixed yet

fixed all the issues (except tests):

validations and transition between steps (jumping between steps)
results page (not sure if needed after seeing the docs).
refactoring
requests.js details

Bumped up "patternfly-react": "^2.17.3" to include previousStepDisabled
Updated storybook;

note: create vm with name: fail to see the mockup request fail

@suomiy would it be possible to show some validation error when disk is missing required fields ? (name/size is empty). It only disables the Create Virtual Machine button without any explanation.
Also when editing disk, I can click on menu button (three dots) but Remove Disk menu item is disabled. It would be nicer if the whole menu button is disabled.

@suomiy would it be possible to show some validation error when disk is missing required fields ? (name/size is empty). It only disables the Create Virtual Machine button without any explanation.

@lizsurette where would be the best to show such validation? We need to let the user know which row and column is wrong

Also when editing disk, I can click on menu button (three dots) but Remove Disk menu item is disabled. It would be nicer if the whole menu button is disabled.

@lizsurette  should we disable it or is there a possibility to show other action when editing?

@lizsurette where would be the best to show such validation? We need to let the user know which row and column is wrong

I think having a similar style to our normal inline validation error would be good. It would make the row grow a bit vertically, but I think that's fine. Something like:

@lizsurette should we disable it or is there a possibility to show other action when editing?

I'd say remove the kebab all together when editing.

@lizsurette I fixed bootable and delete kebap. Can you please look at it?

@suomiy I'm not sure if I'm looking in the wrong place, but the storybook still shows the trash icon rather than a kebab for me... would you mind sharing an updated link if it's changed?

@lizsurette
I am not sure what is wrong, it is working here. Can you try to open it in incognito window?
link: https://clever-allen-639701.netlify.com/

I think having a similar style to our normal inline validation error would be good. It would make the row grow a bit vertically, but I think that's fine. Something like:

Ok, I will make these validations visible even when editing is off

it looks like css is a bit off

@lizsurette
I am not sure what is wrong, it is working here. Can you try to open it in incognito window?
link: https://clever-allen-639701.netlify.com/
All is well now! Maybe a caching issue? Thanks for the help :)

This is looking great and I just wanted to add a few other comments/suggestions. Here is a screenshot of what I'm seeing at the moment:

I'm noticing the same CSS issue that Ohad pointed out with the save/cancel buttons. Seems like depending on where you scroll it will display in a different spot each time.

After choosing to Create a Disk, clicking the "Cancel" action should actually remove the line from the table rather than add a blank one.

Instead of "Select" could we change the text to "Select Storage" when attaching storage?

everything should be fixed now
@lizsurette

I'm noticing the same CSS issue that Ohad pointed out with the save/cancel buttons. Seems like depending on where you scroll it will display in a different spot each time.

depends on #8

After choosing to Create a Disk, clicking the "Cancel" action should actually remove the line from the table rather than add a blank one.

I think that would be confusing. Cancel action should discard the current changes. We have a delete action for that. Patternfly examples behave in the same way

Instead of "Select" could we change the text to "Select Storage" when attaching storage?

done

updated storybook

"Add an item to this list, no wait, I don't want to do that...cancel" which I think should result in the row going away. We can do some further user testing on it if you still feel like it's a weird interaction.

I think user also wants to edit the vm  and then decides that he/she would like to discard the changes.

o wait, I don't want to do that...cancel

I don't think that it is such a problem to click on a delete action after that + it is more consistent behaviour, when user sees these buttons somewhere else and is used to discarding functionality

I think user also wants to edit the vm and then decides that he/she would like to discard the changes.

Agreed. The way this works today is great.

I don't think that it is such a problem to click on a delete action after that + it is more consistent behaviour, when user sees these buttons somewhere else and is used to discarding functionality

I'm fine with this to start. If we get user feedback that it is confusing, we can update later.

completed tests

I tried passing the generated output to the CLI, here are the results:
Attaching Storage

Works fine

Creating Disk (DataVolume)

Problematic, because it seems there has to be a source for the volume (HTTP or S3)

It works fine with the source.

tested on  kubevirt v0.8.0

it gives no errors without a source, but the the persistent volume claim is not created and VM not started.

Sources

User Guide
See source=required in v1alpha1.DataVolumeSpec.

I don't know if this is gonna change in future releases, but for now it seems we need to also select the source in the ui when creating new disks.  Does anybody have info on that? Or did I miss something?

rebased
added final refactoring
split to more commits
fixed tests
disabled Create Disk button (until blank disk feature is supported by kubevirt)

Cosmos preview available here: https://clever-allen-639701.netlify.com/

I split this into two other PRs #37 and #38

@lizsurette
could you please look at the result tab in Create VM Wizard and tell me what do you think about the design?
There was one opinion that we could show the VM JSON collapsed under "Created VM" or something and show it on demand.

@suomiy I like that the results step has something on it rather than just a "success" message. I do wonder what the use case for having this JSON would be. I'm assuming a user could take this and either use it via the CLI or share it with someone else to do the same? A few additional comments:

Minor typo on "successful", drop the last "l".
If we keep the code snippet, we should probably label this box. Should this really be YAML rather than JSON for future use when creating VMs via the UI?
If the use case is to copy/paste to a YAML file, should we alternatively just allow the user to "download the YAML" or at the very least allow for an easy Copy function?
I don't think the "Cancel" or "Back" actions make sense to keep at this point. Any way we can remove them for this step?

Here are a few mockups with these ideas:

Happy to chat further, but I like the direction!

@suomiy I like that the results step has something on it rather than just a "success" message. I do wonder what the use case for having this JSON would be. I'm assuming a user could take this and either use it via the CLI or share it with someone else to do the same? A few additional comments:

If the use case is to copy/paste to a YAML file, should we alternatively just allow the user to "download the YAML" or at the very least allow for an easy Copy function?

I think the most common use case for a user would be to look at the JSON/YAML to undestand what was actually created and not passing it somewhere else.

There was a concern that the generated JSON could look like an error message from afar. That is why I asked about having it collapsed by default.
We also don't want the user to think that he has to copy it somewhere, because it was already created.

If we keep the code snippet, we should probably label this box. Should this really be YAML rather than JSON for future use when creating VMs via the UI?

We could support YAML in a followup

Minor typo on "successful", drop the last "l".
I don't think the "Cancel" or "Back" actions make sense to keep at this point. Any way we can remove them for this step?

Thanks, I will look at it.

@suomiy I like that the results step has something on it rather than just a "success" message. I do wonder what the use case for having this JSON would be. I'm assuming a user could take this and either use it via the CLI or share it with someone else to do the same? A few additional comments:

If the use case is to copy/paste to a YAML file, should we alternatively just allow the user to "download the YAML" or at the very least allow for an easy Copy function?

I think the most common use case for a user would be to look at the JSON/YAML to undestand what was actually created and not passing it somewhere else.

There was a concern that the generated JSON could look like an error message from afar. That is why I asked about having it collapsed by default.
We also don't want the user to think that he has to copy it somewhere, because it was already created.

If we keep the code snippet, we should probably label this box. Should this really be YAML rather than JSON for future use when creating VMs via the UI?

We could support YAML in a followup

Minor typo on "successful", drop the last "l".
I don't think the "Cancel" or "Back" actions make sense to keep at this point. Any way we can remove them for this step?

Thanks, I will look at it.

typo is already fixed by https://github.com/kubevirt/web-ui-components/pull/41

added a possibility to see and remove disks from the user template. I dissabled editing for these disks (because they are part of the template), the only thing which can be changed is boot order
Can you please give me a final round of review, so we can merge it and also release new version of https://github.com/kubevirt/web-ui
@mareklibra @rawagner @vojtechszocs
@lizsurette I am not sure how to highlight rows from user template (which are not editable)
I don't know if displaying the name in a disk (Bootable) (From Template) would be the right way?

@suomiy
this flow is not ok IMHO:

provision source Template
go to storage tab
storage is correctly read from chosen template
go back and change provision source to something else (ie PXE)
go to storage tab
6 storage read from template is still there

In case of provision source URL, i think we should require that at least one storage will be defined. URL provision source uses DataVolumes and the datavolume spec in VM has PVC spec hardcoded see https://github.com/kubevirt/web-ui-components/blob/master/src/k8s/request.js#L139 . We should require that this disk/PVC will be defined in Storage Tab and remove the hardcoded stuff.

all fixed

In case of provision source URL, i think we should require that at least one storage will be defined. URL provision source uses DataVolumes and the datavolume spec in VM has PVC spec hardcoded see https://github.com/kubevirt/web-ui-components/blob/master/src/k8s/request.js#L139 . We should require that this disk/PVC will be defined in Storage Tab and remove the hardcoded stuff.

That would be nice, but we would have to distinguish that particular disk in the ui - to somehow show that the disk has a URL source. @lizsurette  ?
anyway I would leave this functionality to the followup

In case of provision source URL, i think we should require that at least one storage will be defined. URL provision source uses DataVolumes and the datavolume spec in VM has PVC spec hardcoded see https://github.com/kubevirt/web-ui-components/blob/master/src/k8s/request.js#L139 . We should require that this disk/PVC will be defined in Storage Tab and remove the hardcoded stuff.

That would be nice, but we would have to distinguish that particular disk in the ui - to somehow show that the disk has a URL source. @lizsurette ?

+1 to tying the URL provision source together closely with the disks(PVCs) defined in this step. As I'm digging into this stuff a bit more, it seems like there could be two main use cases...please correct me if I'm wrong since I'm very new to it all :) -
1 - The PVC with the provision source (ISO, Image, or URL) already exists and I just want to reference and use it.
2 - The PVC does not exist yet and I want to create it to store the data based on my provision source selection.
Maybe for the case where the PVC already exists we could automatically add it to the Storage table for the user? I'm not sure technically how difficult this would be to do :) The user could always remove it and add/create a different disk if they'd like. If the PVC doesn't exist yet and in the case where they remove a PVC that might have already been there, I think it would be nice to do the same error checking we do with PXE / Network step to be sure at least one PVC has been defined before letting the user continue.

URL and Registry imagesources are broken by this change.

choose URL or Registry
add disk in storage tab
added disk is marked as bootable and has boot order: 1 which means VM wont boot from disk added by URL or Registry

Merged within #10


i'm receiving an error: InvalidStateError

InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable
jquery.maskMoney.min.js:10
init/</<
http://localhost:8000/static/assets/pages/scripts/jquery.maskMoney.min.js:10:6243
dispatch
http://localhost:8000/static/assets/global/plugins/jquery.min.js:3:12396
add/r.handle
http://localhost:8000/static/assets/global/plugins/jquery.min.js:3:9158
TypeError: document.selection is undefined
[Learn More]
jquery.maskMoney.min.js:10:2645
a
http://localhost:8000/static/assets/pages/scripts/jquery.maskMoney.min.js:10:2645
init/</<
http://localhost:8000/static/assets/pages/scripts/jquery.maskMoney.min.js:10:5329
dispatch
http://localhost:8000/static/assets/global/plugins/jquery.min.js:3:12396
add/r.handle
http://localhost:8000/static/assets/global/plugins/jquery.min.js:3:9158

right when page loads


rich-cli: init at 1.5.1

Motivation for this change
Add https://github.com/Textualize/rich-cli
Opened as a draft as this package needs:

[x] #162319
[x] #162320
[x] #162321

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

I have decided it makes more sense to merge into staging now (as this package depends on #162319) rather than keep this open as a draft.

Result of nixpkgs-review pr 162322 run on x86_64-linux 1

1 package built:

rich-cli


LFS tries to program the same block twice without erase

Hi, I tried to incorporate LFS to my project (STM32 + NAND Flash), but it failed on a simple test. From my debug output it looks like LFS tries to program the same block twice without erasing it in between.
My setup is:
read_size, prog_size = 2048,
block_size = 2048 * 64,
block_count = 1024,
cache_size, lookahead_size = read_size,
block_cycles = 1,
NO_MALLOC
static buffers defined accordingly to the documantation: read and prog buffer = 2048,
lookahead buffer = 2048, 64-bit aligned (checked).

Format the filesystem, then mount.
For x files:

open file with RDWR | O_CREAT,
write 1000 bytes,
close file, open again with RDWR only, rewind,
read data back and check verify it's the same as written,
close file.

On first iteration (test_0) the file is written and read correctly, but on the second it fails.

It's simply:
page = block * 64 + off / 2048;
start = off % 2048;
Return value 0 means success, value 2 means unrecoverable ECC error.
No surprise, since LFS programmed the page 37569 on file open and on file close, without erasing the block in between. I also have NAND_device_erase output, so I would know.

Hi @kazink. You are writing inline files (which ones are stored in the same block of theirs directory), so it's expected that you will write multiple files in the same block. But the page address should be different. So I was wondering if this offset is well calculated.
Otherwise, you have an ECC to check read errors? NAND Flash are really succetible to these errors and maybe is there the problem.

Thanks for the answer.
Look at the "block" and "off" values - these are passed to the NAND function by LFS, and they are the same for both writes. So the calculations do not matter here (only "page" and "start" are calculated.
So you say, the two writes may be of the same data, but only ECC is wrong? I also tried ignoring ECC, but then on the second file LFS returned -2 (as if file did not exist).
Strangely enough, if I changed the file names (from "file_x" to "text_x"), LFS returned -2 only on 10-th file.

Hmm, I had a similar problem when I wasn't using static buffers to the file cache. When you open the file, are you giving to it a static buffer (like in opencfg)?

Yes, I do. The buffer is the same size as cache_size.

I need to look into this more, may be related to https://github.com/ARMmbed/littlefs/issues/188

Return value 0 means success, value 2 means unrecoverable ECC error.

Does your block device callbacks return a positive 2? Unfortunately littlefs will break if the callbacks return a positive number. I need to change it to handle this better, but the block device should return a negative error code on error (LFS_ERR_CORRUPT would be perfect).

No no, positive 2 is returned from my NAND driver. I then return LFS_ERR_CORRUPT in the translation layer read function.

I have moved to a previous version 1.7, because it didn't have this problem, but it doesn't have bad block management and it's very slow sometimes. So I'm trying to give another shot at 2.0.

Can you reproduce this?
What I'm doing is just writing 1000 files with consecutive names, 20 bytes each.
The error appears at the file number 27.

I have increased the write and cache sizes to twice the page size (2*2048), and it seems to work fine.
However the speed of it is horrible.
LFS 1.7 when writing 1000 files 20 bytes each, took max 350ms to open and close the file.
LFS 2.0 takes over 3 seconds to either open or close, and it's still 170th file (inline files disabled).

Hi @kazink, sorry it's taken me so long to get to your issue, I'm looking into it now. I can reproduce the 2048 B issue, unfortunately this hits the limit of an internal field, so the problem is a bit entrenched.
Read/write sizes >1024 byte is a new area for littlefs, and unfortunately not tested well (sorry). No idea why 2*2048 works.
As for performance, I'm not sure why you're seeing worse performance for LFS 2.0, at worst case it should behave the save as LFS 1.7. (Though https://github.com/ARMmbed/littlefs/issues/158 may be the culprit).
Out of curiousity, how did you disable inline files? I thought I removed that option.

Just realized the terrible performance may be due to how prog_size=2048 and block_cycles=1 interact. If you increase block_cycles to something in the range of 100-1000 do you see better performance?
The block_cycles option doesn't exist in v1 because v1 doesn't have proactive wear-leveling.
Note that without O(n) RAM, this runtime hit is unavoidable in any filesystem.
 The improves the performance at a cost of no longer having perfect wear-leveling. However, the wear still approaches a uniform distribution, and the estimation of erase cycles on storage is already stochastic.
More info here.
Normally this isn't so bad since these directory blocks are also performing their own form of static wear-leveling internally (logs wear-level naturally), and can be updated block_size/prog_size times before needing garbage collection. However, littlefs currently has an internal log entry limit of 1024 bytes. There is probably better actions to take if this limit is exceeded, but for now littlefs just defaults to a single log entry per directory block. The entire block is still utilized, but a garbage collection occurs on every file sync.
Possible solutions (wip):

Default to prog size for a max entry length field - The reason I'm not doing this now is because it creates a portability issue for drivers with different prog-sizes. Currently the prog-size has no impact on disk structures, and as such is not stored in the superblock info.
Increase log entry limit to 4096 - I did reserve 2-bits for this option, since I wasn't sure if those 2-bits would be more useful in the tag's size field (size of entries in dir) or id field (number of files per dir). It already seems that size is the best place to allocate these given the prevalence of 2048-4096 prog sizes on NAND.

Or, even better:

Pad commit with multiple CRC-tags until we reach the next prog_size boundary

This would actually solve all the issues with just a small code cost.

Ok, I've pushed up a fix for the workaround for the 2048 B prog_size issue: https://github.com/ARMmbed/littlefs/commit/7051bf58182e47dae115a3148b95825fc6c234a1
I want to at least add more testing around these large prog_sizes before merging that in, but let me know if it works for you.

Thanks for the answer. Late is better than none :)
Unfortunately increasing the block_cycles even to 10k didn't help. The performance is slightly better than on 100, but not much.
The open and close times vary greatly (open 2-16 seconds, close 14ms-5sec), but they are too high for my purpose at just 250th file (I am testing by creating new files of random sizes from 1kiB to 1MiB).
I can post a test log with individual file times if you would like.
I think this comment is right on the reason for the slow down: https://github.com/ARMmbed/littlefs/issues/158#issuecomment-476578626
I have also noticed huge amounts of sectors read while creating a new file.
I have disabled inline files by commeting out the line 2740:
if ((file->flags & LFS_F_INLINE) /* &&
lfs_max(file->pos+nsize, file->ctz.size) >
lfs_min(0x3fe, lfs_min(
lfs->cfg->cache_size, lfs->cfg->block_size/8)) */ ) {
I thought it would disable iniling by forcing every inline file not to fit. .
The 2048 B prog_size solution works fine for disabled inline files.
But I have just uncommented the above block to check inlines too, and:

with read/prog/cache sizes = 2048 the test fails at 1st file (lfs_close returns -84),
with the sizes = 4096 the test fails at 3rd file (same result).

Oh, that is good to know. Thanks for posting an update and testing the block_cycles.
I'll have to see if I can reproduce the inline file issue. Inline files should at least help reduce the number of allocations.
Also the modification to remove inline files looks correct.
It may just be that littlefs isn't there yet for scalability. I'm surprised the issue is https://github.com/ARMmbed/littlefs/issues/158#issuecomment-476578626 as you only have 1024 blocks, but you're right the number of different sector reads strongly suggests it's related. Maybe the issue is exacerbated by the large read_size? Just thinking out loud, I don't have a better answer.


feat(explore): Color scheme groups, new color schemes

SUMMARY

adds a bunch of new color schemes
groups the color schemes in categories: Custom (for color schemes added by users in config), Featured and Other
Adds option group handling to Select and AsyncSelect

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
https://github.com/apache/superset/assets/15073128/99ff3c75-4424-472d-b91d-6bf5e46157d7
TESTING INSTRUCTIONS

Test Select and AsyncSelect components with groups in storybook
Add some custom color schemes in config
Go to Explore and open a viz that has categorical color scheme control (for example Pie chart)
Open color scheme dropdown
Verify that your custom color scheme is in Custom group, the rest of the color schemes should be in groups Featured or Other

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@kgabryje I have some questions about how this behavior will work with some of the requirements/features of the Select component:

Selected items are always sorted first. How will that work with groups?
We allow new items. Where will they be placed?
What's the interaction with Select All?

Have we considered implementing this outside of the Select component? Like a radio group that changes the values of the Select depending on the option that is selected?
If we are thinking specifically about color palettes where new values and select all are disabled, maybe this should be a specific component?
If you ask me, given the complexity involved, I would implement this with a combination of radio group + Select.

Maybe another question would be, does it really make a difference separating color pallets by featured / others / etc? If so, another possible alternative would be to render the elements with a featured label as we do for database types.

Selected items are always sorted first. How will that work with groups?
Good question. Currently I left it unsorted, but I was thinking about sorting the selected within the groups. The groups remain in their initial positions.
We allow new items. Where will they be placed?
New items do not belong to any group - they will be treated as regular (ungrouped) options
What's the interaction with Select All?
It simply selects all options

Have we considered implementing this outside of the Select component? Like a radio group that changes the values of the Select depending on the option that is selected?
If we are thinking specifically about color palettes where new values and select all are disabled, maybe this should be a specific component?
If you ask me, given the complexity involved, I would implement this with a combination of radio group + Select.

The option groups are supported by the native Antd Select, so in my opinion we should also support them in our customised Select. Right now the color scheme picker is our only use case for the groups, but I feel like grouping the options in categories is not such an uncommon thing to do and the need for it might pop up in the future

The option groups are supported by the native Antd Select, so in my opinion we should also support them in our customised Select. Right now the color scheme picker is our only use case for the groups, but I feel like grouping the options in categories is not such an uncommon thing to do and the need for it might pop up in the future

We can go down that road but keep in mind that complexity will increase given the other requirements we have and that the Ant Design select does not have such as sorting selected items and new items. If we can avoid that, it would be better. That's why I'm trying to see if there's an alternative before starting to analyze how to resolve all the questions I posted above.

If there's no alternative, and we really need to implement this behavior, then we need to think about how to break the select component because I don't how this behavior will work with:

Selected items are always sorted first. How will that work with groups?
We allow new items. Where will they be placed?
What's the interaction with Select All?

Ugh sorry, I answered those questions in my first response but messed up the formatting 🤦
Pasting it here again:

Selected items are always sorted first. How will that work with groups?

Good question. Currently I left it unsorted, but I was thinking about sorting the selected within the groups. The groups remain in their initial positions.

We allow new items. Where will they be placed?

New items do not belong to any group - they will be treated as regular (ungrouped) options

What's the interaction with Select All?

It simply selects all options

@kgabryje @geido Let's do a meeting to discuss this change as I'm worried about complexity increase.

@michael-s-molina @geido Following our discussion from last week, I opted for "low effort" solution for now, which is using Antd Select for ColorSchemeControl instead of our custom Select component. We'll revisit this component in the near future and try to figure out if we can provide a better user experience by rewriting this control with different UI

@kgabryje Did you forget to commit something? I'm still seeing some changes in the Select component such as group options.

@michael-s-molina Thanks for spotting, I updated the PR. I left the styling for groups in StyledSelect, so that the component can be reused for grouped options

/testenv up


feat: improve balances query

There is no reason to pass only one denom as we retrieve Balances structure with Vec. Also there is an issue when you subscribe to some balance with the denom which is not on account, this way you get empty value and parsing fails

And let's mark it as deprecated, please

Test run

https://github.com/neutron-org/neutron-tests/actions/runs/9320148190


phar is broken for the 3.14.0 release

Steps to reproduce
wget https://github.com/Behat/Behat/releases/download/v3.14.0/behat.phar
php behat.phar --version

Expected result
Outputs the version
behat 3.14.0

Actual result
Fatal error:
Fatal error: Uncaught PharException: manifest cannot be larger than 100 MB in phar "/project/behat.phar" in /project/behat.phar:9
Stack trace:
#0 /project/behat.phar(9): Phar::mapPhar('default.phar')
#1 {main}
  thrown in /project/behat.phar on line 9

Environment
PHP 8.3 from the official Docker image.

Looking at the recent changes, the only relevant change that could break the phar during the upload is #1430.

I'll check this ASAP, but I would highly recommend Behat to do a smoke test of the PHAR at least, e.g. calling behat.phar --version

Looking at this it's not really worth for me to try to investigate this any further.
I'm happy to help if there is issues with upgrading, but I'm not willing to support a version I had no hands in and that is 7 years old.

The workflow is now fixed (by upgrading to latest box) by @heiglandreas in #1462 - there will be a valid phar for the next release, coming soon.


183 - Notify Emails

Application Submitted
Assessment Reallocated (email to original PP)
Assessment Accepted
Assessment Rejected

 Gov.Notify technical work


[QUESTION]why 'opacity-100' generates before others?

Current Result:
.opacity-100{opacity:1;}
...
.opacity-20{opacity:0.2;}
...
.opacity-90{opacity:0.9;}
.opacity-95{opacity:0.95;}

It effects the order.
I think it better in this way:
...
.opacity-20{opacity:0.2;}
...
.opacity-90{opacity:0.9;}
.opacity-95{opacity:0.95;}
.opacity-100{opacity:1;}

It not really a promblem


Answer with the error message when sending an audio to the bot #42

sending a voice message to the bot results in its error answer

sending a video message to the bot results in a successful conversion of said video

Thank you @marcofranzoni, your work is now live 🥇


Linux/BSD system trust

I suggest that you reconsider the load order for system trust store on Linux and BSD. OpenSSL prefers SSL_CERT_FILE / SSL_CERT_DIR env vars and then falls back to compile-time locations for cafile and capath. If you deviate from the default, then it may not only break applications that rely on the order. Linux vendors will patch and modify your code to re-establish default settings, too. You can get the defaults from Python's ssl module:
>>> ssl.get_default_verify_paths()
DefaultVerifyPaths(cafile='/etc/pki/tls/cert.pem', capath='/etc/pki/tls/certs', openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/etc/pki/tls/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/etc/pki/tls/certs')

The cafile and capath attributes resolve the env vars.
For cafile, do

check for SSL_CERT_FILE, use it if the env var is set and don't search for additional locations. An empty or invalid SSL_CERT_FILE is
check the hard-coded value from OpenSSL, stop if the file exists (even when it is empty)
search common default paths

For capath, do

check for SSL_CERT_DIR
check the hard-coded value from OpenSSL is a valid directory with at least one file matching r"[0-9a-fA-F]{8}\.[0-9]"
search common default directories

You may even want to be more strict. If either SSL_CERT_FILE is set, SSL_CERT_DIR is set, default cafile exists, or default capath contains certs, then call load_default_certs() or set_default_verify_paths(). Only fall back to alternative search paths if the defaults don't work.
I also noticed that you are using an old, outdated list of cert file locations. I have seen the list before in other projects. It contains wrong paths (FreeBSD) or discontinued distros (OpenELEC). You can find an up to date list of paths for Linux at https://github.com/tiran/certifi-system-store/blob/main/src/certifi/core.py and some research at https://github.com/tiran/distro-truststore/.

Thanks for making me aware of the right order to do things @tiran!

On systems with a capath (Debian) you also may want to skip the cafile. The purpose of capath is to load certs on demand. If you load the cafile, then you don't need capath. Both should contain the same set of certificates.

@tiran We've started implementing "additional trust anchors" support and I wasn't immediately aware of the best way to handle capath. cafile and cadata are much easier as data is loaded on demand via load_verify_locations.
Looked at some of the Windows and macOS APIs and didn't see a way to specify a directory to use for verifying the certificates, should we be loading all the certificates on load_verify_locations() immediately or?

Thanks @tiran, this all looks like really helpful and hard-won advice.
We can probably look this up, but I'm curious how the on-demand loading from capath works. i.e. when and how does OpenSSL decide which file(s) to load from there?

We can probably look this up, but I'm curious how the on-demand loading from capath works. i.e. when and how does OpenSSL decide which file(s) to load from there?

A capath directory contains symlinks from hash file names to the actual certificate. The hash file name is defined by the truncated hash of the cert subject. When OpenSSL encounters a missing issuer certificate in a chain, it hashes the issuer name of the last known cert in the chain. It then uses the hash to find a matching certificate in the capath directory.

man page: https://www.openssl.org/docs/man1.1.1/man1/c_rehash.html
You could take Go's approach and just load all files from the directory: https://github.com/golang/go/blob/go1.18/src/crypto/x509/root_unix.go#L61


Remove unnecessary usings.

Remove also obselete method.

Hi all, I really liked the project, and appreciate your work.

Best regards,
Birol

Hi Birol,
Glad that you like the proejct, and thank you for your contribution :)


Fix several bugs found with AFL

This pull requested is a new version of #132, I applied the fixes suggested.

Could you add test for those issues to add them into the test suite?

I don't know if it's worth it. It's mainly malformed input, like parsing variables as JSON even if they are not actual JSON.

Well those crashes can appear in the future

Actually, my point is that, providing corrupted inputs, the outputs are quite random. Just changing implementation details, the tests will probably break without a valid reason. Then, the great majority is memory errors, found with an address sanitizer, so they are not caught by your test suite anyway. I will upload the tests produced by AFL here so you can check them out if you want. afl_test_suite.zip

Sorry for the delay, i have just reviewed your PR, it looks good! just added two little comments and i'll love to merge as soon as you fixed them.
For the testsuite, yes, i think we can include those fuzzed tests and run it with asan or valgrind to ensure nothing regresses. those should be commited into ./test/fuzz and i would suggest you to make a separate PR for those.
Thanks!

Even if travis doesn't run the test with ASAN, I do locally from time to time, so having those tests are good to avoid regressions regarding crashes, not about checking output.

Tired of waiting. i'll do the fixes now

everything was merged and fuzzsuite pushed too. thanks for the work! we'll PR an updated sdb for r2 tonight to see if travis have any complain

Sorry for the delay, national holiday in the Netherlands. Thanks for doing the last fixes.

All is good :) thanks to you for the pr

On 28 Apr 2017, at 10:53, Elia Geretto<EMAIL_ADDRESS>wrote:
Sorry for the delay, national holiday in the Netherlands. Thanks for doing the last fixes.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.


Remove 'Full nomination will be available in...' (bug 1200790)

@magopian r?

Updated to drop the feature entirely.

Excellent work, thanks! r+wc

Done, thank you!


Client update based on Beefy protocol

In Beefy protocol, there's one data structure, MMR root, "one level higher" than block header. The MMR root of chainA is generated and broadcasted once every N new blocks are generated. After CahinA's light client on chainB receives a tx containing a new MMR root, it will verify the MMR root, and then verify any of the N headers based on the verified MMR root asynchronously.
From the architectural perspective, is it a good idea to do the 2 asynchronous verifications in the existing function check_header_and_update_state?
Kindly reply if any comments.  thank you.

In Beefy protocol, there's one data structure, MMR root, "one level higher" than block header. The MMR root of chainA is generated and broadcasted once every N new blocks are generated. After CahinA's light client on chainB receives a tx containing a new MMR root, it will verify the MMR root, and then verify any of the N headers based on the verified MMR root asynchronously.
From the architectural perspective, is it a good idea to do the 2 asynchronous verifications in the existing function check_header_and_update_state?
Kindly reply if any comments. thank you.

@andynog This is a possible architectural change integrating Beefy light client to substrate-ibc.

I'm not sure what you mean by "asynchronous". In general, all verification methods should be called synchronously, whenever the IBC module is processing a transaction containing a client update message.
Can you expand or detail on the sequence of actions you have in mind?

Let me try to describe more about the "asynchronous", which may not be accurate under this scenario:

Under Grandpa consensus, a Relayer submits an update client tx to ChainB after receiving an IbcEvent::NewBlock event from ChainA. ChainB will be able to verify the header in the update client tx immediately via function check_header_and_update_state. Then any tx belonging to the same header can also be verified by ChainB accordingly.

After applying Beefy protocol, ChainB cannot verify the header immediately after receiving, as ChainB may not have verified the MMR root the header belongs to.
Which header belongs to which MMR root? The relayer receives MMR root via subscription subscribeJustifications. Let's say the message containing an MMR root is pushed to the relayer every 8 blocks, then headers of block height 1-8 can be verified/belong to the MMR root of block number 8; headers of block height 1-16 can be verified/belong to the MMR root of block number 16; headers of block height 1-24 can be verified / belong to the MMR root of block number 24; ...

Therefore, under Beefy protocol, a header's verification may have to "wait" until the corresponding MMR root is verified. The "wait" makes "asynchronous".

A temporary solution for this issue:

The relayer subscribes to MMR root events, prepares MMR proof,  and submits the proof to the Substrate chain, similar to this function
A function in Substrate-Ibc pallet receives the submission above, verify the MMR root, and updates the client state. The function will be integrated into the ibc-rs modules eventually.

@adizere the refactor of checkHeaderAndUpdateState being discussed here should be the same as the 02-client-refactor in ibc-go here https://github.com/cosmos/ibc-go/blob/02-client-refactor/modules/light-clients/07-tendermint/types/update.go.

@livelybug can you confirm that the refactoring in PR #2284 (specifically to the ClientDef::check_header_and_update_state() method here as mentioned by @Wizdave97 above) addresses this issue?

@adizere the refactor of checkHeaderAndUpdateState being discussed here should be the same as the 02-client-refactor in ibc-go here https://github.com/cosmos/ibc-go/blob/02-client-refactor/modules/light-clients/07-tendermint/types/update.go.
The checkHeaderAndUpdateState needs to be refactored into component functions as done in ibc-go linked above, because of the reasons mentioned above.
this link is break down.

@DaviRain-Su, that branch has been deleted and superseded by the updated-02-client-refactor branch. I believe the refactoring being referred to is in this PR -> https://github.com/cosmos/ibc-go/pull/1871, you will find the diff for modules/light-clients/07-tendermint/types/update.go there. The PR has since been merged and the branch deleted.

The MMR root update service is integrated into this branch


Selective fuzz runs with NatSpec comments "@custom:fuzz-runs NUMBER"

Component
Forge
Describe the feature you would like
It would be useful to be able to set a custom number of fuzz runs for a particular test. See, for instance, the discussion about fuzzing arrays I had with @mds1 here. Array fuzzing is difficult, and the user often needs to adjust the array values to match the business logic of the protocol, e.g. sorting the array in ascending order.
Array operations are expensive and time intensive, so setting the fuzz.runs to a high value in the Foundry config is guaranteed to lead to slow test run times if the user has several tests that fuzz arrays.
A quick and dirty solution is to add a Foundry profile specifically for the fuzzed array tests - in this profile, the fuzz runs would be lower than usual, and potentially the path to test would be different (though until #3841 is implemented, this isn't practical).
A better solution would be for Foundry to provide a way to tweak the number of fuzz runs on a per-test basis, and there might be an elegant way to enable this with custom NatSpec tags. The Solidity SMTChecker currently uses the following custom tag to aid the compiler during formal verification:
/// @custom:smtchecker abstract-function-nondet

We could inspire from this and imagine a similar tag for Foundry to selectively change the fuzz runs, like this:
/// @custom:fuzz-runs 500
function test_Something(uint256 x) external {
    // ...
}

Adding the NatSpec comment above would instruct Foundry to fuzz the x argument 500 times, ignoring the fuzz.runs value from the Foundry profile only for this particular test.

Related:

https://github.com/foundry-rs/foundry/issues/3062
https://github.com/foundry-rs/foundry/issues/1350#issuecomment-1256741327 (discusses natspec vs. other means of specifying)

Given that #4744 was merged, should we close this issue?

Ah yea, thanks! Closing


⚠ Bofrost.es has degraded performance

In b765efd, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1552 ms

Resolved: Bofrost.es performance has improved in 5eee31b after 15 minutes.


Failed to get shared key while encrypting / decrypting message

Describe the bug
Getting the exception "Null" is not subtype of type 'FutureOr<String>' while sending and receiving notifications.
We received a notification on atmosphere pro, we got the above mentioned exception while decrypting.
To Reproduce
Steps to reproduce the behavior (Not always reproducible):

Log in with perfectbluesnowskiing on the receiver side.
Send a notification to the atsign.
Got the above exception on decrypting.

Expected behavior
The notification should be decrypted without any error.
Screenshots

Smartphone (please complete the following information):

Device: [e.g. iPhone11]
OS: [e.g. iOS14.1]
Browser [e.g. stock browser, safari]
Version [e.g. 59]

Were you using an @application when the bug was found?

@mosphere pro

Additional context
Add any other context about the problem here.

I was able to replicate this issue only when the network is down.
Steps I followed

Switched off the network
I could see the error in the app
Sent a file from a desktop app
Switched on the network back, I received the notification and was able to download the file.

https://user-images.githubusercontent.com/43639593/171405592-a394ed44-24c9-4c75-911c-a6d66dac5970.mp4
Note: In the desktop app, For the banamaniathenenvious atsign. There was an invalid or corrupted pad block exception.

@nitesh2599 did you also face "invalid or corrupted pad block" exception as reported by Purnima?

@murali-shris No, we didn't face "invalid or corrupted pad block".

@sachins-geekyants : This issue is fixed as a part of exception chaining PR. Please re-test and let us know if you still see the issue.

@gkc I haven't experienced this issue lately, but we can keep this ticket open until a new version of atmosphere is available to test for wider users.

Closing as obsolete


New method for ReadTimeout on Interceptor & Modified CallTest

Accidental close. Reopened here:
https://github.com/square/okhttp/pull/3432/files


euporie-console stuck (unresponsive) for a long time on simple plots

I just used the simple plot example from Matplotlib to test out Eupories capabilities:
It immediately gets stuck, completely unresponsive, with any keypresses resulting in the raw keycodes being printed on screen. top or any process monitor shows me that the euporie python process is maxing out one of my cores. And the log with log-level=debug shows that the last line is:
2023-05-27 17:18:59 DEBUG   [euporie.core.convert.core._convert:242] Converting from 'ansi' to 'formatted_text' using route: [['ansi', 'formatted_text']]
2023-05-27 17:19:42 DEBUG   [euporie.core.convert.core._convert:242] Converting from 'base64-png' to 'png' using route: [['base64-png', 'png']]
2023-05-27 17:19:42 DEBUG   [euporie.core.convert.core._convert:242] Converting from 'base64-png' to 'formatted_text' using route: [['base64-png', 'png', 'ansi', 'formatted_text'], ['base64-png', 'png', 'pil', 'ansi', 'formatted_text']]
2023-05-27 17:19:42 DEBUG   [euporie.core.convert.utils.call_subproc:95] Running external command `['viu', '-w', '49', '-s', '-']`

Trying to create/convert(?) the image with viu, which obviously is actually quite fast when run manually.
Any idea what is wrong?
(Using Kitty terminal and kitty graphics)

The same happens in notebook

Hi,
I think that possibly viu was detecting that your terminal supports kitty graphics and was trying to return kitty graphics rather than block graphics which euporie expects.
Anyway, I've fixed this by adding the -b flag when calling viu for force block graphics output.
I've made a new release with the fix (v2.4.2) which you can try.

Interesting, I'll try it once I get back, but if I have kitty graphics shouldnt it be using kitty graphics? Or am I misunderstanding how it's used

This works now, thanks!

Interesting, I'll try it once I get back, but if I have kitty graphics shouldnt it be using kitty graphics? Or am I misunderstanding how it's used

Euporie generates both block-graphics and terminal graphics (if supported). The block-graphics rendering is used as a fall-back, and is displayed when a UI element such as a menu or dialog box could overlap an image, as most terminals do not support text over graphics.
Euporie does not need an external tool to convert images for display using the kitty graphics protocol, but will use external tools (viu is one of several options) for block-graphics rendering if one is available which is faster / better than the available Python implementation.


Performance number error?

It seems like there may be a mistake in the performance numbers:

Server
Request Per Second
Avg. Response Time

fast-http-server (_Crystal_)
18348.47
8.67ms

http-server (_Node.js_)
2105.55
47.92ms

SimpleHTTPServer (_Python_)
785.14
1.91ms

According to these numbers, SimpleHTTPServer has a much faster response than fast-http-server, even though fast-http-server can handle massively more requests per second.  Is this correct?  Is it possible that the units are off on one or the other?  (microseconds versus milliseconds)

I've updated the README and this is no longer an issue https://github.com/sdogruyol/fast-http-server#fast


Problem with Phi 3.5

Hello Guys,
i wanted to try your version of Phi-3.5-mini-instruct with the DPO Trainer from Huggingface.
But when i run the Training i get NaN or Inf found in input tensor.
Same code works fine with the microsoft version. Any idea?
Thanks :)
Training Code:
    model = AutoModelForCausalLM.from_pretrained(
        "unsloth/Phi-3.5-mini-instruct",
        attn_implementation="flash_attention_2",
        torch_dtype=torch.bfloat16,
        use_cache=False,
        trust_remote_code=True,
    )
    ref_model_kwargs = dict(
    trust_remote_code = True,
    attn_implementation="flash_attention_2",
    torch_dtype = torch.bfloat16,
    use_cache = False
    )

    dpo_config = TrainingArguments(
        learning_rate=5e-7,
        bf16=True,
        lr_scheduler_type="cosine",
        gradient_checkpointing=True,
        gradient_checkpointing_kwargs={"use_reentrant":False},
        max_steps=300,
        per_device_train_batch_size=2,
        per_device_eval_batch_size=1,
        gradient_accumulation_steps=4,
        torch_compile=True,
        num_train_epochs=2,
        eval_strategy="steps",
        eval_steps=400,
        save_total_limit=2,
        logging_steps=1,
        warmup_steps=0,
        optim="adamw_8bit",
        report_to=["wandb","tensorboard"],
        output_dir=f"{run_name}/",
        run_name=run_name,
        remove_unused_columns=False,
        save_strategy="steps",
        save_steps=150,
        save_safetensors=True,
        )

    trainer = DPOTrainer(
        model=model,
        ref_model=model_name,
        ref_model_init_kwargs=ref_model_kwargs ,
        args=dpo_config,
        beta=0.05,
        train_dataset=dataset["train"],
        eval_dataset=dataset["test"],
        tokenizer=tokenizer,
        max_length=2048,
        max_prompt_length=1500,
    )
    trainer.train()

Apologies on the delay! Are the settings the exact same for Unsloth?

No worries i admire your work :). To mabey make it a bit clearer. I wanted to use your version of phi-3.5 (since you converted it to Llama) togehter with the Liger-Kernels from Linkedin and not with Unsloth.  In this case i tried just normal full finetuning without applying the kernels.

No worries i admire your work :). To mabye make it a bit clearer. I wanted to use your version of phi-3.5 (since you converted it to Llama) togehter with the Liger-Kernels from Linkedin and not with Unsloth. In this case i tried just normal full finetuning without applying the kernels.

We don't work for full finetuning at the moment. Support will be coming hopefully soon :)


Remove travis

Closes #131.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #151   +/-   ##
=======================================
  Coverage   83.58%   83.58%
=======================================
  Files          11       11
  Lines         335      335
=======================================
  Hits          280      280
  Misses         55       55

Continue to review full report at Codecov.

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


Add --force-update flag to 'helm repo add' command

For users, it is almost always desirable to fetch the latest Helm chart index.
This will help users to stay up-to-date with the latest releases of cert-manager and components.

/approve


Error 501 in GL Renderer

Whenever renderer is running and it's gone over the limit of rendering
Must be optimized by ourself, but currently we have no knowledge for it
We must consider to change the gui lib unfortunately

priority for this issue is very low


document smartsheet.env

Document smartsheet.env with example code-block in the documentation page.
Perhaps part of an 'Initial Setup' page ?

Documented and submitted


[rn 0.29.1] Failed to build DependencyGraph: @providesModule naming collision

I use the cocoapods to install all dependencies. With react-native 0.29.1 the depency graph crashes because react is already installed as a dependency and this module installs its own version of react.
project './Camigo.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'

def share_pods

    pod 'Google/SignIn'

    pod 'React', :subspecs => [ 'Core',
    'RCTImage',
    'RCTNetwork',
    'RCTText',
    'RCTWebSocket',
    'RCTSettings',
    'RCTVibration',
    'RCTLinkingIOS',
    'RCTCameraRoll',
    'RCTPushNotification',
    'RCTGeolocation',
    'RCTCameraRoll',
    'RCTActionSheet' ], :path => '../node_modules/react-native'

    pod 'react-native-maps', :path => '../node_modules/react-native-maps'

    pod 'Fabric'
    pod 'Crashlytics'
end

target 'Camigo' do
    share_pods
end

target 'Camigo Staging' do
    share_pods
end

Failed to build DependencyGraph: @providesModule naming collision:
  Duplicate module name: AutoFocusUtils
  Paths: /Users/maluramichael/Development/Work/Camigo/App/node_modules/react-native-maps/node_modules/react/lib/AutoFocusUtils.js collides with /Users/maluramichael/Development/Work/Camigo/App/node_modules/react/lib/AutoFocusUtils.js

This error is caused by a @providesModule declaration with the same name accross two different files.
Error: @providesModule naming collision:
  Duplicate module name: AutoFocusUtils
  Paths: /Users/maluramichael/Development/Work/Camigo/App/node_modules/react-native-maps/node_modules/react/lib/AutoFocusUtils.js collides with /Users/maluramichael/Development/Work/Camigo/App/node_modules/react/lib/AutoFocusUtils.js

This error is caused by a @providesModule declaration with the same name accross two different files.
    at HasteMap._updateHasteMap (/Users/maluramichael/Development/Work/Camigo/App/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:162:15)
    at /Users/maluramichael/Development/Work/Camigo/App/node_modules/node-haste/lib/DependencyGraph/HasteMap.js:127:25

+1

In android, i just remove the node_modules folder inside the react-native-maps directory. But it gets annoying when i have to do this after every npm install

Trying to clean the repo, please comment or mention me to re-open the issue if is still the case. Thanks.


Add bar graph type

Checklist

[X] I am running the latest version of the card
[X] I checked if there isn't another feature request opened with the same request
[ ] I checked that the feature is not already available in the dev branch

Is your feature request related to a problem? Please describe.
I would like to compare values for different sensors at a glance. Namely, temperature sensors.
The radialBar could work, but it is relatively complex to judge the interval between values due to its curvature. For instance, if a sensor is just at the begining of the bar, and another at the end with a few more bars in between, it becomes hard to read.
Describe the solution you'd like
Simply add Apex's bar chart type, that display one value on each bar, with the same scale. I believe semantics could be kept similar to other graphs.
Bar charts are generally understood to be superior to other charts for readability, I'd very much like to see them included in this card.
Describe alternatives you've considered
Feel free to expand both sections for screenshot and code.
I tried making an equivalent with columns, but they are really narrow, which wastes a lot of space. I also believe this is slower than just taking the last sensor value from HA.

type: custom:apexcharts-card
header:
  show: true
  show_states: true
  colorize_states: true
all_series_config:
  type: column
  show:
    datalabels: true
graph_span: 3m
update_delay: 3m
show:
  loading: false
span:
  start: minute
entities:
  - entity: sensor.tempsensor3_temperature
    name: Outside
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.thermometer_i9g_temperature
    name: Living room
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.tze200_yvx5lh6k_ts0601_temperature
    name: bedroom
    group_by:
      func: last
      start_with_last: true
      duration: 3m
apex_config:
  legend:
    show: false
  xaxis:
    labels:
      show: false
    axisBorder:
      show: false
    axisTicks:
      show: false
    crosshairs:
      show: false
    tooltip:
      enabled: false

 I also used mini-graph-card to create a similar card, but I like headers and tags from Apex.

type: custom:mini-graph-card
name: Temperatures
hours_to_show: 2
aggregate_func: last
smoothing: false
entities:
  - entity: sensor.tempsensor3_temperature
    name: outside
  - entity: sensor.thermometer_i9g_temperature
    name: living room
  - entity: sensor.tze200_yvx5lh6k_ts0601_temperature
    name: bedroom
show:
  graph: bar
  labels: true

I also tried overriding Apex's chart: type: bar, but it didn't seem to work, as it gave me an empty graph.

Oh no, not this bot...

I guess I'll just comment here every 30 days. Thank you, bot.

As a workaround, the column width can be increased manually above 100%:
apex_config:
  plotOptions:
    bar:
      columnWidth: 500%

Example 1 (300% for 3 bars)

type: custom:apexcharts-card
header:
  show: true
  show_states: true
  colorize_states: true
all_series_config:
  type: column
  show:
    datalabels: true
graph_span: 3m
update_delay: 3m
show:
  loading: false
span:
  start: minute
entities:
  - entity: sensor.tempsensor3_temperature
    name: Outside
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.thermometer_i9g_temperature
    name: Living room
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.tze200_yvx5lh6k_ts0601_b5a8b0fe_temperature
    name: bedroom
    group_by:
      func: last
      start_with_last: true
      duration: 3m
apex_config:
  legend:
    show: false
  xaxis:
    labels:
      show: false
    axisBorder:
      show: false
    axisTicks:
      show: false
    crosshairs:
      show: false
    tooltip:
      enabled: false
  plotOptions:
    bar:
      columnWidth: 300%

Example 2 (500% for 6 bars)

type: custom:apexcharts-card
header:
  show: true
  show_states: true
  colorize_states: true
apex_config:
  legend:
    show: false
  xaxis:
    labels:
      show: false
    axisBorder:
      show: false
    axisTicks:
      show: false
    crosshairs:
      show: false
    tooltip:
      enabled: false
  plotOptions:
    bar:
      columnWidth: 500%
all_series_config:
  type: column
  show:
    datalabels: true
graph_span: 3m
update_delay: 3m
show:
  loading: false
span:
  start: minute
entities:
  - entity: sensor.tempsensor3_temperature
    name: Outside
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.tempsensor3_temperature
    name: Outside
    offset: '-1d'
    opacity: 0.3
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.thermometer_i9g_temperature
    name: Living room
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.thermometer_i9g_temperature
    name: Living room
    opacity: 0.3
    offset: '-1d'
    group_by:
      func: last
      start_with_last: true
      duration: 40m
  - entity: sensor.tze200_yvx5lh6k_ts0601_b5a8b0fe_temperature
    name: bedroom
    group_by:
      func: last
      start_with_last: true
      duration: 3m
  - entity: sensor.tze200_yvx5lh6k_ts0601_b5a8b0fe_temperature
    name: bedroom
    opacity: 0.3
    offset: '-1d'
    group_by:
      func: last
      start_with_last: true
      duration: 3m

Documentation for the relevant properties is here.


flush method in HttpServer::Response doesn't seem to work

Hi, I 'm trying to replicate the Server Side Event example from https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events , using this code :
require "http/server"

port = 5000

server = HTTP::Server.new do |context|
  puts "Got request"
  # `context.response.headers["Transfer-Encoding"] = "chunked"` is default.
   context.response.headers["Content-Type"] = "text/event-stream"
  context.response.headers["Access-Control-Allow-Origin"] = "*"
  context.response.headers["Access-Control-Allow-Methods"] = "GET, HEAD, POST, PUT"
  context.response.headers["Access-Control-Allow-Headers"] = "Content-Type, Accept, Origin, Authorization"
  context.response.headers["Access-Control-Max-Age"] = "86400"
  loop do
    context.response.puts "event: ping\n";
    context.response.puts "data: hello\n"
    context.response.flush
    puts "Writing"
    sleep 5
    context.response.puts "data: world\n"
    context.response.flush
    puts "Writing"
  end
end

address = server.bind_tcp 5000
puts "Listening on http://#{address}"
server.listen

I was hoping that
https://github.com/crystal-lang/crystal/blob/639e4765f3f4137f90c5b7da24d8ccb5b0bfec35/src/http/server/response.cr#L109
would do a similar job as
ob_end_flush();
  flush()

in the PHP example part, I mean, sending (flushing) response while keeping the http connexion open
Am I missing something or is the flush method just not design to do that ?
crystal --version
Crystal 0.27.2 (2019-02-05)

LLVM: 6.0.1
Default target: x86_64-apple-macosx

I'm not much sure, but it might be a good idea to debug the request processor, adding pp as breakpoints to the HTTP::Server::RequestProcessor#process method to find out what's going on...

Yes, #flush should write the buffer to the IO which means currently queued data should be send.
Unfortunately, your post lacks sufficient information to be able to help you. Could you provide a full description how you're actually testing this server code, what you expect it to do and what exactly goes wrong?

@vladfaust Your suggestion is not very helpful. It's based on a wild guess that RequestProcessor#process might be faulted, which is almost impossible to be relevant here. If there is actually a bug somewhere, it's in the IO stack. But without any information about how the server is supposed to behave and what it actually does, there is no way to tell what's actually the issue here.

In fact it was me, as this code is perfectly working with the EventSource javascript part :
  3.times do |i_times|
    #context.response.puts "id: #{i_times+1}\n"
    #context.response.puts "event: ping\n"
    context.response.puts "data: hello"
    context.response.puts "data: world"
    context.response.puts "\n\n"
    puts "Writing"
    context.response.flush
    sleep 1
  end


Remove .Wait() calls from query tests

Remove unnecessary async keywords
Postfix methods returning a Task with "Async"
Fixes #5308

@dotnet-bot test Windows Release x64 Build please

Does this mean that the test suite can be expected to run without any of the deadlocks we had before? I have a special xunit threading attribute because tests would consistently lock up in Appveyor, as threads were stuck synchronously waiting on underlying async operations which could not complete etc.

@roji This eliminated some deadlocks, but there are others that we are still investigating, see https://github.com/aspnet/EntityFrameworkCore/issues/12842


testing: verify that statistical measures other than mean (np.mean) work within Evaluator.make_statistic_evaluator

opt_parameters['statistic']=  'np.mean'

    if opt_parameters['statistic'] == "np.mean":
            opt_parameters['statistic'] = np.mean

When optimizing, users can theoretically define any statistical measures implemented in numpy as the measure (of the objective function value) on which to optimize.  The default is np.mean. We haven't tested alternate statistical measures lately (to my knowledge) and so I'll be verifying that measures like median and percentiles also work within the optimization.
Testing plan:

[ ] np.median
[ ] np.percentile at 10th
[ ] np.percentile at 90th

This covers virtually all expected use cases.
If testing fails, then the make_statistic_evaluator method within the Evaluator class will need to be updated to ingest any failed measures.
Bonus: Passing around function names as parameters isn't good practice from a security standpoint. If time allows, update make_statistic_evaluator to ingest strings instead of callables and convert those strings to the relevant functions using if/then or similar statements.
Timeline: Complete by or on Friday, October 27.

Testing performed in pv_residential_simple. All tested statistics performed as expected.
To evaluate percentiles or quantiles, this is the syntax:
statistic    = lambda x: np.percentile(x, 0.9)

I'll start adding string-to-function processing in make_statistic_evaluator for the reasons stated in the previous comment, and also because the necessary syntax for evaluating percentiles won't necessarily be obvious to new Tyche users.

Evaluator methods (make_statistic_evaluator and a few others in the Evaluator class) have now been updated to use string-format parameters to define statistical functions. Function options are defined in a dict under the Evaluator init method, and currently are as follows:
    # dictionary of statistical function options
    # for use in the various evaluator methods
    # add entries to this dict to expand the options
    self.statistic_lookup = {
      'mean': np.mean,
      'median': np.median,
      'standard deviation': np.std,
      '10th percentile': lambda x: np.percentile(x, 0.1),
      '25th percentile': lambda x: np.percentile(x, 0.25),
      '75th percentile': lambda x: np.percentile(x, 0.75),
      '90th percentile': lambda x: np.percentile(x, 0.9)
    }

To use any method with a statistic parameter, the syntax is now statistic = 'mean' or statistic = '10th percentile' or similar.
Heads up for @tjlca - this will have implications for your GUI backend code, but hopefully will simplify things overall.

Resolved in PR #160


Change dependencies from dist to source?

Not really sure why I get this notice:
Critical dependencies:
7:484-491 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/localforage/dist/localforage.js 7:484-491

What do I need to change?

Are you using a bower plugin with webpack? See this similar issue from reflux.

Nope.. just using npm (yarn) with webpack :)
Could it be related to
  "main": "dist/angular-localForage.js",

in package.json ?

Could be, but honestly, this module is written as a single file anyway, so I'm not sure that you wouldn't still get that same message. Feel free to change it in your local node_modules folder and see if you still get that error. If you do, ¯_(ツ)_/¯. If not, I'm not sure I'm comfortable with changing it without testing out the other popular build systems (browserify, rollup, closure) first. Let me know what you find out, and feel free to submit a PR.

Closing this, but please reopen if you need additional help or have anything else to add.


[Feature Request] Snap to steps instead of multiples

Hey! I was wondering if it would be possible to have the measured templates snap to steps instead of multiples of a single value. For example, some games use a distance band instead of measuring precisely, where the distances are something like Close Distance (3 m), Short Distance (15 m), Long Distance (30 m) and Very Long Distance (>30 m). While this can be replicated by giving a value of 3, of course, it would be awesome if I were able to just write something like “3, 15, 30” into the distance field in the settings.
For extra awesomeness, it would snap according to these steps, and beyond them according to the map setting (just as if the distance field is left blank) or any other specified value (so that it might be possible to have the bands snap to 3 m, 15 m, 30 m, and then in 1 m steps (or whatever other value is given).
Thanks for considering!

It should definitely be possible, but I'll have to play around with it to see what I can come up with. Don't expect anything super quickly on this one.

@mrkwnzl So managed to find some time and it turned out to be a lot easier than I expected to do. Let me know how that works for you and if it's what you were looking for!

Wow, awesome! It’s exactly what I imagined! Thank you so much! Works perfectly!

Glad it's what you were looking for! 😀


Notary login step failure

[Enter feedback here]
The following instruction:
notation login -u $USER_NAME -p $PASSWORD $REGISTRY
returns the following exception:
Error: could not get the credentials store: failed to load config file, error: credentials store config was not set up
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 2014ac3f-ef99-1919-714e-4f925de580da
Version Independent ID: 36a1c8f3-7834-83f4-ea75-fb6e6d0a992a
Content: Build, Sign and Verify a container image using notation and certificate in Azure Key Vault - Azure Container Registry
Content Source: articles/container-registry/container-registry-tutorial-sign-build-push.md
Service: container-registry
GitHub Login: @dtzar
Microsoft Alias: davete

Hi @stephaneey
The error message "Error: could not get the credentials store: failed to load config file, error: credentials store config was not set up" indicates that the Docker CLI client is unable to find the credentials store. This error can occur if the Docker CLI client and daemon (Docker Engine) are not running in your environment, or if the Docker CLI client version is outdated.
You can try the following steps to resolve the issue:

Confirm that the Docker CLI client and daemon (Docker Engine) are running in your environment. You need Docker client
version 18.03 or later.
2.If the Docker CLI client version is outdated, update it to the latest version.
3.If the issue persists, you can try to run the command in an incognito or private session in your browser to avoid any stale
browser cache or cookies.


pinned versions

I feel this automated build is lacking pinned versions of it's dependencies and ghost itself.
Additionally, it is using a Python environment based on Ubuntu as a base while I believe the node official repo would be a better starting point (much smaller).
I've created a docker image with pinned versions forked from thaiphan/ghost, but with the same build process as this repo. I realize that this will require to update the ghost version within the Dockerfile each time a new version is released and wonder if there is a better way to do this.
my repository: https://github.com/so0k/docker-ghost
looking forward for feedback

having the GUID built-in the Dockerfile as an environment variable was stupid on my part, I have updated my image. https://github.com/so0k/docker-ghost/commit/a6196404881fda1ca73c2123f5ab5e1f8ec86ced

I also need pinned versions of Ghost to update my image on the server with docker pull. Otherwise i must delete the container and image to get a new Ghost version.

The Docker team suggested moving images under dockerfile namespace to community driven official images using this technique. Tagging images is currently on hold due to this anticipated transition.
If you can volunteer to create and maintain an official image for ghost, please go ahead then let us know so we can redirect this image to the official image.


Naming of binary_encoder and binary_decoder

The naming binary_encoder and binary_decoder may be bit confusable.
According to the description, unary_encoder and unary_decoder may be more suitable?

I'll change this module to private temporary. #14
After fixed the naming, I'll change to public.

The English term for hardware which converts between binary and unary representations is, in fact, binary encoder (unary -> binary) and binary decoder (binary -> unary).  See Binary Encoder and Binary Decoder.

Thanks!
I didn't know the term, but it seems to be appropriate.
I'll revert to public as it is.


Expose Request internals

A fairly common abstraction I've encountered is something that needs both a Request and the request's path or host.  The way things currently stand now with the opaque Request type there is no way to nicely implement these kinds of abstractions.  You have to pass both the Request and the path, but that is more error prone since the Request contains the path.  Exposing more (all?) of the Request internals would admit the nice solution in these cases.

It's high time this got some love. I'll look into it this week. The trouble I have with all of this class of request is that the whole point of hiding internals is so that special (required) things can be done correctly. If there are use cases we're not supporting well (and there are) then we really need to rethink the API as a whole.
AfC

Thanks.  I'm not too concerned with the details of the implementation--just that I can "say all the things".


Interface font sizes

I would like to increase the tab font size somewhat. I tried with workspace-tab-header-inner title but that has no effect, even though that should work.
I would also like to increase the font size for the Settings pop-up.

I worked out how to change the tab size font:
body {
  --tab-font-size: 15px;
}

How can I increase the font size for the Settings pop-up?

@DutchPete alternatively, you could play around with the font sizes set in the body, or you could add this as a CSS snippet... not sure how you are currently testing out the font sizes:
  --font-ui-smaller: 11px;
  --font-ui-small: 12px;
  --font-ui-medium: 14px;
  --font-ui-large: 20px;

(see https://github.com/phchang/W95/blob/main/theme.css#L133)
Let me know what sizes you like.

For the Settings pop-up I have added this to my snippet:
body {
  --font-ui-medium: 16px;
  --font-ui-small: 14px;
}

Those are comfortable sizes for me, others may want different sizes.
Many thanks for your help!

The settings font size is a bit small. I may make an update with your suggestion. Thanks for trying out the theme... if you come across any other issues or have suggestions, feel free to open a new issue!


Storage Patch Release 01/10/2023

API change check
API changes are not detected in this pull request.


comments update

Coverage decreased (-0.1%) to 50.904% when pulling 84a6d0d44a0b334b6d923468399eceaa57634ee6 on lcestou:patch-18 into 1a140d21e2b9403b54ed0d793608c817f9f6c15d on TimothyLuke:master.


add bulletproofs as gadgets backend proof system

I'll do more testings for this, especially the proof size mentioned earlier.

Add optimized matrix memory to under the CKB-VM limit.


Bill Splitter: Extension Fails to Load Due to Missing Icons in manifest.json

Describe the bug
The Bill Splitter extension fails to load due to missing icons specified in the manifest.json file. The error message indicates that the file images/icon-48.png could not be loaded, which results in the entire manifest failing to load.
To Reproduce
Steps to reproduce the behavior:
Go to the directory ~\Open source\GGExtensions\Bill Splitter
Attempt to load the Bill Splitter extension in the browser
Observe the extension failing to load
See error message indicating the missing icon and manifest load failure
Expected behavior
The Bill Splitter extension should load successfully without any errors. All icons specified in the manifest.json file should be present and accessible.
Screenshots

Additional context
The error indicates that the icon file images/icon-48.png specified in the manifest.json is missing. Ensure all files referenced in the manifest are correctly placed in the specified paths.

@Sulagna-Dutta-Roy Check this bug reports too.


Update strings_es-ES.i18n.json

Issues in lines 91, 189, 237, 302, 314

Thank you. Be aware that keys starting with @ are comments. They will likely updated to English if I run the translation tool to apply your translations from #754


Increase listeners for concurrent handlers on stream

Warning: Possible EventEmitter memory leak detected. 11 data listeners added. Use emitter.setMaxListeners() to increase limit.
Addresses this error, by keeping the listeners in control. This will make sure we get error message if an actual leak occurred.

👍

👍


MySQL database is unable to store records for the 'player/sd off' or 'player/sd on' commands.

After using /sd off, even after relogging or switching to another server channel, it remains enabled by default.

Thanks for reporting, will look into this!

I am also getting this issue, been happning with both mysql and sqlite


Fix blame problem for older git versions

See comments of https://github.com/go-gitea/gitea/pull/3748#issuecomment-389522341

LGTM


edited gitignore to ignore more files

added function to calculate md5 checksum
api request to get md5 checksum from esa sci-hub
wrote md5 checksum to s1-iw_slc-....zip.md5
aded md5 checksum to es metadata
compared local md5 checksum to sci-hub's checkum and raised error if they do not match

Also fixed some formatting to follow python standards

In checksum method outlined at https://hysds-core.atlassian.net/browse/HC-34?jql=order by created DESC
we no longer need to store the md5 checksum in ES.
For this sling as a PGE that publishes an SLC into S3, it should deposit the checksum as collocated file/object. So for each file/object inside a dataset 'dir", if a checksum (e.g. md5) is available, then  deposit it as a collocated file/object with the same basename and checksum type extension.
Separately, Verdi will be updated (later) in Pre() step to crawl the dataset "dir" and for each collocated checksum file, it will apply the checksum verification.

we should not merge until we get a answer from ASF if they give us a checksum


q filter - full text search on a field

In gitlab by @MohamedHamouGisaia on May 4, 2017, 11:04

In gitlab by @MohamedHamouGisaia on May 4, 2017, 11:04
changed milestone to %4

In gitlab by @sfalquier on May 9, 2017, 09:13
added ~1918367 and removed ~1918909 labels

In gitlab by @MohamedHamouGisaia on May 12, 2017, 11:42
added ~1918368 and removed ~1918367 labels

In gitlab by @MohamedHamouGisaia on May 12, 2017, 11:42
assigned to @MohamedHamouGisaia

In gitlab by @MohamedHamouGisaia on May 17, 2017, 10:09
closed

In gitlab by @MohamedHamouGisaia on May 17, 2017, 10:09
removed ~1918368 label


Transfer to PC Support Ethernet

I have this installed on my Shield TV (2017) and it does not appear to work with the ethernet connection. Is this a bug or does the transfer only support wi-fi?

Currently there is only support for WiFi. You are welcome to give a PR! 🙂

@boostio funded this issue with $10. Visit this issue on Issuehunt

@1hakr has submitted output. Visit this issue on Issuehunt

@1hakr has rewarded. Visit this issue on Issuehunt


Need example for form edit with last remote value selected - Allow to set options while using remote fetch

I am using two form one for add items and second for edit items. Now my problem is at add time i am fetching data from service and store item in database.
Now while at edit time i can't set previously saved selector value as default, At edit time also i am fetching data from service.
What i think should be.
I think while editing it, custom options can be set with array of single value of assigned model of selector.
Like
vm.item = {

  name : "Pizza",
  belongTo: "Fast Food"
}

vm.belongTos = [ vm.item.belongTo ]

<select selector
        id="itemSearch"
        multi="false"
        model="vm.item.belongTo"
        options="vm.belongTos"
        remote="vm.searchItem(search)"
        label-attr="name"
        view-item-template="vm.itemTemp"
        dropdown-item-template="vm.itemTemp"
        placeholder="Select item ...">

</select>

Here we can set custom options for selector for EDITING FORM purpose.

Hi @Nishchit14, it's a little hard for me to understand the question without an example that explains the scenario. Could you please provide a little working one? Thanks :)

Hi @indrimuska ,
Its simple scenario

I have items in grid.
I want to update single item from list.
Click on edit icon of any row.
Modal(popup) will open with item's detail
Now this item has one key group as item.group (It is selected by selector)
So i want to set group value as default selected in selector when popup opens.
Then if i want to change it then use remote options to fetch new group

Ok, maybe I have understand the scenario, but I still don't understand where the problem stands.
Correct me if I'm wrong.
You have a lot of items with the same structure in a grid. Each of them has a group property that you want to be able to change. So, using a modal, you want to change the group of one these item by using Angular Selector in a remote configuration. Right?
Well, what's the problem? You can't change it with a remote configuration?

Yes perfectly,
My problem is how to set default selected group first time when modal open.

Can't you just assign a default value at the initialization time? or when you open the modal?

That's the problem
Do we have any example for this ?
I have value for model at initialization time but don't have dropdown options array. So how to set it ?

I think I need a little similar working example, I cannot completely figure out the problem without it, sorry.

Here is plunkr.
I want to let AF as default selected by any trick. Because i am not firing any query if search is empty.

I was completely out of the way, now I can understand your problem and it seems similar to #34. Let me make some tests and I'll come back to you.

This is an updated plunker for your scenario.
It uses the same logic of this comment. What do you think about?

The main problem is that if you manually set a given value to your model, I can validate that value only by using your service (or any other remote service). That would mean I have to fetch another remote request every time the value changes, and I don't think it should be the best behavior.

I'm going to close this issue and move the conversion to issue #40.

The problem with the updated plunker is that it changes the API a bit and the implementor needs to take care that search may be an array. This is fine, but it needs to be labeled as a potential breaking change.
To understand what I mean, try changing countries to something like:
$scope.countries = ["AF", "DE"];
It won't work by default without further changes to the code.


Wrong plural rule detection for negative numbers

I've found an error when trying to use negative numbers. Let' take an example.
"The temperature is -2 degrees."
For language like Polish it should get "few" rule but it gets "other" rule. In polish it behaves the same for positive and negative numbers. I don't know how the case looks in other languages.
The possible solution could be just taking absolute value of the number before detecting plural rule if the same situation takes place in other languages.

@jagi in ICU format it can be implemented like this:
> var msg =
              'NUM_PHOTOS': 'You have {numPhotos, plural, ' +
              '=-1 {# photo.}' +
              '=0 {no photos.}' +
              '=1 {# photo.}' +
              'other {# photos.}}',

I am from Slovenia so i had the same problem. :)

@vizo yes I know about that but that way you would have to write rules for all possible negative numbers :). So it's much better to just use absolute value for the number in Polish and Slovenian languages :). But it's very old problem for me, so I don't bother anymore, at least for now :) - util I will have to create another i18n app :)

@jagi i think the same, but this gives you even more flexibility ... Maybe some languages in the world have different form for negative numbers ... ;) who knows..

OK, and how can I do this
{weeks, plural, <-1{past # weeks}=-1{last week}=0{current week}=1{next week}other{next # week} }

@fglueck You probably want to ask your question as a new discussion or somewhere else, rather than as a comment on an only vaguely-related issue that's been closed for almost a decade now.


Initial

Pull request for review and merge in develop branch.

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


Revise initial workspace -> sidecar websocket protocol

Summary of Changes

In an attempt to deflake tests, now require a workspace to be the agent that sends the first websocket message, a new WORKSPACE_HELLO message type, with a payload body that carries its workspace id. Previously, sidecar was the sender of the first message, and might have been sending it before the test suite workspace websocket client simulation was able to gets its message handler set up properly (as the theory goes about probable cause for test flakiness in seeming to "miss" the first message).

New connections are initially put in a 'purgatory' set and will remain there until they send the expected WORKSPACE_HELLO message. (todo: sweeper task purging ones lingering too long).
Sessions migrate from purgatory to the connected/authorized session map upon successful WORKSPACE_HELLO message reciept and processing.
Sidecar uses the hello message body's workspace id to cross-reference against known workspace ids.
This negates the websocket route from needing a workspace_id query string parameter.

Having extension-side send the first message hopes to deflake test testWebsocketLifecycle, the theory being that without this, then sidecar-side would send the first message prior to when the test websocket client could establish its message handler. Now, with the client sending the first message, the test websocket client-side message handler will always be installed before the response WORKSPACE_COUNT_CHANGED gets received. Hopefully.
Any additional details or context that should be provided?

Known todo: periodic task to clean out too-long-in-purgatory websocket connections. Lower priority than un-flaking.
Closes #228

Pull request checklist
Please check if your PR fulfills the following (if applicable):

Tests:

[x] Added new
[x] Updated existing
[x] Deleted existing

[ ] Have you validated this change locally against a running instance of the Quarkus dev server?make quarkus-dev

[ ] Have you validated this change against a locally running native executable?make mvn-package-native && ./target/ide-sidecar-*-runner

Will have good revisions posted tonight for tomorrow morning, thanks.

See #234 for my suggestions in an easier-to-read format.