NodeJS wrapper: Update to Node 17 / 18

Revisit effort from this PR  https://github.com/hyperledger/aries-vcx/pull/464

see if we can upgrade to Node 18
it seems that there was some progress regard the perf issue referred by the PR above https://github.com/nodejs/node/issues/32226#issuecomment-1185423020

https://github.com/hyperledger/aries-vcx/pull/643 enabled upgrade to NodeJS18, with napi library there's still observable 10x slowdown on NodeJS 18 compared to NodeJS 12
New approach using napi-rs in progress https://github.com/hyperledger/aries-vcx/pull/661 / https://github.com/hyperledger/aries-vcx/pull/665
We got great perf. results in small script doing bunch of FFI calls from NodeJS

new ffi, node 18, 10.5351331ms
old ffi, node 18, 4530.964421987534
old ffi, node 12,<PHONE_NUMBER>8130417

so napi-rs/node18 is even 20x faster than current approach with napi/node12


python3Packages.pyls-black: remove

Description of changes

Remove pyls-black
pyls-black depends on the deprecated palantir/python-language-server. nixpkgs doesn't package the palantir version, instead we package microsoft/python-language-server. I don't know if they are interchangable, but regardless, pyls-mypy, palantir/python-language-server, and microsoft/python-language-server are all deprecated.
The replacement for palantir/python-language-server and microsoft/python-language-server is python-lsp-server which is already in nixpkgs. The replacement for pyls-mypy is python-lsp-black and is also already available in nixpkgs
Related to #209582
Things done

Built on platform(s)

[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.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

[ ] Fits CONTRIBUTING.md.

I don't know what the usual procedure for obsoleting packages in favor of others is, but instead of outright removing the attribute, wouldn't it be better to add an error message telling people who use pyls-black to use python-lsp-black instead?

I added an alias with a note.

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


Fixed a bug

Hi,
This is not a bug.  The full path is requested from the user in Line 48.
parser.add_argument('--datadir', type=str, required=True, help='path/to/data_directory')

Hi
The same information is mentioned in line 64 of train.py.
parser.add_argument('--datadir', type=str, required=True, help='path/to/data_directory').
And in the readme under training the OCT dataset, the following is mentioned:
python3 train.py --dataset=Kermany2018 --datadir=data/OCT2017 --batch=4 --epoch=30 --logdir=optic-net-oct2017-log --snapshot_name=optic-net-oct2017
Here the datadir is mentioned as data/OCT2017. I assumed the same for test.py. However the datadir passed in train.py is used at line 15 and 20 of train.py. Line 20 of train.py is train_batches, test_batches = Kermany2018(batch_size, input_size, data_dir). And in the Kermany2018 function (dataloader.py line 22, 23) the test and train folder names are appended:
train_path = data_dir+'/train'
test_path = data_dir+'/test'
However this is not done in test.py. Therefore, I had made the changes in test.py


Fixed path/link for profile retrieve and reconcile

Link to source and visible path for sfpowerkit:source:profile:{retrieve,reconcile} were broken.

Thanks @jjminer


Minor boolean refactoring

Not sure if this degrades readability, but it's more concise.

Nice, ty for this. Looks good. We keep our master branch deployed on the live networks so I'll merge and deploy this with the Solidity update coming up!


Debugger jumps to the end of file when there are defaultable params with function invocations

Description:
When debugging sample code below, it jumps to end of file in between default param expression evaluations(doing step into)
and also it tries to open io bal files when tries to do a step into in the println lines
Steps to reproduce:
sample code
import ballerina/io;

int val1 = 9;
# Prints `Hello World`.

public function main() {
    io:println("Hello World!");
    io:println(test());
    io:println(test(8));
    io:println(test(8, 10));
}

public function test(int b = abc(), int c = cde(b)) returns int {

    int res = b - c;

    return res;
}

public function abc() returns int {
    int val = 9;
    return val;
}

public function cde(int a) returns int {
    int sam = a * 7;

    return sam;
}

Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

looks like part of the problem is a line numbers mapping. I added a breakpoint to int val = 9 and it's never even though it is executed.

I did a debug with step into and continue with given code. Seems working fine for me except  open io bal files.

step into issue describe is captured in https://github.com/ballerina-platform/ballerina-lang/issues/18949


match_spec builder functions

build def/defp/lambda functions where you can parameterize constants to be used in the match spec

completed in 39fc2fd


Generic/DocComment: add XML documentation

Description
This PR adds the XML documentation for the Generic.Commenting.DocComment sniff.
This sniff contains several errors, so I opted to add a <standard> block at the top summarizing all the checks.
Several of the valid examples are the same, but what is being checked felt different enough to use different <standard> and <code_comparison> blocks. If we want to make this documentation shorter, we might group related errors in the same <standard> and <code_comparison> blocks. For example, the errors long and short descriptions must start with a capital letter, and there must be a blank line between different doc comment elements.
Suggested changelog entry
Add XML documentation for the Generic.Commenting.DocComment sniff.
Related issues/external references
Part of #148
Types of changes

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

[ ] This change is only breaking for integrators, not for external standards or end-users.

[x] Documentation improvement

PR checklist

[x] I have checked there is no other PR open for the same change.
[x] I have read the Contribution Guidelines.
[x] I grant the project the right to include and distribute the code under the BSD-3-Clause license (and I have the right to grant these rights).
[ ] I have added tests to cover my changes.
[x] I have verified that the code complies with the projects coding standards.
[ ] [Required for new sniffs] I have added XML documentation for the sniff.

Thanks for the review, @jrfnl! I have implemented the small changes that you requested. Now I will look into grouping a few of the blocks.

@jrfnl, I pushed a few new commits grouping some of the checks together. I created a separate commit for each of the new groups so that it is easier to discard any of the groupings that we might decide to discard.
Here is the list of groupings by error code:

LongNotCapital and ShortNotCapital
SpacingBeforeTags, SpacingAfterTagGroup and SpacingBetween
ContentAfterOpen and ContentBeforeClose
MissingShort and SpacingBeforeShort

This PR is ready for another review.

Thanks for your review, @jrfnl. I pushed two commits implementing the changes that you suggested. Could you please take another look?


feat: add solved puzzles list

#16

Found another problem - the puzzles should appear in sorted order and not in the order they were solved.

Thanks! The component looks great. But, I think it should always appear at the bottom, and when there are no solved puzzles it can show "Solved: (None)".

Do you mean the text "(None)".
Or just nothing?
The second seem unnatural, the first can be more friendly like "nothing is here yet" or something

Found another problem - the puzzles should appear in sorted order and not in the order they were solved.

Yes.
I think I should use Set instead of array.
It will be also more efficient, when scaled

The text "None" inside the ellipse - This is also the behavior in the old design. For something friendlier, maybe "None, yet 😉".
Cheers 🍻

done @eternaleclipse


[BUG] string row filter ignore 2nd (and onwards) And

Apache Iceberg version
None
Please describe the bug 🐞
tasks = table.scan(row_filter="dt='2023-08-20' AND view_type=1 AND hr='00' ").plan_files()

Only filter for dt and view_type is taken care of, but hr is not.

Hm yeah I can repro this with a simple test in table/test_init.py
  scan = table.scan(row_filter="x=1 AND y=1 AND z=1")
  assert scan.row_filter == And(EqualTo("x", 1), EqualTo("y", 1), EqualTo("z", 1))

this fails the assertion because the  row filter ends up being And(EqualTo("x", 1), EqualTo("y", 1)) for some reason.

Looking into this

https://github.com/apache/iceberg-python/blob/main/pyiceberg/expressions/parser.py#L236 this is where it'll skip anything after. I think this needs to combine all results in a single And (same applies for Or). But I need to do some testing with different combinations, not sure what how PyParse actually passes in the ParseResults when it visits the expression


Allow skipping cloning of General registry

Depends on:

#22

Allows for the clone of the General registry to be optional.

I may need to rethink this. It seems that Julia doesn't add the General registry if a registry has already been added 🤔
ERROR: LoadError: expected package `StableRNGs [860ef19b]` to be registered

I'm going to approach this in a different way where each registry needs to be specified.

I think the right alternate approach is to have this action specify all of the registries you want to add. That way you can opt-in and out of using General. Doing that however probably also leads to addressing #20 as well.


[NR-168456] Exception handling around classTransformer

Bug fix: https://issues.newrelic.com/browse/NR-168456

Now we have code coverage checks, and tis could be a touch case to test. Can the c/c checks be disabled for now? Getting a reproduction case will inform adding useful tests.
Squash please.

I could disable codecov for plugin if we don't want it.


onFinally and onCancel not invoked

When I create a tween and cancel afterwards with CancelTweens, onFinally and onCancel is not invoked
This is clear from the code
public sealed override void Cancel() {
      if (!dontInvokeWhenDestroyed && component == null) {
        onCancel?.Invoke(this);
        onFinally?.Invoke(this);
      }
      isDecommissioned = true;
    }

In my case the component is not null so the delegates are never invoked
I think the code should look like this
    public sealed override void Cancel() {
      if (dontInvokeWhenDestroyed && component == null) {
	isDecommissioned = true;
	return;
      }
      onCancel?.Invoke(this);
      onFinally?.Invoke(this);
      isDecommissioned = true;
    }

Hi @Pippepot, please excuse me - I have completely missed this issue. You're absolutely right, very sharp haha. I'll patch it right away!
I've made some minor changes and ended up with the following changes, which should reproduce the same results as your proposal.
public sealed override void Cancel() {
  if (!dontInvokeWhenDestroyed || component != null) {
    onCancel?.Invoke(this);
    onFinally?.Invoke(this);
  }
  isDecommissioned = true;
}

Released, thank you very much for your contribution!
https://github.com/jeffreylanters/unity-tweens/releases/tag/v3.4.1


Here are some ideas

Hi everyone, I've been busy, which is why I haven't been able to check-in as often. So first of all I want to thank everyone for their contributions and a special thanks to @Theelgirl and @dobrosketchkun since I know you two have been putting in a lot of work into the program. Your work does not go unnoticed.
I have some ideas I want to share and get some feedback.

Increasing storage capacity.
Originally, the program was made with the simple thought that 1-bit (black and white) pixels would allow the program to be more efficient at data retrieval against compression algorithms. But of course, using a single pixel to represent a bit, leaves a lot to be desired as far as maximizing storage goes. I think we can still achieve the same logic by adding the option for another type of encoding (in addition to 1-bit color) by using colors to represent a set of 2 bits per pixel thus doubling the storage capacity while still keeping the colors simple enough to guard against compression. Here is the math/logic:

Using the RGB color spectrum, the simplest colors are red, green, and blue. This means that they are easy to distinguish from one another even if compression changes them a bit.
With that in mind, using binary numbers we can double storage by storing 2 bits in a single color, thus giving us a possibility of 2^2 or 4 different combinations. Then we can assign a color to each combination and use black or white for the remaining color:
00: Black
10: Red
01: Green
11: Blue

Then as far as decoding goes, the logic would be the same as for black and white. We would check which color the values is closest to and assume that color:
For example, if the pixel is (255,12,30), then the color must be Red (bin: 10), since the pixel contains more red than anything else.
I haven't done the research yet, but we might also be able to take advantage of an alpha channel using the  RGBA color spectrum, but I would assume that A might not be as easy to guard against compression.

Adding some sort of error checking /correction algorithm
Even though, the current implementation of fvid seems to work the times I have tried it. It's not perfect and there have been some reports of it not working with certain files. Because of this, I think we should look into adding some error checking or correction. A simple implementation might be adding a parity check where we add an extra bit or set of bits for every byte (8 bits) if the number is odd or even. However, that doesn't fix the data, it only tells us that the data is wrong and that assumes that the data was decoded correctly, which are probably too many assumptions for it to be a good solution. So I am open to hearing if anyone has any suggestions on this.

GUI
Recently, the program has been getting more attention (because of a TikTok I made lol) and I have seen more requests for a GUI. I know @dobrosketchkun made a GUI for the program, but I have not seen that implemented yet. I have not made a GUI for a Python program before, so I was doing some research and was thinking of building one using PyQT, or Kivy, but since @dobrosketchkun already did some work using Tkinter, I rather their work not go to waste. In addition, I think it would be cool to make this optional, so maybe during the install process or with a different package.

Changing the License
MIT was the original option since that is the most open license I know and I like the idea of sharing the source code and allowing people to do whatever they want with the program, but I don't want the work contributed by others to be "taken advantage of" for lack of a better phrase. With the amount of time contributors have put into their work, I would like the program and any copies to remain open source. So I propose, we change the license to GPL V3, but of course I am open to suggestions.

Everything here is just a suggestion, I want to hear what others have to say.

I think that's a great idea! However, I think we'll need to restrict it to a pure black, pure while, pure red, pure green, and pure blue to best avoid compression. I'm not experienced with alpha channels, or images in general, but I don't think alpha channels are what we want here.
That could work, I'm not the best in that area but I'm sure it's possible.
I'd personally like to build on the existing GUI from dobrosketchkun, as I'm not an experienced GUI maker with other tools.
I personally could care less if people stole my portions of the code, so I propose the Unlicense. I've used it for my other projects, and it's basically the most permissive license you can get. https://unlicense.org/

Nice idea, I thought about it, but digress to another idea and forget about it, lol
Well, you can always use Reed–Solomon, but it will blow a volume of the data
My GUI is a hacky, partially working lazy few lines of code, plz make something better
I double @Theelgirl I usually post my "code" under public domain

Dobro, for 2, error correction, have you heard of LDPC error correction? I was just googling it and came across this: https://pypi.org/project/pyldpc/

Nope, I haven't; it seems nice.

Awesome!
@Theelgirl This sounds like a  great opportunity to get some experience with GUI's so ill leave that to you. Take your time of course. I'll also take a look at LDPC, I haven't heard of that before.
@dobrosketchkun and I have heard about Reed–Solomon, but haven't implemented it before, I will also take a look at that.
As for the License, since both of you don't really mind the licensing Issue, I think we should just leave it as is. I'll leave this issue open for a bit longer in case anyone else that wants to contribute has something to say. Thank you both for your time!

I spent some time today implementing Reed-Solomon error correction and I got that working with some quick tests, however, it really slows down the process.
There are few more things I need to look at before pushing a commit. I have noticed that PIL has trouble when too many images are open during the decoding process I received a  "too many images are open" error . And I also want to see if I can find a way to avoid us having to encode a video with a new frame rate before extracting frames since that's making the process even longer.
I have also noticed that with larger files, sometimes zipping the files fail. I think this might be a memory issue since I experience a case where zipping failed the first time, and after runing it again, it worked.
Since I don't have time to write the algo from scratch, I am using this library I found:
https://github.com/tomerfiliba/reedsolomon
And I am adding correction data to every byte (8 bits) with an ecc value of 12. This makes it so that it's possible to recover all 8 bits if they were to become damaged (worst possible scenario), but of course that comes with the cost of it taking longer and having a larger output videos hence the current issues I want to investigate more. I also plan to make this an optional feature with a -r flag for the same reasons.
If anyone has any input to add, please feel free to do so.

I'm still thinking that ldpc error correction will be better as it's much faster, but we'll see. At the moment, I'm setting up some documentation, will push when done.

@AlfredoSequeida Can I get integrations perms for this github so I can set up the readthedocs thing? I pushed the docs here already, but apparently they need a working integration to publish them :(

@Theelgirl I don't see an option on the repo to give you integrations permissions, so I was trying to see if I can set that up from my end, but looking at https://docs.readthedocs.io/en/stable/webhooks.html#github I don't see the Payload URL.

@AlfredoSequeida I'll email it to you.

Also I just added what I believe is your readthedocs account to the project. Is your account name AlfredoSequeida on readthedocs.io?

Yes, that's me, I added the webhook.

Ok cool. Can you push your current version of the reed-solomon error correction to a new branch so I can check it out and possibly speed it up?

Yes, I'll do that.

Here is the current Reed-Solomon implementation: c0f3ecd

Cool thanks!

Quick GUI mockup idea

And going off @dobrosketchkun idea, there could also be an option to use a URL to decode

This is a very nice GUI, miles better than mine.

@AlfredoSequeida @dobrosketchkun I did a good. This zfec error correction takes about 6-7 seconds to encode my 580KB test image versus over a minute with Reed-Solo, bloats it to 103MB mp4 instead of >200MB, and takes about 2s to decode it.
Branch:
https://github.com/AlfredoSequeida/fvid/tree/zfec-error-correction
Zfec repo:
https://github.com/tahoe-lafs/zfec

Splendid!

@Theelgirl That's awesome! When I get some time I'll try the file I was testing with it.

Sounds good! I haven't tested it on any error-ridden files yet, only normal files, so hopefully it works.

@AlfredoSequeida Have you had time to test it yet? I'm going to bed really soon unless I need to fix something.

@Theelgirl I haven't yet, but I will try to test it by the end of today.

@Theelgirl So, I checked out the zfec-error-correction branch, but, I don't see any zfec logic. The only change I see is the requirements.txt file. Did you push your changes?

Oops. I probably forgot to commit, pushing now.

@AlfredoSequeida Yoink I did a dumb and forgot to import random to deal with errors, git pull the most recent changes and re-test.

@Theelgirl Ok, So I tested your implementation and it's definitely faster, but I was not able to decode a video downloaded from youtube. With that said, I don't think it's your implementation because I also can't decode it without the zfec error correction
I keep getting this:
Unziping...
Traceback (most recent call last):
  File "/home/alfredo/.local/bin/fvid", line 33, in <module>
    sys.exit(load_entry_point('fvid==1.0.0', 'console_scripts', 'fvid')())
  File "/home/alfredo/.local/lib/python3.9/site-packages/fvid/fvid.py", line 505, in main
    save_bits_to_file(file_path, bits, key, args.zfec)
  File "/home/alfredo/.local/lib/python3.9/site-packages/fvid/fvid.py", line 294, in save_bits_to_file
    bitstring = fo.read()
  File "/usr/lib/python3.9/gzip.py", line 300, in read
    return self._buffer.read(size)
  File "/usr/lib/python3.9/gzip.py", line 495, in read
    uncompress = self._decompressor.decompress(buf, size)
zlib.error: Error -3 while decompressing data: invalid literal/length code

Here are the files for reference:
non zfec
zfect
And here is the file I used to test its a 14MB PDF file
I have seen this before with other files, so it looks to be a problem with unzipping the data. Something is happening there that needs to be looked more at. Maybe @dobrosketchkun can help here.
I do have a question, I noticed that you decided to apply zfec every 50 bytes (I think that's what's happening), so my question is how many of those bytes are actually recoverable with zfec?

Sorry for not being useful recently; I'm kind of busy.
I can't write it in nice code right now, but hear me out; in the first version, we had a delimiter to determine where is the end of the file, in current, we have zip machinery to help us out. The original problem is that no one can tell if this string of black pixels at the end of the last frame is part of the file or not.
But if we can revive byte-encoded json without such an issue? Thus we can place encoded zip into it, and I think it'll maybe help with  https://github.com/AlfredoSequeida/fvid/issues/33.
test = {"filename": "test",
        "data" : "somedata"}

data_bytes = json.dumps(test).encode('utf-8')
# b'{"filename": "test", "data": "somedata"}'

bitarray = BitArray(data_bytes)
#BitArray('0x7b2266696c656e616d65223a202274657374222c202264617461223a2022736f6d6564617461227d')

bitarray_bin = bitarray.bin
#<PHONE_NUMBER>1000100110011001101001011011000110010101101110011000010110110101100101001000100011101000100000001000100111010001100101011100110111010000100010001011000010000000100010011001000110000101110100011000010010001000111010001000000010001001110011011011110110110101100101011001000110000101110100011000010010001001111101

bitarray_bin = bitarray_bin + '1'*8*5 # last frame pad emulator
#<PHONE_NUMBER>10001001100110011010010110110001100101011011100110000101101101011001010010001000111010001000000010001001110100011001010111001101110100001000100010110000100000001000100110010001100001011101000110000100100010001110100010000000100010011100110110111101101101011001010110010001100001011101000110000100100010011111011111111111111111111111111111111111111111

##############################################

bitstring = Bits(bin=bitarray_bin)
# Bits('0x7b2266696c656e616d65223a202274657374222c202264617461223a2022736f6d6564617461227dffffffffff')
bitarray = bitstring.bytes
_temp = str(bitarray)
# b'{"filename": "test", "data": "somedata"}\xff\xff\xff\xff\xff'

# some sketchy way to split, needs to be cleaner
_temp = _temp.lstrip("b\'")
_temp = _temp.split('"}')
_temp = '"}'.join(_temp[:-1] + [''])
_temp = json.loads(_temp)

# {'data': 'somedata', 'filename': 'test'}

@AlfredoSequeida Actually, with a block size of 8, Zfec is applied every 8 bytes. Zfec simply expands the data by 25% using the formula bloat% = MVAL/KVAL. In this case, with KVAL of 4 and MVAL of 5, that means that for every 5 blocks of data, we need 4 to reconstruct the original. Since it bloated the block to 10 symbols, it's easily divisible by 5.

Can I help? I'm good at building GUIs in tkinter, PysimpleGui, and PyQT5. (Ok at kivy and kivymd as well.)
Sorry for the typos

Can I help? I'm good at building GUIs in tkinter, PysimpleGui, and PyQT5. (Ok at kivy and kivymd as well.)
Sorry for the typos

Hey! Thank you for offering to help! Although that would be awesome, I honestly haven't had time to work on the project recently. I think @Theelx 's idea of contributing to a more active project would be best.


Using user SublimeLinter.sublime-settings in addition to (or instead of) .jshintrc

I'm using ST in at least 4 different environments: Win, OSX, Ubuntu and portable from a USB stick. I'd like to have the same config files everywhere, including configs for jshint linter. The way jshint is looking for .jshintrc file isn't great as it's not looking beyond $HOME and I've moved all my configs to $Home/.config to avoid pollution. However, even if this weren't so, this still wouldn't be ideal as my USB portable ST wouldn't be able to see it.
Now, as far as I understand (also from https://github.com/SublimeLinter/SublimeLinter-jshint/issues/8) it's not possible to use User's SublimeLinter.sublime-settings file to store settings (they're simply ignored since you moved to reading settings from  .jshintrc), which makes my task of simple settings sync impossible.
Would you please allow to have all settings stored in the SublimeLinter.sublime-settings file in the ST user folder and prioritize these options over $HOME/.jshintrc?
Basically using this hierarchy from http://sublimelinter.readthedocs.org/en/latest/settings.html with an added $HOME/.jshintrc that should be below User settings (so that a portable ST wouldn't be overwritten by a host machine config file).
Inline overrides
Inline settings
.sublimelinterrc settings
Project settings
User settings
Default settings

P.S.
Alternatively, is there a way to set a relative path (to the User settings folder, then at least I could put  .jshintrc file there and link to it and this link would work regardless of the system I'm running ST on, portable or otherwise)?

Pr welcome, not something I will prioritize.


build: setup markdown to html/pdf/docx conversion for UserGuide and DeveloperGuide

Fixes #43

Coverage remained the same at 85.519% when pulling 32f275e35c0ec8c943b846e36f29c75be8088552 on pyokagan:pandoc into 77e9d7927ad6c1812bfaa36dee9c5516e3cdc7e1 on CS2103AUG2016-T11-C4:master.

Coverage remained the same at 85.519% when pulling 32f275e35c0ec8c943b846e36f29c75be8088552 on pyokagan:pandoc into 77e9d7927ad6c1812bfaa36dee9c5516e3cdc7e1 on CS2103AUG2016-T11-C4:master.


include/edhoc: add sha_ctx_t type

This PR adds a typedef for the sha_ctx_t to avoid ifdefs and typecasting.

I rebased the PR to fix the MBED TLS issue but it seems like there is still a problem.

Ah I think I didn't adapt the code for Hacl And Wolfssl, only tinycrypt. I'll take a look on monday!

Rebased and pushed, let's see if that was the only issue...

@TimothyClaeys all green now!

Ping @malishav @TimothyClaeys

Ping!

I haven't been following this issue, I'll let @TimothyClaeys merge it


Tiaas 2.1

Fix tiaas_info.domain.

This is fixed (manually) on prod, but we'll need to wait for Helena to merge my gunicorn PR and make a new release for the galaxyproject.tiaas2 role. Hopefully that comes through overnight. Then re-install the role and should be safe to run again.


gojirun ui header navigation and authentication set

###Use .env.example and convert to .env.local file while running to enable authentication.

I have Integrated Clerk Authentication before entering to home page

The header section is updated with highscores, settings, and help functionalities by adding seperate routes to them.

navigation/header is added in layout.jsx instead of page.jsx for convinience of navigation through all routes of app.

Implemented Settings section with use name and option to edit theme there also via a toggle button.

Implemented Help section with FAQs as drop down

Highscores section to get to know user's best score as of know using local storage.

Made it Mobile responsive

Its working well on my side. Ok do one thing goto clerk.com and create a new project and use your own api keys you can keep NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
Theses two as it is and change other two which are above these two in .env.local that you have changed from .env.example

Got it. I'll do that now

Bro can I further conribute for same project as can get another hacktober PR done or i have to choose different one all together

@SunkaraboinaPraveenKumar Join the discord server for better understanding..
https://discord.gg/4eYDmch

@vaibhav-gosavi @vprathap21 It would be great if you guys can also join the discord server.
Will help in better co ordination

you can try this link: https://discord.gg/UrQGsZvE

Thank you Brother


Version Packages

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
<EMAIL_ADDRESS>Patch Changes

#826 30117ab Thanks @threepointone! - update deps

<EMAIL_ADDRESS>Patch Changes

#826 30117ab Thanks @threepointone! - update deps

 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.


Make changes on the hero

I think some changes might be needed on the hero:

The sign up button is slightly smaller than the "Get help on an issue" button next to it. But actually, I think we could remove it altogether since there's already a "Sign up" button not far from it on the navbar.

GitHub logo: I am not sure we are allowed to use it in such a prominent way and with a gray background (see https://github.com/logos). If we remove it, we should probably change "beginner-friendly issues" to "beginner-friendly GitHub issues" so that it's clearer what this is about.

To Do:

Remove signup button
Change copy from "beginner-friendly issues" to "beginner-friendly GitHub issues"

Hey!
Thanks for this. I agree on both points!
Should we replace the GitHub logo with some kind of illustration like you designed for one of the other pages?
-Or -
Would it look odd if the logo is white and the background is still grey if we keep it there?

Thank you @awalsh3 for looking into this, I think it might be best to replace it, though I'm not sure with what. Feel free to try something new, whether it's with an illustration or something different for the background, I don't really have a particular idea but I'm very much open to suggestions! 😄

I made this in canva - an open-source icon with a ruby gem! Let me know what you think.

Sorry for the delayed reply @awalsh3 and thank you so much for loonking into this! I didn't know this was the icon for "open source" at first so I admit that the meaning was not clear to me immediately, but now that I know it makes sense. So I'm fine with that, or alternatively just any type of ruby-themed icon.
@ClaireDMT @leawhitelaw @Huiclaire @Samgalgo, what do you think?

Ah right yeah, newer devs will probably think the same. Maybe something else would be better. What about something related to the logo... "Quest" like? The logo needs a change as well? Maybe this can be combined into one issue for a brand design?

Until we get a logo design maybe a placeholder for now could be this?


Develop

Coverage increased (+0.01%) to 84.552% when pulling 5e70576c39e05bd1496ae36a4cfdb1e254516a88 on develop into 03469c68eb75f44fa333854fb9d570c2695cbbdd on qa.


Key vault integration requires firewall to be down

To correctly deploy certificates using KeyVault it requieres to firewall to be down.
Can you incorporate to Azure-CDN the same feature as Azure App service (that can connect to KeyVault even if firewall is on)?
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: beac0740-af6e-61ce-bcfa-e783ca181b7d
Version Independent ID: d97885ea-b051-5fde-bd14-ec977e34760e
Content: Tutorial: Configure HTTPS on an Azure CDN custom domain
Content Source: articles/cdn/cdn-custom-ssl.md
Service: azure-cdn
GitHub Login: @asudbring
Microsoft Alias: allensu

@ClaudioRifo, Thanks for reaching out. We will investigate and update this thread.

@ClaudioRifo, Apologies for the delay in response. This is the same case in Application gateway --> Key vault integration as well. The issue here is they are not been part of Microsoft trusted services list yet. According to docs, APPGW will be added to the trusted list in March 2021. In the same way, CDN would be part of this list soon. You can always provide your feedback and can ask for a feature request here in this feedback section.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


(A.4)Enhance the nlp programs to have a word cloud function as well as a histogram function.

completed. https://github.com/cloudmesh/cloudmesh-nlp/commit/87f6ce395a60ef29b3e86bf8bb793aed97c42a28


Run focus group meeting to validate our product assumption

### Focus group proceed
Introduction:
Welcome the participants and explain the purpose of the focus group, which is to gather feedback on a new app designed to help people stay active and healthy during their daily routines.
Warm-up questions

你多久運動一次？
How often do you exercise?
你通常會做什麼運動呢？
What kinds of activities do you enjoy?
你覺得每天運動10分鐘對是一種挑戰嗎？
Do you find it challenging to stay active during a typical day?

Concept testing questions:
(Experience in Office/fixed space )

在辦公室/固定場所工作的經驗中，您大約多久會離開位子休息一次呢?

In the experience of working in an office, how often do you leave your seat for a break?

您有在辦公室/固定場所伸展身體或是做核心運動嗎？如果有一次的運動大概會花多少時間？

How do you think about stretching/core exercise in the office? How many minutes do you spend at one time?

您有在辦公室裡用過輔助工具(例如健身器材)幫助您運動嗎？如果有會是什麼？

Have you ever used an assistive device (such as exercise equipment) in the office to help you exercise? If so, what would they be?

(Experience in transportation )

您在長途旅行或飛行過程中是否有過疼痛或不適感? 當時您如何解決？

Have you ever experienced any pain or discomfort during a long ride or flight? How did you solve it?

您認為在辦公室或是交通工具運動時，會感覺到不自在嗎？如果有請敘述您的感受。

Do you feel uncomfortable while exercising in the office or on transportation? If so, please tell us how you feel.

您是否嘗試過應用程序或方法在長途旅行中進行鍛煉? 請分享應用程序的名字及優點

Have you tried any other apps or methods for exercising during long trips? Please share the app and advantage with us.

User experience questions

你對車輛中的坐姿鍛煉應用的初步想法是什麼?

What are your initial thoughts about Seated Exercise in Vehicles app?

請操作這個fitness的App的伸展運動的部分,進行1~2次的伸展運動練習,跟我們分享您的想法

Please operate the stretching part of this fitness App, perform 1 or 2 stretching exercises, and share your thoughts with us

你對應用程序中提供的各種練習有什麼看法? 你認為該應用程序的動畫和插圖對演示練習有幫助嗎?

What do you think about the variety of exercises offered in the app? Do you think the app's animations and illustrations are helpful in demonstrating the exercises?

你在使用該應用程序時是否有任何不適或疼痛?
Have you experienced any discomfort or pain while using the app?

你對該應用程序的設計和用戶界面有何看法?
What do you think of the app's design and user interface?
(Share the new design of v2.0 )

Feedback and suggestions:

你希望在該應用中增加哪些額外的功能?

What additional features would you like to see added to the app?

你向朋友或家人推薦這個應用程序的可能性有多大?

How likely would you be to recommend this app to a friend or family member?

你認為該應用程序的免責聲明是否清楚和充分?

Do you think the app's disclaimer is clear and sufficient?

你今後繼續使用該應用程序的可能性有多大?

How likely are you to continue using the app in the future?

你是否願意為該應用程序的額外功能付費?

Are you willing to pay for additional features of the application?

Wrap-up:
Thank the participants for their feedback and ask if they have any final thoughts or comments.


Add ability to create/update TextureIds with custom Sampler options

This PR
This PR adds methods to RenderPass that allow users to specify custom Sampler options when creating/updating egui TextureIds. It does so by:

Adding a method egui_texture_from_wgpu_texture_with_sampler_options that creates its Sampler using the supplied SamplerDescriptor, making sure to set its compare option to None. It then uses this Sampler to create the BindGroup which is pushed into the list of user textures.
Adding a method update_egui_texture_from_wgpu_texture_with_sampler_options that replaces the BindGroup associated with the given user texture with one created using a Sampler created using the supplied SamplerDescriptor, making sure to set the SamplerDescriptor's compare option to None.
Changing the existing implementations of egui_texture_from_wgpu_texture and update_egui_texture_from_wgpu_texture to rely on the new methods in order to reduce code duplication.

Related

This PR closes #42.
This PR is an alternative to #43.

LGTM


Support structured references

Does the following:

Adds support for structured refs.
Clarifies and renames tokens (in a backwards compatible way).
Add a few convenience functions to determine token type.

Fixes #9

Superseded by #24


Completely removing mention of jovyan from images, fix nss home dirctory

Addresses the issue in #1137. Will close #1137 after testing it it verifies that the problem has been solved. Hopefully this will remove jovyan

Closing since I'd like to break this into smaller PRs. The idea is that we should be simplifying the images as much as possible.


How to use python 3 for mbed CLI

Description

Hi,
I am using Windows and I wish to change mbed CLI to use Python 3.
It's because Python 3 supports long path in Windows.
https://stackoverflow.com/questions/46488118/win32-long-paths-from-python
There are multiple issues with Windows + mbed on path limitation.
How do I upgrade mbed CLI to use Python 3?
Issue request type

[x] Question
[ ] Enhancement
[ ] Bug

Internal Jira reference: https://jira.arm.com/browse/IOTBTOOL-365

You should be able to run mbed-cli under which ever python interpreter you have installed (Python >=2.7.10, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.0, !=3.4.1, !=3.4.2, <4).
Although I don't think swapping to Python 3 will fix the long the long path issue.

Thanks, @madchutney .
I will simply change the system's Python version and retry.

@andrewc-arm I recommend that you check out pipenv, don't change your system version of Python.


Feature request : exclude some users from stats

Hi ! First of all thanks for the work it's really cool to see an app like this for Jellyfin. The plug-in did not work as well.
However a functionality I'm missing is the ability to exclude a user from stats. I usually troubleshoot and test content with  a specific Jellyfin account. I don't want to see that account increasing the stats as it is rather "fake" engagement with the content.
Thanks in advance !
Cheers

 exclude some users from stats

Thanks !


[cucumber-expressions] generated expressions - expose argument names

When generating step snippets, I would like the generated expression to expose the argument names, so the function arguments in the snippet use the same name.
Current test
it("documents expression generation", () => {
    const transformLookup = new TransformLookup()
    /// [generate-expression]
    const generator = new CucumberExpressionGenerator(transformLookup)
    const undefinedStepText = "I have 2 cucumbers and 1.5 tomato"
    const generatedExpression = generator.generateExpression(undefinedStepText, true)
    assert.equal(generatedExpression.source, "I have {arg1:int} cucumbers and {arg2:float} tomato")
    assert.equal(generatedExpression.transforms[1].typeName, 'float')
    /// [generate-expression]
  })

Proposed addition to the test
assert.deepEqual(generatedExpression.argumentNames, ['arg1', 'arg2'])

@aslakhellesoy I'm happy to implement this if you agree

That's a great idea @charlierudolph! You think you can do it in all 3 languages?

Yep


bug: fprettify does nothing ?

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I have defined my formatter to use fprettify but when I "Format Document" nothing happens.
If I do fprettify <path> in the terminal, my file get correctly formatted.
I haven't found any message in the output of the extension so I have no idea what is happening
Screenshots
No response
Expected Behaviour
when I "Format Document", my document should be correctly formatted
Version of Modern Fortran
3.2.0
Version of Visual Studio Code
1.71.0
Platform and Architecture
ArchLinux
Additional Information
No response

I don't think that's a bug, formatters are unittested on our CI. It's more likely that the settings are not being passed correctly. What settings are you using? Please check the README on how to setup formatters.

In the settings.json file of the workspace I have
...
    "fortran.linter.compiler": "Disabled",
    "fortran.formatting.formatter": "fprettify",
    "fortran.formatting.path": "venv/bin/fprettify",
    "fortran.formatting.fprettifyArgs": [
        "-c .fprettify.rc"
    ],
    "fortran.fortls.maxLineLength": 120,
...

I tried without the fprettifyArgs, and various path for fprettify (absolute, with or without the executable name)
But I haven't found any output what so ever in order to understand what is happening.

    "fortran.formatting.path": "venv/bin/fprettify",

This is the problem, something like this should work
    "fortran.formatting.path": "./venv/bin",

Thanks, you are right.
But I had another problem, I must also have
    "fortran.formatting.fprettifyArgs": [
        "-c",
        ".fprettify.rc"
    ],

Now it is working correctly. Thanks


Sticky Widget No MOAR!!!

Removes fixedsticky class from guts4form. Switches the fixed sticky on from fixed to static. Adds 1997 style back to top links. Adds text to translation file.
Moves anchor to be around the heading in the widget, adds class to remove underline for anchor, updates spec test to reflect new name of tab for shared with me. Hides back to top link from xs devices.
Fixes #777 and #778


fix(caa upload): match underscores in a-tasket's self_id query param

The seeder previously returned incomplete cached URLs for a-tasket pages, i.e. it only returned only cached=<barcode>-d instead of cached=<barcode>-d_<deezerId>-s_<spotifyId-i_<appleId>.
A cleaner solution would be the usage of URLSearchParams instead of regular expressions. Is/Was there any reason no to use them?
Edit: In any case, that's it from me for today, feel free to release this as a hotfix (we can do the cleaner solution later) or push directly to this branch if you want.

If you're feeling daring, those URLSearchParams could probably also heavily simplify the decoding in seeding/providers.ts. Perhaps even the encoding (if it does that too). 😄


Indicate where phase banner should be placed on the page

We had a question from a user who, after having reviewed the phase banner guidance, was still unclear where the phase banner should be placed on the page.
The text "Your banner must be directly under the black GOV.UK header and colour bar." could include a link to the customised page template example. It shows the placement which is above the back link and <main> (HTML) or inside beforeContent (Nunjucks macro), this would help to clarify the current guidance.

This came up on support on 9 Sep 2020 (specifically in relation to the phase banner):

In our recent DAC review, one of the bits of feedback was:

The feedback phase banner and back link components are not contained within a landmark which means that screen reader users may not be able to navigate to the content effectively.

I understand both of these things should be betwixt the <header> and <main> landmarks.  Is that right?  I am confident about the back button as there are plenty of examples and indications to this on the Design System pages.  I'm slightly less sure about the phase banner but can't find anything that suggests otherwise.

The user also suggested including the phase banner in one of the examples in the Question Pages pattern.
(Originally posted in https://github.com/alphagov/govuk-design-system/issues/1350#issuecomment-689599760, but moved here to avoid duplication and split breadcrumbs and phase banner issues out)


How to fill JSON array one by one?

I try to add new items to empty JSON array. But it is always empty. Why? Correct me please.

            var refs:JSON = []  //or refs = JSON([])

            for i in 0..<5 {

                refs[refs.count].string = "test\(i)"

            }

            print("refs=\(refs)")  //always print refs=[]

I already asked this here, but nothing changed since that time. Or I don't understand what's wrong.

Subscript lets only update existing values but doesn't let append new values (if self.rawArray.indices.contains(index)):
fileprivate subscript(index index: Int) -> JSON {
        ...
        set {
            if self.type == .array &&
                self.rawArray.indices.contains(index) &&
                newValue.error == nil {
                self.rawArray[index] = newValue.object
            }
        }
}

So you can use "merged" instead, for example:
for i in 0..<5 {
    refs = try! refs.merged(with: ["test\(i)"])
}


Can't copy bytecode in Remix.ethereum

Any help would be appreciated. I have been able to copy bytecode in the past, but for some reason, it is not working now. Can anyone help?

I was able to solve the issue by opening remix.ethereum a new tab....

Hey there quick question for ya, how'd you get the drop down next to "deploy" ? ive followed the video to the T yet dont have the option to get that drop down and have those fields.
Much appreciated


tiltfile: use an implicit build context for the docker image

Rather than passing around the image explicitly.

(got a verbal LGTM from @dbentley, modulo those comments I just added)

I'm going to wait until Monday to merge this.


Adding Ability for Markdown Files to Specify Which Pattern It Should Be Associated With (ex. README.md)

For example, if I had a colors.twig file in my code with a README.md file living right next to it (living in a colors folder), currently this file is completely ignored by Pattern Lab.
This update adds the ability to specify a patternType option in the markdown file's front matter to tell Pattern Lab which pattern it should be associated with (or more specifically, which patternType it should be associated with).
---
title: Color Palette
patternType: colors
---

Our primary palette consists of our primary brand color...

Besides offering more flexible in how files are named, this also helps make Pattern Lab much friendlier to monorepo projects where each pattern might be individually versioned, documented, and published to NPM and/or Github where README.md filenames provide a better user experience if browsing a pattern's source files.
CC @aleksip @EvanLovely @evanmwillhite

Awesome! Tested & works. Could we get it so it could make this scenario work?

atoms/

06-buttons/

button-primary
button-alt

06-buttons.md

When you name files like 06-buttons.md it places it above the group, full width, and always visible. I like that placing a lot.

@EvanLovely lemme take a closer look and I'll let you know!
Definitely agree with you though. I've found myself doing a bit of both -- some pattern specific docs to target unique or specific features, etc  + more generalized docs covering a whole family of patterns.

Closing out - new PR opened on the main Pattern Lab repo https://github.com/pattern-lab/patternlab-php-core/pull/125


AttributeError: 'ForwardManyToOneDescriptor' object has no attribute 'rel'

Error appears when trying to create migrations (python manage.py makemigrations).
File "C:\Anaconda3\lib\site-packages\wagtail\utils\decorators.py", line 49, in value
return self.fn(self.cls)
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 811, in get_edit_handler
return edit_handler.bind_to(model=cls)
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 146, in bind_to
new.on_model_bound()
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 285, in on_model_bound
for child in self.children]
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 285, in
for child in self.children]
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 146, in bind_to
new.on_model_bound()
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 285, in on_model_bound
for child in self.children]
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 285, in
for child in self.children]
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 146, in bind_to
new.on_model_bound()
File "C:\Anaconda3\lib\site-packages\wagtail\admin\edit_handlers.py", line 694, in on_model_bound
self.db_field = manager.rel
AttributeError: 'ForwardManyToOneDescriptor' object has no attribute 'rel'
Technical details

Python version: 3.7.3.
Django version: 2.2.3.
Wagtail version:  2.7a0.

Hi @gagaga67 - we'd need to see the relevant model code to diagnose this. Judging from the error, you're probably using an InlinePanel with the wrong sort of relation.

Hi! May be. I added a ForeignKey field to the InlinePanel. Models event and organization. When editing an event, I wanted to add an organization if it is not in the database, otherwise select from the list.

OK, will close this for now - please update if you're able to independently reproduce this and confirm that it's a Wagtail bug rather than a coding error.


Adding TestCompositeKnot capable of emitting and observing actions

Codecov Report

Merging #8 into master will decrease coverage by 7.25%.
The diff coverage is 26.08%.

@@             Coverage Diff              @@
##             master       #8      +/-   ##
============================================
- Coverage     93.43%   86.17%   -7.26%
  Complexity       14       14
============================================
  Files             4        5       +1
  Lines           198      217      +19
  Branches         17       17
============================================
+ Hits            185      187       +2
- Misses            8       25      +17
  Partials          5        5

Impacted Files
Coverage Δ
Complexity Δ

knot/src/main/kotlin/de/halfbit/knot/Knot.kt
95.34% <ø> (ø)
0 <0> (ø)
:arrow_down:

...t/src/main/kotlin/de/halfbit/knot/CompositeKnot.kt
95.12% <ø> (-0.12%)
0 <0> (ø)

...c/main/kotlin/de/halfbit/knot/TestCompositeKnot.kt
0% <0%> (ø)
0 <0> (?)

...ain/kotlin/de/halfbit/knot/CompositeKnotBuilder.kt
92.3% <100%> (+0.47%)
6 <2> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

Hrm, what do you think about eventually moving all those test-related classes into a separate artifact (knot-test?) so people can just depend on that in test scope? I know RxJava itself does not do this with its own TestObserver that directly sits in the main package, but I always felt this as being in the wrong place.

Right, this makes sense, but there is a trade-off. Once I've put Knot and CompositeKnot implementations into two different modules. I thought it would be logical in that way. But then I quickly realized, that because of the limited set of Kotlin's access modifier I either had to make some internal stuff public, or duplicate the code.
The same problem exists with TestCompositeKnot. It requires access to actionSubject: PublishSubject<Any>, which currently belongs to internal implementation. Moving TestCompositeKnot into another module will require making it public. The question is what's better, exposing a test implementation or exposing internal implementation details. Any thoughts?

Yeah, thought as much. Without Java's package visibility available in Kotlin (and no concept like C++'s friend declaration in place either) you cannot bridge the gap between the modules without making things public.
Sometimes I wish Kotlin would get a concept like group visibility, a "higher-order" internal visibility that spans the complete Maven group, consisting of several modules, basically what Java 9 modules provide IIRC.


Feature request: Get access to remaining refcount from .Release()

Motivation
In certain APIs, such as when freeing placed ID3D12Resources prior to clearing up the underlying allocation it would be beneficial to assert that .Release() returns 0; i.e. we are the last owner of this object.
I typed up a test locally to validate refcounts:
impl IUnknown {
    /// Returns the remaining refcount after dropping the object
    #[must_use = "Use the regular Drop destructor if you do not need the remaining refcount"]
    pub fn release(self) -> u32 {
        let intf = std::mem::ManuallyDrop::new(self);
        unsafe { (intf.vtable().Release)(std::mem::transmute_copy(&intf)) }
    }
}

And use it like:
let r = ManuallyDrop::into_inner(resource.resource);
assert_eq!(IUnknown::from(r).release(), 0);

Drawbacks
Extra complexity/code to maintain?
Rationale and alternatives
The only alternative is not checking this refcount and assuming that the COM object disappears when we drop it (because we're supposed to be the last owner).
Additional context
This is similar to using Arc::try_unwrap().unwrap() to make sure that an Arc isn't kept alive elsewhere, when in a shutdown path (i.e. we've used it to detect cyclic dependencies in the past).
Bonus
I doubt anyone needs access to the clone refcount, but we could similarly provide it:
    pub fn add_ref(&self) -> (Self, u32) {
        let c = unsafe { (self.vtable().AddRef)(std::mem::transmute_copy(self)) };

        (Self(self.0), c)
    }

(And implement fn clone in terms of self.add_ref().0)

@kennykerr ack, this is a debug purpose (and should probably switch to debug_assert! to that effect) and it depends on the kind of object whether it meaningfully implements these.
I've seen cases where 1 is returned, but that's for singletons that are always alive statically and can never be dropped. ID3D12Resource seems to implement something proper, but if you're confident that that's just appearance, we'll have to live dangerously here :/

Note that D3D12 isn't a COM API - it uses IUnknown, but doesn't use any of the COM runtime - and so doesn't interact with CoUninitialize.
When working with placed d3d12 resources, where one or more ID3D12Resources are "placed" into a ID3D12Heap, the application needs to implement some kind of allocation scheme for the resources in this heap.  I think that @MarijnS95 is looking for a way to verify that when they tell their allocator that a resource has been destroyed that it really has been destroyed.
Release() returning 0 then that's traditionally been a pretty good indicator that the object has been destroyed - and that if for some reason Release() hasn't returned zero at this point then they'll need to track down what other thing is keeping that object alive.  I don't think that there's any meaningful values other than zero or non-zero here.
D3D12 is pretty unique in that there's an entire set of object lifespans going on involving things running on the GPU.  For example, an ID3D12GraphicsCommandList can be used to write commands to a ID3D12CommandAllocator.  If the GPU is asked to execute the command list, then that command allocator must not be destroyed until after the command list has finished executing.  ID2D12Fence objects are used to determine when this has happened.  It is up to the developer to keep track of all of this, and I think that may well result in cases where it's useful to be able to assert that a Release() call did or did not result in destroying the object.
Possibly though, since this only really applies to one set of APIs (it doesn't apply to D3D11 for example), I'm not sure this belongs in windows-rs proper.  It should be possible to implement a "last_drop" or "not_last_drop" function in application code I think?

I could add a release helper for this purpose. The trouble I've historically had with such helpers is that they tend to confuse developers into thinking that they should call it in all cases "just in case" lest things don't get released properly. It's the same reason I don't provide handy wrappers for things like CoInitializeEx and CoUninitialize. But you're certainly welcome to write your own helper that exposes the ref count for the rare case where it matters.

I could add a release helper for this purpose. [..] But you're certainly welcome to write your own helper that exposes the ref count for the rare case where it matters.

And contribute that helper to this repo? I can definitely PR the suggestion above, and opened this issue mostly for feedback and improvements before doing so :)

The trouble I've historically had with such helpers is that they tend to confuse developers into thinking that they should call it in all cases "just in case" lest things don't get released properly. It's the same reason I don't provide handy wrappers for things like CoInitializeEx and CoUninitialize.

Agreed, hence my suggestion above explicitly includes #[must_use], explaining that if the refcount is not needed regular drop semantics should be used (and we could bikeshed the wording/linking to make sure this is understood). If developers refuse to understand that... well... maybe drop semantics aren't explained properly (neither on the Rust side, nor that windows-rs implements them correctly)?
For now it is anyway only available on IUnknown and hidden behind an IUnknown::from(), any suggestions about that or is that instead a good barrier?

And contribute that helper to this repo? I can definitely PR the suggestion above, and opened this issue mostly for feedback and improvements before doing so :)

No, don't think we want that here. I don't see it as being particularly valuable--traditional and reliable COM teardown happens already at process termination. It not clear what developers should/can do if Release returned non-zero.

Yes, I wasn't suggesting adding to windows-rs - it's definitely an anti-pattern so I wouldn't want to promote it here.


Update bond.c

hello,i am guozhuangzhuang ,nice to meet you !haha

hi, guozhuangzhuang,
would you please explain the pull request？thanks!


Delete temporary copies of ranges on closing their SSTables

Otherwise deleteOnExit only removes them when the JVM exits, which can
take a long while on Spark!
Why deleteOnExit in the first place?  File.createTempFile actually says to
do that, without explaining when to improve it...

Fixes #5241.


SWARM-849: Read external keycloak.json

[x] Have you followed the guidelines in our Contributing document?
[x] Have you created a JIRA and used it in the commit message?
[x] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[x] Have you built the project locally prior to submission with mvn clean install?

Motivation
It'd be helpful reading external keycloak.json
because you don't have to re-build -swarm app
when re-writing keycloak.json.
Modifications
Add a process to read external keycloak.json
pointed from system property(swarm.keycloak.json.path).
If the system prop doesn't exist, search it from classpath as
usual.
Result
-swarm apps can read external keycloak.json.

Maybe instead of implementing it within SecuredImpl, as we're looking to move away from main() usage, it should be an ArchivePreparer instead?
Then it would be possible to @Inject Configurable into the ArchivePreparer?


ignore output of part of a rule

First of all: this is great. I haven't had that much fun writing a grammar for ages.
I want to use PEGTL for something relatively straightforward, parsing Lua tables.
I've got something working based upon your Lua example and I'm happy with the progress I've made in just a few hours.
But as I am getting into attaching actions to the rules (to construct values from the parser run), I see that I will hit a snag with the unary plus/minus operator that I need for numerals. Unfortunately, - --[[ this is silly --]] 2 is valid Lua and -2.
In my rule:
	struct decimal_signed : p::seq< p::one< '+', '-' >, seps, decimal > {};

I'd like to ignore the seps, i.e. I want to match it, but not have it produce any output. What is the best way to achieve this?

First of all: Thanks for the kind words, we are glad that you enjoy using the PEGTL :-)
Regarding your question, there is (currently) no way to obtain only part of the matched input, short of attaching multiple actions to the sub-rules, which should be the easiest way to achieve what you need:
Let the action attached to thep::one< '+', '-' >-rule remember the sign in a state, then do everything else in the action attached to decimal.
(Presumably you need the sign and the digits together in order to to call a standard string-to-integer function; in that case, since the data might not be contiguous in the input, it will have to be somehow "copied together". Or you can roll your own string-to-integer function spread over the two actions...)

Adding another idea:
struct decimal_plus : decimal {};
struct decimal_minus : decimal {};
struct decimal_plus_full : p::seq< p::one< '+' >, seps, decimal_plus > {};
struct decimal_minus_full : p::seq< p::one< '-' >, seps, decimal_minus > {};
struct decimal_signed : p::sor< decimal_plus_full, decimal_minus_full > {};

Then attach your actions to decimal_plus and decimal_minus. In the latter case, just convert the input to a number and negate that (positive) number after a proper range check.

Nice! Thank you!
I think I'll use a variant from @d-frey with actions attached to decimal_minus and decimal_nosign:
struct decimal_nosign : numeral_one< p::digit, p::one< 'e', 'E' > > {};
struct decimal_minus : decimal_nosign {};
struct decimal_plus_full : p::seq< p::one< '+' >, seps, decimal_nosign > {};
struct decimal_minus_full : p::seq< p::one< '-' >, seps, decimal_minus > {};
struct decimal : p::sor< decimal_plus_full, decimal_minus_full, decimal_nosign > {};

You're welcome. If similar problems come up more often in the future and the work-arounds get out of hand, feel free to re-open this issue.


Get copy / paste to work on Mac

Turns out Mac just Does things differently ™  :trollface:  🤦
Let's add back copy/paste support into Mac ✅
https://www.codedmaster.com/2017/01/24/getting-electron-copy-paste-shortcuts-for-mac-builds/

Fixed 🚀 😎


Reimplement free energy

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

13 of 13 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>4:
0.0%

Covered Lines:
835

Relevant Lines:
835

💛  - Coveralls


Repo sync for protected CLA branch

The pull request is created from main637871257967778739 to main to fix git push error for protected CLA branch

@opbld16 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Hoppers wont place

I've been trying to place hoppers and it lets me "place them" and the item is taken from my inventory but no hopper is shown in the block I placed it in. I tried mining the block as well and nothing was there except for the dirt below

After doing some tests (Below) I guess it is a client sides issue and was solved by having Mack reboot his mc + launcher. After doing this he was able to place them in the claims again.
Successful trying to place in my own claim, having a premier rank do it in their claim + in a trusted one
Side note: While this was occurring, he was only able to place it in the wild, his own claim was not working. Leaving this here since I believe this information can be used for future cases with this issue for comparison.

Closing the issue as there have not been any reports about it.


Slow update of activity

I've noticed that the activity widgets seem to fade up/down when they change state, meaning that if there is a quick flow of data the widget struggles to keep up - I have been experimenting with a device that kicks out osc - on touchosc on iPad the equivalent control flashes at the appropriate speed but it's not quite so effective on this.
Is there a setting to control the fade? Or is it something deeper?
Thanks!

I am just fading in and out over time.  I will make it a setting, so you can change it to be instantaneous...

Tightened the default animation timing, and you can now shrink it even more with Min/Max2 fields
Thanks for the suggestion Richard :)


Can't choose other db schema than public in supabaseDataProvider

I can't change a schema different from the public one passing a parameterized supbaseClient to supabaseDataProvider.
const options: SupabaseClientOptions<"stats"> = {
    db: { schema: 'stats' }
}
export const supbaseClient =
    createClient<StatsDatabase>(process.env.NEXT_PUBLIC_SUPABASE_URL!,
        process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
        options);

Would you mind considering to use generic parameters in supabaseDataProvider?

Sure, can you open a PR?

Fixed via #47


Moving plex.plexmediaserver v<IP_ADDRESS>05

[x] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

What/where are you moving it to btw @KaranKad


Tie-in with About Time and Calendar/Weather

First off, excellent work on this module! I came from Fantasy Grounds and having a calendar view with the option to add date-specific notes was missed. Hugely appreciated!
Not sure if this is already something you are planning or intending, but I also use Calendar/Weather with About Time. It's nice to be able to easily progress the time and day, and have things trigger by time of day. Would it be possible for your module to sync up with them? To where the day for Simple Calendar progresses at the same rate?

I'd suggest just to add a time tracker, without syncing up. Easier and less overkill then C/W+About Time.

I can look into doing both.
A time tracker built into this calendar.
Or if a user chooses (via a setting) and the modules are installed I can look into hooking into the About Time tracking.
That said I haven't looked into what is all involved in setting this up so it may be a bit of time before this feature is ready and the about time tie in might get cut if it ends up being too involved.

Thanks!
From what I've looked, the documentation for About Time is fairly thorough. So hopefully it won't be too difficult.

I love this module a lot. It is my experience that this module replaces the "Calendar/Weather" module that is done by DasSauerkraut.   It basically does the same thing minus the about-time addition and then adds all the things unique to this module.  I think the time tracker idea is cool though and the sync with about-time. Those make sense.

I have tied in Simple Calendar to the game world time so it updates that and gets updated by changes to it, this allows for a nice integration with about-time (and by extension Calendar/Weather).
Simple Calendar also now has its own time tracker so as real world seconds go by the game time can advance (by how much is configurable). This time tracker is paused when the game is paused and it also pauses when a combat has started and increments each round of combat by the number of seconds for a round (for D&D/Pathfinder that is 6 seconds). So it should work with effect tracking modules though that is not 100% tested.
I have also gotten importing settings from about-time and calendar/weather into Simple Calendar working as well as exporting settings from Simple Calendar into about-time and calendar/weather working, with some caveats due to issues in the other modules. More details about that can be seen here
Getting this all set up was a bit of work but it is now on to testing/clean up. I also want to add a couple more things before making a new release but this will be out in the wild soon I hope.

Fantastic work Vigoren! Looking forward to the update. Keep up the hard work, it is very much appreciated!

Sorry this took so long but this should be all good to go in the 1.2.0 release.
I have heard that the author of Calendar/Weather is no longer updating that module so importing those settings in Simple Calendar might be a better way to go instead of using both.


have_inline_labels config not working with ManageRecords

Package
filament/filament
Package Version
v2.0.0
Laravel Version
v9.1.2
Livewire Version
v2.0.0
PHP Version
8.0.0
Bug description
have_inline_labels not working with ManageRecords (Form Modal)

Steps to reproduce
No response
Relevant log output
No response

Yeah this is deliberate. We've found that inline labels don't look very good in modals because of the reduced space, so that setting only applies to main resource forms.


(DRAFT) NEW: Parameter support for q2galaxy

https://github.com/qiime2/q2galaxy/pull/10/commits/bb88be47bf1f681e8f85fef6754837e9d1690fb7 the q2-mystery-stew methods attempting to template demonstrated that Bools with a Choice predicate were impossible to template. They seemed to be the only ones that wouldn't register based on further probing. The solution I ended up with was just casting the choice values to a string. I don't think this will work. This seems to actually work based on preliminary testing, but it doesn't feel like it should. It feels like it should pass the string "True" or "False" to the method as a supposed boolean.

I've run into a few oddities attempting to run methods through galaxy with tutorial inputs

An issue that isn't really related to the other two, and I'm not even 100% sure it's a problem. A LOT of methods don't seem to be registering with galaxy at all. No dada2 methods, only one deblur method etc. etc. I was under the impression we were attempting to register all qiime2 methods period, so this seems like an issue to me. I noticed this when trying to replicate tutorial method executions in galaxy and a bunch of the methods,particularly from the "Moving Pictures" tutorial just weren't there. I haven't investigated potential causes of this one too closely yet.

Attempting to run metadata tabulate on stats-1.qza from the fecal microbiota transplant tutorial results in the following

TypeError: Parameter 'input' requires an argument of type Metadata. An argument of type SampleData[DADA2Stats] was passed.

Possible cause: There is a transformer that should be called but isn't? If so, I can't find it. Otherwise not really sure what's going on here. Haven't dug TOO deep yet though. I did confirm the exact same command works without issue through the cli.

Attempting to run feature-table merge on table-1.qza also from the feval microbiota transplant tutorial results in the following

TypeError: TypeError: Parameter 'tables' requires an argument of type List[FeatureTable[Frequency]]. An argument of type FeatureTable[Frequency] was passed.

Possible cause: The method is registered with List[FeatureTable[Frequency]] as the input type. The header just has biom.Table though. So the method is templated out only wanting one feature table when it really needs a list (even if that's just a list of one)
And more, issues like the above seem to occur with just about every method I attempt to run with tutorial inputs. The only one that actually worked without a hitch was feature-table tabulate.

Qiime metadata tabulate now works on the data from the fecal microbiota tutorial. It works on code stolen from q2cli.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/fb7731a610be95a3d9610ee704e779d176927087 the feature-table filter-samples example in moving picture can be executed through galaxy

Next step is figuring out this stuff with collection arguments which is proving to be a real pain at least when it comes to inputs.

feature-table merge now works indicating that collection inputs are now at least partially functional.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/a0f15266260f1ea24b262937c194e8a33d09cdf0 the method for handling metadata columns involves creating two separate galaxy parameters. One of these parameters takes the metadata file, and the other takes a string representing the name of the desired column.
The first of these two arguments is what is templated from the actual argument the Qiime method wants a MetadataColumn for. The second is created out of thin air and is never passed to the Qiime method in any way. It is used in q2galaxy to get the desired column from the first parameter and that is then passed to the Qiime method.
The code that extracts the desired column from the metadata is in _convert_metadata which is called by action_runner. This code is taken directly from the q2cli method of the same name with minimal modifications at this time.

Running Moving Pictures through galaxy has taught me that this is borderline unusable if we don't have some way to actually name the outputs.

The only stuff I can find in the galaxy documentation about changing output names involves manually renaming them after they've been created

We also probably need at least some of the qiime tools methods to be available through galaxy so data can be imported through galaxy.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/26949a6a92e06a91cf1e000e2f0d52796bb7eaf2 most things work. Some of the more complex types don't template out correctly right now though.

I suppose the next step is adding import/export. I can't 100% guarantee everything is templating and passing params around properly now, but it certainly seems like it is. If I find something else that explodes, I'll fix it.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/c3dd7bac0d579419779ec639812e2498494f8cc5 when I attempt to import data I get the error "Unable to finish job" with 0 context. I have established that the code gets as far as returning from run, so I'm not entirely sure what I'm missing. Hopefully the next commit will fix it.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/2bcc9b4887d3a57b1715e0d8410d82529bf59d7f import should be more or less fully functional, the templating definitely needs to be spruced up a bit though. Export allows exporting of data from an external artifact to an external directory. Next step is try to make export work on items in the galaxy history.

This PR has gotten kind of bloated. The actual parameter support is definitely ready to look at. But now we also have import and export here :joy:. Import works alright (I think), export still barely works at all.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/13eccd9c70d8a3b48c6155ff78e43f7b2d187f7d the MANIFEST needs to be put in the collection somehow, and it also only needs to be output when applicable. It also handles visualizations very poorly. Things that contain nested directories isn't working properly.

As of https://github.com/qiime2/q2galaxy/pull/10/commits/05e61e723d08f4eaa6b229ea8d8d5f224a9a1ccb importing is being transitioned away from importing data from disk and towards importing data that is already in the galaxy history. The primary challenge this presents is that galaxy does not store the history items on disk with their original filenames meaning none of them have the names Qiime2 wants in order to import them as an artifact. Galaxy is storing their original names somehow, and hopefully there is some way to actually access them so I can rename the files in order to import them, but I don't know how to do this yet if it is possible.
Also still need to make exporting with alternative formats possible.
And ideally we want the list of available formats in import (and probably export if possible) to be truncated based on the type given. But I don't think this will be possible.

https://github.com/qiime2/q2galaxy/pull/10/commits/5db0994a2b89d249b7602b84ba68bdf972f9d1c0 I got stuck on the hard part, so I did the easy part to feel better about myself


Is there some doc of how synchronization work ?

Hi - Thank you very much for your work, With that help, I wrote a plugin that integrates chromecast with logitech media server. It also works with CC groups, but I was wondering if there is any way to have access to the synchro protocol between CC's as, ideally, I'd like to sync with other LMS players. I've already done that with AirPlay, but in case of CC, I have no idea how to do fine playback (sample) control time.

I have no idea, sorry. I leave this open in case someone that knows passes by.

Closing for inactivity


Update dockerfiles to use Debian Buster.

This should hopefully resolve some python3/repo issues.

RPi in CI on master is still failing, and the oe-selftest run timed out (https://main.gitlab.in.here.com/olp/edge/ota/connect/client/meta-updater/-/jobs/11865986) but I'm retrying now.

RPi in CI on master is still failing, and the oe-selftest run timed out (https://main.gitlab.in.here.com/olp/edge/ota/connect/client/meta-updater/-/jobs/11865986) but I'm retrying now.


wallpaper calendar

why not using crontab format
https://github.com/xyproto/monitor/blob/561f15bedc3e3586e4b193b9e96aed5ce2ad233c/cmd/xml2stw/SPEC.md
In my opinion random images from 8:00-10:00 will be great
Why config must be a file? i cant integrate it with calendar or data base, communicator?

Hi, thanks for asking.
I considered the crontab format in advance, but it's not a great fit for the following reasons:

If specifying several images at several different times, it would be a lot more verbose. For one, the Simple Timed Wallpaper format supports format strings, which reduces the verbosity a lot.
It does not convert cleanly to and from the exiting GNOME timed wallpaper XML format.
If I would go for the crontab format, people could just as well use cron to set the wallpaper, for instance with the setwallpaper utility that is part of this monitor project.

It is fully possible to use cron and the crontab format, together with the setwallpaper utility, for setting wallpapers at certain times or dates.
Configuration does not have to be stored in a file, but there is a long tradition and convention for storing configuration as files on Linux or UNIX-like systems.
I think the ability to switch out wallpapers at certain dates is a good idea. I have also been thinking a lot about having support for scripts instead of times, like this:
@/usr/bin/myscript.py: /usr/share/backgrounds/mywallpaper.jpg

This would make it possible to create custom scripts that return exit code 0 or 1, for when the event should kick in. It would also make it easy to integrate with anything that Python supports.
The downside would be that timed wallpaper packs would have to include executable scripts, and there is a safety aspect to this too. If the format is kept simple and does not support scripting, it should be quite safe to download random timed wallpaper packs online and run them as a user. At least the effort needed to exploit it in any way should be significantly higher.
Adding script support would allow easier integration, but possibly make timed wallpapers less secure.
One way to get the best of both worlds could be if only scripts that are not writable by the user could be executed by the timed wallpaper. Then again, it would potentially require a more involved installation procedure.
I guess an --allowscripts flag could be another way to deal with this.

In short: I believe you can achieve what you are asking for with a combination of cron, python and the setwallpaper utility that comes with this project.

please add random list not only one image in time interval

You can set a random image by using the setrandom command that is also included with this project.
Combine that with cron, and it sounds to me like you have a solution to what you are looking for?


Document changeStringEnumsToEnumShapes transformer

Adds docs for changeStringEnumsToEnumShapes transformer, including behavior from https://github.com/awslabs/smithy/pull/1739
Additionally, it updates the changeTypes documentation to include its ability to transform Strings with @enum traits to Enums.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This transform is available to 1.0 IDL too, since we load everything as 2.0 and serialize as 2.0 anyways. Should we document this in the 1.0 docs too?


Update WordPlate description

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[ ] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[x] Content (and my changes are in index.md)

We've recently looked through and updated our texts for WordPlate. It would be nice to make the GitHub topic follow the WordPlate project desscription.

@kenyonj ✅


serverspec/inspec for ubuntu

For ubuntu:

both serverspec and inspec enabled
Only os spec check use serverspec
Others use inspec as rhosp

is this still a WIP?

rebased and squash commits.

retest

retest

retest

LGTM


uif-table updated with selected items attribute

Updated the uif-table directive with the option to specify the selected items. So when multiple items are selected you are now able to retrieve the from the table directive which wasn't completely implemented.
<uif-table uif-row-select-mode="multiple" uif-selected-items="$ctrl.selecteditems">
...
...

Coverage decreased (-0.07%) to 97.569% when pulling 1471dc7a93a34522932a314bfe5235b27da9b05c on emilverwoerd:bug/selecteditemstable into 7f88ffea0b26faa971fd5d185fef5948daec270b on ngOfficeUIFabric:dev.


missing documentation crap

Please check for duplicates or similar issues before creating this issue.
none
What is your suggestion, and why should it be implemented?
fr make the discussions public and the wiki too so idk

I can’t do anything about the discussions, since that’s up to @Erizur but I can help make documentation

alright, soo

make some crappy steps in readme.md i guess and closed when youre done?

yea, and the wiki too

okay

Once modding support gets fully implemented, I will most likely create documentation, if you want to add/modify stuff you will have to do it by editing the source code.

Once modding support gets fully implemented, I will most likely create documentation.
If you want to add/modify stuff to the engine you will have to do it by editing the source code. Closing this for now and will reopen once I can manage this correctly.

I could help with that tho


Skip lazy imports when the caller is inspect.py

What does this PR do?
This avoids having certain inspect functions import our lazy modules when we don't want them to. getframeinfo in particular appears to do it, and this gets called by PyTorch at some point. IPython might also be doing it but autocomplete still seems to work.
This does not appear to break anything. Added test for hyperpyyaml to ensure we're not breaking that.
Fixes the issue where the redirection warning was emitted even if you weren't using speechbrain.pretrained, and prevents some lazy imports from forcefully being imported.

Before submitting

[x] Did you read the contributor guideline?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes? (if necessary)
[x] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[x] Did you list all the breaking changes introduced by this pull request?
[x] Does your code adhere to project-specific code style and conventions?

PR review

Reviewer checklist

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified
[ ] Confirm that the changes adhere to compatibility requirements (e.g., Python version, platform)
[ ] Review the self-review checklist to ensure the code is ready for review

I'll be honest, some of what's going on here is a bit beyond me without studying it more, but it seems to work.
Just a question though, I get wanting to prevent imports that are unnecessary but was it causing crashes or is it just to improve speed of loading etc.? Just asking because this adds some complexity to the lazy modules and I want to make sure its worth it.

The problem is that the pretrained->inference lazy import raises a warning at import time because of the issue I mentioned, so the warning would often get printed even if  you were never importing .pretrained.
Theoretically, we could instead have a check in the warning rather than doing this, but I believe that it could result in the warning never being raised in some cases (since the lazy module will no longer do anything once the import is done, so it couldn't catch a "genuine" import speechbrain.pretrained if .pretrained already got imported "accidentally").


Chunking code makes odd assumption

func CreateChunks(fileContent string, window int, stride int, title string) []Chunk {
	sentences := strings.Split(fileContent, ".") // assuming sentences end with a period
	newData := make([]Chunk, 0)

	for i := 0; i < len(sentences)-window; i += stride {
		iEnd := i + window
		text := strings.Join(sentences[i:iEnd], ". ")
		start := 0
		end := 0

		if i > 0 {
			start = len(strings.Join(sentences[:i], ". ")) + 2 // +2 for the period and space
		}

		end = len(strings.Join(sentences[:iEnd], ". "))

		newData = append(newData, Chunk{
			Start: start,
			End:   end,
			Title: title,
			Text:  text,
		})
	}

	return newData
}

Based on the source, this seems to assume that the minimum document will have 20 sentences. Anything less than 20 sentences does not appear to create any embeddings. This probably isn't the desired result. It would probably be better to chunk based on token count rather than sentence count.

@Aemon-Algiz yeah, the chunking for different types of documents can be improved significantly... Some thoughts:

Books and video/audio transcripts – 20 sentence chunks are largely fine. Only consideration as you pointed out is sentences can vary wildly in size, so estimated tik-token count would be nice to factor in, for some cases.
Legal documents and code/manufacturing documentation – Structure (sections, subsections) is particularly important for these, so all things being equal, it would be better to ingest an entire section instead of 20 sentences.
Code – obviously, code is not oriented around sentences. So a completely different chunking algorithm would be needed for documents containing code.

If anyone has any other thoughts, I'd be happy to hear them.

I modified this locally to use a NLP library to detect sentences, I think it's a bit better at dealing with different media types, no PR because my local version is a kludgy mess atm, but here's my replacement CompleteChunks function (note it has an extra parameter to define sentences to pull, so make sure to update the caller too:
func CreateChunks(fileContent string, window int, stride int, title string, chunkSize int) []Chunk {
	doc, err := prose.NewDocument(fileContent)
	if err != nil {
		log.Fatal(err)
	}

	sentences := doc.Sentences() //strings.Split(fileContent, ".") // assuming sentences end with a period
	newData := make([]Chunk, 0)

	c := 0
	text := ""
	start := 0
	end := 0
	for si, _ := range sentences {
		text += " " + sentences[si].Text
		end = start + len(text)

		if c == chunkSize || (c < chunkSize && si == len(sentences)) {
			if checkTokenLimit(text) {
				// only write chunks that are ok
				newData = append(newData, Chunk{
					Start: start,
					End:   end,
					Title: title,
					Text:  text,
				})
			} else {
				fmt.Println("chunk size too large!")
			}

			text = ""
			c = 0
		}

		c++
		start = end + 1
	}

	return newData

}

And a test:
func TestCreateChunks(t *testing.T) {
	// 14 sentences
	doc := `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pretium scelerisque lorem eget eleifend. Suspendisse condimentum libero at nisl commodo, ac pretium sapien convallis. Sed id lectus non justo varius semper sit amet in sapien. Proin arcu arcu, consequat fermentum tortor lacinia, tincidunt consectetur turpis. Donec iaculis tincidunt iaculis. Cras pulvinar mauris tempor lectus lacinia efficitur. Sed in nibh tellus. Curabitur molestie aliquet leo, non efficitur felis. Integer condimentum libero nec sapien ultrices accumsan. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam quis sagittis dui. Phasellus venenatis nulla quis ligula rutrum bibendum.`
	chunks := CreateChunks(doc, 1, 1, "foo", 1)

	if len(chunks) != 12 {
		tx := ""
		for _, s := range chunks {
			tx += s.Text
		}

		fmt.Println(tx)
		t.Fatalf("expected 12 chunks got %v\n", len(chunks))

	}
}

// MaxTokensPerChunk is the maximum number of tokens allowed in a single chunk for OpenAI embeddings
const MaxTokensPerChunk = 500
const EmbeddingModel = "text-embedding-ada-002"

func CreateChunks(fileContent string, title string) ([]Chunk, error) {
	tokenizer, _ := english.NewSentenceTokenizer(nil)
	sentences := tokenizer.Tokenize(fileContent)

	log.Println("[CreateChunks] getting tiktoken for", EmbeddingModel, "...")
	// Get tiktoken encoding for the model
	tiktoken, err := tke.EncodingForModel(EmbeddingModel)
	if err != nil {
		return []Chunk{}, fmt.Errorf("getEncoding: %v", err)
	}

	newData := make([]Chunk, 0)
	position := 0
	i := 0

	for i < len(sentences) {
		chunkTokens := 0
		chunkSentences := []*s.Sentence{}

		// Add sentences to the chunk until the token limit is reached
		for i < len(sentences) {
			tiktokens := tiktoken.Encode(sentences[i].Text, nil, nil)
			tokenCount := len(tiktokens)
			fmt.Printf(
				"[CreateChunks] #%d Token count: %d | Total number of sentences: %d | Sentence: %s\n",
				i, tokenCount, len(sentences), sentences[i].Text)

			if chunkTokens+tokenCount <= MaxTokensPerChunk {
				chunkSentences = append(chunkSentences, sentences[i])
				chunkTokens += tokenCount
				i++
			} else {
				log.Println("[CreateChunks] Adding this sentence would exceed max token limit. Breaking....")
				break
			}
		}

		if len(chunkSentences) > 0 {
			text := strings.Join(sentencesToStrings(chunkSentences), "")

			start := position
			end := position + len(text)

			fmt.Printf("[CreateChunks] Created chunk and adding it to the array...\nText: %s\n",
				text)

			newData = append(newData, Chunk{
				Start: start,
				End:   end,
				Title: title,
				Text:  text,
			})
			fmt.Printf("[CreateChunks] New chunk array length: %d\n",
				len(newData))
			position = end

			// Set the stride for overlapping chunks
			stride := len(chunkSentences) / 2
			if stride < 1 {
				stride = 1
			}

			oldI := i
			i -= stride

			// Check if the next sentence would still fit within the token limit
			nextTokens := tiktoken.Encode(sentences[i].Text, nil, nil)
			nextTokenCount := len(nextTokens)

			if chunkTokens+nextTokenCount <= MaxTokensPerChunk {
				// Increment i without applying the stride
				i = oldI + 1
			} else if i == oldI {
				// Ensure i is always incremented to avoid an infinite loop
				i++
			}

		}
	}

	return newData, nil
}


Update percent_return.py enforce fill method on pandas pct_change

adjust the pct change

@bossdown123
Curious.
Does the following not calculate percent change correctly with the exception of filling some nan ?
pr = (np_close / roll(np_close, length)) - 1
pr[:length] = nan
# Why not handle nans here?
pct_return = Series(pr, index=close.index)
# Or here?

Thanks,
KJ

@bossdown123
Upon further review, there does not appear to be any difference between either calculation or speed on the development branch. Thus I am keeping the original code unless you have further evidence to the contrary.
Here is the core code tests I ran in Jupyter:

pd.testing.assert_series_equal(tapr, pdpr, check_names=False) never threw False either.

Thanks for helping to making the library better!
Kind Regards,
KJ


lvgl kconfig: Add some of the missing configuration options into the menuconfig interface

What the title says :).

Most of the LVGL configuration options are now available on the menuconfig interface. Some options are not available because the Kconfig types are limited or those options are currently set-up when configuring the display used in the project.
I think the display dependent options need to be configured in the LVGL menu, this way LVGL can be used with other display drivers and not necessarily the available here, what do you think?

Looks good to me.
Although there are some new defines in v7.3 as well: LV_USE_OULINE/PATTERN/VALUE_STR and LV_MEMCPY_MEMSET_STD.
As we already discussed turning lvgl to esp component would allow managing Kconfig by a script.
@C47D you mentioned some types can't be added to Kconfig due to its limitations. Can you tell what were these?

@kisvegabor The types we can not generate with Kconfig are the user defined ones, example the
/* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */
typedef int16_t lv_coord_t;

and
/*=====================
 *  Compiler settings
 *====================*/
/* Define a custom attribute to `lv_tick_inc` function */
#define LV_ATTRIBUTE_TICK_INC

/* Define a custom attribute to `lv_task_handler` function */
#define LV_ATTRIBUTE_TASK_HANDLER

/* Define a custom attribute to `lv_disp_flush_ready` function */
#define LV_ATTRIBUTE_FLUSH_READY

/* With size optimization (-Os) the compiler might not align data to
 * 4 or 8 byte boundary. This alignment will be explicitly applied where needed.
 * E.g. __attribute__((aligned(4))) */
#define LV_ATTRIBUTE_MEM_ALIGN

/* Attribute to mark large constant arrays for example
 * font's bitmaps */
#define LV_ATTRIBUTE_LARGE_CONST

/* Prefix performance critical functions to place them into a faster memory (e.g RAM)
 * Uses 15-20 kB extra memory */
#define LV_ATTRIBUTE_FAST_MEM

I will search what version of LVGL are we using here and add it at the top of the Kconfig file.

Thanks!


sizeScale feature with readme

Sorry for the late response. The reason it's not been merged is that it's difficult to understand a reason to scale the sizes and also I didn't have enough time to test the functionality to work properly. Also the patches may need some squeezes.
I close this PR now, but please feel free to reopen this or open another PR if it can be updated.


Request to make actionUri configurable

Hi,
I wanted to know if its possible to make the actionUri configurable or atleast point to the commit instead of its checks?
Maybe creating an env variable to append the /checks onto the action URI
Kind regards,
Rajiv

Hey, @rajiv-webill thanks for the feature request.
Instead of making actionUri configurable, I am planning on adding Commit field in the slack notification besides the Actions URL field so that you can view commit details as well as Actions URL.

This has been released in https://github.com/rtCamp/action-slack-notify/releases/tag/v2.1.2
Please use uses: rtCamp/action-slack-notify@v2 to use this feature if you are not already using @v2 tag for the action.

Thanks very much @mrrobot47 much appreciated