Keeps calling http://<example.com>/user/undefined

The issue will be closed without any reasons if it does not satisfy any of following requirements:

Gogs version (or commit ref):  <IP_ADDRESS>3

Git version:

Operating system: Ubuntu x64 16.04 LTS

Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
somehow it keeps calling the http://<example.com>/user/undefined.
Somehow some variable is set to undefined for the web application.
This results in 404 page after login. However clicking on a dashboard works fine.
This is not an issue with other server I installation instance I tried.
...

somehow it keeps calling

What is it?

For that installation something got messed up. But I guess it is no longer an issue after a fresh install on a new server.


AttributeError: 'BaseModelOutput' object has no attribute 'size'

When run the example for gpt2 with gpt-example/train.py, I got the following error:
Traceback (most recent call last):
  File "train.py", line 271, in <module>
    main()
  File "train.py", line 230, in main
    outputs = Trainer.forward(model, None, None, dec_input, dec_length, targets, loss_func)
  File "/home/xwv/xwv/BMCook-main/bmcook/distilling/__init__.py", line 43, in forward
    outputs = foward_fn(
  File "train.py", line 79, in forward
    batch, seq_len, vocab_out_size = logits.size()
AttributeError: 'BaseModelOutput' object has no attribute 'size'

Should I correct anything here? Thanks!

Hi, it's a version difference of ModelCenter. The example is based on model-center-0.1.3 or earlier but Pypi version is 0.1.5 now. In v0.1.5, logits is an attribute of BaseModelOutput class.
So briefly, replacing
logits = outputs by logits = outputs.logits in file train.py, line 74, may be helpful.

I tried the modification mentioned above (replacing logits = outputs by logits = outputs.logits), but it doesn't work ...
Actually, I got another issue before going into this line. The error is for the following code line.

    def new_forward(model_self, enc_input, enc_length, dec_input, dec_length, return_logits=False):
        return model_self.forward_old(dec_input, dec_length, return_logits=return_logits)

I got the following error.
Traceback (most recent call last):
  File "train.py", line 271, in <module>
    main()
  File "train.py", line 230, in main
    outputs = Trainer.forward(model, None, None, dec_input, dec_length, targets, loss_func)
  File "/home/xwv/xwv/BMCook-main/bmcook/distilling/__init__.py", line 43, in forward
    outputs = foward_fn(
  File "train.py", line 74, in forward
    outputs = model(
  File "/usr/local/lib/python3.8/dist-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "train.py", line 112, in new_forward
    return model_self.forward_old(dec_input, dec_length, return_logits=return_logits)
TypeError: forward() got an unexpected keyword argument 'return_logits'

Thus, I tried to avoid it by modifying the code
return model_self.forward_old(dec_input, dec_length, return_logits=return_logits)
into
return model_self.forward_old(dec_input, dec_length)
I don't know if such modification make sense or not. Or are these errors =relevant? Thanks for help!

OK, I found the root cause. In model-center/model/gpt2.py, the forward function uses output_logits as the parameter to control if logits being output or not. But in BMCook, the gpt2-example/train.py as well as distilling/__init__.py uses return_logits wrongly.
After I changed all the return_logits  into output_logits, it works. So, you might correct them in BMCook. Thanks!


Add public disconnect method

I took a slightly different approach from what I discussed originally since this is less disruptive.
Before adding this method, due to React's strict mode, the react example would open 2 WebSocket connections to VTS, but now we can ensure only 1 connection is open at any time.
Resolves #12

By the way, I'm not sure how your build pipeline works. I noticed there was a large amount of changed docs files when I cloned your repo, but I didn't include them in this PR since they referenced my own username (Hawkbat -> adarah). Do I need to regenerate the docs to account for changed line numbers?

Yeah, it's a bit of a mess, I don't have a proper CI/CD pipeline set up. I'll handle updating the docs when I publish the new npm version 👍


Add support for cross-build

It makes it possible to build an image for arm64 (and maybe others) with docker driver:
docker buildx build --platform=linux/arm64 .

I think we should add docker build to our CI, both arm64 and amd64

I am pretty sure that you already build for at least two architectures here. However, it requires build environment which supports it - just having docker is insufficient.


glib: Simplify SignalBuilder constructor

The return_type & param_types are optional, no need to enforce those

Looks good to me. Can you send MRs for gstreamer-rs / gst-plugins-rs for this?

Nothing to change on gstreamer-rs / https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/810. I will look into updating gtk3-rs/gtk4-rs later

Thanks, just merge when you're ready :)


how can i run this site?

i am new to react website.
i have downloaded this project and try to run with webstrom but 'npm start' command is not working.
can you help me?
thanks

post a screenshot

here is the screenshot attached

No, the screenshot of the error.

no there is no error but when i try to run website i got this (as you can see in 'terminal' window).
and nothing happened.

Which "website" are you "running"?
This is not a "website".
This is a library.

my bad, i am new to react so don't know how to make it run like http://www.myreactwebsite.com.
closing this issue

You can't make it run because it's not a website.
The name is "react-website" but it's not a website, it's a library for building a website.
See https://github.com/catamphetamine/react-website-basic-example

Thanks for your help


apexctl tells me to "Re-run as root!"

I'm on Fedora 31 using a Steelseries APEX 3 keyboard.
Every command I try with apexctl gives me the error "Re-run as root!" while I am running the command as root. However, the commands apexctl, or apexctl -h give the help text.
Please help to fix this.

Hi. The Apex 3 isn't currently supported by ApexCtl, and when it can't find a keyboard it supports it assumes it's running with insufficient priviledges.
I have pushed just now a commit which prints more information to explain this situation.
I don't own an Apex 3 myself so I can't test it and judge support. If you want to help, check out #3 to get an idea of what this entails.

Hi, thanks, would be great to get this working.
lsusb gives the ID: ID 1038:161a SteelSeries ApS SteelSeries Apex 3

Ok, I've pushed a commit that allows ApexCtl to recognize the Apex 3 and attempt to work with it. Just to be clear, this doesn't mean it will, only that it'll try.

I tried a few things.
apexctl probe gives a 'Segmentation fault (core dumped)'.
The fuzz script locks the keyboard up after one apexctl probe ... attempt, and I have to unplug and re-plug it physically. Same holds for apexctl reboot.
FYI, the APEX 3 has a 10-zone RGB illumination, so not SENWL-type.

The 'Segmentation fault' issue turned out to be a bug in ApexCtl, thanks for finding that.
As for the keyboard locking up, sounds like it doesn't like what ApexCtl is sending it. Since I don't know how these keyboards work at all and I can't find a specification for the commands they accept, I can't help you make ApexCtl work with the Apex 3. Sorry about that.

Thanks for the attempt. I guess you already asked the Steelseries people for information?
I succeeded in setting a solid colour under Windows / Steelseries Engine, which is retained after un- and replugging the keyboard. For now, this is enough for my needs. Thanks again. Topic can be closed.


initializeValue/value(): Unable to get property 'split' of undefined or null reference

I am getting a similar error... but not exact:
Unhandled exception at line 12, column 21300 in http://localhost:49366/Scripts/lib/simplemde.min.js
0x800a138f - JavaScript runtime error: Unable to get property 'split' of undefined or null reference

I get this when I attempt to set an initialValue. I am using knockout.js in this case, and it only seems to be a problem within a popup dialog box during initialization.
My code is as follows:
        var simplemde = new SimpleMDE({
            element: element,
            initialValue: valueUnwrapped
        });

If I change it so that I set the .value() separately, I get a similar error, but less often.
If I change wrap the .value() call in a 500ms timeout, I rarely get the error.
If I wrap the .value() call in a 1sec timeout, I never get the error.
Example:
        var simplemde = new SimpleMDE({
            element: element
        });
        setTimeout(function () {
            simplemde.value(valueUnwrapped);
        }, 1000);

Of course, having the user wait even an extra second for them to be able to see the editor with an initial value is not ideal.

Discovered that this was due to the simplemde editor being loaded twice in a row on the same element, without disposing of the previous instance of simplemde. Solved this by calling:
simplemde.toTextArea();
simplemde = null;


[hash-library] build failure

Host Environment
OS: MacOS (Darwin-20.4.0)
Compiler: clang <IP_ADDRESS>50022
CMake: 3.22.3
To Reproduce
Steps to reproduce the behavior:
Clone the vcpkg repo master branch.
Install the hash-library package: ./vcpkg install hash-library
In the CMakeList.txt add the hash-library dependency:
find_package(unofficial-hash-library CONFIG REQUIRED)
target_link_libraries(app PRIVATE unofficial::hash-library)

Failure logs
CMake Error at /Users/user/git/vcpkg/scripts/buildsystems/vcpkg.cmake:824 (_find_package):
  Could not find a package configuration file provided by
  "unofficial-hash-library" with any of the following names:

    unofficial-hash-libraryConfig.cmake
    unofficial-hash-library-config.cmake

  Add the installation prefix of "unofficial-hash-library" to
  CMAKE_PREFIX_PATH or set "unofficial-hash-library_DIR" to a directory
  containing one of the above files.  If "unofficial-hash-library" provides a
  separate development package or SDK, be sure it has been installed.

Additional context
Besides this library I can use other libraries from vcpkg just fine:
find_package(cpr CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)

If I try another package name like find_package(hash-library CONFIG REQUIRED) it won't help 😞

thank you for the fix. It's working now 🥳


V12 is now available?

when I run the function eg: getCampaignReport for bing, I get the error like

Invalid client data. Check the SOAP fault details for more information

I tracked the error, but I found the error message is This version of the Bing Ads API is no longer supported. Please migrate to the latest version of the API.
this library need to updated to usd V13 for Bing?

hey @edwinjerez, which version of the SDK are you using? Bing should work with V13 as of the SDK version 1.2.13. I will also look into getCampaignReport to be sure it's using V13.

@edwinjerez I ran a test on getCampaignReport and getAdGroupReport and both worked since the V13 change. Check that you're using the latest update of the Laravel Ads SDK. If you still see some issues, send more details of what you're trying to run and I can help you troubleshoot.

hey @edwinjerez, which version of the SDK are you using? Bing should work with V13 as of the SDK version 1.2.13. I will also look into getCampaignReport to be sure it's using V13.

hey @edwinjerez, which version of the SDK are you using? Bing should work with V13 as of the SDK version 1.2.13. I will also look into getCampaignReport to be sure it's using V13.

what sdk version you mean<EMAIL_ADDRESS>you mean?

@edwinjerez That's correct.

Actually the problem is that Im using edujugon/laravel-google-ads, for managing the google ads api, and the googleads/googleads-php-lib is duplicate in both library. for this reason, when I install your library, there are some issues like  tmarois/laravel-ads-sdk v1.2.14 requires googleads/googleads-php-lib ^40.0 -> satisfiable by
googleads/googleads-php-lib[40.0.0]. Im trying myself, but if you have opinion, please let me know.

I solved the version issue.
but it still get errors like
Invalid client data. Check the SOAP fault details for more information

public function getCampaigns() {         $bingAds = LaravelAds::bingAds()->with('2688821');         // dd($bingAds);         $campaigns = $bingAds->reports('2020-01-15', '2020-02-15')                            ->getCampaignReport();         dd($campaigns);     }

HI @timothymarois
Please help me with this issue.
I think there is little issue on authorization.
I tried https://github.com/BingAds/BingAds-PHP-SDK/ with my credentials, and it`s working.
If I send my credentials can you check if it working in your library?
Thank you.

Hey. Join the slack and I can help troubleshoot your case.
https://join.slack.com/t/basephp/shared_invite/enQtNDI0MzQyMDE0MDAwLWU3Nzg0Yjk4MjM0OWVmZDZjMjEyYWE2YjA1ODFhNjI2MzI3MjAyOTIyOTRkMmVlNWNhZWYzMTIwZDJlOWQ2ZTA
On Thu, Feb 20, 2020 at 3:17 PM edwinjerez<EMAIL_ADDRESS>wrote:

HI @timothymarois https://github.com/timothymarois
Please help me with this issue.
I think there is little issue on authorization.
I tried https://github.com/BingAds/BingAds-PHP-SDK/ with my credentials,
and it`s working.
If I send my credentials can you check if it working in your library?
Thank you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tmarois/laravel-ads-sdk/issues/7?email_source=notifications&email_token=AAS7X5KOHNUSDOFU6ZZR6M3RD3QMLA5CNFSM4KX7F4I2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMP5FOY#issuecomment-589288123,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAS7X5N6G2DKYWVRG6G3UALRD3QMLANCNFSM4KX7F4IQ
.

Hi.
I`m really sorry that I was away and your link has expired.
I will be appreciated if you send me the link again.
Thank you.

Hi Timothy.
I really want your help.
Can you send me the invitation link again?

Hi @timothymarois .
I really want your help.
Can you send me the invitation link again?

Hey, @edwinjerez here is an updated slack invite link.
https://join.slack.com/t/basephp/shared_invite/enQtNDI0MzQyMDE0MDAwLThlNjNlYWM3YWMxMjdhOGFiOTY1ZDFkMzUxMmUzZjJjM2JmZjI0YTg4MDYyYzc3OTc5MGIzYTdkNjQwMTQyNWY
Also, sorry I received your email, I'm actually in Amsterdam for the week, but will try to respond when I'm online.


fixed SetCellRichText bug

fixed SetCellRichText bug

Related Issue
https://github.com/360EntSecGroup-Skylar/excelize/issues/787

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[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 change)

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #788 (b9917bf) into master (9154d50) will decrease coverage by 0.01%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##           master     #788      +/-   ##
==========================================
- Coverage   96.98%   96.96%   -0.02%
==========================================
  Files          31       31
  Lines        9245     9251       +6
==========================================
+ Hits         8966     8970       +4
- Misses        157      158       +1
- Partials      122      123       +1

Impacted Files
Coverage Δ

xmlWorksheet.go
100.00% <ø> (ø)

cell.go
96.88% <80.00%> (-0.48%)
:arrow_down:

Continue to review full report at Codecov.

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


JBDS-4491 Detected OpenJDK let to select it it for install

Codecov Report

Merging #809 into master will decrease coverage by 0.08%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #809      +/-   ##
==========================================
- Coverage   97.73%   97.64%   -0.09%
==========================================
  Files          35       35
  Lines        3088     3276     +188
  Branches      256      458     +202
==========================================
+ Hits         3018     3199     +181
  Misses         70       70
- Partials        0        7       +7

Impacted Files
Coverage Δ

browser/model/jdk-install.js
93.4% <ø> (-0.78%)
:arrow_down:

browser/model/helpers/downloader.js
96.94% <0%> (-1.52%)
:arrow_down:

browser/model/jbosseap.js
98.8% <0%> (-1.2%)
:arrow_down:

browser/directives/componentPanel.js
14.28% <0%> (-1.1%)
:arrow_down:

browser/model/cdk.js
99.22% <0%> (-0.78%)
:arrow_down:

browser/services/data.js
97.26% <0%> (-0.56%)
:arrow_down:

browser/model/devstudio.js
89.13% <0%> (-0.41%)
:arrow_down:

browser/pages/account/controller.js
100% <0%> (ø)
:arrow_up:

browser/model/hyperv.js
100% <0%> (ø)
:arrow_up:

... and 22 more

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 ad09a27...ade6d48. Read the comment docs.


pressing tab inserts a tab character instead of focusing the next field

when editing the query params of a request, pressing tab will insert a tab (or 4 chars, dont remember), rather than moving the focus to the next field.
Version: Insomnia 2021.6.0
Release date: 27/10/2021
OS: Darwin x64 21.1.0
Electron: 11.2.3
Node: 12.18.3
V8: <IP_ADDRESS>-electron.0
Architecture: x64
node-libcurl: libcurl/7.73.0 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.9 zstd/1.4.9 libidn2/2.1.1 libssh2/1.9.0 nghttp2/1.42.0

not sure when this was broken, but it used to work as expected

@rburgst thank you for reporting this!
It turns out it had already been reported and is a duplicate of https://github.com/Kong/insomnia/issues/4206
It has been solved in https://github.com/Kong/insomnia/pull/4215 and the fix should be available in the next upcoming release.


4.2.0 regression:

Why?
https://github.com/plataformatec/devise/blob/master/lib/devise/models/authenticatable.rb#L117-L124
I'm using sequel-devise and I just stumbled into this error. Because you re-defined the inspect method (but why?) and this uses serializable_hash , devise just broke functionality for every ORM not implementing the method (see the reimplementation of the same module). However, IMO this should be made as a conditional, as this method is only (?) implemented in ActiveRecord. sequel doesn't implement it. One could say it should, but sequel already goes out of its away by implementing the ActiveModel spec, which specification could be followed by devise.
If I look a bit into it more, I'd say that orm_adapter should be your guide in terms of minimal ORM API supported. I'm not really against devise implementing ActiveRecord work-arounds, as long as these are protected by conditionals. So even if the def inspect could just be removed, there is some inconsistency there regarding supporting other ORMs.

Here is the why https://github.com/plataformatec/devise/pull/4140. It is not that hard to find it since it was linked in the changelog. I know you may be frustrated but please let's keep the discussion in a proper tone.
I do agree we should not be using a method that is not implemented by others ORMs but this change is to improve security given that with active record or sequel (since it also show all values of a model in its #inspect implementation) your users passwords can be sent to external service.
Given that this problem is also present when you use sequel and that sequel is not one of the officially supported ORMs should devise-sequel reimplement this method as it does with many other devise internal methods?
Which suggestion do you give so we can improve the sequel support but also fix this problem that is also present if you use sequel?

I understand the reasoning about this change and even implemented some fix in master of sequel-devise which I intend to release once Tiago reviews it and think that's acceptable:
https://github.com/rosenfeld/sequel-devise/commit/a916ef5127c0073334ec1543952f12137755cd3d
I'm just not sure whether such concerns belong to Devise's domain. If I understand the problem correctly, it seems some might be worried  that some sensitive information goes to NewRelic or any other service or through e-mail using some gem like exception_notifier and so on. But in that case, even applications which are not using Devise would suffer from the same issue. That's why I think that maybe it should be handled in another place. I'm not complaining or upset/frustrated while commenting this though. It's just that I'm not sure that such security concerns would belong to an authentication library...
What is the reason for this issue to be still open? If this is the reason, I'll try to respond:

should devise-sequel reimplement this method as it does with many other devise internal methods?
Which suggestion do you give so we can improve the sequel support but also fix this problem that is also present if you use sequel?

Well, sequel-devise has to implement them because they are required by Devise, so I don't think it has another reasonable option actually :)
I'm probably going to move from Devise to some custom authentication code at some point and when that happens it's likely I'll stop supporting sequel-devise and it would be good if someone else was interested in taking over it when that happens. Lack of official support for Sequel is just one of the reasons, but there are others too, but this is outside of the scope of this discussion.
What I'd like to say is that it would be much easier for other ORMs to support Devise if Devise was fully compatible with orm_adapter and whenever they need more methods from the ORM they would also add to the orm_adapter and increase its version. This way, if sequel-devise implements version 1.0 of orm_adapter it can be released by requiring orm_adapter 1.0. If Devise needs yet another new method, it would add it to orm_adapter (or devise_adapter, whatever) and increase the version number. This way, someone trying to use latest Devise with latest sequel-devise wouldn't be able to because Bundler would tell them they are incompatible. Also, it would be much simpler for sequel-devise to know what is missing in the new devise_adapter gem version without having to dig into Devise's source code. But anyway, this is just a suggestion as I'm probably moving from Devise even if that happens because, as I said, there are other reasons why I think it would be simpler to use some custom code for my particular application. But in case someone is interested on maintaining a gem to support Sequel with Devise (or any other ORM), it would be very helpful if such devise_adapter gem existed.
Cheers.

@rafaelfranca not to be taken as a slight, I just found the patch at the #inspect level very hopeful. The #serializable_hash method seems important, but that #super call leaves me wondering what is the spec that devise follows for orms.
The question here is, what should devise control. @rrosenfeld already mentioned orm_adapter, and this should be the guideline for devise, but we could safely assume that activemodel could become a reasonable spec (which sequel already supports). The other thing is the attributes that devise knows explicitly from the user model (p.ex. email, encrypted_password) and could use/filter out in a possible inspect implementation. So, devise could implement #inspect with the known parameters and the api supported my activemodel spec/ orm_adapter.
I will look at this further during the week, I'm currently not at my laptop and can't go more into detail for now.

The #serializable_hash method seems important, but that #super call leaves me wondering what is the spec that devise follows for orms.

serializable_hash comes from ActiveModel::Serialization. ActiveModel ends up being the base API for instance level behavior that devise expects from models, while orm_adapter abstracts only the querying APIs between different ORMs - which is were the gap between libraries like AR, Mongoid and Sequel is expected to be bigger, and I believe that pushing the burden of normalizing more methods into it seems to be outside of orm_adapter goals:

ORM Adapter's goal is to support a minimum API used by most of the plugins that needs agnosticism beyond Active Model.
ORM Adapter will support only basic methods, as get, find_first, create! and so forth. It is not ORM Adapter's goal to support different query constructions, handle table joins, etc.

We would love to help out on improving the integration with other ORMs like sequel, but bear in mind that we can't cover all corners by ourselves - maintenance of bridge gems like sequel-devise will always be required, so would be awesome to have someone who cares about it to keep an eye on this repo activity and help with keeping the integration between gems in check :)
I'm closing this one as the sequel-devise patch has been released - thanks @rosenfeld por pushing it. Let's discuss further improvements to ORM support in different threads.

serializable_hash comes from ActiveModel::Serialization. ActiveModel ends up being the base API for > instance level behavior that devise expects from models, while orm_adapter abstracts only the querying > APIs between different ORMs...

querying yes, persistence not so much. orm_adapter stabilized 2 years ago and the support provided in sequel-devise seems good enough. About the ActiveModel being the expected API level, I opened an issue recently in sequel where the author redirects me here as the basis of the activemodel plugin. Seems the base API has been formalized there. Sadly it doesn't formalize persistence/serialization, and this is where devise becomes opinionated, like here.
These are some suggestions from the top of my head:

Model security concerns should be out of devise's scope. ORMs should take care of it, and concerns could be "out-sourced" to activerecord, where an API could be formalized to not expose certain parameters (like this one for logging parameters). @rafaelfranca , how would you feel about this?
Model APIs could (maybe) be formalized so that gems like sequel-devise (or even sequel) could better comply. Something like saying that the following ActiveModel APIs (ex: errors, dirty, validations, serialization...) need to be implemented at the model level (authenticatable and database_authenticatable seem to be the core points of these APIs) for full devise core compatibility.

I don't know how feasible could this be done, and you could best tell me whether this is worth opening new threads. I've been following devise almost since the beginning, and I don't take your support for granted. It's quite feature-rich and supporting different APIs in such a scenario is obviously hard. So my apologies if it might have sounded harsh, it was probably just another friday in planet Earth :)


1.5 Getting Started - Installing Git

TL;DR This book frustrated the hell out of me by not providing what I consider enough information.
Under the Installing on Windows the author tells us that another easy way to install git on Windows is by following the link to http://windows.github.com. I found that it had nothing to do with the examples that followed in chapter 1.6.
I figured I was just inept and looked in the videos section for guidance- which did nothing for me. The video I hoped would help me "Get Going with Git" skipped the entire install process. It tells you "where" to get Git for [your OS] but that's it. The next thing you see is this:

This YouTube video I found was more informative and in-line with the examples that followed in chapter 1.6. It at least shows someone like me who has no idea what they're doing the little steps in between instead of saying "get Git here, okay let's start!"
I saw the opportunity to make suggestions at the bottom of the web page and voilà!

Is this still an issue? I realize at the time of this issue the Git for Windows project was still relatively young, but I think it's decently mature now; also, I can't find any reference to windows.github.io in the linked page.
This is also actually about the Pro Git book - I think - so you probably want to reopen this issue over at that repository.

Yes, I think this has matured a lot outside the site. Will close for now; re-open if it remains an issue.


Adding publicly_accessible and storage_encrypted variables

Exposes publicly_accessible and storage_encrypted variables

@aknysh btw, we'll need to update the README.md

yes, will need to update README.
It's auto-generated for this module, that's why I did not ask @mike-zipit for it


pocketbase serve error: The requested URL could not be retrieved

command success execution , but canot open in browser
[mabok-81ms pocketbase]# ./pocketbase serve --http="<IP_ADDRESS>:8090"

Server started at: http://<IP_ADDRESS>:8090

REST API: http://<IP_ADDRESS>:8090/api/
Admin UI: http://<IP_ADDRESS>:8090/_/

info :
os : Mabox Linux
browser : firefox 101.0.1 (64-bit)
based : arch linux

I've never encountered this error before. Could you provide a little more info about your setup:

Do you have apache/nginx running that could conflict with the localhost address?
If you have selinux enabled (sestatus), could you try to temporary disable it (eg. setenforce 0)?
Is there any specific reason why you have to start the executable with <IP_ADDRESS> and not with the default localhost?
Could you also add the --debug flag to the command and see if a more detailed error is logged in the console?

I've never encountered this error before. Could you provide a little more info about your setup:
* Do you use a VPN/proxy?

* Do you have apache/nginx running that could conflict with the localhost address?

* If you have selinux enabled (`sestatus`), could you try to temporary disable it (eg. `setenforce 0`)?

* Is there any specific reason why you have to start the executable with `<IP_ADDRESS>` and not with the default `localhost` (if there is nothing private, could you post the content of your `/etc/hosts` file)?

* Could you also add the `--debug` flag to the serve command and see if a more detailed error is logged in the console?

solved thanks
i create new user , but verification email not send in my inbox
I want to activate less secure apps
but google has disabled it
I've set smtp to be like this:
smtp:smtp.gmail.com
ports :465


replace proxy-wasm-go-sdk

更新 proxy-wasm-go-sdk 为 higress-group 下的 repo

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

Project coverage is 38.14%. Comparing base (50a219e) to head (4318714).

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #842      +/-   ##
==========================================
- Coverage   38.17%   38.14%   -0.03%
==========================================
  Files          61       61
  Lines       10434    10434
==========================================
- Hits         3983     3980       -3
- Misses       6152     6154       +2
- Partials      299      300       +1

see 1 file with indirect coverage changes


Need an information modal in the cloud backup flow.

When a user chooses to backup Keeper on their cloud, the first time they decide to go with the flow, we want to show them the following message:
"Heading: Backup vaults on your cloud
Subheading 1: Easily access your BSMS files from anywhere on any bitcoin wallet.
Subheading 2: Once allowed, the backups are updated automatically. Rest assured of having the latest vault configurations."
We should give a "Don't show me this message again" checkbox.
Message for dev when Summi has given the screen: This screen needs to pop-up when the user lands on Personal Cloud Backup for the first time, and it should always be available within Learn More. If the user clicks on "Don't show me this message again", we don't! Else we do everytime they come within Personal Cloud Backup.

Inprogress

Completed


Config validator is too verbose

On the current master branch I noticed that config validator in the service initialize script is too verbose. Since this is a threaded program itll fill your syslog and cloud logs quite quickly.

Please file these sorts of issue with Forseti: https://github.com/forseti-security/forseti-security
This isn't an issue with the policies.

My bad! Wrong repo :-)


new rule makes krun unresponsive

Currently I have a language definition that works as expected so far.
But when add the following rule:
rule <k> return Control:ControlFunctionName ; => Body ... </k>
     <controlFlows>
        <control> <name> Control </name> <body> Body </body> ... </control>
        ...
     </controlFlows>

It causes krun to go into infinite loop/get stuck from the beginning (where the new rule is not even applicable):
> krun --debugger test.p4
KDebug> peek
initTCell ( .Map $STDIN |-> "" $IO |-> "off" $PGM |-> ( header_type ethernet_t { fields { ( ethertype : 16 ; )  ( dstAddr : 48 ;  .FieldDecs ) } .HeaderOptionals }  ( header_type y_t { fields { ( xx : 12 ; )  .FieldDecs } .HeaderOptionals }  ( header ethernet_t ethernet ;  ( metadata y_t local_metadata ;  ( parser start { .ExtractOrSetStatements return ethernet ; }  ( parser ethernet { ( extract ( ethernet ) ; .ExtractOrSetStatements ) return select ( ( ethernet . ethertype ) , .FieldOrDataRefs ) { ( 0x8100 , .ValueOrMaskeds ) : vlan ;  ( default : ingress ;  .CaseEntries ) } }  ( action meter_pkt ( meter_idx , .ParamList ) { execute_meter ( per_dest_by_source , ( meter_idx , ( ( local_metadata . color ) , .Args ) ) ) ;  .ActionStatements }  ( table egress_meter { reads { ( ethernet . dstAddr ) : exact ;  .FieldMatchs } actions { meter_pkt ;  ( no_op ;  .ActionNameItems ) } .TableOptionals }  ( ( control ingress { apply ( strip_mtag ) ;  ( apply ( identify_port ) ;  ( ( if ( ( local_metadata . ingress_error ) == 0 ) { apply ( local_switching ) ;  ( ( if ( ( standard_metadata . egress_spec ) == 0 ) { apply ( mTag_table ) ;  .ControlStatements } )  .ControlStatements ) } )  .ControlStatements ) ) } )  ( ( control egress { apply ( egress_check ) ;  ( apply ( egress_meter ) { ( hit { apply ( meter_policy ) ;  .ControlStatements } )  .HitMissCases }  .ControlStatements ) } )  .P4Declarations ) ) ) ) ) ) ) ) ) ) )
KDebug> step

And it gets stuck on step.

Need to dig deeper bug I it seems that it gets stuck at
        ruleMask.stream().forEach(i -> constraints[i] = ConjunctiveFormula.of(context.global()));

In matchRulePattern  in FastRuleMatcher.java

Actually this is a bug in K (in implementations of OneWordBitSet and FourWordBitSet). The bug is probably related to misunderstanding the semantics of shift operation in Java.
In OneWordBitSet (implemented using (64 bit) Long), the nextSetBit is implemented this way:
    public int nextSetBit(int i) {
        assert i <= size();
        long maskedWord = word & (WORD_MASK << i);
        return maskedWord == 0 ? -1 : Long.numberOfTrailingZeros(maskedWord);
    }

The developer probabely thought that if i is 64, then WORD_MASK << i becomes 0 and thus maskedWord becomes zero and so the function returns -1. But this is not the case.
According to Java language specification for shift operation (https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.19):

If the promoted type of the left-hand operand is long, then only the six lowest-order bits of the right-hand operand are used as the shift distance.

So effectively java shift modulo 64 for long. So in the above function if i is 64, then WORD_MASK << i becomes WORD_MASK and so maskedWord does not become zero and the function may return something other than -1 which is not the expected (correct) behavior.
Interestingly, in C11 specification, the result of such a thing is undefined:

The result of E1 << E2 is E1 left-shifted E2 bit positions; vacated bits are filled with
zeros. If E1 has an unsigned type, the value of the result is E1 × 2^E2, reduced modulo
one more than the maximum value representable in the result type. If E1 has a signed
type and nonnegative value, and E1 × 2^E2 is representable in the result type, then that is
the resulting value; otherwise, the behavior is undefined.

FourWordBitSet has the same problem when i becomes 256:
    public int nextSetBit(int i) {
        assert i <= size();

        if (i < Long.SIZE) {
            long maskedWord = word0 & (WORD_MASK << i);
            if (maskedWord != 0) {
                return Long.numberOfTrailingZeros(maskedWord);
            }
            i = Long.SIZE;
        }
        i -= Long.SIZE;

        if (i < Long.SIZE) {
            long maskedWord = word1 & (WORD_MASK << i);
            if (maskedWord != 0) {
                return Long.numberOfTrailingZeros(maskedWord) + Long.SIZE;
            }
            i = Long.SIZE;
        }
        i -= Long.SIZE;

        if (i < Long.SIZE) {
            long maskedWord = word2 & (WORD_MASK << i);
            if (maskedWord != 0) {
                return Long.numberOfTrailingZeros(maskedWord) + 2 * Long.SIZE;
            }
            i = Long.SIZE;
        }
        i -= Long.SIZE;

        long maskedWord = word3 & (WORD_MASK << i);
        return maskedWord == 0 ? -1 : Long.numberOfTrailingZeros(maskedWord) + 3 * Long.SIZE;
    }

I haven't tested it but apparently OneIntegerGenericBitSet does not have this problem.
Thanks a lot to @daejunpark for helping to find the bug :) I will fix this in a pull request.


DiscoverNodesOnStart causes I/O timeout

Library version 7.16.0, elasticsearch version 7.16.2
Setting DiscoverNodesOnStart in elasticsearch.Config when initializing a client results in I/O timeout error from the server:
dial tcp xxx.xx.x.x:9200: i/o timeout

Hi @danvixent
Just tested locally and this seems to work as expected using the same versions you mentioned.
Do you have any additional configuration set that could make this fail ?
For reference here is the code I used:
package main

import (
	"fmt"
	"github.com/elastic/go-elasticsearch/v7"
	"io"
)

func main() {
	cfg := elasticsearch.Config{
		DiscoverNodesOnStart: true,
	}
	client, err := elasticsearch.NewClient(cfg)
	if err != nil {
		panic(err)
	}

	res, err := client.Info()
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	data, _ := io.ReadAll(res.Body)
	fmt.Println(string(data))
}

Hello @Anaethelion, my bad. The client will initialize correctly but won't work when querying data.
That’s when the i/o timeout occurs. It's worthy to note that this issue, about 2 months ago, once occurred for me locally. I moved to cloud and it disappeared.
It appeared on cloud recently and that was when i opened the issue, also i set DiscoverNodesInterval to 10 minutes.

Thank you for reporting this, I've managed to reproduce the issue!

You're welcome. I'm happy to provide any form of assistance in resolving this.

It appeared on cloud recently and that was when i opened the issue, also i set DiscoverNodesInterval to 10 minutes.

Note that if you are using Elastic Cloud, you should not enable discovery as it is already done by the cloud on your behalf. In that case discovery gathers only private instances IPs that are not publicly routed, ending in a timeout.

Ah, that explains why removing it works. Thank you.

@Anaethelion i can close this now right?

Closing this as the question has been answered.


ORCID search result list ranking

Dear Dataverse Vocab Community!
It appears that the ORCID result list should be reversed when the user enters a query (maybe also other lists in general)
Example: search for my name "Sergej Zerr" (also any other names I tested)

Thanks for investigating!
I think I've found the issue. FWIW, it is not as simple as it seems - ORCID controls the ordering of the initial results and they rank on more than name and then, once you've selected a name, your selections are cached in browser storage, and it is supposed to appear at the top of the list whenever ORCID returns it (so on subsequent runs "Sergej" should be enough to pull yours to the top.)
In any case, it looks like the sort to raise the rank of previously used ORCIDs was also flipping the order in the rest of the list. The latest commit should fix that. Again - I haven't tested but if you're using the github.io javascripts you should now see the results in the right order.

Thanks for considering, @qqmyers,
still the behavior is a bit strange. If I start typing the name, until "Sergej Zer" the correct name even does not show up at all. When I complete the last letter, it suddenly appears (and this time correctly at a top)

Interesting. FWIW: The call being made is URL: https://pub.sandbox.orcid.org/v3.0/expanded-search/?q=<your string> (requesting application/json and limiting the results to 10, but you should be able to use the URL above in your browser to see what ORCID returns. ) If they are doing something like only matching whole words, there's probably not much we can do but they might take the feedback that partial matches would be valuable.
Given that the order is now correct (thanks again for checking!), I'll close this issue. If you find anything we can do on our side/in Javascript to improve the results, feel free to open an issue and/or submit a PR. (The current scripts were intended as initial examples, not static final products.)

I see, thank you! I did some testing of the API and, definitely, the issue is on ORCIDs site, the search there needs some improvement.
There a few things I found out:
(1) They are writing that the sandbox just contains test data and a full fledged API would be available for member accounts. Curious if the search is better there.
(2) There is also a public data file and search for newly changed records - meaning one could maintain the own registry if needed.
(3) The search API allows for pagination and Lucene query language (public API is limited to 10 000 search results)
Unfortunately the API seems not to work reliably at the moment (nothing is returned for my name, though it worked an hour ago). I will try in the next days. In case Lucene queries are supported properly, we can have a hope :) For productive environments, Dataverse should probably allow to use membership accounts for the API.


use --follow on file history to show log across renames

when viewing a file's history, e.g. https://git.myserver.example/myuser/myrepo/commits/master/subdir/file, the log does not follow file renames. This patch should change that.

Should this be a new function instead, to let the caller choose ?

On the one hand I don't see the need of seeing a reduced set of information (i.e. not using --follow), on the other hand even github hides the changes of before files were renamed.
Personally, I only use --follow.

But --follow only useful with a single file?  git log <file>? So the first place change seems no need?

@lunny you're right. I missed the line and forgot to remove the change.

LGTM

LGTM


Provide a way to set documents as "globally accessible"

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [X] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Currently, when you use access control, you must explicitly set acls/oids for every document in the index, otherwise they won't be found from searching. However, some developers may want to make it so that acl-less documents are considered globally accessible. @mattgotteiner has some ideas for how we can do that best.

I will work on this ASAP

In the listFileStrategy.py to the ADLSGen2ListFileStrategy class added the following read access grant to others, now am able to chat with user uploaded content, issue I am facing is with clickedCitations are not being opened in the prop section.
Set the ACL to grant read access to others
acl = 'other::r--'
await file_client.set_access_control(acl=acl)

@lokeshkri Re clickedCitations not opening in prop section, is that due to the known issue of non-PDFs getting downloaded? Or is the auth_claims decorator to the content route not properly recognizing access to the files, and giving 400s instead?

@pamelafox After making the changes related to other:: r above in listFileStrategy.py, am able to view other users upload document, however, in this specific instance when I chat on the topics related to user-uploaded documents am getting the following error -

is there an update regarding this request?

@mo-albaba It seemed like this is working for me - but I'm still testing!
            "oids/any(g:search.in(g, '{}'))".format(auth_claims.get("oid", "")) if use_oid_security_filter else None
        )
        groups_security_filter = (
            "groups/any(g:search.in(g, '{}'))".format(", ".join(auth_claims.get("groups", [])))
            if use_groups_security_filter
            else None
        )

        public_docs_filter = "not oids/any() and not groups/any()"

        # If only one security filter is specified, return that filter
        # If both security filters are specified, combine them with "or" so only 1 security filter needs to pass
        # If no security filters are specified, don't return any filter
        filters = [f for f in [oid_security_filter, groups_security_filter, public_docs_filter] if f]

        if len(filters) == 1:
            return filters[0]
        elif len(filters) > 1:
            return " or ".join(filters)
        else:
            return None```

We merged a change that uses environment variables to enable this:
https://github.com/Azure-Samples/azure-search-openai-demo/releases/tag/2024-05-15
I'll close this issue, please file a new issue if you are having issues with the merged feature. Thank you!


add spi pins as in docu

According to the schematic here https://www.pjrc.com/teensy/schematic.html and the pinout here https://www.pjrc.com/store/teensy41_card11a_rev3.png I added the SPI pint with the correct alt number.
Daisy load already includes these ports.
Please let me know if this was on purpose to not.

Definitions LGTM. I checked against table 10-1 in the 1060 reference manual. Note that this PR does not define any non-zero chip select pins.
I can back-port and release these changes on the 0.1 branch.

Please let me know if this was on purpose to not.

We derived this code from early prototypes, and many pads in this crate are missing their implementations. We're expecting contributors to add them on a need-be basis. I'll communicate that through a separate issue.

Definitions LGTM. I checked against table 10-1 in the 1060 reference manual. Note that this PR does not define any non-zero chip select pins.
I can back-port and release these changes on the 0.1 branch.

Please let me know if this was on purpose to not.

We derived this code from early prototypes, and many pads in this crate are missing their implementations. We're expecting contributors to add them on a need-be basis. I'll communicate that through a separate issue.

Released in 0.1.5

Released in 0.1.5


chore: create separate webpack

Type of Change

[ ] Bugfix
[ ] New feature
[ ] Enhancement
[ ] Refactoring
[ ] Dependency updates
[ ] Documentation
[ ] CI/CD

Description
Current webpack build is building with public folder which contains the static assets.Added new webpack configuration which ignores copying the static assets

Motivation and Context

How did you test it?
All the icons should appear even after doing this deployment

Where to test it?

[ ] INTEG
[ ] SANDBOX
[ ] PROD

Checklist

[ ] I ran npm run re:build
[ ] I reviewed submitted code
[ ] I added unit tests for my changes where possible

LGTM


Bug: Some constant in windows-docs-rs not marked as Required features

Which crate is this about?
windows
Crate version
0.43.0
Summary
KSDATAFORMAT_SUBTYPE_IEEE_FLOAT not marked Required features: "Win32_Media_Multimedia"

https://github.com/microsoft/windows-rs/blob/75a8260b65c81ae06444d16f9faab154bb517aae/crates/libs/windows/src/Windows/Win32/Media/Multimedia/mod.rs#L2939-L2943
https://github.com/microsoft/windows-rs/blob/75a8260b65c81ae06444d16f9faab154bb517aae/crates/libs/windows/src/Windows/Win32/Media/mod.rs#L17-L18
Toolchain version/configuration
Default host: x86_64-pc-windows-msvc
rustup home:  C:\Users\Ganlv\.rustup

installed targets for active toolchain
--------------------------------------

wasm32-unknown-unknown
x86_64-pc-windows-msvc

active toolchain
----------------

stable-x86_64-pc-windows-msvc (default)
rustc 1.65.0 (897e37553 2022-11-02)

Reproducible example
No response
Crate manifest
No response
Expected behavior
Document Required features: "Win32_Media_Multimedia" for those constants.
Actual behavior
No response
Additional comments
No response

Good catch. 😊


Pass user object to ConfigCatProvider

Is your feature request related to a problem? Please describe.
Currently, if I want to retrieve feature flags for a specific user, there is only one way to achieve that. I have to pass a user object to useFeatureFlag.
https://configcat.com/docs/sdk-reference/react/#user-object
Describe the solution you'd like
I would have expected to be able to pass a user object to ConfigCatProvider, and that every call to useFeatureFlag in one of its descendants then implicitly uses that user object when querying for feature flags.
Describe alternatives you've considered
I could use useFeatureFlag, but that would be more effort because I would have to get a user object and pass it to useFeatureFlag everywhere I use useFeatureFlag.
Additional context
I don’t know whether the omission of this feature was a deliberate decision, so maybe this has already been thought through and decided against.

Hello @cruessler ,
Thanks for reaching out. We are discussing it with the team, and we'll get back to you.
Cheers,

Hello @cruessler,
We are currently working on the default user feature in all of our SDKs (and some other cool new features): https://trello.com/c/0pvK6RvY/67-major-sdk-upgrades
You will be able to pass a default user to the ConfigCatProvider as well in the next major SDK release.
Cheers,

@laliconfigcat That’s great news! And thanks for the quick reply!

Hello there,
We've just released the new SDK with the requested feature. You can read more about it here: https://configcat.com/docs/sdk-reference/react/#default-user
Let me know if you have any questions. Any kind of feedback is much appreciated.
Cheers,
Lali

Thank you very much, we’ll try the new feature and let you know if we find any issues!


Group list not sorted alphabetically when attempting to add role grant for SAML group

Issue description:
Per the known caveat with SAML auth providers, a user must select a group from the dropdown list of their own groups, when attempting to grant a role to a group via Rancher RBAC. In Rancher v2.5.9 this list was sorted alphabetically, in v2.6.0 it is not.
Business impact:
Some users have a very large number of groups 100+, and this makes it very difficult to find and select the right group when granting a group a role.
Troubleshooting steps:
N/A
Repro steps:

Provision a Rancher v2.5.9 instance (I used github.com/superseb/tf-do-rancher2)
Configure the keycloak authentication with the QA keycloak instance (https://github.com/rancherlabs/the-ranch/wiki/Authentication-Test-Setup-configuration#saml-with-keycloak)
Reset password of<EMAIL_ADDRESS>user in keycloak and log in to Rancher as the user (user is a member of 100 aseymourgroupX groups)
Attempt to add a group grant at global/cluster/project level and observe the group list in the dropdown is sorted.
Upgrade to Rancher v2.6.0 and attempt to add a group grant at global/cluster/project level and observe the group list in the dropdown is not sorted.

Workaround:
Is workaround available and implemented? No
Actual behavior:
Group list is not sorted
Expected behavior:
Group list is sorted
Reference: 3460

The associated PR fixes the initial sort of principals but not sort those returned from search, those should be sorted given the proximity to the search term

:white_check_mark: PASSED
Reproduction Environment

Component
Version / Type

Rancher version
2.6.3

Installation option
Helm high availability

If Helm Chart k8s cluster
RKE1  v1.22.6

Cert Details
Self signed

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher1

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Logged in user role
Global Admin

Browser type
Google Chrome

Browser version
99.0.4844.51 (Official Build) (x86_64)

Reproduction steps

Unable Keycloak SAML Authentication
Navigate to -> hamburger menu -> Groups -> Add Global Roles
Click Select Member
View dropdown list order

Additional Info

RESULTS
:white_check_mark: Expected
Expected the drop down list to be sorted alphabetically
:x: Actual
The drop down list was not sorted alphabetically

Validation Environment

Component
Version / Type

Rancher version
v2.6-d604b7e02ec8dfcb6c439ca8ed5500e1d1735717-head / d604b7e

Installation option
Helm high availability

If Helm Chart k8s cluster
RKE1  v1.22.6

Cert Details
Self signed

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher1

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Logged in user role
Global Admin

Browser type
Google Chrome

Browser version
99.0.4844.51 (Official Build) (x86_64)

Validation steps

Unable Keycloak SAML Authentication
Navigate to -> hamburger menu -> Groups -> Add Global Roles
Click Select Member
View dropdown list order

Additional Info

RESULTS
:white_check_mark: Expected
Expected the drop down list to be sorted alphabetically
:white_check_mark:Actual
The drop down list was now sorted alphabetically


The props rightArrowTitle and leftArrowTitle are not working

Steps to reproduce the behavior: install the version 0.5.2, add any text for the props rightArrowTitle or leftArrowTitle. The title remained the same.
Expected behavior: Change the title of the arrows
Actual behavior:  The title of the arrows are not changing. If you check the code, its hard coded:
`// ==============================
// RENDERERS
// ==============================
}, {
	key: 'renderArrowPrev',
	value: function renderArrowPrev() {
		if (this.props.currentImage === 0) return null;

		return _react2['default'].createElement(_componentsArrow2['default'], {
			direction: 'left',
			icon: 'arrowLeft',
			onClick: this.gotoPrev,
			title: 'Previous (Left arrow key)',
			type: 'button'
		});
	}
}, {
	key: 'renderArrowNext',
	value: function renderArrowNext() {
		if (this.props.currentImage === this.props.images.length - 1) return null;

		return _react2['default'].createElement(_componentsArrow2['default'], {
			direction: 'right',
			icon: 'arrowRight',
			onClick: this.gotoNext,
			title: 'Previous (Right arrow key)',
			type: 'button'
		});
	}`

This is fixed in master (see  #108 #109 https://github.com/jossmac/react-images/blob/master/src/Lightbox.js#L125).
Other option is to wait for 0.5.3 to be released.

Thank you very much!
I'll wait for the next release.
Denisson Paz
On 21 March 2017 at 16:58, Ben Howell<EMAIL_ADDRESS>wrote:

This is fixed in master (see #108
https://github.com/jossmac/react-images/issues/108 #109
https://github.com/jossmac/react-images/pull/109
https://github.com/jossmac/react-images/blob/master/src/Lightbox.js#L125).
Other option is to wait for 0.5.3 to be released.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jossmac/react-images/issues/128#issuecomment-288216378,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ASQ5UsgKH81SO4KYBiO_ds-RLsi6nfd6ks5roDnfgaJpZM4MkXYe
.


Add Gitbook support.

For those interested I've added Gitbook support so you can read it wherever, whenever.
GitBook can output your content as a website (customizable and extensibles) or as an ebook (PDF, ePub or Mobi).
Here's you can set yours up
Hope this helps.

+23,215 −0

Ouch. Is it possible to make this smaller?

@croak ah yes, I just removed the _book folder which is generated when you build the Gitbook file. What's important is the SUMMARY.md file and you can build the book from there by using this command for example gitbook epub ./ ./design-sprint.epub. More info about the commands here. Does that help?


Query data in different order then table order

Most of the data returned after doing a query is in a different order then the data is in the database.

@HDsign what do you mean by different order than the database? MySQL's storage system is extremely complex, and as far as I'm aware there isn't any particular "order" that can be determined.

Well if the table structure is like this:

id
name
company_id
created_at

The query select * from users gives a dataset in this order:

name
company_id
id
created_at

Oh you mean the fields.  Where are you getting this order?  The results of database.execute() are dictionaries.

Yes database.execute()

If the results are a Dictionary, how do you know the order of the fields?
You just subscript the results like this: let id = result["id"]?.string, so order shouldn't matter.

Yeah in that case your right.
I want to show the data fetch from the query in a tableView, create the columns and cell dynamically.

Without knowing

Ah, I see. I'm thinking. Even if there were a way to make this package create the dictionary ensuring the keys are inserted initially in the same order as the table declaration, as soon as it's done we lose any guarantee of order since it is a dictionary.
This isn't a solution to the ordering problem, but maybe you can make the columns reorderable? I've been using a macOS desktop client called Querious and I reorder columns all the time after queries to move certain columns closer together so I can compare or move, say, the only column I care about in that moment all the way to the front.
I imagine all MySQL drivers in Swift today and into the future will use dictionaries for results. The popular node driver that I've used doesn't guarantee order either.  Depending on what you're doing, there might be a different solution to your issue :)

@sahandnayebaziz is right, there's currently no way to get results in any kind of order.
Technically it is possible, but it would complicate the API and I'm not sure how many people would have a use for it. If you want to write a custom implementation, take a look at Connection.swift - especially lines 114 - 136.

Okay thank you guys for your time, I'll try to implement it myself. 👍


close #835

os.environ.get(None) fails in python3 ...
This enforces the creation of a default value

You should update the documentation. If no env_key then the env key project_blahblah_data will be used.
But im afraid why an env_key with a directory is mandatory.

The environment variable is optional, the fallback is a temporary folder, I added this to the doc.


Don't log a warning when setting image creation time to current timestamp

What I don't want to see:

[WARNING] Setting image creation time to current time; your image may not be reproducible.

Factually, JIB does not check the build is reproducible, it just enables to make it reproducible and it is today hard to have a full reproducible build (requires a lot of hacks in maven/gradle and it is rarely the case) so I think this could be an INFO.
Moreover, there is a case it should not even be logged: when user explicitly set the current time to the build time in the configuration. In such a case, the action was intentionnal so the warnning is just bothering.
Hope it makes sense.
Romain

up? this sounds like a fairly easy feature making builds more relevant (it is actually often needed to have the timestamp for static resources)

Hi @rmannibucau, thank you for filing the feature request! We've discussed this internally and think that it is okay to remove the warning when the creation time is explicitly set. Please feel free to put a PR.

https://github.com/GoogleContainerTools/jib/pull/3520


Stop stopping

The save function deselects everything and stops playback, which causes an annoyance with auto-save, especially at lower intervals. If this causes issues with race conditions, we'd need to take a snapshot of the current song, then go about saving.
This is true for other functions as well, disallowing edits while a song is playing, which can slow down rapid composition of songs.
This PR stops pausing playback for actions that don't require it! I don't believe doing so causes any issues, but may introduce very rare race conditions.
I'd like somebody who knows more about the program and how it works to give this a good look over.

The save function has a reason to deselect before saving because if you paste a section and are not deselected, it's not actually in the song, the program will play it but will also play the notes under the selection, and also won't save those notes.

I think the better option then would be to specify whether a save action is done manually or automatic.
The user hits save or ctrl+s -> pasted notes are deselected and saved
Autosave/backup saves -> pasted notes are not deselected and not saved

and the stopping function also has a reason. If you actually test it, you'll find that a lot of stuff breaks without stopping such as the FPS changing from 240 to 30 while playing will cause the song to jump, a lot of seemingly unnecessary functions were added after testing and discussions.

Tell me more about those issues, I think the root cause should be fixed rather than applying a surface-level fix in sacrifice of usability!

Tell me more about those issues, I think the root cause should be fixed rather than applying a surface-level fix in sacrifice of usability!

I have tried to fix those issues, but it was far too complicated to fix and will cause the issues to multiply. Currently, rewriting the logics in a better way in 4.0 is better than changing the original code.

Is this only an issue with the framerate cycle? None of the other functions seemed to cause issues in my limited testing

and the right-click menus and other shortcuts with the stopping function won't work or be usable while playing. They will likely do weird things if the song is not stopped.
For example, you can't edit a selection or a selection while playing because the song is moving.

Here's my proposed changes to my current commits then:

Only deselect all on manual save
Pause when the right click menu is opened
Add framerate cycle to must-stop logic

...and it's hard to use macros while playing unless you're speedrunning?

Why limit the user because something may be illogical? IMO if a user can or wants to edit their song on the fly, let em

It seems like all the places you have edited will be likely cause issues and needs more testing on some maybe possible places.

Closing since this fork has fallen out of date and I can't get GMS working again :cry:
Feel free to implement any of these changes however you'd like!


[PROPOSAL] Modularise the openlineage-java project

Problem:
The openlineage-java package currently contains the core interfaces (specifically the transport), the "business" logic, and 3rd party dependencies (i.e., jackson).
When developing a custom transport, one is forced to include the entire package with all of its 3rd party dependencies. This can create problems down the line, when this transport has to be bundled with different versions of the other integrations like Apache Spark, Apache Flink, or one's own custom connector that emits OpenLineage events.
For instance, the connector includes packages for serialisation, for HTTP communication, Kinesis, Kafka, etc. This adds bloat, and also increases the likelihood of runtime failures due to conflicting method signatures or differing classes.
Obviously the solution is then to try and exclude those dependencies from the package as a way of managing them. However, I think that there is a better way.
Propsal:
Modularise the Java client.
Proposed implementation

Introduce a zero-dependency "core" module that includes the core definitions (Transport, TransportConfig, TransportBuilder, etc). This can be used by implementers to implement custom transports. Likewise, we could introduce a "serialisation" package, that allows implementers to decide if they want to use Jackosn, Gson, or some other serialisation library. Maybe that want the OpenLineage events to be serialised as binary instead of as plain-text like JSON.
Introduce a module per transport type. This allows better isolation of dependencies.
Introduce a bundle module, that will produce an artifact that resembles the current style of the Java client.
Publish the sub-modules

What benefit does this bring?

Supply chain risk mitigation.
Easier dependency management for implementers. They don't need to fiddle with dependencies.

I generally agree, what you're proposing is the better solution.

For instance, the connector includes packages for serialisation, for HTTP communication, Kinesis, Kafka, etc. This adds bloat, and also increases the likelihood of runtime failures due to conflicting method signatures or differing classes.

Note that we tried to mitigate this by having most of the non-core dependencies like Kafka, Kinesis, Micrometer compileOnly:
    compileOnly 'com.google.code.findbugs:jsr305:3.0.2'
    compileOnly 'org.apache.kafka:kafka-clients:3.7.0'
    compileOnly 'com.amazonaws:amazon-kinesis-producer:0.15.10'
    compileOnly "org.projectlombok:lombok:${lombokVersion}"
    compileOnly "io.micrometer:micrometer-registry-statsd:${micrometerVersion}"

But I think having separate module and telling people to include it (for example, in Spark integration) instead of telling them to include Kafka library is better, as we control the dependency more and can shade it.
However I think serializing and HTTP transport is such a core feature that we're better off leaving those two in core module.
Would also be nice to think how to evolve configuration to be able to configure those numerous modules from a single place - we had some discussion on https://github.com/OpenLineage/OpenLineage/pull/2533, probably will be nice to have a separate issue for it.

If we're going to do it, we're going to have to document how to migrate to the new structure to minimize disruption to users.


feature: add ability to stop a transaction

This pull request updates the TransactionController by adding a new method that stops a pending transaction by sending a 0 ETH transaction to the from address with a higher gas price.

Codecov Report

Merging #96 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #96   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          21     21
  Lines        1393   1407   +14
  Branches      179    181    +2
=====================================
+ Hits         1393   1407   +14

Impacted Files
Coverage Δ

src/TransactionController.ts
100% <100%> (ø)
: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 59fee04...b0af1ef. Read the comment docs.

@bitpshr Thanks for doing this. Before I look at it, Could you please clarify what's the situation between GABA and the TX controller in the extension?  I remember not so long ago you posted a standup update about saying you started to wrap the TX controller from the extension into GABA and that's also what was discussed during the last BE core meeting and AFAIK this feature it's already in the extension.

@brunobar79: The wrapping approach proved to be too difficult because of the way the extension controller relies on external events and external controller state. I wasn't able to satisfy both the external GABA API and the internal extension TransactionController requirements cohesively.
As it stands now, the GABA TransactionController is close to feature parity with the extension with about 15% of the loc. The only glaring omission at this point is transaction history. I think the right path forward is to bring GABA to full parity, and ultimately kill the extension version.
This PR gets us one step closer to that.


Swtiched to HTTPS for National Bank of Romania

National Bank of Romania (BNR) no longer allows HTTP requests, redirecting to HTTPS. At the moment, there is an error thrown when using this from florianv/swap with Laravel:
Exchanger/Exception/ChainException with message 'The chain resulted in 1 exception(s):
Psy/Exception/ErrorException: PHP Notice:  Undefined offset: 0 in /var/www/vendor/florianv/exchanger/src/Service/NationalBankOfRomania.php on line 49'

On their site, BNR says we should switch to HTTPS.
This fixes the issue.

Thanks @peterlupu, I will release a new version shortly.

Also, I'm guessing v1.x needs to be updated as well.
Tried to do a PR there, but cannot run the tests locally:
$ ./vendor/bin/phpunit
PHP Fatal error:  Class 'PHPUnit_Framework_TestCase' not found in /Users/peter/code/exchanger/tests/Tests/CurrencyPairTest.php on line 16

Fatal error: Class 'PHPUnit_Framework_TestCase' not found in /Users/peter/code/exchanger/tests/Tests/CurrencyPairTest.php on line 16

@peterlupu Have you tried to run a new composer install after switching branches ?

@peterlupu Have you tried to run a new composer install after switching branches ?

yes, i ran rm -rf vendor and did a composer install and composer dump ...

Ok, no worries, we are only supporting the latest version here (not sure if many people still uses 1.x). In that case they can send a pull request to the old 1.x branch.
Btw, your fix is available in version 2.2.1 that I just released

thanks a lot!


[Bug]: xai/grok-beta model getting litellm.BadRequestError

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Describe the bug and reproduction steps
litellm.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=xai/grok-beta Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers
OpenHands Installation
Docker command in README
OpenHands Version
No response
Operating System
None
Logs, Errors, Screenshots, and Additional Context
No response

Traceback (most recent call last):
File "/app/openhands/controller/agent_controller.py", line 195, in start_step_loop
await self._step()
File "/app/openhands/controller/agent_controller.py", line 468, in _step
action = self.agent.step(self.state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/openhands/agenthub/micro/agent.py", line 77, in step
resp = self.llm.completion(
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 336, in wrapped_f
return copy(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 475, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 376, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 398, in
self._add_action_func(lambda rs: rs.outcome.result())
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 478, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/app/openhands/llm/llm.py", line 196, in wrapper
resp: ModelResponse = completion_unwrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 1013, in wrapper
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 903, in wrapper
result = original_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2999, in completion
raise exception_type(
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 906, in completion
model, custom_llm_provider, dynamic_api_key, api_base = get_llm_provider(
^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/get_llm_provider_logic.py", line 313, in get_llm_provider
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/litellm_core_utils/get_llm_provider_logic.py", line 290, in get_llm_provider
raise litellm.exceptions.BadRequestError(  # type: ignore
litellm.exceptions.BadRequestError: litellm.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=xai/grok-beta
Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers
02:08:06 - openhands:ERROR: agent_controller.py:201 - [Agent Controller 0a757a3e-475f-48b2-87c9-e68ccced5c3d] Error while running the agent: litellm.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=xai/grok-beta
Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers
02:08:06 - openhands:INFO: agent_controller.py:307 - [Agent Controller 0a757a3e-475f-48b2-87c9-e68ccced5c3d] Setting agent(VerifierAgent) state from AgentState.RUNNING to AgentState.ERROR
02:08:06 - openhands:INFO: agent_controller.py:307 - [Agent Controller 0a757a3e-475f-48b2-87c9-e68ccced5c3d] Setting agent(VerifierAgent) state from AgentState.ERROR to AgentState.ERROR
INFO:     <IP_ADDRESS>:63318 - "GET /assets/_oh.app.browser-6qiMwjoA.js HTTP/1.1" 200 OK
02:08:25 - openhands:INFO: github.py:15 - Initializing UserVerifier
02:08:25 - openhands:INFO: github.py:28 - GITHUB_USER_LIST_FILE not configured
02:08:25 - openhands:INFO: github.py:49 - GITHUB_USERS_SHEET_ID not configured
02:08:25 - openhands:INFO: github.py:86 - No user verification sources configured - allowing all users

Hello. Based on the litellm docs: https://docs.litellm.ai/docs/providers/xai
I can see that you passed in the model correctly. Are you using a llm proxy by any chance? Or are you using grok straight from xai platform?

same problem, i tried even passsing base url, but same error.

@shadowvvf can you please mention what you put for your model? And I'm guessing you specified the base_url because you are using a proxy?
Reason I'm asking is because sometimes you have to prefix the model. For example if you use openrouter, it would be:
openrouter/anthropic/claude...

I just tried it, we added it to the UI recently and this seems to work as expected:

As @mamoodi mentioned, base_url is optional in this case, litellm will route it to x.ai.

i also got
litellm.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=xai/grok-beta Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers
i just i AI Provider Configuration using xai and grok-beta and then enter API Key, nothing else

Just Configuration using xai and grok-beta and then enter API Key, nothing else
got the same bug

litellm.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=xai/grok-beta Pass model as E.g. For 'Huggingface' inference endpoints pass in completion(model='huggingface/starcoder',..) Learn more: https://docs.litellm.ai/docs/providers

I have the same problem, I installed docker on windows11, OpenHands version is 0.13

same problem

It must be that we fixed something very recently, just these days, because it works now on main. I think we are going to make a new release really soon.
In the meantime, could you try with main instead of 0.13?

I think the updated litellm brought in the XAI support

If you all don't mind trying main for now and confirming it works:
docker run -it --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:main-nikolaik \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -p 3000:3000 \
    -e LOG_ALL_EVENTS=true \
    --add-host host.docker.internal:host-gateway \
    --name openhands-app \
    docker.all-hands.dev/all-hands-ai/openhands:main

Hopefully we will have a release soon.

Can you please try with the new release? Redownloading openhands:0.13 should work, we made a patch.
@star8618 @jordan2816 @ciknight @Goblin-wt @guangquanshao @shadowvvf
We are using litellm to support many providers, and as Tobi said, it needed an update.

After redownloading openhands:0.13, xai can run👍, but it takes a long time to download the image when it is started for the first time. It would be better if more information could be given.

@enyst

Can you please try with the new release? Redownloading openhands:0.13 should work, we made a patch. @star8618 @jordan2816 @ciknight @Goblin-wt @guangquanshao @shadowvvf
We are using litellm to support many providers, and as Tobi said, it needed an update.

after upgrading issue fixed

Awesome. Going to close this issue as fixed. Thanks all.


Disable the reset password button once pressed

User story
As a user, I want to not be able to send multiple reset password instructions a so that I wont receive multiple emails and confuse me.
Acceptance criteria

User not able to submit another reset password request when the email is still getting sent

Additional context
N/A

Maybe only for a short time? So they can try again

Yes, once the API responded, the button should either be available again if there was an error, or bring user to the next page saying that the email has been sent :D
sorry, should have clarified it in the issue


CI stuff

@Rinzii I've moved the commits here and rebased on top of main. You should have a clean history to proceed from here.

Sounds good ^^
I'll try to have CI integrated once we finish ironing out all of the kinks between windows and Linux.

This Pr was merged to #5


Develop/develop

Pull Request Type

[ ] :bug: fix : (bug fix for the user, not a fix to a build script)
[ ] :adhesive_bandage: change : (simple fix for a non-critical issue)
[x] :sparkles: feat : (new feature for the user, not a new feature for build script)
[ ] :memo: docs : (changes to the documentation)
[ ] :recycle: refactor : (refactoring production code, eg. renaming a variable)
[ ] :pencil2: style : (formatting, missing semi colons, etc; no production code change)
[ ] :rotating_light: test : (adding missing tests, refactoring tests; no production code change)
[ ] :package: chore : (updating grunt tasks etc; no production code change)
[ ] :rewind: reverts : (canceling commits or pull requests)

Description
Completed AIcon.
Pre-Review Checklist for the Pull Request Author

[x] Code follows coding-guidelines
[x] Assign Pull Request to reviewer

Checklist for the Pull Request Reviewer

[ ] Commits are properly organized and messages are according to the guideline
[ ] Code follows coding-guidelines
[ ] (Optional) Unit tests have been written for new behavior
[ ] Pull Request title describes the changes

Post-Review Checklist for the Pull Request Author

[ ] All open points are addressed and tracked via issues or tickets
[ ] Write release notes

LGTM


support multiple path in GOPATH

first path as scripts path

@wuyongzhi, looks good. Thank you! Could you please just add a quick comment to the code to explain why it's needed? I understand it since you provided some context in this PR but it's non-obvious for someone looking at just the code. As soon as you do I'll merge this with develop and do a patch release on master.

i repull request  #12,  fixed some code and add some comments


How do we do versioning?

Summary from https://github.com/DHARPA-Project/kiara-website/blob/main/concepts/versioning.md

how does versioning work for kiara core, how do I know if I can/should update

At the moment, while versioning is in alpha (0.x.y), assume that plugins at version 0.X will work (only) with kiara core version 0.X - ie if you are running kiara core 0.5.x, your plugins all also need to be 0.5.x

how does versioning work for plugins? how do i check what's changed between versions, how do I know if I can/should update

at the moment, no way to know unless you read the git diff/wrote the plugin?

is there also versioning of data types, operations, modules? Is this independent of plugins? How do I know what version I'm using, if I can/should update, what python package I need to update to to do that

currently no, but at some point it was mentioned this might be useful?

are versions of everything visible in your data lineage? currently no? should they be?

are/how are versions represented when you have a pipeline or workflow file?

what does all this mean for plugin authors and how they should version their things? Are there utilities in the template for bumping a version, writing a changelog etc?

At the moment, almost every piece of existing code/jupyter notebook/streamlit app I can find doesn't work. What can we do to make this less of a problem? Encouraging users to pin dependencies is one thing, but we also need to think about when things like names of operations need to be changed.
This seems to be a pain point in the team, a decent chunk of time is spent working out why materials from previous workshops or examples don't work anymore, and worrying about whether updating anything will break stuff

There is no established way of doing things yet. For now, until we're out of alpha, I've been sem-versioning sort of, with updating the minor version for breaking changes, and keeping the plugin packages on the same 0.x.0 version as kiara core (even though that is not always necessary).
My main assumption is (was) that since our app would take care of creating the environment, we can pin all versions of kiara and officially supported plugins in each release, after we made sure they work together. If we want to support the use of kiara as a library as well, then we need to think about this again, and spend some time on it, and establish some sort of (best) practice.
Once we are out of alpha I also intend to maintain a changelog (automatically generated or not, not sure), but I didn't want to spend the time doing that as long as I'm the only main user of everything.

is there also versioning of data types, operations, modules?

This is not fully established yet. For now, the module and data type versions mirror the version of the package they are contained in. We might want to add a secondary version, that indicates whether the data-type/module changed in an important way. For example, for modules we could up the version whenever the module API (basically input- or output schema) changed. As this indicates it might break pipelines the modules are part of.
Most of this is stubbed out, and can be added if necessary. But I'm not sure what the best way here is, and figured it's best to wait until we have some sort of experience (how often those changes happen, how severe the inpact each time is, ...).

are/how are versions represented when you have a pipeline or workflow file?

Not sure what you mean. Pipelines themselves don't need versions, because for kiaras purposes they sort of 'dissolve' once used, and only the steps inside are important (each step has a module name and associated module/plugin version -- see above).

what does all this mean for plugin authors and how they should version their things? Are there utilities in the template for bumping a version, writing a changelog etc?

No, this still needs to be established and implemented. I intend to add an automatic changelog creation to the project template, but other than that I have not really thought about this. I guess, external plugin authors can version their plugin as they please. If we decide to have datatype/module sub-versions, then we'd have to document how plugin creators should do that, it would probably have to happen manually.

At the moment, almost every piece of existing code/jupyter notebook/streamlit app I can find doesn't work. What can we do to make this less of a problem? Encouraging users to pin dependencies is one thing, but we also need to think about when things like names of operations need to be changed.

This seems to be a pain point in the team, a decent chunk of time is spent working out why materials from previous workshops or examples don't work anymore, and worrying about whether updating anything will break stuff

I did not really plan for kiara to be used in so many heterogenous places without having full control over creating the environment in a scriped way. In case of our app (which was the only thing I was working towards), we'd have that full control.
Pinning dependencies is not trivial, esp. if you work with multiple plugin packages. Pin too strict, and the resolver might barf, pin too loose, and the thing will break in 2 months. Not sure what the solution is here. Offering kiara as a fully fledged library (with plugins) that will work relieably for everyone would incurr some meaningful development and maintanence cost, so we'd have to figure out who would take on that responsibility I guess.
Names of operations and modules is a different thing, and that's why I've been banging on about how important it is to get their interfaces right. They are not really supposed to change, at least change often. In the type of thing we are building we rely on modules and datatype interfaces to not change, because we can't really afford to implement a dependency resolution mechanism on top of pip or conda. This is as much a practical consideration/limitation as it is one of me not being smart enough to figure out how to implement something more flexible. If anyone has any ideas here, I'm all ears.

Probably more either simple and/or can-of-worms questions from me:

Once we are out of alpha I also intend to maintain a changelog

What do we perceive as being 'out of alpha'? I.e at what stage do the core functionalities need to be at for it to have made it to beta? And at this point will previous versions be effectively irrelevant, so we only need internal documentation for these early parts, rather than anything that is 'user-facing' (i.e. beyond this team)

Probably more either simple and/or can-of-worms questions from me:

Once we are out of alpha I also intend to maintain a changelog

What do we perceive as being 'out of alpha'? I.e at what stage do the core functionalities need to be at for it to have made it to beta? And at this point will previous versions be effectively irrelevant, so we only need internal documentation for these early parts, rather than anything that is 'user-facing' (i.e. beyond this team)

Pipelines themselves don't need versions, because for kiaras purposes they sort of 'dissolve' once used, and only the steps inside are important

Do these still need to have pinned dependencies though? What if the steps inside have been renamed or removed? Should these metadata attached to the pipeline/workflow as a whole, so that we don't have to investigate the separate modules to work out which versions are needed?

Names of operations and modules is a different thing, and that's why I've been banging on about how important it is to get their interfaces right. They are not really supposed to change, at least change often.

For me at least, the issue is not so much that they change but that I don't know how/when they do, beyond trying to run something and discovering that this no longer works - the network analysis notebook for example no longer works (certainly not without pinned dependencies, though I personally am also still having some problems operating that, though that is more likely a me thing that anything else), but also because the modules used are no longer in the network analysis plugin and only exist in the dh_tagung plugin now. It would just be helpful to have a log of where these are/how they have changed/what is new with each plugin update. Again, just for my part, I would prefer that the name stayed the same and the internal workings changed in an update, rather than the module get re-named with any changes. This is easier to find/work out from the module metadata/documentation than trying to find the new operation (even with 'list operation'). Finally, I think the closer we can keep to existing function names, the better - I know we aren't copying other things, but just increases accessibility/useability for those moving across from different systems.
I don't think any of this has to be 'pretty' or end-user friendly, just findable and readable. Is there an easy way, for example, for us to see what is in the different previous versions of plugins, so we can decide which one might have the modules associate with a certain existing pipeline/notebook?

What do we perceive as being 'out of alpha'? I.e at what stage do the core functionalities need to be at for it to have made it to beta? And at this point will previous versions be effectively irrelevant, so we only need internal documentation for these early parts, rather than anything that is 'user-facing' (i.e. beyond this team)

Originally I'd have said once we have an initial frontend (which in itself can be alpha quality code), and have established what parts of the backend are used by it (includes Python code as well as exactly which modules/pipelines), and those parts are stable in terms of their API. There will still be bugs, but client developers can assume the API they are using won't change anymore.
Generic usage like with jupyter will increase the surface of code and modules that need to be tested, maintained, documented and supported considerably.

Do these still need to have pinned dependencies though? What if the steps inside have been renamed or removed? Should these metadata attached to the pipeline/workflow as a whole, so that we don't have to investigate the separate modules to work out which versions are needed?

Its complicated, it's different when considering the metadata in relation to values that have been produced by a pipeline in the past, and future uses of the pipelines themselves. In general, I'd probably treat them the same as modules, and try our hardest not to change their external interfaces. Internals can be changed, since users would not be exposed to it.
But that is only half the story and a lot of stuff would depend on how frontends implement support for and use pipelines on a techincal level.

For me at least, the issue is not so much that they change but that I don't know how/when they do, beyond trying to run something and discovering that this no longer works - the network analysis notebook for example no longer works (certainly not without pinned dependencies, though I personally am also still having some problems operating that, though that is more likely a me thing that anything else), but also because the modules used are no longer in the network analysis plugin and only exist in the dh_tagung plugin now.

Yes, but we determined that from the start, and that is why we put the tagung stuff in their own plugins, right? Those will only keep working if you pin the exact dependency version you used at that point in time. If you do that, the modules that are in that version of the tagung and pinned downstream network analysis plugin will still exists.

I don't think any of this has to be 'pretty' or end-user friendly, just findable and readable. Is there an easy way, for example, for us to see what is in the different previous versions of plugins, so we can decide which one might have the modules associate with a certain existing pipeline/notebook?

Up until now I've auto-generated plugin documentation for each plugin release, which includes all the modules that were included at that time ( e.g. https://dharpa.org/kiara_plugin.network_analysis/0.4.14/ -- you can change the version there). This will break from now on until the new auto-doc generated thing is implemented, but after that will work the same probably.
But the main problem I guess is really that we don't really have well-documented, tested & production-ready plugins we consider stable so far (apart from core_types and tabular sort of -- but even those need more polish, documentation, usage guides, tests). Once a plugin is published officially, I'd expect (or require) that all of the pipelines that are using it (or Python code for that matter) are not allowed to break, and backwards compatibility needs to be maintained as well as practically possible. Again, that is the reason why module interfaces can't change (in incompatible ways) after they are stable, and why we so far haven't assigned that label to basically anything.
If anyone wants to implement something that tracks modules while they are still in development, go for it, I'm happy to contribute anything lower level technical (probably API endpoints) required for such a system. The new auto-generation of plugin docs is probably a good starting point, since that will have all of the metadata of all included modules and data types in a machine readable way ( https://github.com/DHARPA-Project/kiara-website/issues/2 ). A system like that will mainly be useful for the phase until a plugin is published officially the first time, but it could be doable.

@makkus please can you explain why SemVer is not an appropriate solution for versioning modules/plugins? You mentioned there were technical reasons, can you clarify please

It would mean there would have to be a dependency resolution mechanism within kiara, and that's not the type of complexity I feel competent enough to implement. Or maybe there is a way to do without dependency resolution?
How would the version of the Python package relate to a version of a module? What if a pipeline needs an older version of a module, which is contained in an older version of the Python package? What if the data-types used in one of the modules inputs/outputs changed in a significant, breaking way? Should we also version data types? Then we'd also need to version each input/output field with not just the type of data, but also version of type of data. I just don't have any idea how to do this technically.
How would you implement it, maybe I'm just missing the obvious, simple solution?

Ok, for now I don't care at all about versioning modules or anything, I just want to get a handle on if/how I can know that a version of a plugin is compatible with other plugins and with kiara core. Is semver appropriate for that or not?
Can we codify how we expect plugin authors to specify their dependencies (>=, ~=, ==, something else?) such that their plugin at a particular version can continue to be used to do actual research with, rather than breaking for unknown reasons? And from there, so that I can pick a bunch of plugins to install with my mini-apps and be sure that they will reliably work and work together, and that I can opt into breaking changes.

If pipeline code is meant to be declarative and reproducible, surely each version of each plugin and core should very precisely pin all of its dependencies/have everything in some kind of lockfile, so the pipeline is actually reproducible regardless of changes in the broader python ecosystem? Does a pipeline create its own runtime dependencies with the right plugin versions when it is run, or do you just hope the end user happened to install them? What is actually kept in the lineage? Every package installed in your conda env or just the one version of the plugin?

Oh, another complication I haven't talked about is Python version, because that also affects versions of dependencies that are available, for example currently we have a problem with duckdb not being available for 3.12. Or which architecture you are running on.
But I've sort of given up on the idea that we'll ever be able to figure all this out for our users since it's the same problem that everyone else is having, with or without kiara.
For frontends like yours its a bit easier, because we can freeze the exact environment at release (incl. Python version), test on all architectures/OSs we want to support. If it turns out we have some plugins we don't want  to install initially but want to give users the option to install (I don't see a need to do this in a mini app like this), we could at least do it in a managed, tested way.
For a use-case like 'kiara-in-jupyter', it's harder.


NQBalance/HBUI incompatibility

I just installed cqui along with these mods:

District Changes
NQBalance
War Mod
AI +

However, I don't believe any of them modify the religion screen.
I just got faith from an early relic and I can not select a pantheon. Clicking the button makes the sound but nothing appears.
I'm on macOS with the latest patch.
Please let me know if I can be of assistance.

This is caused by NQBalance having a hard dependency upon HBUI. I'll look into releasing some sort of compatibility package in the future so that CQUI can be enjoyed alongside the NQBalance changes, but for now I can't promise much

Perfect. Thanks for the explanation. I appreciate it.

Now that there's considerably more overlap between HB UI and CQUI, I no longer feel there's any need to make CQUI compatible with the NQ series of mods

At this point, CQUI is at least at the same level of NQUI, if not better. Closing.

I don't consider this issue closed. It's definitely in wont-fix territory, but not closed, since that indicates some type of resolution beyond us just saying we won't support it

That is the resolution: we are the superior product now.


Maybe fix merge conflicts now?

There are no merge conflicts, GitHub is just buggy

correction: git is buggy


Preserve the executable bit from wheel contents

This is a property of individual files in the wheel, and thus needs to be parsed
by the WheelSource, and needs special handling in WheelDestination. It also
needs to be propagated through the entire pipeline, since the information needs
to be exchanged between the two components.
Closes #68

May I know when will this fix be released?

May I know when will this fix be released?

Sometime next month. Most of my OSS time this month is gonna go into pip's release.


Implement downsampling

What's the current approach? AggregatingMergeTree or GraphiteMergeTree?
I'm interesting in helping implement this.

I saw in the README the note about https://github.com/yandex/ClickHouse/issues/167 simplifying the downsampling implementation?
That was closed and released as of v18.12.14 apparently - 10 days ago :)