Switch to rfind_url for URL detection

This switches to rfind_url for detecting URLs inside the grid. Instead
of expanding at the cursor position, the complete terminal is searched
from the bottom until the visible region is left with no active URL.
Fixes #2627.

Fixes: #2627

@kchibisov Good point, forgot about that. Is also covered by tests in rfind_url, so should be good to close that with this PR.

@chrisduerr What do you think about adding the brackets mentioned in  #2648 to rfind_url before merging this work? So, no additional version bumpings in Cargo.toml + Cargo.lock will occur on a master.

@chrisduerr What do you think about adding the brackets mentioned in #2648 to rfind_url before merging this work? So, no additional version bumpings in Cargo.toml + Cargo.lock will occur on a master.

I've wondered how to best do this, since there's two ways really.
Either we make the character illegal in URLs, which would likely be the simplest option and be pretty efficient.
Alternatively we could just add them to the bracket characters in rfind_url, which would also be trivial, but I'm not sure if it's worth it. I'm not sure if we ever want to allow them otherwise.
My plan was definitely to fix that with this PR too, but I just haven't made up my mind yet about which of these approaches I prefer.

@chrisduerr from a logical point of view they a surround characters, from a practical point of view making them illegal will make sense, since these chars are super rare, and I personally didn't know about them until man groff. So the choice here is correctness vs performance, I'd personally go for correctness and logical consistency with open/close brackets.

So the choice here is correctness vs performance, I'd personally go for correctness and logical consistency with open/close brackets.

Yeah I was kinda thinking the same thing. Though the performance difference is quite significant when adding additional brackets (roughly 20% in my benchmark), so I was kinda not looking forward to that. So it just doesn't really seem worth the difference, since the penalty will obviously always be there regardless of the presence of that character.

@chrisduerr You should probably compare adding this char to is_illegal vs one bracket to SURROUND_CHARACTERS. It seems like overhead of surround_chars is something like O(len(SURROUND_CHARACTERS) * n) (n - number of chars, that you'll parse), so +1 to 4 is a lot, but only just because its 4 (I've not done any serious math around here, just at first glance). However you can probably improve this with HashMap, that uses on stack buffer (no dynamic allocations, until they needed), but you should probably wait for const generics here.

I've tested it with is_illegal and adding it there slightly improves performance (probably some weird optimization thing). The performance difference of the surrounding characters always seems to be around 20%, regardless of the amount (varying slightly). However this is +20% of the previous value, so it is exponential, not linear growth.
Also regarding the HashMap, are you talking about the stored surround_states? Because the SURROUND_CHARACTERS do not use a static buffer. If you are talking about the surround_states, a dynamic buffer is necessary since it tracks more than one surround character at a time, since something like (https://example.org/test((ing)heh)) needs to be properly handled.

I've tested it with is_illegal and adding it there slightly improves performance (probably some weird optimization thing).

is_illigal should be a jump table, which is pretty fast and adding one more char(since its just an IntegerTy) should be fine, probably you've decreased "gaps"(forgot the official name of this) in it, so that might be faster. It looks something like this in assembly.
.LJTI0_0:
  .long .LBB0_1-.LJTI0_0
  .long .LBB0_5-.LJTI0_0
  .long .LBB0_2-.LJTI0_0
  .long .LBB0_3-.LJTI0_0
  .long .LBB0_5-.LJTI0_0
  .long .LBB0_4-.LJTI0_0

Because the SURROUND_CHARACTERS do not use a static buffer.

I was about this one. It seems like it doesn't use dynamic memory for it's storage (It's an array in the end of the day). However, I'm not very familiar on how rust handles such things (from llvm-ir, seems like just an static array somewhere, but I'm not quite sure), but I can be wrong here, don't have a dev version of rustc to check this.

If you are talking about the surround_states, a dynamic buffer is necessary since it tracks more than one surround character at a time, since something like (https://example.org/test((ing)heh)) needs to be properly handled.

I've forgotten to mention this one, you can probably eliminate all dynamic buffer overhead with SmallVector or with preallocating buffer in a constructor (e.g. Vec::with_capacity(16)), since the number of surrounding_states should be small.
Just a small micro optimization hint, you should probably use self.surround_states.clear() here, to avoid allocations.

I think, I've found a bug here. If you start a zsh(without config). write this line git clone https://github.com/jwilm/alacritty and try to click on url's y char this will result in nothing (no opening and highlighting), clicking on t works (y will be highlighted). Seems like off-by-one somewhere. (on master everything works fine)

is_illigal should be a jump table, which is pretty fast and adding one more char(since its just an IntegerTy) should be fine, probably you've decreased "gaps"(forgot the official name of this) in it, so that might be faster.

The match statement in is_illegal does indeed compile to a jump table and I've considered that the performance difference might be related to memory alignment, however I'd have to actually take a look at the output to be sure.

I was about this one. It seems like it doesn't use dynamic memory for it's storage (It's an array in the end of the day). However, I'm not very familiar on how rust handles such things (from llvm-ir, seems like just an static array somewhere, but I'm not quite sure), but I can be wrong here, don't have a dev version of rustc to check this.

Arrays in Rust do not use any dynamic memory, so they can just be easily copied around. However, when testing I noticed that it is possible to improve performance by unrolling the loop looking for surround characters. Trying to either use a function here or a macro might give a good amount of extra performance.

I've forgotten to mention this one, you can probably eliminate all dynamic buffer overhead with SmallVector or with preallocating buffer in a constructor (e.g. Vec::with_capacity(16)), since the number of surrounding_states should be small.

I've used SmallVec before but the performance benefits I've gotten out of it have been very mediocre. Though it's obviously possible that just didn't fit the usecase for it, so looking into it again would likely be worth it. I don't think Vec::with_capacity would improve anything though, since we're unlikely to frequently grow this vector and having even a capacity of 1 would likely just be overhead for (probably) the majority of URLs.

Just a small micro optimization hint, you should probably use self.surround_states.clear() here, to avoid allocations.

I wasn't able to benchmark any performance differences (at least nothing outside of margin of error) between Vec::new and Vec::clear and neither of them should allocate. However calling Vec::clear is likely the better choice here.

I wasn't able to benchmark any performance differences (at least nothing outside of margin of error) between Vec::new and Vec::clear and neither of them should allocate.

It's about reusing buffer, that you've already allocated during parsing, with Vec::new() you'll drop it, but with Vec::clear you'll reuse it. So in case you'll face more surrounding chars after reset you'll probably have space for them.

@kchibisov There's been a lot to unpack in the comments here and some very great suggestions. I think everything should work properly now and all potential performance improvements for rfind_url should either be fixed or have issues to track them available.
If there's anything left that you think hasn't been addressed, please let me know.

I think, I've found a bug here. If you start a zsh(without config). write this line git clone https://github.com/jwilm/alacritty and try to click on url's y char this will result in nothing (no opening and highlighting), clicking on t works (y will be highlighted). Seems like off-by-one somewhere. (on master everything works fine)

This issue is steel here.

Also left most url character is not clickable.

Also I've found some odd behavior in fish shell (everything is fine on master under the same conditions). If my text ends on -1 from line end and I press space it results in doubling the character and other odd behaviors after pressing space.

I think, I've found a bug here. If you start a zsh(without config). write this line git clone https://github.com/jwilm/alacritty and try to click on url's y char this will result in nothing (no opening and highlighting), clicking on t works (y will be highlighted). Seems like off-by-one somewhere. (on master everything works fine)

I can not reproduce this.

Also I've found some odd behavior in fish shell (everything is fine on master under the same conditions). If my text ends on -1 from line end and I press space it results in doubling the character and other odd behaviors after pressing space more times.

Is this only present with fish shell and not with bash or zsh? I can't reproduce this with either. Also I'd assume that URLs are irrelevant in this case?

Only fish, yes, irrelevant.

I can not reproduce this

You’ve just fixed it with check that I’ve suggested

So the only issue left is with the fish shell in the last column? I'll have to install fish in a sec to give it a shot, very surprised it would only happen on fish though tbh.

Also I've found some odd behavior in fish shell (everything is fine on master under the same conditions). If my text ends on -1 from line end and I press space it results in doubling the character and other odd behaviors after pressing space more times.

Is this only present with fish shell and not with bash or zsh? I can't reproduce this with either. Also I'd assume that URLs are irrelevant in this case?

Alarm, I was able to repro this on master (seems like fish shell problem). This is just super odd, you should move your text to the end only by one space at a time. I've probably pressed it for a while on master and failed to repro this. Sorry

Alarm, I was able to repro this on master (seems like fish shell problem). This is just super odd, you should move your text to the end only by one space at a time. I've probably pressed it for a while on master and failed to repro this. Sorry

Now you've kinda gotten me curious though. Would you be willing to test another terminal emulator real quick?

Would you be willing to test another terminal emulator real quick?

Sure

I wasn't able to repro this in other terminal emulators. The most important part of this, that I can't repro this when alacritty is built in release mode (only debug). Just for you, how this look like after additional spaces

I wasn't able to repro this in other terminal emulators. The most important part of this, that I can't repro this when alacritty is built in release mode (only debug). Just for you, how this look like after additional spaces

This really sounds like there might be a real issue somewhere, would you mind opening a separate issue to maybe further troubleshoot? Sounds like this PR is unrelated then.


Support for DKIM signature

This is not specific to SES and ideally DKIM would be handled outside this package, however it's difficult to generate the signature before a message is serialised because the encoding may invalidate the hash and the structure of the Django code makes it difficult to change or override the as_string method of a message (https://code.djangoproject.com/browser/django/trunk/django/core/mail/message.py?rev=17375#L127).  Prepending the DKIM signature in the email backend is similar to the solution on django snippets: http://djangosnippets.org/snippets/1995/.
Perhaps the main defence of this hack is that one of the important uses of SES is to improve deliverability and use of DKIM signatures shares a similar goal.

Hi Paul, apologies for the delay, having a tough time with some changes in my life.
I'm not too familiar with DKIM so perhaps you can point me to some resources/tell me how to test this?
It'd be even better if you added a test yourself, actually.
Thanks for your contribution!

Thanks again, I merged this :)

Thanks.  I have another small bit of code that's not really core to django-ses but still likely to be useful to users of django-ses, a script for processes mail sent to AWS_SES_RETURN_PATH: https://gist.github.com/1715265.
I'm not sure if it's worth expanding this to something more flexible that could be included with django-ses.  What do you think?

It's pretty cool. Did you test this? Is it gonna work well for most use cases? If most people would/could use it without changes or just by defining some settings, then I say we should do it.
Otherwise we can link to the gist from the documentation or provide flexible ways to use callback functions to control it or something. I'm not too familiar with bounce reports so that's why I ask.

I haven't had this in production very long so have processed less than a thousand bounces from around a hundred different domains, however the correct bouncing address seems to have been extracted in all cases.
The code could be extended with support for thresholds for number of permanent or temporary failures allowed in a given interval before disabling but perhaps that's overly complex for most users.  A simpler change would be to just add a setting for defining a function hook to be passed bouncing addresses (similar to how the Django KEY_FUNCTION works.)
But then there would be so little active code left that it hardly seems worth including!

def gethook(setting):
    hook = getattr(settings, setting, None)
    if hook and not callable(hook):
        module, func = hook.rsplit('.', 1)
        hook = getattr(import_module(module), func)
    return hook

class Command(BaseCommand):
    def handle(self, *args, **options):
        temporary, permanent = all_failures(message_from_file(sys.stdin))
        map(gethook('PROCESS_TEMPORARY_BOUNCING_ADDRESSES'), temporary)
        map(gethook('PROCESS_PERMANENT_BOUNCING_ADDRESSES'), permanent)


[release-2.6] Fix scale issues

https://github.com/stolostron/backlog/issues/22342
Use default failureThreshold (3)
Allow 5 seconds for timeout for hubs with large workloads

/hold until 2.6 out of code freeze

/cc @Randy424

/unhold


fix: update anchor link to doc

Summary
Anchor link to doc is broken, due to removed hypen in actual doc :+1:
    You might want to include a file extension in your import, or update your 'moduleFileExtensions', which is currently ['js', 'json', 'jsx', 'ts', 'tsx', 'node'].

    See https://jestjs.io/docs/en/configuration#modulefileextensions-array-string

Working link : https://jestjs.io/docs/en/configuration#modulefileextensions-arraystring
Test plan
Unable to test. Stumbled on this issue :
https://github.com/nodkz/mongodb-memory-server/issues/131

Codecov Report

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

@@           Coverage Diff           @@
##           master    #9616   +/-   ##
=======================================
  Coverage   65.09%   65.09%
=======================================
  Files         287      287
  Lines       12145    12145
  Branches     3007     3007
=======================================
  Hits         7906     7906
  Misses       3604     3604
  Partials      635      635

Impacted Files
Coverage Δ

packages/jest-runtime/src/helpers.ts
88.23% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Request to add vendor ID in DeviceInfo

First, thank you for your work. But after using your package, we found out there's no vendorId in DeviceInfo? Our app depends on USB vendor ID and product ID to differentiate them.

Thank you for your feedback! Sure I'll add vendorId at next release or so.


Feat/user crud

Pull Request: Feature/User-RUD
Overview
This pull request implements a complete RUD ( Read, Update, Delete) functionality for the User entity, adhering to RESTful principles. It also includes custom validation and improves the overall validation mechanisms across the application.
Changes Made

RUD Operations:

Read: Added endpoints to retrieve user details, including listing all users and fetching individual user profiles.
Update: Developed functionality to update user information.
Delete: Enabled the deletion of users.

Custom Validation:

Introduced custom validation logic for user inputs to ensure data integrity and enforce business rules.

Improved Validation:

Enhanced the validation framework for the entire application, ensuring consistency and robustness in data handling across all entities.

Manual Testing:

Conducted thorough manual testing of all new endpoints to verify functionality and ensure expected behavior.

Endpoint Summary

Method
Endpoint
Description

GET
/users
Retrieve all users

GET
/users/{id}
Retrieve user details by ID

PUT
/users/{id}
Update user details

DELETE
/users/{id}
Delete a user

Testing

All endpoints have been manually tested with various scenarios to confirm they operate as intended.
Validation has been tested with both valid and invalid inputs to ensure that error messages are appropriate and clear.

Additional Notes

Ensure to review the custom validation logic for edge cases.
Consider potential enhancements for future versions, such as pagination for user retrieval.

Please let me know if any adjustments or further details are needed!

Great job on this implementation! The code is celan and well-structured.


bug: IDE Complaining about a missing compiler option

Provide environment information
System:
OS: Windows 11 10.0.22631
CPU: (12) x64 AMD Ryzen 5 5600X 6-Core Processor
Memory: 11.10 GB / 31.93 GB
Binaries:
Node: 20.9.0 - D:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
npm: 10.2.3 - D:\Program Files\nodejs\npm.CMD
pnpm: 8.14.0 - ~\AppData\Local\pnpm\pnpm.EXE
Describe the bug
My IDE is complaining about a missing typescript compiler option inside of the UI package

Link to reproduction
https://github.com/t3-oss/create-t3-turbo
To reproduce
Go inside IntelliJ (don't know about other IDEs) into the button.tsx of the UI package
Additional information
No response

tested it quickly with my current VSC setup and i can't reproduce it

Actually somehow the error got away, now. Idk why, but now he is gone


Oil Refinery

This is an awesome project and chance of new updates being implemented?

Hi, the new plants are planned to be built under the new platform which
still needs to be developed.
The updates will come, so far I had not had much time to work on it.
Thanks for your interest on the project!
On Thu, Sep 29, 2016 at 7:07 PM, PowerPress<EMAIL_ADDRESS>wrote:

This is an awesome project and chance of new updates being implemented?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4, or mute the thread
https://github.com/notifications/unsubscribe-auth/AARRoWll0ohWJBMZ7Ty8ZK0KjMhMV06Fks5qvDa3gaJpZM4KKiLo
.

Have you seen the fork of the project that includes a modbus oil-refinery?
https://github.com/bealerjm/virtuaplant/tree/master/plants/oil-refinery
On Thu, Sep 29, 2016 at 6:07 PM, PowerPress<EMAIL_ADDRESS>wrote:

This is an awesome project and chance of new updates being implemented?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFij8cUK--WMBjCw77Y6MH4A5JuU1QZoks5qvDa4gaJpZM4KKiLo
.

I haven't! Gonna contact the author and ask for a pull request! Thanks!
On Sep 30, 2016 20:08, "Ike"<EMAIL_ADDRESS>wrote:

Have you seen the fork of the project that includes a modbus oil-refinery?
https://github.com/bealerjm/virtuaplant/tree/master/plants/oil-refinery
On Thu, Sep 29, 2016 at 6:07 PM, PowerPress<EMAIL_ADDRESS>wrote:

This is an awesome project and chance of new updates being implemented?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFij8cUK--
WMBjCw77Y6MH4A5JuU1QZoks5qvDa4gaJpZM4KKiLo>
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4#issuecomment-250883286,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARRoRe15_QqBjmlSzWj-v7UylHJSw6Cks5qvbJ7gaJpZM4KKiLo
.

I'm one of the contributors. I'll clean up the code and make a pull request
:)
On Friday, September 30, 2016, Jan Seidl<EMAIL_ADDRESS>wrote:

I haven't! Gonna contact the author and ask for a pull request! Thanks!
On Sep 30, 2016 20:08, "Ike"<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

Have you seen the fork of the project that includes a modbus
oil-refinery?
https://github.com/bealerjm/virtuaplant/tree/master/plants/oil-refinery
On Thu, Sep 29, 2016 at 6:07 PM, PowerPress<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>>
wrote:

This is an awesome project and chance of new updates being implemented?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFij8cUK--
WMBjCw77Y6MH4A5JuU1QZoks5qvDa4gaJpZM4KKiLo>
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4#issuecomment-250883286,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AARRoRe15_QqBjmlSzWj-
v7UylHJSw6Cks5qvbJ7gaJpZM4KKiLo>
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jseidl/virtuaplant/issues/4#issuecomment-250883517,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFij8cEjZigixcmGFnbyVsdkcwiPEwunks5qvbNvgaJpZM4KKiLo
.


handling output_of in canto, chado and Web pages

Using the "output_of" relation, eg,
decreased cell wall polysaccharide level	FYPO:0002266	output_of	abnormal cell wall biogenesis	FYPO:0000174
we should be able to say that
all genes annotated to FYPO:0002266
decreased cell wall polysaccharide level
are also annotated to
abnormal cell wall biogenesis	FYPO:0000174
This does not appear to be the case at the moment:

In Canto, I do see as a descendant, so this is fine

Just need to make sure the same is reflected in chado, and on gene pages?

So, when this is working, we will  also see rap1 and bqt4 in this list:
http://pombase2.aska.gen.nz/term/FYPO%3A0001515
abnormal telomere tethering at nuclear periphery

This is the current list of relations loaded into Canto:

is_a
has_output
output_of
part_of
has_part
regulates
negatively_regulates
positively_regulates

Should we use all of those when finding inferred annotations for the website?
The current list used by the website is:

is_a
part_of
regulates
has_part

All of the relations used by Canto (and more) are in Chado because we load the full OBO file for each ontology.

We don't use has_part for GO, but we use for phenotypes.
We should use all regulates relations (but regulates might subsume both +and - anyway?)
has_out and output_of should mirror Artemis behaviour. There is something  odd about the interpretation, (I believe you treat the relationship in an inverse way to make an inference).
@mah11  could you link to the ticket where you explained correct behavior previously?
Does this work for all phenotypes (cell and population)? Or was there some exception? (normal)? I can't remember but I had a feeling there was something else....

another e.g. for checking
http://pombase2.aska.gen.nz/term/FYPO%3A0000190
would also list "mislocalized actin cortical patches" (21 additional genes which are not otherwise annotated to  FYPO:0000190 - abnormal actin cortical patch localization)

As noted on the related FYPO ticket (https://github.com/pombase/fypo/issues/2963), first we have to confirm that the question is only about output_of, and if so, correct the ticket title.
Once we have that cleared up, I'll have some follow-up questions.

Canto behavior is addressed in https://github.com/pombase/canto/issues/1307.

I am only looking at is about "output_of"

has_output and output_of should mirror Artemis behaviour.

I have no idea what this refers to.

(normal)?

For normal phenotypes, I removed the has_part links because we couldn't accommodate the way Canto was handling them. (For example, it would be biologically and ontologically correct to say FYPO:0001007 normal mitosis has_part FYPO:0004396 normal mitotic spindle elongation, we don't so that Canto won't offer confusing suggestions.)

Possibly quixotic attempt to summarize and reduce confusion ...
Canto

I'm pretty sure Canto is doing what we want with GO terms and relations. Drill-down options should use is_a, part_of, and the regulates trio. If we do spot any problems, we'll open a Canto ticket.

Canto is also OK for FYPO, with the possible exception of output_of, which is being hashed out on the ticket (1307) linked above.

Annotation inference

GO annotations should be inferred over is_a, part_of, and the regulates trio. Other relations used within GO should be ignored for the annotation inference purpose until further notice. As far as I know this is OK now.

Desired behavior for FYPO is mostly documented on this wiki page (with output_of in Canto awaiting resolution): https://curation.pombase.org/pombase-trac/wiki/RelationsAndTransitivity
Briefly, for FYPO:

is_a and part_of work the same way as for GO;
FYPO has no regulates links;
A output_of B: all genes annotated to A should have annotation to B inferred;
A has_output B: all genes annotated to A should have annotation to B inferred;
A has_part B: all genes annotated to A should have annotation to B inferred.

I'll put a bit more on the website ticket about has_part (https://github.com/pombase/website/issues/89), since Val has just added comments there.

corrected my comment above
has_out and output_of should mirror Artemis Canto behaviour

Other relations used within GO should be ignored for the annotation inference purpose until further
notice. As far as I know this is OK now.

Just to be clear about what's happening in the website at the moment, we're using whatever Owltools infers, but only for these relations:
is_a, part_of, regulates, has_part
And has_part is only used for FYPO.
It's very easy to add or remove relations so I've just added annotations inferred by output_of.

That all sounds pretty sensible so far.

I think maybe this is done now?

Just to be clear about what's happening in the website at the moment, we're using whatever Owltools infers, but only for these relations:
is_a, part_of, regulates, has_part
And has_part is only used for FYPO.

It's changed since I made that comment.  The current list is:

is_a
part_of
regulates
positively_regulates
negatively_regulates
has_part
output_of

(see: https://github.com/pombase/pombase-chado/issues/631#issuecomment-307030124)
The relations above are used when inferring annotation onto ancestors.  But the "Parents" section at the top right of term pages only shows links to direct parent terms via these relations: "is_a", "part_of", "regulates"
For example:
"multiseptate vegetative cell" (FYPO:0000118) is an "output_of" descendant of " abnormal cytokinesis" (FYPO:0000032) but "abnormal cytokinesis" isn't shown as a parent on the "multiseptate vegetative cell" page:
https://www.pombase.org/term/FYPO:0000118
If that's OK, I think we can close this issue.


bevy_utils: Export generate_composite_uuid utility function

Objective
The generate_composite_uuid utility function hidden in bevy_reflect::__macro_exports could be generally useful to users.
For example, I previously relied on Hash to generate a u64 to create a deterministic HandleId. In v0.12, HandleId has been replaced by AssetId which now requires a Uuid, which I could generate with this function.
Solution
Relocate generate_composite_uuid from bevy_reflect::__macro_exports to bevy_utils::uuid.
It is still re-exported under bevy_reflect::__macro_exports so there should not be any breaking changes (although, users should generally not rely on pseudo-private/hidden modules like __macro_exports).
I chose to keep it in bevy_reflect::__macro_exports so as to not clutter up our public API and to reduce the number of changes in this PR. We could have also marked the export as #[doc(hidden)], but personally I like that we have a dedicated module for this (makes it clear what is public and what isn't when just looking at the macro code).

Changelog

Moved generate_composite_uuid to bevy_utils::uuid and made it public

Note: it was technically already public, just hidden

Fascinating, any idea why this would increase MSRV?

Fascinating, any idea why this would increase MSRV?

No clue haha.
The first CI run failed the MSRV check due to an ambiguous module name (uuid). Maybe the comment is from that failure and not the latest pass?
Any insight @mockersf?

@MrGVSV can you please merge main in so you can get the new CI check?


I am face a challenge to setup local sendmail service.

I want to the chronos master can send email to my email account. I confit the mail_server, and let the job Failure. but i have no any inspect log and clue to tell me the status. anyone have some experience to handle it? thanks a lot.

I remember we have some trivial changes to the code to enable email, did you managed to enable chronos log? If so, you'll find some logs I think.

@chengweiv5 my team mate have setup the email successfully. but the setup way can't reproduce again. so i request some way to share. could you please summary the method or a PR?

maybe @depay do you a favor.

@xiaods , could u try thess params?
 --mail_server xxx.xxx.xxx:xxx
 --mail_user username
 --mail_password xxxxxxxx
 --mail_from username@xxx
 --mail_ssl (if needed)

@depay thanks for your hints. we have do it, but i found a weird question:
mail_server should be a pop server, do you know what reason?

@xiaods Mine is a SMTP server:port...did u check the configuration of ur mail service?

@depay i use qq enterprise email. thanks for your share.


Fan full throttle when eqMac is activated

I am getting the issue that when I turn on eqMac my fans start to run a 100% aprox. 6000rpm.  This happens whenever I use eqMac.  the computer can be idle and will begin at 25c and when I turn on eqMac it raises my cpu temp to around 50c however, the fans starts to run at full speed as soon as I turn on eqMac.  I usually have to put the macbook to sleep and let it sit for a few minutes and then get back on.  once that happens everything seems to work fine.  I am also having the issue that i cannot change the audio source from system preferences.  i will choose internal macbook speakers for example and the eqMac will not release control.  I have to turn off eqMac in order to get this to switch source.  this is intermittent, does not happen all the time.
i have a 2018 macbook pro 15" A1990
2.6ghz  6 core i7
Raedon Pro Vega 20 4gb graphic card
16gb ram

You didn't follow the bug issue template.
eqMac uses about 3-5% CPU usage on my 2 core CPU which is much better than any other alternative on the market.

There's still a little bit of performance I can squeeze out eventually but that's not a priority at the moment.
In terms of eqMac switching the audio device back to eqMac, this is intended as eqMac needs the driver audio device to be selected for it to work. When you select any other device eqMac with build a processing pipeline and start playing audio through your selected device.


Persist the stream before getting finish ACK

For some cases, we don't ever persist whatever we get, and
thus makes it hard to debug what the build was doing before
it hung completely.
This should persist the existing output every X minutes (set
to 5 minutes) so that we can get a better understanding of the
failure conditions for certain cases.

I don't think we should write every X minutes. We can write whenever a publisher closes the connection; that will definitely happen at some point.

Closing in favor of #59

Leaving this open in case #59 fails to do its job.

#59 seems to do its job! Closing

Why was this reopened? Can we change to write on publisher disconnects to reduce the number of writes?

Mostly reopened to track the fact that the hanging builds still aren't
getting captured. The problem is that the forever hanging doesn't
disconnect.
We can probably do something there and change busltee to disconnect after X
seconds.
On Mon, Jul 27, 2015 at 5:23 AM, Troels Thomsen<EMAIL_ADDRESS>wrote:

Why was this reopened? Can we change to write on publisher disconnects to
reduce the number of writes?
—
Reply to this email directly or view it on GitHub
https://github.com/heroku/busl/pull/58#issuecomment-125185567.

"Forever" is limited to 24 hours by the nature of running inside a dyno.

Yep, but 24 hours extension is probably something too risky. You guys can
play with that value though, but my guess is that it might cause huge jumps
in redis usage.
On Wed, Jul 29, 2015 at 1:55 AM, Troels Thomsen<EMAIL_ADDRESS>wrote:

"Forever" is limited to 24 hours by the nature of running inside a dyno.
—
Reply to this email directly or view it on GitHub
https://github.com/heroku/busl/pull/58#issuecomment-125885123.

Do we still need this?
I'm guessing if we've been able to live without for almost a year, it's not so much of an issue?

Closed this as stale.


docs: update local setup guide

Description
This PR updates the local setup guide with missing information or with improved guidelines
BACKEND

the latest firebase-tools is 13.12.0 but the setup guide say 14.2.1
clarify the usage of project id instead of project name
The CROWDIN_PROJECT_ID needed is not mentioned in the setup guide and make the server fail with 404

FRONTEND

Create a command to copy .env.example template to .env

Add missing VITE_FIREBASE_MESSAGINGSENDERID as env to set

Fixes # (issue)
Type of change
Please delete options that are not relevant.

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

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] Any dependent changes have been merged and published in downstream modules

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


BasicDAO#update does not exist with createIfMissing parameter

http://mongodb.github.io/morphia/1.3/javadoc/org/mongodb/morphia/dao/BasicDAO.html does not contain the method update(Query query, UpdateOperations operations, boolean createIfMissing), while the Datastore class does contain this method.
This missing feature remains in all versions as of this date.

This method is being deprecated/replace with an Option providing this functionality


robot-server: "reset" stored runs

Overview
As an HTTP API client, I'd like to reset the state of my robot's run history. This supports the UI #8792.
Acceptance criteria

[ ] Factory reset slide-out in app includes "Run history"

This UI is driven by the endpoint

[ ] Removing "run history" removes all stored runs, protocols, and analyses

Implementation notes

The best way to implement is likely to remove and re-create the database entirely.

Edit @SyntaxColoring: I agree with this, but we should make sure there won't be any problems with deleting the database and protocols directory while it's in use.

meeting notes with @SyntaxColoring @aptrons22 :

add reset runs option in route:
'/settings/reset/options'
mark option as reset after
after adding the option to the list
change route '/settings/reset'
to accept the option id set to true
move logic to a collaborator class? if its api level use api reset() else mark db file to delete

DB actions should include:
on robot reboot drop the DB\delete file


Prompt Timeout / Reprompt

Bot Info

Bot handle:
App ID:
SDK Platform:
SDK Version:
Active Channels:
Deployment Environment:

Issue Description

I just want to confirm what I think I already know.  Hoping this can be done without a post somewhere else, but will do that if need be.   I'm using the bot framework.  I've issued a prompt to the user for input.  Is there anyway to time out that input?  I.e. one example of usefulness - if they haven't responded in 30 minutes - reprompt?
Code Example

Reproduction Steps

Expected Behavior

Actual Results

Could you please give an example of the prompt you are using?

Really any of the prompt types.  I might be in the middle of a waterfall
and the user may get distracted and not finish.  We're wondering if we can
reprompt.   Coding in node:
builder.Prompts.choice
builder.Prompts.confirm
builder.Prompts.text
On Mon, Sep 11, 2017 at 10:49 AM, Jason Sowers<EMAIL_ADDRESS>wrote:

Could you please give an example of the prompt you are using?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3445#issuecomment-328572275,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX7MfflQQanbHg3rm-0SVHhLSvpW_RmEks5shVaagaJpZM4PTXlr
.

--
Matt Brown
Technology
Xuba, LLC

There's no built in way to do this.  You could, however, track it within your code and send the prompt again on a timer.  after the timer expires you could send a proactive message, which in this case would be your prompt.  so it's not impossible to accomplish.
please take a look at this documentation

That is exactly the alternate way of approaching it I was considering.
Thanks for confirming.
On Mon, Sep 11, 2017 at 11:02 AM, Jason Sowers<EMAIL_ADDRESS>wrote:

There's no built in way to do this. You could, however, track it within
your code and send the prompt again on a timer. after the timer expires you
could send a proactive message, which in this case would be your prompt. so
it's not impossible to accomplish.
please take a look at this documentation
https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-proactive-messages
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3445#issuecomment-328576329,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX7MfRWm7McKzNdEozddVup62OlLUx_Iks5shVmtgaJpZM4PTXlr
.

--
Matt Brown
Technology
Xuba, LLC

Good luck!

Okay I have looked at this proactive messaging with the botadapter once
before months ago.  The example on Github does not work with the bot
adapter as written.  The adapter beginDialog is expecting opts to be passed
in.
I'm assuming opts.resume is a true/false indicating whether the interrupted
dialog should be resumed after the proactive dialog right?   And done is an
optional function to call after the proactive dialog or in the case of an
error.
On Mon, Sep 11, 2017 at 11:07 AM, Jason Sowers<EMAIL_ADDRESS>wrote:

Closed #3445 https://github.com/Microsoft/BotBuilder/issues/3445.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3445#event-1243602703,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX7MfYmdfzDonJO5EJPUXKFzla9NWCW7ks5shVrOgaJpZM4PTXlr
.

--
Matt Brown
Technology
Xuba, LLC

Additionally when I pass { resume: true } as opts I get this thrown where
botadapter calls session.beginDialog.   I dumped sessionState before this
call and it looks like it had looked up the previous session just fine.
Appreciate any advice.
[image: Inline image 3]

@mwbrown66, This user's solution implements a setTimeout to get their code to perform an action after sending their prompt to the user.

But I'm trying to trigger my new dialog with an http endpoint.
The documentation says you must use botadapter.js.   But this call from the
example code bot.beginDialog(address, "*:/survey"); doesn't work with the
bodadapter beginDialog.
It looks like there are pieces of this example and adapter that have
promise, but as posted they do not work.
On Mon, Sep 11, 2017 at 1:00 PM, Steven Gum<EMAIL_ADDRESS>wrote:

@mwbrown66 https://github.com/mwbrown66, This user's solution
https://github.com/Microsoft/BotBuilder/issues/3349#issuecomment-326470867implements
a setTimeout to get their code to perform an action after sending their
prompt to the user.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3445#issuecomment-328608927,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX7MfU_THht7iVLKRYKsYBifWThEEx0tks5shXU0gaJpZM4PTXlr
.

--
Matt Brown
Technology
Xuba, LLC

If you could point me at a working example of code that uses the botadapter
to do a proactive new dialog that would be most helpful.
On Mon, Sep 11, 2017 at 1:09 PM, Brown, Matt<EMAIL_ADDRESS>wrote:

But I'm trying to trigger my new dialog with an http endpoint.
The documentation says you must use botadapter.js.   But this call from
the example code bot.beginDialog(address, "*:/survey"); doesn't work with
the bodadapter beginDialog.
It looks like there are pieces of this example and adapter that have
promise, but as posted they do not work.
On Mon, Sep 11, 2017 at 1:00 PM, Steven Gum<EMAIL_ADDRESS>wrote:

@mwbrown66 https://github.com/mwbrown66, This user's solution
https://github.com/Microsoft/BotBuilder/issues/3349#issuecomment-326470867implements
a setTimeout to get their code to perform an action after sending their
prompt to the user.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3445#issuecomment-328608927,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX7MfU_THht7iVLKRYKsYBifWThEEx0tks5shXU0gaJpZM4PTXlr
.

--
Matt Brown
Technology
Xuba, LLC

--
Matt Brown
Technology
Xuba, LLC

Looks like there are others seeing the same thing I am.
https://github.com/Microsoft/BotBuilder-Samples/issues/170
On Mon, Sep 11, 2017 at 1:22 PM, Brown, Matt<EMAIL_ADDRESS>wrote:

If you could point me at a working example of code that uses the
botadapter to do a proactive new dialog that would be most helpful.
On Mon, Sep 11, 2017 at 1:09 PM, Brown, Matt<EMAIL_ADDRESS>wrote:

But I'm trying to trigger my new dialog with an http endpoint.
The documentation says you must use botadapter.js.   But this call from
the example code bot.beginDialog(address, "*:/survey"); doesn't work
with the bodadapter beginDialog.
It looks like there are pieces of this example and adapter that have
promise, but as posted they do not work.
On Mon, Sep 11, 2017 at 1:00 PM, Steven Gum<EMAIL_ADDRESS>wrote:

@mwbrown66 https://github.com/mwbrown66, This user's solution
https://github.com/Microsoft/BotBuilder/issues/3349#issuecomment-326470867implements
a setTimeout to get their code to perform an action after sending their
prompt to the user.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/3445#issuecomment-328608927,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AX7MfU_THht7iVLKRYKsYBifWThEEx0tks5shXU0gaJpZM4PTXlr
.

--
Matt Brown
Technology
Xuba, LLC

--
Matt Brown
Technology
Xuba, LLC

--
Matt Brown
Technology
Xuba, LLC


fresh git clone and xcodebuild with errors

I get a aftermath/aftermath/CaseFiles.swift:9:8: error: no such module 'ZIPFoundation' import ZipFoundation error after git clone and xcodebuild on Ventura 13.2
It does seem to resolve the dependency and build fine in full xcode but wondering what I'm doing wrong in the normal CLI here. It's always the damn dependency management and swift dep management is not something quick googling was able to help with here.

yes - exactly. just following the directions on the build part of the readme.md

if you run xcodebuild -scheme "aftermath" does that resolve it?

it sure does! thank you

Thanks for bringing this to my attention. I’ll get the README updated. 🙏On Feb 13, 2023, at 5:39 PM, Paul Gagliardi @.***> wrote:
it sure does! thank you
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>


English Language

Could you translate it into English language please?

In fact, most of my users are in China. If you really want to use the source code, i hopw you can leave an account of instant messaging software, telegram, whatsapp or Messager, and you can reply directly or send it to my email address.

In fact, most of my users are in China. If you really want to use the source code, i hopw you can leave an account of instant messaging software, telegram, whatsapp or Messager, and you can reply directly or send it to my email address.

Hi,if you want to use the source code , I will translate it and release it in the next update.


Getting the following error Class 'Maatwebsite\Excel\ExcelServiceProvider' not found

I have gone over many times in the configuration to make sure everything is correct and it is as well as uploaded the files in my vendor folder but still getting the following error
Class 'Maatwebsite\Excel\ExcelServiceProvider' not found
So I am not sure why

same issue... added every mentioned line into app.php and composer.json and still
"require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "maatwebsite/excel": "~2.1.0"
    },

config/app.php
`   /*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
'Maatwebsite\Excel\ExcelServiceProvider',
],

/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/

'aliases' => [

    'App' => Illuminate\Support\Facades\App::class,
    'Artisan' => Illuminate\Support\Facades\Artisan::class,
    'Auth' => Illuminate\Support\Facades\Auth::class,
    'Blade' => Illuminate\Support\Facades\Blade::class,
    'Cache' => Illuminate\Support\Facades\Cache::class,
    'Config' => Illuminate\Support\Facades\Config::class,
    'Cookie' => Illuminate\Support\Facades\Cookie::class,
    'Crypt' => Illuminate\Support\Facades\Crypt::class,
    'DB' => Illuminate\Support\Facades\DB::class,
    'Eloquent' => Illuminate\Database\Eloquent\Model::class,
    'Event' => Illuminate\Support\Facades\Event::class,
    'File' => Illuminate\Support\Facades\File::class,
    'Gate' => Illuminate\Support\Facades\Gate::class,
    'Hash' => Illuminate\Support\Facades\Hash::class,
    'Lang' => Illuminate\Support\Facades\Lang::class,
    'Log' => Illuminate\Support\Facades\Log::class,
    'Mail' => Illuminate\Support\Facades\Mail::class,
    'Password' => Illuminate\Support\Facades\Password::class,
    'Queue' => Illuminate\Support\Facades\Queue::class,
    'Redirect' => Illuminate\Support\Facades\Redirect::class,
    'Redis' => Illuminate\Support\Facades\Redis::class,
    'Request' => Illuminate\Support\Facades\Request::class,
    'Response' => Illuminate\Support\Facades\Response::class,
    'Route' => Illuminate\Support\Facades\Route::class,
    'Schema' => Illuminate\Support\Facades\Schema::class,
    'Session' => Illuminate\Support\Facades\Session::class,
    'Storage' => Illuminate\Support\Facades\Storage::class,
    'URL' => Illuminate\Support\Facades\URL::class,
    'Validator' => Illuminate\Support\Facades\Validator::class,
    'View' => Illuminate\Support\Facades\View::class,
    'Excel' => 'Maatwebsite\Excel\Facades\Excel',

],

`
console is returning error on composer update:
http://imgur.com/ClWCi80

With L5.2 had the same issue.
Take these steps:

start: add dependency to your app by using command  composer require "maatwebsite/excel:~2.1.0"
add alias and class name to config/app.php just like the instruction says

Hope it helps!

Hi sorry to open this up again ,
but on L4.1 I am having the same issue as described above.
I installed :  "maatwebsite/excel": "~1.3.0",
via composer and added the provider and the facade to app.php
and composer dumpautoload
error:
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'Maatwebsite\Excel\ExcelServiceProvider' not found

No,its not working. It shows me error
Class 'Maatwebsite\Excel\ExcelServiceProvider' not found
I am using laravel-5

Same here... :sob:  Tried to install in a new project laravel 5.0 and  I get the same error.

Make sure you run
php artisan vendor:publish
after following these steps

add this line to composer.json
"maatwebsite/excel": "~2.1.0",

then run
composer update

After updating composer, add the ServiceProvider to
the providers array in app/config/app.php like
'Maatwebsite\Excel\ExcelServiceProvider',

and alias like so
'Excel'     => 'Maatwebsite\Excel\Facades\Excel',

And finally, publish
php artisan vendor:publish  for Laravel 5
php artisan config:publish maatwebsite/excel for L4

I hope it helps someone.!

For Laravel 5, because I can't verify every major release of that version, if you see providers array values in config/app.php that ends up with ::class, follow that pattern. So Maatwebsite\Excel\ExcelServiceProvider will be Maatwebsite\Excel\ExcelServiceProvider::class. To recap:

Add to require the "maatwebsite/excel": "~2.1.0".
Run composer update.
Add Maatwebsite\Excel\ExcelServiceProvider::class in the providers array.
Run php artisan vendor:publish

Still does not work in Larravel 5.4.28. Followed those steps and it does not recognize the static methods. Any ideas ?
Thanks.

Put allias
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
And then in your controller
use Excel

@shadywattay Thanks! you saved me. Thanks a ton...


find by last name

Looks great. Have you signed the CLA?

Yes, I just submitted it

Resolve via https://github.com/spring-guides/gs-accessing-neo4j-data-rest/commit/37623dbf8b8a686cacab3ad4f19b63995d89ed43
Thanks!


Does websocket.receive only look for new messages sent to the server?

In the case of a chat server, all the users (clients) are connecting to my server (host) and websocket.connect and receive and disconnect work wonderfully, because my server is managing all the connections.
But what about the case when my server (as a client) would like to make a websocket connection to another server (as host), like it would for a Slack Bot? For example, if I implement a Slack Bot, I'd like to connect to Slack and use consumers to manage messages that Slack sends over the websocket connection. Slack would host the websocket and my app would connect as a client.
I've tried this, but when I establish a connection to Slack, the websocket.connect event does not execute. Further, once I'm connected to Slack and Slack sends a message to all connected clients, websocket.receive does not fire.
Am I implementing something incorrectly? Can my server connect to other servers through a websocket connection and have consumers manage the messages as they are added to the websocket connection?
Would love to know how you'd implement something like this using this.

You can't do outgoing websockets with the current protocol server, it's incoming only - a new protocol server would be needed to be written to support outgoing, with a new spec (things like messages saying what to connect to).
As for Slack itself, I would like to see a higher-level Slack protocol server that lets consumers be written against slack-specific channel names (like slack.userjoin or slack.message).


feat: Allow providing a service account key directly for GCS

Which issue does this PR close?

Closes https://github.com/apache/arrow-rs/issues/3488
Rationale for this change

Use case:
We're storing service accounts keys external to where the object store client is
being created. We do not want to have to write the key to a file before creating
the object store client. This change allows for providing the key directly.
What changes are included in this PR?

Adds an appropriate method to the GCS object store builder for supplying the service account key directly. Only one of service account path or service account key may be provided, otherwise build will return an appropriate error.
Are there any user-facing changes?

An additional method on GCS object store builder.

There are currently no breaking changes, however I believe the ServiceAccount variant for the GoogleConfigKey should be renamed to ServiceAccountPath to better represent what that option is for. I held off on making that change because I saw that the changelog was already generated for 0.5.3 which includes the new GoogleConfigKey stuff, making that a breaking change. If that's an acceptable breaking change, I'm down to go ahead and do that in this PR as well.

Thank you, makes sense to me.

I believe the ServiceAccount variant for the GoogleConfigKey should be renamed to ServiceAccountPath to better represent what that option is for.

Yeah, probably not worth introducing a breaking change over, but perhaps we could deserialize "service_account_path" and "google_service_account_path" to allow for users to opt-in to using a more explicit config key. What do you think?

perhaps we could deserialize "service_account_path" and "google_service_account_path" to allow for users to opt-in to using a more explicit config key. What do you think?

Seems reasonable to me. Latest commit has those included.


[WIP] Added Adapters to Whisper Model from openai

This PR adds adapter support for the Whisper model from openai.
This feature has been requested in an issue before (#466).

Hey, thanks again for you efforts in contributing new model architectures to adapter-transformers and sorry for the silence on our side.
In the last few weeks, we've been working on a large refactoring of our project, which will ultimately result in the release of Adapters, the next-generation adapters library. See https://github.com/adapter-hub/adapter-transformers/issues/584.
As a consequence, we plan to merge any new model integrations directly to the new codebase, which currently can be found on this branch. Unfortunately, this necessitates some changes in the model integration code (detailed here, see already integrated models such as BERT, BART etc. for reference).
If you'd be willing to update your model integration to target the new library yourself, we'd be super happy to help you on this. Otherwise, we might look into upgrading and merging some of the open model integration PRs ourselves in the future. For more details, again see https://github.com/adapter-hub/adapter-transformers/issues/584.

Hi, thanks again for your efforts in contributing Whisper as a new model to our adapters library.
We have decided to build upon your contribution and adapt your implementation to the new codebase in a new PR (see #693).


Translate README.md to Korean

Introduction

[x] 1
[x] 1-1
[x] 1-2
[x] 1-3
[x] 1-4

Regression

[x] 2
[x] 2-1
[x] 2-2
[x] 2-3
[x] 2-4

Web App

[x] 3
[x] 3-1

Classification

[x] 4
[x] 4-1
[x] 4-2
[x] 4-3
[x] 4-4

Clustering

[x] 5
[x] 5-1
[x] 5-2

NLP

[x] 6
[x] 6-1
[x] 6-2
[x] 6-3
[x] 6-4
[x] 6-5

TimeSeries

[x] 7
[x] 7-1
[x] 7-2

Reinforcement

[x] 8
[x] 8-1
[x] 8-2

Real World

[x] 9

[x] 9-1

[x] fix changes for korean translation

Quizzes as well 🙏🎉❤

After completing the readme, will work on the translate quiz.  :)  (maybe..?)

@jlooper
Hello
All done.  :)
all changes are fixed. please Merge this.
As data engineer, studied machine learning well with this repo. thanks you!

also translated main README file too.

Thank you so much!! What’s your Twitter handle so I can tweet about this?

Thank you so much!! What’s your Twitter handle so I can tweet about this?

sorry, I don't have twitter account, but wrote on Facebook :)
this is my facebook URL.
https://www.facebook.com/minwook.book

linked https://github.com/microsoft/ML-For-Beginners/issues/147  (just saw this issue.)


Fix 'addrConn.resetTransport' error (#3004)

net.Listener converts <IP_ADDRESS> to :: which fails for hosts where IPv6 is
disabled. This change uses the original listen address parameter instead
of grpcl.Addr().String().
The proposed fix is similar to https://github.com/coreos/etcd/commit/63350f5ac10a8035e9284c8385e75d2e27d669c3.

/retest

:+1: Thanks!


Deployment: Add job to create a release

A job should be added to the build server which:

Builds a release package
Tags the repository
Uploads it directly to the download server
It only has to be attached to the correct release on the releases page (https://github.com/SlashGames/slash-framework/releases). Maybe this step (creating a new release draft, setting the tag, title and attach the binaries) can be done by the job as well.

There are batch files now under Tools/Build which can be used to quickly create a release package.


Question: Server Timeout

Hi,
Would it be possible to add serverTimeout parameter similar to the clientTimeout one for configuring that in HAProxy while creating the bastion?

It would function the same way as clientTimeout and it would let you modify https://github.com/moia-oss/bastion-host-forward/blob/6049fe0b8fb07101e0ddb61a1502d112901b25fb/lib/bastion-host-forward.ts#L29 in the HAProxy config.

Hi,
sure, that would be no problem. Do you want to add that change? Otherwise I probably could add it later today or tomorrow.

PR is now open here: https://github.com/moia-oss/bastion-host-forward/pull/214


Filament [GFX-807] Fix filament Metal lib

Jira ticket URL (Why?)
https://shapr3d.atlassian.net/browse/GFX-807
Short description (What? How?) 📖
Metal validation layer does not allow us to go over the 16 sampler limit so we have to undo that change.
Testing
Design review 🎨
n/a
Affected areas 🧭
n/a
Special use-cases to test 🧷
n/a
How did you test it? 🤔
Manual 💁♂
Ran Shapr3D in Visualize Tool and compared this library candidate with the current one on master.
Automated 💻
n/a

See Maximum number of entries in the sampler state argument
table, per graphics or compute function3 here. Note that Metal API Validation catches you if you try to violate the limit of 16, but if you run a Metal app outside Xcode (thus without Metal API Validation), the app doesn't crash (at least we saw an AMD GPU which didn't)


LiveSearch Placeholder Text

It would be nice to add an option where we can define the placeholder text on the liveSearch input field.
The workaround for now is to use jQuery .attr('placeholder', .. function

I agree. It's a great addition for this one.

You can already do this using the option liveSearchPlaceholder - not yet added to the documentation.


Improved card style

allow cards from indented code blocks and indent the card accordingly
improve style of text on left side of card by ensuring all text fit in card

Example
Source
	- indented list
		```cardlink
		url: https://github.com/nekoshita/obsidian-auto-card-link/pull/39
		title: "Improved card style by rben01 · Pull Request #39 · nekoshita/obsidian-auto-card-link"
		description: "allow cards from indented code blocks and indent the card accordinglyimprove style of text on left side of card by ensuring all text fit in card"
		host: github.com
		favicon: https://github.githubassets.com/favicons/favicon.svg
		image: https://opengraph.githubassets.com/d8ee3cb9d9f39c3f548eb37372894fcf6b9bf15f9dd84dc176e0b1f552cedb14/nekoshita/obsidian-auto-card-link/pull/39
		```

Rendered

Tanks you for the PR!


test: translate simple tests to DSL

In preparation for an upcoming PR that changes the way syncing
directory operations works, which would break all of the mock tests
Issue: KBFS-2076
fixup

If I understand correctly, the added simple tests aren't equivalent to all of the removed tests. Is this intentional? (to remove some unnecessary tests)

@songgao: my intention was to keep the same coverage.  Some of the tests (e.g., TestKBFSOpRemoveMultiBlockFileSuccess) already had equivalents in the DSL world, so I didn't need to make new tests for them.  If you find other specific tests that aren't covered under DSL, please let me know!

Gocha. Thanks!

out of curiosity, what's the test coverage before and after this change? (go test -cover, I think)

@akalin-keybase:
master:
kbfs$ go test -cover ./libkbfs ./libfuse ./test 2>&1 | tee /tmp/cover-master.out
ok  	github.com/keybase/kbfs/libkbfs	11.943s	coverage: 66.6% of statements
ok  	github.com/keybase/kbfs/libfuse	5.276s	coverage: 49.7% of statements
ok  	github.com/keybase/kbfs/test	36.368s	coverage: 86.2% of statements

This PR:
kbfs$ go test -cover ./libkbfs ./libfuse ./test 2>&1 | tee /tmp/cover-pr1.out
ok  	github.com/keybase/kbfs/libkbfs	10.579s	coverage: 66.4% of statements
ok  	github.com/keybase/kbfs/libfuse	5.382s	coverage: 49.7% of statements
ok  	github.com/keybase/kbfs/test	34.776s	coverage: 86.2% of statements

So pretty negligible effect.  I don't think -cover counts coverage between packages, unfortunately.


Add support to Emulator to render OAuthCards for skills without having to use magic number

See https://github.com/microsoft/botframework-sdk/issues/5654 for details

Closing as no work to be done


UX meeting agenda 28 September 2016

Letterpress shortcuts: https://github.com/Microsoft/vscode/issues/12716#issuecomment-249928647
Horizontal panel design: https://github.com/Microsoft/vscode/issues/12277#issuecomment-248688405
Inline title bar for MacOS: https://github.com/Microsoft/vscode/issues/12377
@Microsoft/vscode - let me know if you want to join the meeting (Wednesday 4pm BST)

I'm interested. How can I join?

Quick notes

No strong feeling for styling the letterpress shortcuts.
Brad and Steven to discuss when and how to review the workbench UX holistically, incorporating horizontal panel design and inline title bar.


Update plots

some small tweaks to most plots, some mayor tweaks to the limit plot

Coverage increased (+0.3%) to 99.741% when pulling 96a0701cf66659d8fb478ca15bfc8de19aa030d9 on update_plots into a9264006308fb4644de5a7e3fef2c4c9213c3eae on master.


Support conditional fetching in useSWRInfinite

I've tried passing null instead of a getKey function to useSWRInfinite. Also tried returning null from getKey.
In both cases, this results in a deadlock where no additional pages will be loaded when setSize is used to increase the size.

@em maybe you can try
const loadMore = useCallback(() => setSize(state=> state +1),[setSize])
but another case is when fetch request error, useSWRInfinite will also return infinite loop

Thanks wildfrontend. I was able to workaround before I filed the issue by just restructuring things with wrapper components. Conditional fetching in useSWR is really just sugar anyway and the same thing can be accomplished by conditional rendering, it can just make your component IA not very nice. I filed the issue because it's a nice-to-have feature request for useSWRInfinite to have parity with useSWR.
As an aside - there are a lot of caveats with useSWRInfinite, some are addressed in the original PR, but not documented in the official docs. Would be really nice for those to be big disclaimers at the top.

FYI you can pass null as the first argument to useSWRInfinite and it will pause data fetching. Can you provide a reproduction?

Hi I have same problem , if chat id undefined on first render , useSWRInfinite send requests on second render receive data from API , but const {data }=undefined  even if i se data in network tab google chrome
  const { data, error, isLoading, isValidating, mutate:mutateCurrentChat, size, setSize } =
    useSWRInfinite<IConversation>(
      (pageIndex, previousPageData) => {
        if (previousPageData && !previousPageData.length) return null; // reached the end
        if (!chatId) return null;
        return `${API.singleChat(chatId)}?page=${pageIndex + 1}&page_size=20`;
      },
      fetcher,
      {
        focusThrottleInterval: 8000,
        refreshInterval: 150000,
      }
    );


Chore/add readme

Purpose
Add some nice information about the project and us
Approach

I edited the README.md
I added the list of contributors

Where should the reviewer start?
Documentation
This PR addresses a:

[ ] Bug
[ ] Feature
[ ] Technical Debt
[X] Chore
[ ] Vulnerability

LGTM 👍

It's OK

@ticsaul if it is ok can you approve the PR?


OCR Working, But Automates Not; OCR not recognizing spaces in text; & Django Setting 'DEBUG = False' Breaks Login Page in Chrome v84

I have the following Automate set up:

And I know OCR seems to be working as I can search the inbox for the term the automate is looking for and it pulls a result:

But the document stays in the inbox, and won't move to the Utilities folder (I've waited a good 15+ minutes).  Am I doing something wrong?

OCR also appears to not be recognizing spaces in the text - as if I open a document in the inbox, highlight a bunch of text and do a ctrl+c to copy, then paste it into a text editor (e.g. Word) the words are all there, but no spaces between words are included.  Any setting to fix this?

Also - setting 'DEBUG = False' in settings.py breaks the login page in Chrome 84 - gives errors about the html mimetype and css refusals.  Not sure if this is known or expected.

Hi @dohlin, your Automates configuration looks correct. There is an issue indeed. At this point is difficult for me to track the problem. This is actually the real - there is no way at this point to track why automates missed certain documents. There should be some sort of UI log activity for the user.
Copy paste thingy is another problem. This is how it works at this point.
And lastly the DEBUG=False => give errors about html mimetype... that is very strage. I will give it try and come back with details.

I'm also testing Permerge as a possible upgrade from Perless ;-) and also found that Automates doesn't seem to work. I watched the console as I uploaded a new PDF, and found this error, which seems to point to automation?
[2020-08-26 11:43:27,118: DEBUG/ForkPoolWorker-2] Automate Belasting matched document=belastingdienst.pdf                                                                                [2020-08-26 11:43:27,123: ERROR/ForkPoolWorker-2] Task papermerge.core.tasks.ocr_page[c44a7e82-c2f3-4301-a829-cbcb94fb1087] raised unexpected: At tributeError("'NoneType' object has no attribute '__module__'")                                                                                Traceback (most recent call last):                                                                                File "/usr/local/lib/python3.8/dist-packages/celery/app/trace.py", line 385, in trace_task                                                          R = retval = fun(*args, **kwargs)                                                                                File "/usr/local/lib/python3.8/dist-packages/celery/app/trace.py", line 650, in __protected_call__                                                  return self.run(*args, **kwargs)                                                                                File "/app/papermerge/papermerge/core/tasks.py", line 34, in ocr_page                                                                               page_hocr_ready.send(                                                                                File "/usr/local/lib/python3.8/dist-packages/django/dispatch/dispatcher.py", line 173, in send                                                      return [                                                                                File "/usr/local/lib/python3.8/dist-packages/django/dispatch/dispatcher.py", line 174, in <listcomp>                                                (receiver, receiver(signal=self, sender=sender, **named))                                                                                File "/app/papermerge/papermerge/core/signals.py", line 32, in apply_automates_handler                                                              apply_automates(                                                                                File "/app/papermerge/papermerge/core/automate.py", line 48, in apply_automates                                                                     logger.debug(f"Found plugin module={plugin_klass.__module__}")                                                                                AttributeError: 'NoneType' object has no attribute '__module__'

Hi guys, @mikkelnl, @dohlin I am investigating Automates related issues.
In order to makes it easier to track automates, I am adding so called "user logs". So that you will be able to track in UI directly main events like Automate run, Automate matched or there was a mismatch.
I will come back next week with more details.

Great, if there's anything I can do to test etc, let me know.

ah, I found the issue!  I automates were matched against hocr text, not text itself, which results in low rate matching. Anyway, I will fix this. As a bonus you will get UI logs where you will be able to follow the whole matching/mismatching process.

I "fixed" automates issues.
There are some important changes:

The "Extract Page" was removed. First of all it was an experiment of mine which failed. Simply too buggy to be of practical use.
Automates plugins part also was removed. It is so, because adding plugins the way I thought it is just wrong - for each and every plugin user was supposed to write a small python app... which even I did not do it.
In meantime I learned about another project - which inspired me to remove initial design of automate plugins.
Instead user will be able to upload an yml file which will be sort of template describing data to extract. I will implement invioce2data approach in a later version of papermerge.

For now, I will leave automates as simple "match and move to destination folder".
In next version 1.5 - automates will enable user to assign tags to the matched documents.
Automates they are simpler now - but as per my tests - they work!


fix(hyperchain:configure script): update zkSyncEnvFolder path

What ❔

Updates zkSyncEnvFolder path
Why ❔

It was outdated. Now the zkSync env target folder is /etc/env/target/
Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[ ] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.

LGTM!

Closing this PR as the same changes are merged with other PR.


Fix two objcImpl resyntaxing bugs

#73309 introduced two minor bugs that were not previously detected:

The newly-required (and sometimes implicitly added) @objc attribute was unnecessarily printed into module interfaces, where it could sometimes interfere with final or @nonobjc members of the extension. It should have been omitted.

The type checker began diagnosing an error for members which were only final implicitly because something about their signature, such as their parameter types, made them ineligible for @objc. This behavior is correct but for early adopters, it needs to be softened to a warning.

Correct both of these issues.
Fixes rdar://129178360 and rdar://129247349.

@swift-ci please test

@swift-ci please test


This iFeature/libzip1.0 seek tell fix

This PR implements Tell/Seek support on ZipFileByteStream level,
it implements the idea of rewinding by read operation the underlying libzip structure if libzip zip_source layer doesn't support ZIP_SOURCE_SEEK functionality, no matter whether it is compressed or not.
ByteStream::size_type ZipFileByteStream::Seek(size_type by, std::ios::seekdir dir)
{
...
if ((_file->src->supports & ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK)) == 0)     // if the source doesn't support seek operation
    {
        return SeekByRewind(by, whence);    // Emulation of Seek operation by rewind
    }
...

Updated libzip with seek/tell operations for stored files only.
After reviewing the libzip I believe it doesn't make sense to push the Seek/Tell emulation for compressed content inside the zip_source_deflate.c because there could be another compression/decompression algos/layers and the implementation has similar idea of rewinding the file by read/decompress operation.
Note: I've tested it on VS2013&Windows7 platform

If I am not mistaken, this PR (libzip1.0_seek_tell_fix feature branch) contains Windows-specific fixes that are also implemented in the feature branch that fixes memory leaks (xml_memleak_fix, see https://github.com/readium/readium-sdk/pull/190). Therefore, there are common code diffs in both PRs (vcxproj Visual Studio files, and some *.h and *.cpp tweaks to enable MSBUILD compilation). For the sake of readability (i.e. code reviews) and traceability (i.e. once the PR is merged), it would be nice to extract the Windows-specific code changes into a separate feature branch. I realize that this means more admin work though (juggling branches in local repository copy), so this may be an unreasonable request. I'll leave it to you :)

I made a quick code review of this pull request. I just have some observations:
(1) First of all, a point related to what Daniel said above. I.e., there are some changes in this pull request whose purpose is to make this code buildable in Visual C++. We have to thread carefully here, because we want to keep the Readium SDK still buildable in Xcode and NDK. Therefore, we should probably build these changes in those environments to make sure that everything is still building in them.
In fact, I'm curious about what the Clang and GCC compilers are going to say about changes like the removal of the empty function body in ePub3/ThirdParty/google-url/base/logging.h: functions like LogMessage(), that used to have a body of {} now have nothing. I wonder if that will be fine by those compilers too. Compiling this pull request code in Xcode and NDK and then running it should be enough to make sure that these changes are fine.
(2) A small tidbit: in the file ePub3/utilities/integer_sequence.h, you added a "#if 1" with its associated "#endif". I guess this is not needed, therefore it can be removed.
(3) I found interesting the solution that you found in order to add the Seek and Tell functionality back. Instead of adding the Seek and Tell as another "layered source" (that weird implementation of the Chain of Responsibility pattern in C from the libzip guys), you added the code to support Seek and Tell directly into the ZipFileByteStream class. That is an interesting choice and avoids having to navigate the code inside libzip with its C weirdness. However, this ties the ZipFileByteStream class and libzip really close together: from this point on, ZipFileByteStream depends on libzip, and it would be a larger change to move to a different ZIP file library. I don't think that it is a big problem because ZipFileByteStream is just a subclass of ByteStream, and we can always create another subclass (something like AlternateZipFileByteStream) if we need. However, I just wanted to point this out.
So, with those observations, I think that the pull request is good and it can be merged, just after we check observation (1): it would not be good if develop gets broken for iOS and Android after the merge.

@nleme ,

In fact, I'm curious about what the Clang and GCC compilers are going to say about changes like the removal of the empty function body in ePub3/ThirdParty/google-url/base/logging.h: functions like LogMessage(), that used to have a body of {} now have nothing. I wonder if that will be fine by those compilers too. Compiling this pull request code in Xcode and NDK and then running it should be enough to make sure that these changes are fine.

please see the google-url\base\logging.cc file, it contains all the definitions of the bodies of the commented empty ones in logging.h. And the google-url\base\logging.cc couldn't be compiled because of multiple body definitions, so I remove the empty bodies in logging.h file.
I think this is correct, and if I'm wrong please let me know

@danielweck

it would be nice to extract the Windows-specific code changes into a separate feature branch. I realize that this means more admin work though (juggling branches in local repository copy), so this may be an unreasonable request. I'll leave it to you :)

I'll re-org the PRs/new branches to separate this two concerns, probably by today/tomorrow

@danielweck,

it would be nice to extract the Windows-specific code changes into a separate feature branch. I realize that this means more admin work though (juggling branches in local repository copy), so this may be an unreasonable request. I'll leave it to you :)

I've separated into the Feature/vs2013 compilation fix #192 PR. Probably this could help with integration with other platforns

We may want to hold on this pull request... So, I created a working copy on my machine of the feature branch "feature/libzip1.0_seek_tell_fix" and I tried to compile the Readium SDK inside Xcode. The problem, then, is that currently I'm getting two compilation errors when I try to do so:
In file included from /Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zip_add.c:36:
In file included from /Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zipint.h:56:
/Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zip.h:59:10: error: 'zipconf.h' file not found with  include; use "quotes" instead
#include <zipconf.h>
^~~~~~~~~~~
"zipconf.h"
In file included from /Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zip_add.c:36:
/Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zipint.h:124:2: error: unsupported size of off_t
#error unsupported size of off_t
^
2 errors generated.
Unless I'm doing something wrong (notice that the only thing I did was: create working copy of feature branch -> open xcodeproj file in Xcode 6 -> Build) if this feature branch is merged into develop, then develop would not build in Xcode. I already verified that the line in question, in the first error, was added in the feature branch.
Daniel do you want to double check what I did? In any case, I'll start investigating this issue, to see what would be needed in order to compile the code in Xcode. My guess is that we will need some "#ifdef APPLE" around those includes.

Trying to compile with XCode (OSX launcher app):
(1) zipconf.h does not exist
(2) "unsupported size of off_t"
(just like Nelson's report above)
Now, because HAVE_CONFIG_H is undefined at the top of zipint.h => Config.h is not included, and therefore SIZEOF_OFF_T is undefined (thus the second error). So I replaced zipconf.h with Config.h, and the compilation moves further ahead...except it stops at errors in zip_entry_free.c:
"Semantic Issue: No member named ch_filename in struct zip_entry" etc.

Hi Nelson,

'zipconf.h' file not found with include; use "quotes" instead

it seems like this is a header paths configuration issue, for the windows configuration epub3.vcxproj has the following include paths:
$(MSBuildProjectDirectory)\include;
$(MSBuildProjectDirectory)\ReadiumSDK\include;
$(MSBuildProjectDirectory)....\ePub3;
$(MSBuildProjectDirectory)....\ePub3\utilities;
$(MSBuildProjectDirectory)....\ePub3\ePub;
$(MSBuildProjectDirectory)....\ePub3\xml;
$(MSBuildProjectDirectory)\ReadiumSDK\Prebuilt\Include;
$(MSBuildProjectDirectory)....\ePub3\ThirdParty;
$(MSBuildProjectDirectory)....\ePub3\ThirdParty\google-url\src;
$(MSBuildProjectDirectory)....\ePub3\ThirdParty\utf8-cpp\include;
$(MSBuildProjectDirectory)....\ePub3\ThirdParty\icu4c\include;
$(MSBuildProjectDirectory)....\Platform\Windows\include\libzip
The highlighted paths has the   zipconf.h inside
BTW,  “zipconf.h -- platform specific include file
This file was generated automatically by CMake
based on ../cmake-zipconf.h.in.”
So, it would be good to have this file generated for every platform, or just try to copy the previous zipconf.h from the latest working build.
Anyway, it seems to me that I should try the updates for all the platforms, currently working on Android build and configurations
Thanks,
Dennis
From: Nelson Leme<EMAIL_ADDRESS>Sent: Friday, September 04, 2015 3:06 AM
To: readium/readium-sdk
Cc: DennisPopovDn
Subject: Re: [readium-sdk] This iFeature/libzip1.0 seek tell fix (#191)
We may want to hold on this pull request... So, I created a working copy on my machine of the feature branch "feature/libzip1.0_seek_tell_fix" and I tried to compile the Readium SDK inside Xcode. The problem, then, is that currently I'm getting two compilation errors when I try to do so:
In file included from /Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zip_add.c:36:
In file included from /Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zipint.h:56:
/Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zip.h:59:10: error: 'zipconf.h' file not found with include; use "quotes" instead
#include
^~~~~~~~~~~
"zipconf.h"
In file included from /Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zip_add.c:36:
/Users/nelson_leme/Documents/DevWork/readium-sdk-libzip-mods/ePub3/ThirdParty/libzip/zipint.h:124:2: error: unsupported size of off_t
#error unsupported size of off_t
^
2 errors generated.
Unless I'm doing something wrong (notice that the only thing I did was: create working copy of feature branch -> open xcodeproj file in Xcode 6 -> Build) if this feature branch is merged into develop, then develop would not build in Xcode. I already verified that the line in question, in the first error, was added in the feature branch.
Daniel do you want to double check what I did? In any case, I'll start investigating this issue, to see what would be needed in order to compile the code in Xcode. My guess is that we will need some "#ifdef APPLE" around those includes.
—
Reply to this email directly or view it on GitHub https://github.com/readium/readium-sdk/pull/191#issuecomment-137605332 .  https://github.com/notifications/beacon/AFU9-7o2WR2N5Cg3blMomwLWf3fC4rDOks5ouNfdgaJpZM4FxJlg.gif

make -f Makefile.am
=>
make_zip_err_str.sh missing file
I guess the ziplib folder does not contain all the necessary files from the lib dist?

make_zip_err_str.sh missing file

it seems like #191 has that file
https://github.com/readium/readium-sdk/pull/191/files#diff-ed1c4bf110539f92a9e2a7af44583202

@danielweck,

Now, because HAVE_CONFIG_H is undefined at the top of zipint.h => Config.h is not included, and therefore SIZEOF_OFF_T is undefined (thus the second error).

Windows project has HAVE_CONFIG_H defined in its configuration.. something like "-DHAVE_CONFIG_H" command line option

@DennisPopovDn correct, make -f Makefile.am now seems to work fine (I must have pulled an incomplete branch, somehow!). I'm going to try to force the HAVE_CONFIG_H flag.

Alright, so I am now forcing the HAVE_CONFIG_H flag at the top of zipint.h, which means that Config.h is included (note that I corrected the upper case 'C'), which in turn includes zipconf.h which was re-generated by make -f Makefile.am (by the way, I changed angle brackets to quotes in zip.h, rather than modifying the header path), but I still get errors in zip_entry_free.c:
"Semantic Issue: No member named ch_filename in struct zip_entry"
etc.

but I still get errors in zip_entry_free.c
zip_entry_free.c is not in win project at all..
this is old file

"  zip_entry_free.c -- free struct zip_entry
Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner"

@DennisPopovDn I updated the feature branch to fix the main compile errors (removed obsolete files + updated XCode project file), but we still have:
"undeclared identifier _stricmp" in _zip_name_locate() (see zipint.h #define strcasecmp _stricmp)

_stricmp not found in,,,
in Config.h .. undef
#define HAVE__STRICMP
?
Probably platform specific zipconf.h should have that correct defines..

@DennisPopovDn yes I commented #define HAVE__STRICMP, and now have errors about HAVE_FSEEKO and HAVE_FTELLO, so I added #defines in Config.h (zipconf.h did not have anything) ... compiling...

Compiles fine after fixing throw std::exception, but now have linker errors in XCode...

Compiles fine after fixing throw std::exception, but now have linker errors in XCode...

Which ones? (May be I had similar during the windows build)

See latest commit to feature branch (zip_support). I have another linker error, unrelated to ZIP...investigating.

Last remaining linker error: LogMessage in Google URL (GURL) !?

Yes, please add logging.cc file into the project

logging.cc is already in the XCode project under ePub3/ThirdParty/google-url/base :(

It seems like this is the reason why logging.h had empty bodies of LogMesage class.. that was the reason of compiler error in windows..  I removed that empty bodies..

Got you! https://github.com/readium/readium-sdk/commit/ccbd23d20abdc055260654889f50b064e4ce5085#diff-d20f7209c27342643ed79346dcf1f46f

Fixed (see latest commit in feature branch).

Okay, now compiles fine, but OSX launcher says: "ArchiveXmlReader: Nil ArchiveReader supplied" ... investigating.

zip_fopen() fails at "META-INF/container.xml" (which is the main entry point into the EPUB archive).
See ZipArchive::ReaderAtPath in zip_archive.cpp.

zip_fopen() fails at "META-INF/container.xml"

This is strange, looks like the issue at libzip level

Ah, zip_fopen_index_encrypted => _zip_source_zip_new return NULL.

_zip_file_get_offset returns 0 :(
(see _zip_source_zip_new  called from zip_fopen_index_encrypted)

zip_source_seek => zip_source_call return negative offset.

it seems like there is some low level error like incorrect direntry structure initialization, I'm trying to recompile it on windows

@danielweck , I was able to reproduce it on MacOS, now investigating

it fails on the following condition
static int
_zip_fseek(FILE *f, zip_int64_t offset, int whence, zip_error_t *error)
{
    if (offset > ZIP_FSEEK_MAX || offset < ZIP_FSEEK_MIN) {
	zip_error_set(error, ZIP_ER_SEEK, EOVERFLOW);
	return -1;
    }

and ZIP_FSEEK_MAX and ZIP_FSEEK_MIN are 16-bit integers, because of some preprocessor defines.. and the current offset is out of bound and failed...

and there are several other issues, in progress

It seems like the current code of this branch works for SDKLauncher-OSX, however  some additional testing for seek/tell operation in OSX is required, the question is
What is the usual test scenario for byte-range requests and seek operations under OSX? (Which .epub with media files, etc)

@DennisPopovDn try any EPUB3 file with a large video, or audio Media Overlays. On OSX / iOS, QuickTime will make HTTP byte-range requests during playback / seeking.

I just double checked and I was able to compile the Readium SDK in Xcode with Daniel's changes. Thanks Daniel! :-) I'll see if I can build the iOS Launcher with that Readium SDK and see if I can play video files fine. That would pretty much settle that the new libzip library is working fine. I'll let you guys know what I find out.
By the way, we still have to try to compile this feature branch in Android. I have not had the time to do that yet, but I'll try after I'm done with running the iOS Launcher.

Unfortunately, I just found out a problem: I was able to compile fine when I was solely opening the xcodeproj for the Readium SDK. However, once I actually switched to the iOS Launcher (which contains the Readium SDK project as a submodule) I was not able to compile anymore. :-( Let me paste below the error:
/Users/nelson_leme/Documents/DevWork/ios-launcher-libzip-mods/readium-sdk/ePub3/ThirdParty/libzip/mkstemp.c:75:8: error: implicit declaration of function 'getpid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        pid = getpid();
              ^
1 error generated.

I'll try to find out myself what is going wrong here, and also if I can find a fix for this. I'll let you guys know what I find out.

OK! I was able to fix the issue above. All I had to do was to make the following modification at the beginning of the mkstemp.c file:
#include <sys/types.h>
#include <sys/stat.h>

#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <stdio.h>
#include <stdlib.h>

#include <sys/types.h> // <=== Added include
#include <unistd.h> // <=== Added include

#ifndef O_BINARY
#define O_BINARY 0
#endif

I was able to compile everything (yey!) but when I tried to link, I'm getting some 60 some link errors, all like the one below:
Undefined symbols for architecture x86_64:
  "__zip_buffer_data", referenced from:
      __zip_find_central_dir in libePub3-iOS.a(zip_open.o)
      __zip_read_cdir in libePub3-iOS.a(zip_open.o)
      __zip_cdir_write in libePub3-iOS.a(zip_dirent.o)
      __zip_ef_utf8 in libePub3-iOS.a(zip_dirent.o)

I think this has nothing to do with the libzip changes per se, it is a matter of setting my compiler to build for the right platforms. I'll be working on those and I'll let you know.

I figured out what the problem is. It is pretty simple, actually: some source files (such zip_buffer.c) are not being compiled. Hence, the linker cannot find the assembly code for the functions in those files.
The interesting thing is that the files in question do show up in the project navigator, but for some reason are not being compiled. I'll investigate that and modify the project file as needed.

I just fixed that previous problem. The issue was very much Xcode related. Even though all the new libzip files were included in the project, they were not earmarked to the "ePub-iOS" target, and therefore they were not being compiled. Once I marked all of them as part of the "ePub-iOS" target, all of them got compiled and I did not get any more link errors. :-)
I'm able to fully build the iOS Launcher now. I will try running the iOS Launcher soon, including media playback, and then we can know for sure that the new libzip is working fine in iOS.

OK, I just pushed a commit with the changes that I had made to allow the Readium SDK with the new libzip code to be compiled in Xcode.
However, I have no way to confirm that my changes have not messed up things in Windows. Dennis, can you check if things are still compiling fine in Windows? If not, let me know, and we can work out this (probably by adding some #ifdef APPLE - but I'm avoiding those, unless they are actually necessary).
Also, I'm going to proceed now with running some tests with the iOS Launcher and playing some media files. I'll let you guys know what I find out, but if we pass those tests, then we are good to go as regards to iOS (we still need to check Android).

@nleme, thanks, I'll check the windows compilation soon.

OK! I was able to open some ePub3 books fine with the new libzip code. More importantly, though, I was able to open our traditional "Shared Culture" book, and play the video that it contains on its first page. We know for a fact that Quicktime, when playing this video, asks for specific ranges inside the video file. And the video played fine. :-)
Therefore, I think that the new libzip code is working fine, including with byte ranges. Of course, it will be good to have more testing, but I would say that from the point of view of iOS, we are good to go to merge this into develop.
However, now we need to do the same process on Android. I'm going to start that now, and I'll keep this thread up to date with my findings.

Tested with OSX launcher app. Works fine (including Media Overlays, i.e. HTTP byte ranges)

Follow-up on this:
Note DRM-Inside's now merged PR (zip f_seek):
https://github.com/readium/readium-sdk/pull/219/files#diff-e8c489d80c21c04a0f36514e70875fd3


Implementation of the pytest to recreate the examples in the doc

@cyrraz this PR implements a pytest that automatically checks if any .svg files have been modified by the lastest commit.
Commit 16915a3 is the first one with a proper implementation.
Commit 4cd86c5 was a successful test to see if it fails if some .svg are modified.
In addition, removing the test that installs the fonts also causes the test fail.
If no .svg changes, the test always passes for Python 3.9, 3.10 and 3.11.
Python 3.7 always fails, and Python 3.8 only fails for some plots, not all.
I haven't looked into why they fail at the moment, but I'm random guessing some seed/metadata changes with python/matplotlib and svg files. Let's discuss.
It also implements a new plothist_make_examples command (that can be run from anywhere), which is equivalent to running python3 make_examples in plothist/src/scripts (the yaml metadata is downloaded from github here).

@cyrraz after some investigation, it was indeed the behaviour of svg files that changed with the python version.

As we can see, nothing changes for the images, but the encoding of the svg files changes a bit.
We can also see that the respective pytests for the matching python version passed without problems, while the other one crashed.
To fix this, I added a small check for the python version at the beginning of the script, so that it only produces images with python3.9+.


Editing of props

Hi, I love the concept of React Storybook - it fits very well with UX pattern libraries. There's also the concept of style guides and projects like https://github.com/devbridge/Styleguide for managing 'live' style guides. I can imagine a single tool that not only shows 'live' branding colours, fonts, font sizes etc, but also display the components of the application within a 'live' pattern library.
A simpler(?) enhancement would be the editing of component properties. i.e. a UX designer can have a form for editing each prop on the component at run time within the React Storybook UI, and the form control is based on the type of the prop (i.e. string, int, array etc) - React Storybook could provide default form controls (e.g. number picker, text box etc) and allow custom ones, mapping the PropType to another React component for form input.
This would allow UX designers to not only see components under fixed scenarios determined at design time, but also allow them to view how a component responds to any scenario of prop values at run time. Is this something that's on the radar? Thanks

I think this is great and definitely, inside our radar. Pro props you can assign some configurable values and there will be a panel at the bottom allow you to edit them.
And the changes are saved in the URL. So, you can copy the current URL and pass it back and forth to get feedback.

Or even just a place to display the propTypes?

Might be relevant, have a look at how these guys handle it: http://react-styleguidist.js.org/
They have both editable props and automatic propTypes documentation generated with react-dockgen.
I'm somehow torn between these two projects, storybook seems to be more stable (and also with storybooks.io on the horizon), but styleguidist has better documentation features. So I hope Storybook will catch up on this side.
Also related to #150

UIHarness

http://scup.github.io/atellier/material-ui-atellier/ doesn't really have this though.

@kevinSuttle could be nice to auto-generate such examples from propTypes validation, e.g. from oneOf.

@kevinSuttle @dimaip @ianlovell Thanks guys for the input. We are planning for this feature and here's how it'll be.
We call this features as "knobs".
Basically we allow to assign a knob to a prop. Like this:
import { storiesOf, createKnob } from '@kadira/storybook';

storiesOf('Button', module)
  .add('default-view', () => (
    <Button
      disable = { createKnob('disable', false) }
      style = { createKnob('style', { color: 'gree' }) }
    >
      createKnob('buttonText', 'Default Value')
    </Button>
  ))

Then we've a tab in the bottom panel called "Knobs" and they'll show a editable input component based on the type of the default value passed.
Then user's can edit those knobs and the story will be re-rendered with those changed values. Also, the edited value is encoded and attached the URL. So, you can share it here and there and look for feedback.
What do you think? Any feedback before we start building this?

Ah maybe #207 would cover some of this.

@arunoda looks cool! Though it may be a bit annoying to write all variants of props by hand, as said, they could be (optionally) imported from the proptypes validation.

@dimaip Idea is this. You don't need to write them all. This is the raw version.
We can use propTypes and defaultProps if needed instead of passing custom values.

Saw this in the CloudFlare UI framework

@arunoda Is this still the plan? I'd be willing to contribute if that would help 😄

@banderson yeah! That's there.
Will do a release soon.

Guys, Storybook Knobs is out. Give it a try: https://github.com/kadirahq/storybook-addon-knobs
Hope I can close this issue.


As a RC4 student, I want to know my completion % of the total goals I have

so that I can get an overview of how much I have completed

Satisfies #95

Completed


--version does not show the version

Describe the bug
version parameter is always ignored and command gets executed.
To Reproduce
Run aio app --version -> shows the available options.
Run aio app run --version -> executes the run command
Expected behavior
The version of the plugin should be displayed.
Desktop (please complete the following information):

OS: MacOS 10.14.06

aio --version
@adobe/aio-cli/3.3.0 darwin-x64 node-v10.18.1

Thanks for this enhancement proposal @kptdobe . I move the issue to the aio-cli directly, as I think this could apply to every CLI plugin in a standardized way.
@sarahxxu what do you think?