Problems reading two barometers from version 0.3.3 onwards.

Thank you for this library, it is of good use to me. I am using it in a DIY airspeed indicator based on two GY63 ms5611 breakouts. The pressures from the pitot tube are read in succession and their values are compared, compensated for the offset between them.
Using version 0.3.2 this all worked fine. But with versions 0.3.3 to 0.3.5 I get corrupted values from the first baro that is read; that is the one with address 0x76.

You're welcome, thank you for reporting this issue.
As I only have one sensor I am not able to recreate your setup, so I need your help to analyse.
0.3.2 works and 0.3.3 does not. OK-> compare
There is an optimization done in the timing
reset()  => delay(3)  replaced by  delayMicroseconds(2800)
and convert()

These timings are from the datasheet so considered correct,

hypothese 1
timing is just critical for one of the sensors.
TEST 1: swap the sensors addresses to see if problem happens with the 0x76 address or with the same physical sensor?

hypothese 2
the internal timing in the sensor and of the processor are slightly different and the code in the lib is just at the edge.
TEST2: increase the delays e.g.
in convert to 3000 microseconds?
in convert, add a few 100 us per entry.

hypothese 3
RTOS blocking problem?  (much less likely)
What board are you using?
In version 0.3.6 - currently in develop branch - I replaced the delayMicroseconds with a loop around yield() to allow task switching in RTOS

If hypothese 2 solves the problem I can include it in the 0.3.6 release.
I'll check the datasheet for accuracy of the intern clock of the 5611 (might be indicative)

Found  this in the datasheet

The times in the array are TYPICAL times while they should have been MAX times.
So that will be adapted in the 0.3.6 version a.s.a.p.  (first I need another coffee)

Updated timing added to develop branch - https://github.com/RobTillaart/MS5611/tree/develop

Adding a simple example for two sensors to the example folder to have a minimal test.

Thank you for the reply and your work on this. I will do the testing. I am not sure if I can get this done during the evening (Norway time), I'll return with result tomorrow at the latest.

For testing I use a NodeMCU v1.0 (ESP8266). This is easy because of the USB connection. For permanent installation in my model airplane I will use an Arduino Pro Mini.

Thank you for the reply and your work on this. I will do the testing. I am not sure if I can get this done during the evening (Norway time), I'll return with result tomorrow at the latest.

I'm in the same time zone (Netherlands, near EIndhoven)

My experimental plane (among other ordinary planes). Two ms5611 connected to create differential pressure.

My experimental plane (among other ordinary planes). Two ms5611 connected to create differential pressure.

The latest version adds support for an offset for pressure and temperature.
That allows you to calibrate them to the same reading before start ==> better differential?

I managed to do a couple of tests just a few minutes ago. For info, in my sensor sketch i read both baros, then add 200ms delay, then read both baros again, and so on...
Swapping adresses did no difference, other than to move the error to the other baro instance in my sketch.
However, i tried in the convert function to change some values:
uint16_t del[5] = {500, 1100, 2100, 4100, 8220};
changed to
uint16_t del[5] = {1000, 2000, 3000, 5000, 10000};
I have not gone deep into the library, but the changed values seem to correspond with the values used in the delay() statement in 0.3.2.
Now both baros worked fine.

I have not gone deep into the library, but the changed values seem to correspond with the values used in the delay() statement in 0.3.2.

exact, so hypothesis 2 was the right one.
Can you verify if these values work for you?
  // values from page 3 datasheet - MAX column (rounded up)
  uint16_t del[5] = {600, 1200, 2300, 4600, 9100};

these are the rounded up MAX values from the datasheet. Would still allow to gain 10-40% waiting time compared to 0.3.2
Thanks for testing!

I just tried with the above values. Both barometers run fine now.

OK, I will merge 0.3.6 then. That should work for you too.

Thank you very much for your help and support !

You're welcome, please let me know how your experiments go.

I will, testing during flight is next when the flying season starts.

@HWal
I created an issue - https://github.com/RobTillaart/MS5611/issues/26
The idea is that if you know the sensor ID you can store an calibration offset for temperature and pressure in code or in EEPROM and provide every sensor with the right offsets without calibrating every time.
The ROM constants are read in the ms5611.cpp file in the reset() function.
Can you print your ROM constants per sensor and post them here so I can compare if they are different enough?
just add a line Serial.println(readProm(reg)); will do the job.
As you have more than one sensor please provide a list per sensor.
Thanks in advance,
Rob

Hi Rob,
I am sorry, I have been out all day, so could not provide the constants so
far. I will try to do this tomorrow.
Regards,
Helge.
lør. 22. jan. 2022 kl. 10:00 skrev Rob Tillaart @.***>:

@HWal https://github.com/HWal
I created an issue - #26 https://github.com/RobTillaart/MS5611/issues/26
The idea is that if you know the sensor ID you can store an calibration
offset for temperature and pressure in code or in EEPROM and provide every
sensor with the right offsets without calibrating every time.
The ROM constants are read in the ms5611.cpp file in the reset() function.
Can you print your ROM constants per sensor and post them here so I can
compare if they are different enough?
just add a line Serial.println(readProm(reg)); will do the job.
As you have more than one sensor please provide a list per sensor.
Thanks in advance,
Rob
—
Reply to this email directly, view it on GitHub
https://github.com/RobTillaart/MS5611/issues/23#issuecomment-1019114768,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZHGF2BB3YBAYCSZ2XOHDUXJW27ANCNFSM5MBAWCVQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

No problem, already had other source .
But still interesred in your deviceid to see it works.
Thanks

Hi again,
For the baro with address 0x76 i get:
12
52157
46715
31062
25551
33042
27419
For the baro with address Ox77 i get:
16
53012
52757
31868
29782
32409
27506
Does this make sense?
Helge.
lør. 22. jan. 2022 kl. 19:16 skrev Rob Tillaart @.***>:

No problem, already had other source .
But still interesred in your deviceid to see it works.
Thanks
—
Reply to this email directly, view it on GitHub
https://github.com/RobTillaart/MS5611/issues/23#issuecomment-1019327358,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZHGDGYIZKXCENJS53JKLUXLYBVANCNFSM5MBAWCVQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

It's perfect that they are different.
That makes them a good source to generate an "unique" device ID.

Ok,
I'll move the baros back into the plane then.
Helge.
lør. 22. jan. 2022 kl. 21:46 skrev Rob Tillaart @.***>:

It's perfect that they are different.
That makes them a good source to generate an "unique" device ID.
—
Reply to this email directly, view it on GitHub
https://github.com/RobTillaart/MS5611/issues/23#issuecomment-1019355194,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZHGBAJER2WBHR3NDHIGLUXMJR5ANCNFSM5MBAWCVQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Thank you for testing, hope the plane flies soon!
now I'm pretty sure I can create a uint32_t getDeviceID() function, to uniquely (enough) identify sensors from calibration data.

Thank you for the library.
Just a heads up: Whatever you think could be useful for the hobbyists to
know regarding the library, please put it in the Readme file.
 22. jan. 2022 kl. 22:01 skrev Rob Tillaart @.***>:

Thank you for testing, hope the plane flies soon!
now I'm pretty sure I can create a uint32_t getDeviceID() function, to
uniquely (enough) identify sensors from calibration data.
—
Reply to this email directly, view it on GitHub
https://github.com/RobTillaart/MS5611/issues/23#issuecomment-1019357295,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZHGGHWZBQ47RDG5ZESXTUXMLJJANCNFSM5MBAWCVQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Thanks Rob.
Yes the plane flies! And flies well too!
I am using two 5611's to calculate airspeed and one of them to calculate
height and climb rate.
The data is sent to a FrSky Taranis radio Tx with the help of a library for
telemetry.
For information I attach the (simple) Arduino code.
Helge.
tir. 25. okt. 2022 kl. 21:01 skrev Rob Tillaart @.***>:

@HWal https://github.com/HWal
just came across this issue, and was wondering if the plane did fly..
—
Reply to this email directly, view it on GitHub
https://github.com/RobTillaart/MS5611/issues/23#issuecomment-1291009443,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZHGG5LLCYFX55SNDHGYLWFAU63ANCNFSM5MBAWCVQ
.
You are receiving this because you were mentioned.Message ID:
@.***>


Updated or fixed codes for 1137 (Mistubishi MSZ-HR35VF)

I recently got a MSZ-HR35VF installed and I observed that many code from 1137 don't work.
I re-captured all the codes (using this great python script from @sargue who contributed 1137).
I didn't open a PR as I wasn't sure how you want to handle that. I'm thinking there may be different remote version so it might be worth creating another code for this version instead of replacing it.
9999.json

Sounds like the way to go indeed. I think I'll move over to that fork though as there's been no commit in 2 months and the PRs/Issues are piling up


Update codecov.yml

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.73%. Comparing base (66f81a3) to head (01a663d).

Additional details and impacted files

@@           Coverage Diff           @@
##             main      #67   +/-   ##
=======================================
  Coverage   95.73%   95.73%
=======================================
  Files          55       55
  Lines         892      892
  Branches       66       66
=======================================
  Hits          854      854
  Misses         38       38

Flag
Coverage Δ

backend
95.73% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

----
🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests
JS Bundle Analysis - Avoid shipping oversized bundles


Fix CONV_FLAGS_NOALPHA flag for 16bpp format

Previously condition (metadata.format == DXGI_FORMAT_B5G6R5_UNORM) is always false so
check format before replace it with DXGI_FORMAT_R8G8B8A8_UNORM

Thanks. Looks like a good fix.


How to define 'srcs' based on OS or toolchain?

How can I add a source file to the srcs list based on the target OS or CPU?
cc_library(
  ...
  srcs = [
    "file_util.cc",
    "file_util_posix.cc" if OS==LINUX else "",
    "file_util_win.cc" if OS==WIN else "",
    ...
    "widget.c",
    "widget_x86.c" if CPU==X86 else "",
    "widget_arm.c" if CPU==ARM else "",
  ],
  ...
)

You should use select (http://bazel.io/docs/build-encyclopedia.html#select).
See https://github.com/google/bazel/blob/master/src/BUILD#L30


[update] Project addition

Just a fun tool I built using this amazing library :)

Coverage remained the same at 75.365% when pulling babb43514448abcf88d38aac329fe3a3681cb6df on imthaghost:master into 2ce07e67cabf24100d122892d1b6c8b047c8bbb7 on grafov:master.


Shortcuts

Thanks for your plugin @stefanbuck
Do you think it would be possible to expand it with logseq shortcuts for play/pause?
Thanks

Great idea. Unfortunately my life is quite busy right now so I can't commit to anything, but would happily accept contributions.


Allow to copy/duplicate сharacter equipment if "Player equipment Readonly" is set

In this case player equipment keeps untouched, you cannot change it, but permitted to copy/duplicate items to vaults,

"read-only" items context menu have to contain non-destructive commands: Copy, Duplicate, Properties.

Unfortunately version 3.4.0 rewrites "readonly" character profile file on exit if item was copied from it.
This makes useless the whole intention to keep file untouched.
also https://github.com/EtienneLamoureux/TQVaultAE/issues/267

I'll close this and expand #267


Move allowed_directions to the Word object & give them priorities

Should finish off #51.
Few things I thought of to check before merging.

Should I edit Word.__lt__ at all?
WordSearch.__init__ is rather messy, as the secret words are formed before the call to super().__init__.
Updating WordSearchGenerator to use priorities & direction choices stored in the Word was surprisingly straightforward once I found where to make the change and did the prep work.

Yes, I like the use of __lt__...
I agree, we can probably add secret words to the parent Game class since I could see that being used in more types of games. I still need to do some work on the base Game class, I've just been too busy with other stuff to get back to it.
Makes sense, I just don't know where I fall on the issue... Not a make-or-break decision so I think it is fine.

Can you just please make sure all docstrings/comments are updated anywhere you added params to any functions/methods? I know that really helps me when using other APIs to understand what the dev was thinking. Other than that, I think all looks good to merger. Seems there are a few conflicts but I can resolve those after you are done. Thanks!

For adding secret words back to the base Game, where in the param list should they go?  For that matter, should secret_level also go to the base Game class?  On a broader scope, should the construction of Word objects from input strings be done by the subclass before Game.__init__, done during Game.__init__, or perhaps done after the Game.__init__ call (though that option requires a reflow of when .generate() gets called)?
As of right now, I'm leaning toward making Game._process_input be closer to a pure bulk_create_words
@staticmethod?
def _process_input(self?, words: str | WordSet, secret: bool = False, allowed_directions: DirectionSet | None = ???, priority: int = 3, max_words: int = 100):
    if isinstance(words, set):
        return words  # they're already created
    ...  # transform str -> set[Word]

Or move it to a method in the Word class?  Word.bulk_create(...) or something.

Until I hear back on that, I'll go ahead and change the min_length in the random word to equal 1 as well as updating docstrings (hoping the diff vs. main catches them all).
Speaking of utils.get_random_words, how should we handle cases where the number of matching words is less than the number requested?  As written, it'll raise a ValueError.  Returning all matching words is the less surprising option.

One other thing: should I subclass Word into CrosswordWord and move description & number into the subclass?
Description is meant to be the clue for a crossword, while number is used after the puzzle is generated.

I think I have a solution that allows all of the following.

Game only needs one param for words [still needs a separate secret_level]
Isn't overkill that's intended for there being 50 word types instead of just two (hidden/secret).  [passing some list[tuple[str, Callable[[str], WordSet]]]
Doesn't ping-pong with subclass constructors (word creation and level setting are both completely done in Game.__init__

It's to make something like the below class:
class WordInput(NamedTuple):
    preformed_words: WordSet
    hidden_word_list: str
    secret_word_list: str

def Game.__init__(words: WordInput, ...):
    ...  # setup directions etc
    self._secret_words: WordSet = self._process_words(words.secret_word_list, ...)

The other serious option would be to restore the old Game.init signature to def Game.__init__(preformed_words: WordSet = frozenset(), words: str = "", secret_words: str = "", level = None, secret_level = None, ...)

Also, I may write something in utils.py to take some Sized iterable and then return n random objects from it if it's longer than n (otherwise return the input unaltered).  I see the pattern used in both utils.get_random_words and Game._process_words.

I tried making the following function but got defeated by the type checker.
S = TypeVar("S", bound=Sized)
T = TypeVar

def limit(i: S, n: int) -> S:
    """
    Limits the size of the input iterable to n.  Truncation is randomly chosen.
    """
    if len(i) <= n:
        return i
    return type(i)(random.sample(i, n))

With get_random_words() I can't think of a case where I expect that to return the entire WORD_LIST. If I wanted the entire list I would just import it...
def get_random_words(...):
    ...
    return limit(
        (
            WORD_LIST
            if max_length == 999 and min_length == 1
            else [word for word in WORD_LIST if min_length <= len(word) <= max_length]
        ),
        n,
    )

My thoughts on the base Game class... Since you are moving things like directions to the underlying Word objects, what if the Game class only accepts an iterable of Word objects? Those objects can be created during the init of the subclasses and provided to the super.__init__() after the fact... This keeps the base class "clean" and allows tinkerers to do whatever funky things they need to do in their own subclasses.
def __init__(
    self,
    words: WordSet | None = None,  # or WordList, or whatever we want to call it
    level: int | str | None = None,
    size: int | None = None,
    require_all_words: bool = False,
    generator: Generator | None = None,
    formatter: Formatter | None = None,
    validators: Iterable[Validator] | None = None,
):
    ...

It seems weird to me that bulk_create() is in the Word class with "word" being singular. I wouldn't think to use the Word class to create a list of word(s).

Would a make_many_words(...) function in core.word be a better place for it?

My thoughts on the base Game class... Since you are moving things like directions to the underlying Word objects, what if the Game class only accepts an iterable of Word objects? Those objects can be created during the init of the subclasses and provided to the super.__init__() after the fact... This keeps the base class "clean" and allows tinkerers to do whatever funky things they need to do in their own subclasses.
def __init__(
    self,
    words: WordSet | None = None,  # or WordList, or whatever we want to call it
    level: int | str | None = None,
    size: int | None = None,
    require_all_words: bool = False,
    generator: Generator | None = None,
    formatter: Formatter | None = None,
    validators: Iterable[Validator] | None = None,
):
    ...

Would we still need the level and secret_level params in the Game constructor?  I think the answer is still yes because of Game.add_words().
Speaking of moving things around, part of what I try to do when I see it is to move type aliases to the same class that they're based on.  For example, moving the definition of DirectionSet from word.py to directions.py.
I like this idea.  Helps separate what's core shared logic for a letter grid game from what's the business logic for each game.
Also, whenever I get the Crossword to a MVP, I'll open a PR for that.  It won't be anywhere near ready to merge (limited docstrings, no tests, etc…), but it would show other places I thought to move around and—more importantly—be a concrete implementation of a second Game to see how the changes feel in practice.

With get_random_words() I can't think of a case where I expect that to return the entire WORD_LIST. If I wanted the entire list I would just import it...
def get_random_words(...):
    ...
    return limit(
        (
            WORD_LIST
            if max_length == 999 and min_length == 1
            else [word for word in WORD_LIST if min_length <= len(word) <= max_length]
        ),
        n,
    )

And, I don't understand the usefulness of the limit here (other than type hints) but maybe I'm missing something? If you plan to take it this far, would creating a WORDLIST class that inherits from Sized be a better solution?

>>> from words import WORD_LIST
>>> len(WORD_LIST)
970
>>> from collections import Counter
>>> Counter(len(w) for w in WORD_LIST)
Counter({4: 239, 5: 187, 6: 157, 7: 126, 3: 100, 8: 78, 9: 41, 10: 24, 11: 10, 12: 4, 14: 2, 13: 2})

If you requested get_random_words(100, min_length=10), the current random.choice implementation would give ValueError: Sample larger than population or is negative.  The limit function will instead return fewer words than requested (42 in the case of a minimum length of 10) without throwing errors.

I forgot you added the min_length attribute, so I understand the need for limit now.

Would we still need the level and secret_level params in the Game constructor?  I think the answer is still yes because of Game.add_words().
Speaking of moving things around, part of what I try to do when I see it is to move type aliases to the same class that they're based on.  For example, moving the definition of DirectionSet from word.py to directions.py.
I like this idea.  Helps separate what's core shared logic for a letter grid game from what's the business logic for each game.
Also, whenever I get the Crossword to a MVP, I'll open a PR for that.  It won't be anywhere near ready to merge (limited docstrings, no tests, etc…), but it would show other places I thought to move around and—more importantly—be a concrete implementation of a second Game to see how the changes feel in practice.

Yes, I think so since those are comman to all game types (so far).
Yeah, I like to do this as well but at some point, I remember running into some circular import issues so I had to move something around. I would prefer the type aliases to be beside or as close as possible to the corresponding class so feel free to move whatever makes sense.
...
Sounds good 👍

Would a make_many_words(...) function in core.word be a better place for it?

Yes, I think it makes more sense as a standalone helper function and not a method of the Word class.

A shower thought I had for a crazy use of the Game generation flow would be to use masks to generate cardioid Minesweeper grids.  Perhaps I may have time later in the year or early next year to use that as a Textual learning project.

Anyway, I think my current to-do for this PR is

Move WordList, DirectionSet, etc… definitions next to the classes they define.  While doing that, I'll make sure that each of the classes (Word, Direction, and Position seem to be the ones I'd use so far) has types defined has both a List and Set variety.  I can't think of any other collection suffixes we'd need.
Move the bulk creation out of the Word class
Simplify Game.init

Yep, all sounds good. Feel free to let me know if you need a hand with anything and I can hop on your PR. I hope to get tests created for the color output I added a while back in my free time. Thanks!

Just to double-check, do we need both level and secret_level in the base Game class, or just level?
I think that's the last clarification I'd want before checking that the simplified Game init is ready.

I would say just level. I'm not sure secret level would apply to all game types so that can be implemented in subclasses like WordSearch or CrossWord.

One thing I thought of is that not all games would have the prohibition on duplicate words of a word search.  IIRC, that's why words are stored in a set instead of a list.  I briefly considered adding a class variable to Game that specified whether the given Game class used sets or lists, but quickly scrapped the idea.
In case duplicate words need to be sorted in a particular order, the following can be (ab)used to achieve the same effect:

Use the description field for the Word object as a random salt (or insert non-printable characters if the printed description needs to look the same).
Go nuts on the Priority values

Additionally, the number_words that I'll implement for the Crossword will take care of 1-indexed numbering words starting in the top-left.

One thing I thought of is that not all games would have the prohibition on duplicate words of a word search. IIRC, that's why words are stored in a set instead of a list. I briefly considered adding a class variable to Game that specified whether the given Game class used sets or lists, but quickly scrapped the idea. While I suspect not much would need changed if the Words were either in sets or lists, the type signatures alone would be a mess.
In case duplicate words need to be sorted in a particular order, the following can be (ab)used to achieve the same effect:

Use the description field for the Word object as a random salt (or insert non-printable characters if the printed description needs to look the same).
Go nuts on the Priority values

Additionally, the number_words that I'll implement for the Crossword will take care of 1-indexed numbering words starting in the top-left.

Yes, a set was picked to eliminate dupes but also for its ease of use when modifying the WordSet of a game. If we use a list, we'll have to account for some things a set covers by default (adding, removing, comparing, etc.). And we'll need a way to handle dupes if they are allowed in a game (which will also have to be specified).
At this point, since there are so many possibilities for diff types of games (too many to account tbh), what if Game is just an abstract base class to guide users in creating their own games?

Some questions about making Game abstract:

Would that entail moving Generator classes back into being an abstract method on the base Game class?
Do we retain the core data structure of list[list[str]]?  The only other option that springs to mind besides “keep track of that in your child class” is creating a Cell class that tracks the following:
The stored char
Is active? (for masking)
Is head/tail of word?  [DirectionSet, empty == no]
Available directions for word placement
Word(s) the cell is part of
While I expect the formatters to remain as separate classes, a Game.debug_format() could prove useful for quickly outputting the Puzzle to the terminal.
Here's my top-of-head estimate at what remains in Game:
Init: store params, take pre-digested WordSet, then generate
The usual utility methods/properties (placed_words, unplaced_words, etc…)
Placing the word
I'm sure I'm forgetting a bunch.
Besides generate(), any other obvious methods to make abstract?

I had a little time to think about this earlier today and here is what I've come up with...
We are doing great work abstracting away the core of a "word-based" game but that is taking us away from the initial project of word-search-generator. I'm thinking about pulling out the core  portion of this package and creating a new library called word-game-generator. This new library would be the base of individual projects like word-search-generator and maybe crossword-generator. This would allow:

the specific parts of each project to be discussed within those projects, so there is no crossword talk in the word-search project or vise versa
for more focused work and PRs
separate projects to have their own CLI modules, utilities, etc without trying to fit everything into this one project

The more I have worked with the Textual library and seen the diversity of projects people create with it, I really like this model... In the separated "child" projects, if you need to extend the Word class to add a color property or a description property, or to add a reverse method 🤷♂, feel free to extend to your heart's content.
I just think this project is getting a bit bloated and turning into more than a word-search-generator which could be very confusing to others.
Let me know your thoughts?

So, I had thought about the container for a game's Word objects.
How about something like this for WordList... I also thought, what if WordList didn't care about dupes or max words (could remove all dupe stuff from class below), instead all of that gets handled in the base game object (during generate)...
Notice, that this works with iterables of Word objects, so all processing of string input would need to happen in ether the base game object (or a subclass e.g. WordSearch).
I feel this is more Pythonic and allows people to use basic Python methods to interact with the Word container... Thoughts?
from collections.abc import Iterable

from .word import Word

class WordList(list[Word]):
    """This class represents a WordList within a WordGame."""

    def __init__(self, words: Iterable[Word], allow_dupes: bool = False) -> None:
        self._allow_dupes = allow_dupes

        _words: list[Word] = []
        for word in words:
            self.validate_word(word)
            if not self._allow_dupes and word in _words:
                continue
            _words.append(word)
        super().__init__(_words)

    def validate_word(self, word, check_for_dupes: bool = False) -> None:
        if not isinstance(word, Word):
            raise ValueError(f"'{word}' must be a 'Word' object.")
        if check_for_dupes and not self._allow_dupes and word in self:
            raise ValueError(f"'{word}' already exists in the WordList.")

    def __setitem__(self, index, word):
        self.validate_word(word, check_for_dupes=True)
        super().__setitem__(index, word)

    def insert(self, index, word):
        self.validate_word(word, check_for_dupes=True)
        super().insert(index, word)

    def append(self, word):
        self.validate_word(word, check_for_dupes=True)
        super().append(word)

    def extend(self, other):
        _words: list[Word] = []
        for word in other:
            # should probably just continue or notify, only raising exception during dev
            self.validate_word(word, check_for_dupes=True)
            _words.append(word)
        super().extend(_words)

I don't have much time this week(end), but from a quick scan:

The WordList container means that Word.__eq__ can simply compare the Word.text instead of any hacks
In if not isinstance(word, Word):          raise ValueError(f"'{word}' must be a 'Word' object."), why ValueError over TypeError?  That would give the caller a clearer view of what went wrong.

Yes
It should definitely be a TypeError. I was typing this during a Zoom call so I wasn't paying the closest attention...

And let me know what you think about pulling out the base game (WordGame) into a separate library like I mentioned above.
Have a great weekend!

Our (mostly your) prior work in moving everything to classes should be a useful guide in deciding what is core functionality and what is business logic for the game.
The one suggestion I'd have about making the core package separate is we'd want to alter type hints that deal with Words to also work with whatever subclasses of Words we need.  For example, we should say that if it takes a CrosswordWord in, it should give CrosswordWords out (instead of base Words).  That way, additional functionality can be quickly added without needing to make a PR for the core functions.
Besides everything in the core folder and utils.py, is there anything else that springs to mind as an obvious inclusion in the Core package?

For subclasses of Words (or any custom classes), we should be able to just use the type[Word] syntax I think... And, yes that sounds like all that needs to be moved but honestly, I jump from project to project so much, I won't be sure until I dig back in to the code.

I had a little time to consider splitting off the core game, and I feel it's just not worth the trouble. I still think it's a good idea to make some of the adjustments I mentioned above so that the core package can act more like a library. Then if we need special properties or methods for a different type of game we can subclass any of the core objects. This will keep the core as simple as possible and allow the complexity to live closer to the actual games. Next week, I'll closely look over the PRs and we can work through them.


Some strange local test failures

I pulled down the code to mess around with today and ran into some unexpected test failures.
Running the tests on master locally is giving me these failures:
1) Failure:
Cron web::work with cron job#test_0001_disable and enable cron job [/Users/adam/code/sidekiq-cron/test/unit/web_extesion_test.rb:58]:
Expected: "enabled"
  Actual: "disabled"

  2) Failure:
Cron web::work with cron job#test_0002_enqueue job [/Users/adam/code/sidekiq-cron/test/unit/web_extesion_test.rb:72]:
Queue should have 1 job.

Expected: 1
  Actual: 0

I poked at the test and found that I am getting a 403 from the post in the test:

    56: it "disable and enable cron job" do
    57:   post "/cron/#{@name}/disable"
 => 58:   require 'pry'; binding.pry
    59:   assert_equal "disabled", Sidekiq::Cron::Job.find(@name).status
    60:
    61:   post "/cron/#{@name}/enable"
    62:   assert_equal "enabled", Sidekiq::Cron::Job.find(@name).status
    63: end

[1] pry(#<Cron web::work with cron job>)> post "/cron/#{@name}/disable"
=> #<Rack::MockResponse:0x007f88f5382310
 @block=nil,
 @body=["Forbidden"],
 @body_string=nil,
 @chunked=false,
 @errors="",
 @header=
  {"Content-Type"=>"text/plain", "X-Content-Type-Options"=>"nosniff", "Content-Length"=>"9"},
 @length=9,
 @original_headers={"Content-Type"=>"text/plain", "X-Content-Type-Options"=>"nosniff"},
 @status=403,
 @writer=
  #<Proc:0x007f88f53820b8@/Users/adam/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/response.rb:30 (lambda)>>

any idea what is going on?
am I missing some setup step?
Thanks!

@HParker Hi, try now, it should be fixed. Master branch was broken :(


Fix memory leak by making RDProps destructor virtual.

What does this implement/fix? Explain your changes.
Fixed memory leak for RWMol and ROMol objects by making RDProps destructor virtual, and explicitly calling clear() in RWMol destructor.
Any other comments?
Using RDKit SWIG Java wrapper, we noticed memory leaking by simple massive loading molecule from SMILES. These changes fixed the memory leak problem.

Rdprops has no virtual functions so it shouldn’t need a virtual destructor.
also, valgrind hasn’t complained so I’m suspicious that rdprops might be a red herring, I expect this might be best fixed in swig.


Improve project import process

Is your feature request related to a problem? Please describe.
I've attempted to import an existing Hasura project into Nhost. I already had Hasura metadata and migrations in my project that I needed to apply in Nhost, but Nhost prepopulates a project's Hasura instance with its own metatadata and DB tables. Hasura does not merge the changes when applying the metadata from my application, which effectively deletes the Nhost resources such as users and storage.
Describe the solution you'd like
It'd be nice if importing an existing project was simpler. I think ideally Nhost's project resources would be managed separately from the app's to avoid conflicts such as this. Barring that, there should be an easier way to fetch the existing Hasura configuration to merge it.
Describe alternatives you've considered
After realizing that applying my app's metadata destroyed Nhost's, I created a new Nhost project and used the Hasura CLI to export the metadata created by Nhost. I then manually merged it with my app's metadata. This required some manual changing of values per #1232. It works, but if Nhost expects to make future changes to the app's Hasura metadata, I'll have to work out the process again. Also, my app's configuration now includes Nhost's service-specific resources, which I'd prefer to avoid.

Good suggestion. We should write a guide on how to do this. It's relatively simple when using the Nhost CLI. I've made a note internally to write a blog post about this.

I'm very much interested in this. I have 2 projects which both run on on Hasura v1 with self hosted DigitalOcean and I'd love to move the projects to Nhost. Currently I am not sure how to start as the projects hare not even v2 of Hasura.

Thanks for your comment, @dohomi. We'll prioritize this.

I'm sorry, I was traveling when the stalebot notification came in. Has there been any movement on this issue?

No, but I am afraid I don't understand the issue. Metadata is managed independently by each individual service and re-applied every time the CLI is started so the following process should simply work:

Start CLI
Import postgres data and metadata from existing project
Restart CLI

Can you elaborate on the CLI option when you get a chance? I applied the migrations and metadata via the Hasura console. Since Nhost manages the storage and auth systems inside the same Hasura instance as the application, applying my application's metadata effectively deleted the auth and storage services. The database tables still exist, but Hasura doesn't know anything about them.
My solution was to export the auth and storage metadata from Hasura first and then manually merge with my application's metadata. While that works, it's difficult to keep in sync, and this issue is about finding a way to avoid some of the bumpy paths to getting it all working.

There is no option, just restart the CLI, metadata is always re-applied on boot to avoid issues like the one you are describing. Nhost's metadata is managed by nhost services and they will always attempt to make sure it is correct during the boot process.


Bot Not receiving Channel Messages

Good day Tolentino,
I dont know if anyone had the same issue, I found no info, so I thought to ask you directly.
When I use
myBotgetNewMessage(msg)
I do not receive messages on my ESP8266 from a groupchat where my bot is an admin. Also my bot's privacy was set as public, even if I start the message with "/xxxxx" or "@mybot" I do not receive any message typed in a group.
I do receive the messages on the esp8266 from direct message to my bot.
I would like to be able to use a group, for transparency and to have all messages in one place, as a security and automation of my home where me and my family can message the bot to open door or gates or get alarms.
Thank you.

Hi @DavidLightcraft
Sorry for very late reply, but i was very plenty of work this last months.
Actually the bot can only send messages to channel and not read back them.
Honestly, I haven't investigated whether this is really possible, but you can certainly achieve this with groups. You need only to find the group ID wich is a negative integer
Once you have created your own group, you can add the bot @getidsbot thath will reply to you with a dump of groups properties included the ID. At this point you can remove and add your bot and all other usersyou need.
Example:
    myBot.sendTo(-532497195, "Hello to group from myBot");


File Manager listing didn’t get refreshed upon upload

My env

concrete5 8.4.0RC2

Fresh install with Elemental Full

Mac OS High Sierra
Firefox latest version
Valet 2.0.12 with PHP 7.1 & MariaDB 10.0.5

Steps to reproduce

Create an express entity with image attribute
Add the image attribute to Form control
Try to add image to an entry via Express Dashboard

Open a file manager
Upload a new image
Upload completed
Close pop up window

File Manager list didn’t get refreshed
If i change sort it jun around pagination, the uploaded image shows up.

It could be file manager in specific.
I found out when i was making an Express demo

I can confirm this issue.

Update:
I've checked Image Block from front end.
The File Manager Listing didn't get refreshed either.


Spelling mistake langauge

There is minor correction into documentation.  Spelling "langauge" is not correct. It added corrected word i.e. language. Kindly review and update.
Thanks.
Microsoft Reviewers: Open in CodeFlow

Docs Build status updates of commit b640d4f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

AdaptiveCards/templating/language.md
:bulb:Suggestion

Details

AdaptiveCards/templating/language.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 258, Column 1: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? If so, add &preserve-view=true to the URL: https://docs.microsoft.com/azure/bot-service/bot-builder-concept-adaptive-expressions?view=azure-bot-service-4.0

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

Thanks!


Add hardware supported popcount

Related issue - https://github.com/boostorg/dynamic_bitset/issues/25

Curious if you have any benchmarks showing the performance improvement of the changes?

Yes I do, I wrote a benchmark using this library, there is source code, old performance, new. It does nothing on small types, slightly speeds up int and rushes forward on longs.

Nice, so performance improvement on 64-bit is 2.375x less CPU time for the same operation.  Thanks.


[OpenSearch Playground] Add moviegeek live data and cluster metricbeat to Reinvent

Is your feature request related to a problem?
We need to add moviegeek live data and cluster metricbeat to reinvent cluster, which can be deployed automatically after reset daily.
What solution would you like?
Add new github action to delete/deploly related components
What alternatives have you considered?
No
Do you have any additional context?
No

Resolved this.


Sample of "Spatial operations" is sometimes not responding.

Application: ArcGIS Runtime SDK Samples (iOS), downloaded from iTunes App store
Device: iPhone 7 Plus
Operating System: iOS 11.4.1
Error Description: Sample of "Spatial operations" is sometimes not responding.
How to reproduce: Categories -> GEOMETRY -> Spatial operations -> Choose operation -> tap any operation

Hi @mahiran, thanks for reporting this.
I am unable to reproduce the issue. Could you provide a little more information please?

In what was does the app stop responding?
Can you give an indication of how frequently this stops responding? 1 time in 2, 1 in 10?
Is this downloaded from the App Store, or an app you have built yourself?

Thank you!
Nick.

Hi Nick,
Thank you for your response.
1 and 2. During my test, app did not stopped (or hanged up) even once.  Even though I selected any operation (Union, Difference, etc.), no operation executed (no red part displayed).
3. Only sometimes. (Just now I tried to reproduce it again, but I could not encountered with this issue)
4. I downloaded this "ArcGIS Runtime SDK Samples" app from iTunes App store.
Regards,
Masanobu

Aha. I see. Thank you. That helps.
I'll keep trying to reproduce this. In the meantime, if you do see it happen again, please update this issue.

I was able to reproduce this issue. (Please refer the attached movie file)
IMG_0510.zip

Oh, excellent. Thanks for providing that @mahiran! Hugely helpful.

I ran this sample for 150 times on a couple of devices and I encountered this issue only once on an iPhone 7

Hi @saratchandrakarumuri , I tried with our latest sample and it seems not to be reproducible. Can we close this issue?
Thanks.

I made further updates to this sample in #965 , and do not see this issue anymore.

Close due to inactivity. Feel free to reopen if the issue persists!


Add chrome-tracing support in event API

The abandoned PR https://github.com/numba/numba/pull/7073 added some useful debugging tools that we should consider for mainline.
Relevant changes are in: https://github.com/numba/numba/pull/7073/commits/5d0623fe12c1a8cabf8cc1494cfd615d7644a6ae https://github.com/numba/numba/pull/7073/commits/18b8c3d186b1e388bd00f19cf5aaac377fd6dddf https://github.com/numba/numba/pull/7073/commits/1b9a467ada4f1d3d8a721871c949932e970e83b2
These commits dumps a json file that chrome-based browser can load via chrome://tracing/ (see docs at https://www.chromium.org/developers/how-tos/trace-event-profiling-tool).
It should only take some cleanup to make it a acceptable PR.
If anyone want to grab this task, please leave a note. I may not have time to work on this until later this month.

Hi @sklam
I will take this task.

Implemented in https://github.com/numba/numba/pull/7537, closing.


[Feature] 可否提供 docker-compose 简易安装方式

Feature Description (功能描述)
因为HugeGraph 部署时，需要前置环境不较多，比如JDK版本最低限制，GCC编译限制等等前置条件。因此HugeGraph 是否提供docker-compose 简易式安装方式 ，以便减少个人部署难度。

Thanks for your feedback, we also have the plan to enhance the use experience, follow the issue #840
docker-compose is a subtask which already recorded. (but not implement yet)
PR #2046 will support use the latest code to use in Dockerfile, we'll provide a dockerhub link for users to use directly like
docker pull xx/hugegraph first


Version 4.0.0 contains a bug from the Xamarin.Forms Label

See:
https://github.com/xamarin/Xamarin.Forms/issues/8159

That was quick ahah
Let me check... It includes system fonts so it should work.

Fixed with #82


[BUG] Discord link does not work

Describe the bug
In the following message it says:
Briefly describe the issue you are experiencing, what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to the official [Discord channel](https://discord.com/channels/777188233284681768/777188575485493259)!

Expected behavior
I click Discord channel! and it takes me to discord but its not seeing the server.

Hi @ktw717,
Now, you can ask the questions on the Discussions tab. I created this channel when the mentioned feature wasn't present.
I'll rename this issue.

No worries I thought that was the case but I wanted to check!
Thanks for taking up this project
https://github.com/sunt-programator/CodeIT/pull/234


Bulletphysics Bindings

Is there a way to add Bullet bindings?

LWJGL does not support C++ bindings yet. See #22 and #124.
Have you tried libGDX's Bullet wrapper?

Just a heads up. Apparently Bullet 3 has a C API
https://github.com/bulletphysics/bullet3/blob/master/examples/SharedMemory/PhysicsClientC_API.h
According to Bullet 3's repo, this is a "new physics-engine agnostic C-API" that they themselves are using for creating Python Bullet bindings in the PyBullet project. According to the authors it's a more higher level API (which sounds nice!).
The API uses a client/server architecture apparently, where each "server" has their own "world" instance.
The [PyBullet Quickstart Guide](https://docs.google.com/document/d/10sXEhzFRSnvFcl3XxNGhnD4N2SedqwdAvK3dsihxVUA) has some details about it.

Bullet bindings are now available in 3.2.1 snapshot 7.
I'm not at all familiar with Bullet, so please consider this a beta release. Comments:

Bullet's code base is weird, e.g. the C API is under an examples folder.
The build process was difficult. I had to build it as a set of static libraries and link to shared a library in LWJGL. This means that custom builds will have to follow the same procedure. The LWJGL build uses the default configuration (single fp precision and no multi-threading).
The C API is verbose and hard to use, because of the client/server architecture.
Direct connections (b3ConnectPhysicsDirect) are tested and seem to work fine. Connecting over TCP/UDP does not seem to be possible with the C API (no way to create a server) and b3ConnectSharedMemory fails (on Windows at least).

Bullet bindings are now available in 3.2.1 snapshot 7.
I'm not at all familiar with Bullet, so please consider this a beta release. Comments:

Bullet's code base is weird, e.g. the C API is under an examples folder.
The build process was difficult. I had to build it as a set of static libraries and link to shared a library in LWJGL. This means that custom builds will have to follow the same procedure. The LWJGL build uses the default configuration (single fp precision and no multi-threading).
The C API is verbose and hard to use, because of the client/server architecture.
Direct connections (b3ConnectPhysicsDirect) are tested and seem to work fine. Connecting over TCP/UDP does not seem to be possible with the C API (no way to create a server) and b3ConnectSharedMemory fails (on Windows at least).

Thanks a lot Spasi, you're the best! I'll try it out when I can, hopefully this will allow me to get rid of libGDX as a dependency at last :smile:
Do you know how the plugin thingy works? Something rather useful are the collision filter masks, which seems to be a plugin rather than in the core API.

The collision filter plugin is available and the C API supports it, see:
b3CollisionFilterCommandInit
b3SetCollisionFilterPair
b3SetCollisionFilterGroupMask

I believe the plugin is loaded immediately but, if not, the following code works for me:

I'm halfway through moving my physics stuff to this C API.
So far it's going ok. It's a fair bit higher level than the base Bullet API for a few things. Like initialization is just like in your example, set a timestep and gravity and you're good to go.
Something I also think I got down is ray casting:
var cmd = b3CreateRaycastCommandInit( hnd, from.x, from.y, from.z, to.x, to.y, to.z );
b3SubmitClientCommand(hnd, cmd);
try ( var mem = MemoryStack.stackPush() ) {
	var info = B3RaycastInformation.mallocStack( mem );
	b3GetRaycastInformation( hnd, info );
	var hitsLen = info.m_numRayHits();
	if ( hitsLen < 1 ) {
		return -1;
	}
	var hit = info.m_rayHits().get( 0 );
	return hit.m_hitObjectUniqueId();
}

I'm pretty sure you don't need the "b3SubmitClientCommandAndWaitStatus" with the status check after because the direct server just works straight with the API underneath. For instance the status check underneath just checks if the command processor is connected, and the direct command processor always returns true for that.
In any case, very recently (3 days ago as of writing this) Bullet guy added the possibility of creating an arbitrary mesh with passed vertices, something that was missing from the C API. You could only create basic shapes or load one from that robot format thingy. I have no need for it now but it'll be useful later (specially for heightmaps).
Now I'm researching how to create shapes that aren't boxes. For boxes you got 3 or 4 functions, but for every other shape it seems you have to create a b3CreateCollisionShapeCommandInit and then do b3CreateCollisionShapeAddCapsule (or any other shape) on it.
I'm wondering, all of the C API seems to be using doubles, but you say you compiled it with single precision, so if I use floats in Java land, the C API casts to doubles, but then Bullet inside casts back to floats? I don't really mind, just curious.
I've been using his implementation of the PyBullet bindings as a reference, since it has all of the API implemented and used there:
https://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/pybullet.c

In any case, very recently (3 days ago as of writing this) Bullet guy added the possibility of creating an arbitrary mesh with passed vertices, something that was missing from the C API.

Yeah, I've noticed the new functionality, it will be added to LWJGL in the next maintenance pass.

I'm wondering, all of the C API seems to be using doubles, but you say you compiled it with single precision, so if I use floats in Java land, the C API casts to doubles, but then Bullet inside casts back to floats?

Yes, the API accepts doubles, the client/server messages carry doubles, the server converts to floats when processing the messages.
I don't have a strong opinion about the default build, I can change it to double precision if that's what users want. Alternatively, LWJGL could provide both single and double precision builds and a Configuration option that flips between the two. But then there's also the question about multi-threading (BULLET2_MULTITHREADING in CMakeLists.txt), so we'd have a matrix 2 x 2 x number of platforms/architectures we support.
I think it'd be better if LWJGL provided a sane default for game development and users that need something different could do a custom Bullet build. I just don't have any experience with Bullet and have no idea what that default should be.

Yeah, I've noticed the new functionality, it will be added to LWJGL in the next maintenance pass.
Sweet! Thanks!

I can change it to double precision if that's what users want.
Oh not at all, I am fine with single precision. At least my project is for game stuff so best performance by default sounds like the better option. I was just curious about how it worked.

I don't know if there are that many "simulation" oriented users that would want double precision in this case. At least in games I think all big engines out there use single precision. At worst they just implement workarounds to preserve the lower memory usage and single precision performance, much like renderer people do by using linear depth to keep their depth buffer under 32 bits.

But then there's also the question about multi-threading (BULLET2_MULTITHREADING
Ah that's true. It sucks that it's a compile time thing. IMHO I'd leave it single threaded (or whatever is the default), whoever needs the multi threaded performance probably knows how to do their custom build to suit their needs.

So in short, as it is it's perfect for my needs.

@Spasi can you tell me, how can I make a build with custom parameters, please?


Prob updating.. another busted link   https://docs.hedera.com/reference/smart-contracts

API docs ..  https://docs.hedera.com/reference/smart-contracts
404..

@johnda98 thanks for flagging; where are you coming across these links? Want to make sure we fix the root.

scroll to bottom of page
https://docs.hedera.com/docs/getting-started-cryptocurrency
see last link.. it goes to the 404.. looks circular.
cheers,
John.
I am Greg Scullard's best buddy fellow Brit  ;)   johnda98 on discord java
sdk and dapponboarding channels
John D Allen.
*Leveridge Systems INC.   *
T +1<PHONE_NUMBER> CST  |<EMAIL_ADDRESS><EMAIL_ADDRESS>| https://www.leveridgesystems.com
https://www.leveridgesystems.com | linkedin.com/in/johndallen1
http://linkedin.com/in/johndallen1 | skype john.allen_67
https://www.yourhashgraphtoken.com https://www.yourhashgraphtoken.com
This email is sent on behalf of Leveridge Systems INC. Reg.Ein 86-0905636.
The information contained in this email and any attached files is
confidential and intended solely for the addressee(s). The email may be
legally privileged or prohibited from disclosure and unauthorized use. If
you are not the named addressee you may not use, copy, or disclose this
information to any other person. If you received this message in error
please notify the sender immediately and delete it from your system.
On Tue, Sep 10, 2019 at 5:41 PM Gehrig Kunz<EMAIL_ADDRESS>wrote:

@johnda98 https://github.com/johnda98 thanks for flagging; where are
you coming across these links? Want to make sure we fix the root.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hashgraph/hedera-sdk-java/issues/217?email_source=notifications&email_token=ADGDUXKCOOM2MDGM3OBNK5TQJAPANA5CNFSM4IT62RVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6MWWPI#issuecomment-530148157,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADGDUXJPDSRVMXQ4EXOJCTDQJAPANANCNFSM4IT62RVA
.


Terminal won't open and won't show error

VSCode Version: 1.26.1
OS Version: macOS Sierra

Steps to Reproduce:

Set  "terminal.integrated.cwd": "PATH_THAT_DOESNT_EXIST" (or a path containing ~ 😞 )
Open a new terminal

Expected: New terminal opens. If it cannot open, its panel should remain open showing the error/reason why it could not start.
Observed: The panel closes immediately, leaving the user with no information on how to resolve the issue.

Does this issue occur when all extensions are disabled?: Yes

Duplicate https://github.com/Microsoft/vscode/issues/17450


archive/tar: add Reader.NextRaw method to read only one raw header

The current master implementation elides records, for example pax x typeflag records are collapsed  into the following record with the extended headers being merged into the normal file's headers.  This is useful for most consumers, who are only interested in consuming the tar content.  But two use cases would benefit from more direct access to the lower-level tar details:

Accessing information that is not yet represented in the the tar structure.  For example, tar.Header does not currently expose pax extended headers outside of these names and prefixes.  There are plans to rectify this limitation (#14472), but until the tar structures expose all of these sorts of details it will be useful to have a way to directly access the header and file data.  This will allow users to add their own parsers for any extension they need which is not yet supported by the stdlib, without requiring them to fork archive/tar or replace it with a completely novel parser.
Validating tar files against a particular standard.  If a protocol places requirements on the tar elements, users will need more direct access to the tar details to check the tar file against those requirements.  For an example along these lines, see opencontainers/image-spec#342 and the extremely naive stub here (which currently doesn't work because Next() never returns the x typeflag headers).

I think we can address both of these cases without breaking the existing API with two changes:

Adding a tar.Reader.NextRaw() that works like tar.Reader.Next(), but always returns the next record regardless of its typeflag.
Adding tar.Header.Bytes exposing a []byte slice of the raw header data, to allow clients to access header fields that are not yet mapped to other tar.Header attributes.  Alternatively, this could be a method tar.Header.Bytes() (or an attribute exposing a string or whatever) to make the data clearly read-only.

Folks who wish to control writing at a low level may want similar changes on the tar.Writer side, but I think that is orthogonal enough to punt to a separate issue (if anyone wants it).
CC @dsnet.

Thanks for filing this. I explored this somewhat and I'm opposed to providing this functionality for the following reasons:

The requested tar.Header.Bytes field has very little use other than for people who want to have low-level access to the tar file. However, this can be still achieved today by using an io.TeeWriter on the input reader (e.g., https://play.golang.org/p/xXOIJ0d63A). This work-around is hacky, but trying to get access to the low-level format is already hacky.
I believe the reason of "accessing information that is not yet represented in the tar structure" is somewhat weak since the tar archive can easily be forked to provide the new functionality. Suppose some new functionality came around, the user still needs to implement that functionality themselves. Either forking the package or using the above workaround seems sufficient.
The desire to validate the tar format seems like a legitimate need, but the proposed API doesn't easily solve this. It seems that your approach was to get low-level access to the header bytes and to validate them yourselves. The workaround I presented allows you to do this.
A better API might be to add a Format field to Header. When reading, the Format will be filled out with a enum representing the format. When writing, Format tells the Writer what format to encode the header using.
However this is harder than it sounds. The unfortunate nature of Postel's Law is that there are many tar readers that liberally decode non-compliant tar files. Even Go's reader will liberally decode files that are somewhat invalid (See #17665 for an example of this). While "specifications" exist for the USTAR, GNU, and PAX formats, the world has a very liberal conformance to those said "specifications". I have even seen instances of where the canonical implementation of the specification behaves differently from what the specification even says. The reality is: the tar format (with all of its variations) is not a format friendly to formal specifications (and thus not friendly to easy validation).

On Sat, Oct 29, 2016 at 02:46:22PM -0700, Joe Tsai wrote:

The requested tar.Header.Bytes field has very little use other
than for people who want to have low-level access to the tar
file. However, this can be still achieved today by using an
io.TeeWriter on the input reader (e.g.,
https://play.golang.org/p/xXOIJ0d63A). This work-around is hacky,
but trying to get access to the low-level format is already hacky.

I agree that tar.Header.Bytes is hacky and am open to the TeeWriter
approach.  However, it's possible that tar.Reader.Next skips elides
two headers (e.g. an ‘x’ and a ‘g’).  In that case, I'm not sure how
you'd find the middle header short of implementing your own parser.
You could drop tar.Header.Bytes (in favor of the TeeWriter approach)
if you had NextRaw to give single steps.

I believe the reason of "accessing information that is not yet
represented in the tar structure" is somewhat weak since the tar
archive can easily be forked to provide the new
functionality. Suppose some new functionality came around, the
user still needs to implement that functionality
themselves. Either forking the package or using the above
workaround seems sufficient.

Forking is so drastic, when NextRaw seems pretty straightforward.

A better API might be to add a Format field to Header…  However…

I agree that this is a bad fit for the stdlib for the reasons you
give.  I think NextRaw and TeeWriter would give sufficient access to
graft this sort of thing onto the stdlib's reader.  Do you have
problems with the NextRaw interface?  Would it help if I worked up a
patch implementing it?

I think a Header.Bytes field is off the table given:

It's low number of use-cases
A workaround with io.TeeWriter

An API to add NextRaw is still a possibility, but I have many concerns.

What does NextRaw do when it decodes a old GNU header for a sparse file? Do we parse the extended blocks as well? (I would assume yes, otherwise the next NextRaw call will fail). This seems to break your assumption that "raw" always means 512B.
Let's suppose you decode the raw header for a PAX header, is it now your responsibility to parse the raw key-value PAX headers yourself?
What happens when some value obtained from a previous call to NextRaw is relevant to properly parse in the next call to NextRaw? For example, let's say the next header is for the PAX headers, and the "size" record is set. When we call NextRaw again, how does it know about information from a previous raw header (like the filesize) that is important to parse the next file?
What happens when you intertwine Next and NextRaw calls?

On Wed, Nov 09, 2016 at 01:55:26PM -0800, Joe Tsai wrote:

I think a Header.Bytes field is off the table given:

It's low number of use-cases
A workaround with io.TeeWriter

Agreed, although the TeeWriter approach depends on NextRaw or similar
1.

An API to add NextRaw is still a possibility, but I have many
concerns…

These are good points.  The main issue with Bytes access and tar
validation is that we need access to the tip of the entry point.  How
about:
// Next2 is just like Next, but if callback is non-nil it is called
// after parsing a header block (512 bytes after the start of the
// record).  A single Next2 call may result in multiple callback
// calls, e.g. in the case of pax extended headers.  If callback
// returns an error, Next2 returns the same error and does no
// further reading.  For records with GNU's "extra" or "sparse"
// header extensions, callback will be called before the additional
// headers are parsed, which means the values set in the callback's
// header argument may be incomplete.  If the callback returns with
// no errors, Next2 will continue parsing as usual.  Callbacks must
// not modify the passed tar reader internally unless they can do so
// without altering the state of the Reader reference assocaited
// with Next2.
func (tr *Reader) Next2(callback *HeaderCallback) (*Header, error)
type HeaderCallback(tar *Reader, header *Header) error
That seems reasonable to me, although the “don't break the reader”
warning is a bit awkward.  You could avoid that with:
type HeaderCallback(header *Header) error
but folks might want to use the Reader reference in a non-desctuctive
way.  For example, Python exposes global pax headers on the
Reader/Writer 2, and Go might decide to handle global pax headers
the same way (as an alternative to packing them all into the same
Header map 3).  On the other hand, folks can always use a closure or
some such with the Header-only form if they do need a reference to
the reader, so I'm ok either way.

Before we dig deeper into this API (which seems fairly complex), I want to understand the use case more. How does Next2 help achieve the goal of "validating the tar file"? Can you give practical and specific things that you would be checking for it to be "valid"?

a possible option (and one that I would love to reconcile with golang upstream) is the approach taken for https://github.com/vbatts/tar-split.
Currently we carry archive/tar but add a functionality of enabling access to raw bytes.
See the docs: https://godoc.org/github.com/vbatts/tar-split/archive/tar
The only additions to the archive/tar API is the RawAccounting bool field and the RawBytes() func on the Reader struct.
(coincidentally I discovered this thread while preparing to open the discussion for pushing the RawBytes feature to upstream)

On Mon, Jan 16, 2017 at 01:54:05PM -0800, Vincent Batts wrote:

See the docs:
https://godoc.org/github.com/vbatts/tar-split/archive/tar The only
additions to the archive/tar API is the RawAccounting bool field
and the RawBytes() func on the Reader struct.

Does this collect all the bytes (from both the headers and payloads)
between RawBytes calls when RawAccounting is set?  If so, it sounds a
lot like the io.TeeWriter approach 1.  Is it just a more conventient
API for that behavior, or does it give you a way to trigger on tar
headers that are currently elided by the upstream Go library (e.g. pax
x typeflag records)?

It does not seem like the RawBytes API provides a way to trigger on elided headers.
As @wking mention, it seems that the RawBytes API is identical to using a TeeReader around the source io.Reader except the RawBytes does not record the body.
It seems that this could be accomplished with a modified TeeReader approach: https://play.golang.org/p/ZUanaldFcu
However, my modification falls short in the following two areas:

Consuming the extra padding for the body only occurs at Next, which incorrectly causes the TeeReader to read padding that is not part of the Header.
This requires reading the entire body before calling Next, otherwise part of the body is accidentally copied into TeeReader. This is inefficient when the body is a sparse file or the input io.Reader is actually a io.Seeker and data could have been quickly discard.

If those are the only two deficiencies (correct me if I'm wrong), I would much rather see the following happen instead:

That the Read function guarantees that it consumes the padding when it hits io.EOF. This could be documented behavior with a test ensuring it's persistence in the standard library.
That we add a Reader.Discard method to tell the read to drop some number of bytes. A discard method is useful for the handling of sparse files (see my comment on #13548).

The first change requires no API change and is something I would want to see anyways. The later API change at least provides benefit for another functionality more popularly requested of the tar package.

#18710 is about adding functionality to tell the Writer what format to use (and conversely for the Reader to report what format was read). @wking, I'm wondering if this will solve your original use-case for this issue where you needed to do validation of the format.

@dsnet understandable, but the need was in accessing only the raw headers and padding, and not the body of each entry, as the tar.Reader.Read() already provides this. @wking in this way, it does allow for collecting all the bytes. That's the purpose of tar-split, such that all the non-payload bytes can be preserved for re-assembling the cryptographic-equivalent original.
There is nothing for triggering on tar headers. Though a parser of the RawBytes ought not be too terrible.
Additionally, that RawBytes approach does not affect the tar.Writer at all. It is only for reading.


Dependencies in a Compose file

Compose files should support dependencies on existing catalog templates.
stacks:
  database:
    template: community:mysql

services:
  wordpress:
    ...
    external_links:
    - database/mysql:db

(dependencies might be a better key for this`)
Services within a dependency should be referenced as if they were part of another stack with the name of the dependency (database in this case). The actual stack name should probably be prefixed to avoid naming collisions when launching two stacks with the same dependency.
All dependent stacks should be successfully started before starting services in the current stack.
An optional version key is probably necessary.
stacks:
  database:
    template: community:mysql
    version: v3.2-rancher2

Questions for dependent stacks likely need to bubble up to the current stack, though this is still to be determined.

Any news about this feature? It's kind of difficult to manage every template in a catalog and make updates on all of them if they have dependencies in common. We should be able to update a dependency (aka a template) so the templates that require this dependency are already up-to-date.

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.


request help:  Does java runner plugin going to be deprecated?

Issue description
I used the java runner plugin to perform pre authentication, but now the HttpRequest object does not have the header values pass throuth.
Environment
running in k8s
APISIX v3.4.1-centos
plugin runner : 0.4.0

your apisix-java-plugin-runner version
0.4.0

Can you post your filter logic?

    @Override
    public void filter(HttpRequest request, HttpResponse response, PluginFilterChain chain) {
        String authorization = request.getHeader(ConstHttp.HEADER_AUTHORIZATION);
        // 验证token
        ApisixAuthResult result = helper.verifyToken(authorization);
        if (result.isSuccess()) {
            chain.filter(request, response);
        } else {
            log.warn(result.getMsg());
            response.setStatusCode(401);
            response.setHeader("Content-Type", "application/json");
            response.setBody("{\"code\":\"A01101\",\"msg\":\"身份验证失败\",\"data\": null}");
        }
    }

It seems that your problem is similar to this  #254 , you can wait for this problem to be resolved and try again


Dart support

This has vaccine demo working on my machine, but it is the initial pass of dart support.

Ignore the golang failure, that's a style (gofmt) issue which will be addressed in a different PR.


fix: layout shifts

https://github.com/ultrox/blog-2/assets/3077558/92670064-249a-4275-b944-74a16fd5f044

👷 Deploy Preview for jurun processing.

Name
Link

🔨 Latest commit
408dba873843873945680f5a9b8d24461a32b0ad

🔍 Latest deploy log
https://app.netlify.com/sites/jurun/deploys/645f92f0bf9e71000826dd52


Turkish language file updated

Minor fixes caused word-to-word translate
Added semantic meanings

Thanks for the PR.
It's very difficult to judge this PR for me though... @aoguzhan, are you still around and what do you think about these?

Merged, thanks for the PR!

It's a pleasure to contribute such a beautiful and useful plugin, you're welcome.


Board Review: BearerTokenChallengePolicy in Core [Python]

Thank you for submitting this review request. Thorough review of your client library ensures that your APIs are consistent with the guidelines and the consumers of your client library have a consistently good experience when using Azure.
The Architecture Board reviews Track 2 libraries only. If your library does not meet this requirement, please reach out to Architecture Board before creating the issue.
Please reference our review process guidelines to understand what is being asked for in the issue template.
To ensure consistency, all Tier-1 languages (C#, TypeScript, Java, Python) will generally be reviewed together.  In expansive libraries, we will pair dynamic languages (Python, TypeScript) together, and strongly typed languages (C#, Java) together in separate meetings.
For Tier-2 languages (C, C++, Go, Android, iOS), the review will be on an as-needed basis.
Before submitting, ensure you adjust the title of the issue appropriately.
Note that the required material must be included before a meeting can be scheduled.
This review is to discuss the addition of a new auth policy for multi-tenant authentication to azure core for Python (other languages may follow). This policy will be consumed by both Keyvault and Tables with potentially more services in future.
A 1-hour slot should be sufficient.
Contacts and Timeline

Responsible service team: Python Core team
Main contacts: McCoy Patiño, Anna Tisch, Laurent Mazuel
Expected code complete date: 1st June
Expected release date: 6th June

About the Service

Link to documentation introducing/describing the service:
Link to the service REST APIs:
Link to GitHub issue for previous review sessions, if applicable:

About the client library

Name of the client library: azure-core
Languages for this review: Python

Artifacts required (per language)
Please read through “API Review” section here to understand how these artifacts are generated. It is critical that these artifacts are present and are in the right format. If not, the language architects cannot review them with the SDK Team’s API review tool.
Python

APIView Link: link
Link to Champion Scenarios/Quickstart samples:

PR to introduce policy to Azure Core: link
PR of Key Vault adoption prototype: link
PR that incorporated Tables-internal implementation of proposed policy: link
azure-storage-blob's current internal challenge auth policy: link

For all other languages, send a request to the Architecture Board to discuss the best format on individual basis.
Thank you!

Scheduled for 6/1

Recording (MS INTERNAL ONLY)


Vote on default font

Please leave a reply stating modern or classic depending on which font style you prefer for your site. Classic refers to traditional serif fonts like those used in academic publications - which is currently the default for Academic. Modern refers to modern looking sans-serif fonts.
In the near future, there will be better options for theming Academic and changing fonts. It would be good to hear directly from users what you prefer as the default 😃

I vote for: Modern

I too vote for modern.

I like current font styles. But I was forced to use new version of Lato font, because I need Cyrillic support.

I vote for a combination of serif/sans-serif pairing to provide a distinctive look uncommon in traditional document editors, for example, headings could be Atlas Grotesk — a beautiful sans-serif typeface that was inspired by well-known typefaces Helvetica and Mercator. The body could be Lyon Text — a contemporary serif that looks great on digital interfaces.

Is it possible to leave this as an option in the settings?

@Resonanz yes, Academic's upcoming new theming system will allow to choose different themes and styles 😃 There will be the option of both the current classic style as well as a modern style - it currently looks like the modern style will probably be the default for new installations.

I vote for modern font. In some languages (ie: Vietnamese), the default font of Academic could not render properly.

I vote for modern

The default font style has now been set to modern in the new theme system (66ca3fca7596048ff7511a8361912ba2434c2b72)


Spanish translation

Hello Remi. First of all, I appreciate your significant contribution to the work you are doing.
I want to translate the entire documentation into Spanish, which is currently not available after the recent major changes you made to the package.
Could you please guide me on how to proceed, what I should modify, or if there is any documentation regarding this?
Greetings!

Excellent. Thank you. When I have updates, I'll submit a PR.


Description doesn't wrap

Have been working for long time trying to figure out this issue: description doesn't wrap and only showing as one truncated line. Someone reported this issue before but it seems v1.7 solved it. So I rolled back to 1.7 and it worked. It seems the newest version breaks some of the autolayout constraints. BTW: I am working with Swift and iOS9.

Yes. Basically used the same as the Application Demo in a collectionView (JSQMessagesViewController actually). Now I am using v1.7 and all is fine. Not sure what changed in latest version.

I am still seeing this in the current version. I have found that calling reloadEmptyDataSet() in viewDidLayoutSubviews() after calling super.viewDidLayoutSubviews() seems to avoid the issue for me.


Can't clear mid way calculations.

Describe the bug

While calculating something If I decide to start over in the middle of a calculation i.e after an operand then I can't clear the calculator using the 'delete' button
Steps To Reproduce
enter an operand (e.g '5') then an operator (e.g '+') then another operand (e.g '3') then press 'delete', can't go to initial state before pressing enter.

Expected behavior

the calculator should go to its initial state (i.e. ready for a fresh input)
Screenshots

Device and Application Information

OS Build:
Architecture:
Application Version:
Region:
Dev Version Installed:

Additional context

Requested Assignment

I'm just reporting this problem.  I don't want to fix it.

here it's stuck until I press 'enter' and then 'delete'.

I want this state after pressing directly delete no matter what calculation state is going on.

You can use the escape key to clear calculations all the way.

If I am typing using numpad then the closest key is del. So it should be dell, btw I have installed another calculator app and that's working fine.


Undefined behaviour in CDFContextLogOps::rollback

CDFContextLogOps::rollback looks like this
  #[inline(always)]
  fn rollback(
    log: &mut CDFContextLogBase, fc: &mut CDFContext, checkpoint: usize,
  ) {
    let base = fc as *mut _ as *mut u8;
    let mut len = log.data.len();
    // SAFETY: We use unchecked pointers here for performance.
    // Since we know the length, we can ensure not to go OOB.
    unsafe {
      let mut src = log.data.get_unchecked_mut(len) as *mut u16;
      while len > checkpoint {
        len -= Self::CDF_LEN_MAX + 1;
        src = src.sub(Self::CDF_LEN_MAX + 1);
        let offset = *src.add(Self::CDF_LEN_MAX) as usize;
        let dst = base.add(offset) as *mut u16;
        dst.copy_from_nonoverlapping(src, Self::CDF_LEN_MAX);
      }
      log.data.set_len(len);
    }
  }

The problematic part is:
let mut src = log.data.get_unchecked_mut(len) as *mut u16;

This index is out-of-bounds, since it's equal to the length, not smaller than it. While the reference is never used, the documentation for slice::get_unchecked_mut states that this is still undefined behaviour:

Calling this method with an out-of-bounds index is undefined behavior even if the resulting reference is not used.

I believe changing that line to:
let mut src = log.data.as_mut_ptr().add(len);

would achieve the same effect while avoiding UB.
push has the same problem:
let dst = log.data.get_unchecked_mut(len) as *mut u16;

You are right, if you send a patch we'll land it.


'showLastUpdateTime' being rendered incorrectly when deployed through Cloudflare, Vercel...

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Description
showLastUpdateTime key maybe working incorrectly when deployed through Cloudflare, Vercel... I don't update my docs, but when I deployed, all docs page updated latest date.
Self-service

[X] I'd be willing to address this documentation request myself.

I don't know the specifics of your deployment method, but if the update time is computed from the git commit dates, you need to make sure you do a deep git clone. A shallow one (depth = 1) results in all pages having the lastUpdateTime set to the time when the clone was performed.


Support snackbar theming for z-index

Is your feature request related to a problem? Please describe.
Can't change the z-index of a snackbar.
The snackbar is hidden under a component not under my control in the page
Describe the solution you'd like
Support snackbar theming (--mdc-snackbar-z-index) for z-index
Describe alternatives you've considered
I am using rollup to rewrite the z-index during build as a workaround

Thanks for the issue! We'll investigate a better solution for z-index in our updated components


[Bug] Text overflow and incorrect layout of the color picker on content hover resize

When the content hover contains a color picker and it is resized too small, the text and the color picker box overflow. Perhaps the text should disappear when there is not enough space for the text.
https://github.com/microsoft/vscode/assets/61460952/f69de9ab-cbaa-48ff-a92c-c805c64d52db

At least the text does not wrap to the next line anymore, but imho the text should remain visible for as long as possible and could possibly also have text-overflow: ellipses?

Hi thanks for your comment. The following PR which was merged yesterday should set a minimum width on the content hover when a color picker is embedded and resolve the issue.

Indeed, thanks!


It only sends messages to me and itself helpp

i just hop in a test server with 10 people and they are all online and i get this in console whats wrong?
Responding to mertcan :  Sending message to all 2 members of Test server.
(node:120) DeprecationWarning: Collection#filterArray: use Collection#filter instead
Waited 76ms.    |1|     DMing mertcan
Waited 112ms.   /      DMing lol
Sent 2 messages successfully, 0 bots were skipped.
Unhandled promise rejection: DiscordAPIError: Cannot send messages to this user
at C:\Users\Mertcan\Desktop\SADSA\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:79:15
at C:\Users\Mertcan\Desktop\SADSA\node_modules\snekfetch\src\index.js:215:21
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
name: 'DiscordAPIError',
message: 'Cannot send messages to this user',
path: '/api/v7/users/555063767667310613/channels',
code: 50007,
method: 'POST'

It is highly likely that you incorrectly set up the bot, considering that it is only detecting two member in this test server of "10 people".


The X-axis line disappeared when user checks the presentation check box

SEVERITY:  Major
MODULE: Bubble Chart
PLATFORM: Windows 7 / FireFox 44.0
STEPS TO REPRODUCE:

Navigate to the URL: http://tools-stage.gapminderdev.org/tools
Bubble chart will be loaded
Click on present
Click on present check box
Observe the x-axis line

ACTUAL RESULTS:
The X-axis line disappeared when user checks the presentation check box
EXPECTED RESULTS:
The X-axis should not disappeared
SCREENSHOT:

hi @k6Labz. Please specify what resolution of bubblechart  x-axis disappeared?


Add user stories

Part of issue #40

Failed CI checks look to be due to changes on main that were reverted. Merging should be fine.


workspace-images: fix preferCustomIcon

tested in WSS and WSHUD
the old prefer-custom-icon behaviour makes preferCustomIcon=True useless, as it always overrides the EWMH icon if you use an "unknown" icon.
this replaces the boolean preferCustomIcon with a boolean hasIcon param to customIcon, letting the pager config handle the situation intelligently.
this also allows case-by-case basis for preferring custom icon.
(i use this to override "unknown" icon and also certain websites in firefox, and otherwise prefer system icon instead of custom)
for folks that use custom icon, this requires tiny change to pagerConfig. if you use system icons only, no change required.
customIcon t c -> fct t c, => customIcon _ t c -> fct t c,

kinda a bummer that we have to change the interface here. I also think that Ideally the customIcon function would actually take in as an argument whatever the current icon is instead of taking in a bool. That way you get rid of the conditional logic around whether there is a customIcon/ewmhIcon, and simply always return the result of the customIcon function (which can just return whatever it was passed in if it does not want to override).

yea, i tried to work around breaking api, or add a parameter and have the old ones call the new one with some zany function, but it was messy as hell, and i doubt many people use the customIcon functor. the break is at least very easy to fix.
i considered passing in the icon, but whats the point of passing around a bytestring or a pixbuf or what-have-you? the user isnt going to unwrap it anyway, beyond calling isJust.
assuming thats true, then this is equivalent (the user returns None to not override).
(also, we cant use the output of the custom-image-selector because it just returns a filepath. leaving the pixbuf unwrapping to the enduser is worse, IMO)

i considered passing in the icon, but whats the point of passing around a bytestring or a pixbuf or what-have-you? the user isnt going to unwrap it anyway, beyond calling isJust.
assuming thats true, then this is equivalent (the user returns None to not override).

The code is just tidier/idiomatic that way IMO. Also in the case of WSHUD it allows for easier composition. You could wrap one custom function with another without having to worry about the details. Maybe one of these functions would only override EWMH icons, but not custom filepaths. You wouldn't need an extra field to indicate that there is another overrding custom file etc.

@teleshoes Resolve merge conflicts?

@IvanMalison resolved. conflict was with windowSwitcherFormatter, and a function that moved higher up

@travitch Merge? This looks pretty good to me.


[docs] Add documentation for containerElement in RaisedButon

Documentation for containerElement in RaisedButton.
Close issue #5647

Could we make the wording consistent across this, #6204, #6199, and any other components that support it?

sure.

It is consistent between FlatButton, RaisedButton and ListItem. Thanks @lourd for the PR on ListItem.

@oliviertassinari  Are you sure that containerElement is a prop in the Button tag in the next branch. I tried using it and it does not work nor do I see the prop being defined in the code anywhere.

@Shahrukh-Zindani Do you want the answer or I let you dig in? (hint: the property name is different and more intuitive)

Got it. Let me dig in.


Add generator option to create Reducer, Saga and api

Please provide an option in CLI to generate reducer, saga and api files for any object to add in state. Plus it will also add default request, success and failure Type strings in Types.js and methods in Creators.js

We're doing one last refactor to the way we make Types/Creators and reducers.   Once we are happy with the change, we will be making a generator :)

Sorry, I'll make time for it this week.

@skellock - you've been coding like a beast lately, no rush.

Should you can make generator now. Refactoring is completed or not?

Should definitely make a generator.
@waqas19921 - if you'd like to take first stab at it, I can answer any questions you may have.

@waqas19921 are you going to have a go at this? I might, if you're not.

I say go for it @juddey

@GantMan lol you would :shipit:

hey, just wondering how this might be affected by #447...? I know that its a long way out but still thought I'd ask.

You don't need to worry about that yet.  447 needs to worry about this.

cc @GantMan


The naming coventions for. creating modules via Creating module from existing query flow is incorrect, After of QueryModule1, its creating QueryModule12 instead of creating QueryModule2

https://www.notion.so/The-naming-coventions-for-creating-modules-via-Creating-module-from-existing-query-flow-is-incorrec-4f152278633346e5844be8f0728c7c94

@kamakshibhat-appsmith Is this issue still valid?

Bumping this issue up to prod because it should have made it's way there by now if it was not fixed

Yes it is still valid


perf(kit,nuxt): use fdir to speed up fs scanning

🔗 Linked issue

📚 Description
This aims to provide faster glob performance when resolving files with Nuxt.
Discovered @antfu's thoughts in https://github.com/unocss/unocss/pull/3722#issuecomment-2053769072 too late, so would value his review. 🙏
We might choose to revert the adoption of fdir here and later go with native fs.glob, keeping just the move to native readdir...

I also continued the discussion with @43081j in e12e's discord - my main worry about this is the cost of API changes and implicit behavior changes. My suggestion would be we find a fs.glob shims with the exact API for Node.js prior that version. This way it would be more like the ultimate state (zero-deps, standardized) that the ecosystem would likely to agree to move to. And at one point when we drop the Node version that without the API, we can then remove the shims without migrating again

just my two cents: only the API style will differ here. behaviour is likely the same if setup correctly
for that reason though, i'd likely still opt for fs.glob if you're able to (but its pretty new so doubt we can require that version yet). not sure how likely a shim/polyfill is


use multistage Docker build to minimize the Image size

i can add the multi-stage dockerfile , into your application

Sure, assigning.

ok working on it

Merged.


svelte-kit preview doesn't pick up env vars declared in .env

Describe the problem
During development, Vite loads .env files according to this logic. svelte-kit preview doesn't read .env files; as such, env vars are missing.
Describe the proposed solution
Load .env files with the same logic Vite uses (this is handwavy — Vite allows arbitrary 'modes', so it's unclear which file(s) we'd load in preview beyond .env and .env.local. .env.prod and .env.prod.local?)
Alternatives considered
No response
Importance
would make my life easier
Additional Information
No response

Hmm I have mixed feelings about whether this would be the desired behavior. Production builds don't automatically look at .env (I admit I haven't specifically checked, but I hope they do not!) so why should previews?
preview loading .env might be convenient, but it sounds unwise to me. As in production, you should be responsible for making sure the environment variables in question are actually present in your environment.

I think this is in relation to using tools like dotenv and env-cmd. The intended purpose is to load env variables at runtime. Is there a better way to load env variables at runtime?

closing in favour of #4296


Android test example h64 h80

Hi Marc, please review and provide feedback are always welcome!!! <Thank you very much in advance~>


Enable code coverage properly in Github Actions

Following up on PR https://github.com/huggingface/huggingface_hub/pull/976 that disables the coverage in tests.
It would be good to re-enable and fix it properly. Potential fixes have been mentioned here (internal url) and here (internal url).
Originally from @osanseviero :

The coverage tool we use is currently not working since it's actually looking at the coverage of the tests (i.e. if the tests are tested).  The initial solution was simple (change --cov to --cov=src), but the way we setup our tests is that we don't do relative imports of the code under huggingface_hub, but rather we install huggingface_hub and then run the tests. That means that we're really interested in the coverage of the locally installed huggingface_hub,
Making it work is somewhat possible but starts to be hacky (we need to set up .coveragerc pointing to huggingface_hub), but then pytest will look at the coverage of all the files even if we're only interested in a group of files (e.g. we have independent test coverage runs for repository, hub mixin, keras, fastai), so the approach above would not work very nice. I also face the issue that it seems codecov might not share the report for source_package). Locally you can try
pytest --cov=.github --cov-config=.coveragerc  tests/test_utils_sha.py

and it works ok, but again it gives the coverage for all the files.

and from @adrinjalali :

In this repo: https://github.com/skops-dev/skops/blob/main/.github/workflows/build-test.yml
I install the library, then test, and in tests imports are not relative, and the coverage looks quite okay, example: https://app.codecov.io/gh/skops-dev/skops/compare/18/diff
I'm not sure why on huggingface_hub we have these issues.
I've also set the codecov config to wait for all the 12 CI runs before reporting anything, we could do the same for huggingface_hub.

Finally, an example of misleading codecov intervention: https://github.com/huggingface/huggingface_hub/pull/904/files

Mentioning this attempt from osanseviero https://github.com/huggingface/huggingface_hub/pull/925 just in case (closed without merging).

Done in https://github.com/huggingface/huggingface_hub/pull/992.


Datalake V2

Hello team.
Does this script work for datalake V2?

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

ID: 88dabf76-bd53-0581-5b33-f90c85462bd1
Version Independent ID: 1b82ca05-8b26-c823-3810-8cb6bccfd361
Content: Calculate size of a blob container with PowerShell - Azure Storage
Content Source: articles/storage/scripts/storage-blobs-container-calculate-size-powershell.md
Service: storage
Sub-service: blobs
GitHub Login: @tamram
Microsoft Alias: tamram

@luismejia9 Thanks for the feedback. We are actively investigating and will get back to you soon.

@luismejia9 - The Blob storage APIs should work as expected on an account with a hierarchical namespace enabled, so this script should technically work.
#please-close


Support field attributes on vertex and constant structures

Adds support for attributes on struct fields, such as doc comments. This doesn't work on stable because of a macro parser bug. Wait until rust-lang/rust#42913 is in a stable release (1.20 probably) before merging this.

@mzmonsour is this ready to ship?
Note that you need to switch appveyor config to use 1.20.
Also, this PR should probably be aimed at pre-ll and/or v0.16 as opposed to master

The PR should be ready to merge. I tried adjusting the appveyor config, although I may have messed something up in the process of targeting pre-ll, since appveyor is complaining about the PR. Let me know if there's something else I should fix.

bors r+


Enable the ESLint operator-assignment rule

Enable the ESLint operator-assignment rule
This patch was generated automatically, using the gulp lint --fix command.
Please find additional details about the ESLint rule at https://eslint.org/docs/rules/operator-assignment

Fix the remaining ESLint operator-assignment errors

/botio lint

/botio test

Thank you!


Improved: Reduction of recurring INFO logs (OFBIZ-12830)

Improved: Reduction of recurring INFO logs (OFBIZ-12830)
Reduces the amount of logs created by recurring standard actions by changing the log level of several logging actions to verbose.

Oops, sorry @gilPts I just clicked to see what it does, and it ask you to review. I don't think it's needed, anyway it's a breeze to do :)

Thanks @cshan-ecomify , it looks food to me :+1:


Extension support for Exceptions possible?

Hi, at first: I'm completely new to this package and I'm pleased about the possibilities! :-)
Currently I have this piece of code:
            throw new InvalidArgumentException(
                'Exception message',
<PHONE_NUMBER>
            );

This position is found from phpmnd and apparently no extension is active here, tested with setting "all".
Is it possible and useful to add an extension for this? Or how would you handle this case?

Hi :) Thanks for taking the time to submit this issue.
The argument exception would cover this. What is the command you were using to check this ?

Oh, sorry, I have expressed myself in a misleading way..
In that case, I would like to ignore these number. We often have such exceptions and with a timestamp we cover the error. This is legitimate for us and we don't want to replace it with $x constants ;-)

You can use --ignore-funcs which will allow these to be wrapped in intval(1583854980) and not picked up.
If there's lots though I'm not sure that's useful.
I'm not sure I fully understand what it is your trying to do ? I assume your hard coding a timestamp when the exception was created (guessing at that number ?) if so wouldn't
            throw new InvalidArgumentException(
                'Exception message',
               strtotime('Tue Mar 10 2020 15:43:00 GMT+0000')
           );

be more expressive ?

The timestamp is used as a unique code to find the expression. It could also be a random number. So the solution with intval is a smart solution.
Thanks for your answer and time!  :-)