[rancher-compose] Don't pass empty question responses to docker-compose as variables

This request relates to the awesome racher-compose handling of questions for catalog entries. Right now, you define your variables in the docker-compose.yml file like:
    environment:
      ROUTER: ${ROUTER}
      PASSWORD: ${PASSWORD}

and then in your rancher-compose.yml:
  questions:
    - variable: ROUTER
      required: true
      default: route-me-yay
      type: string
    - variable: PASSWORD
      required: false
      type: string

If you were to keep the password field blank, a variable in your container environment of PASSWORD= would exist. If your application is a python program which already has a default password, for instance in your settings.py (while utilizing os.environ to pull in any environment variables), you would effectively be clearing the actual program default, which should not happen (or at least be configurable).
With the current setup, users have to maintain defaults in two places, including ensuring documentation is up to date etc.. I think providing a configurable option saying "only pass non-empty" question variables needs to be implemented.
PS: If there is already a way to do this, please let me know. I didn't see anything in the docs or other examples.

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


Question about experitment on one-shot object detection

Hi~ UP-DETR is an interesting work.
I wonder if you experimented with COCO dataset about one-shot object detection.
If you have done experiments on COCO, would you like to provide the results.
Thanks a lot~

I am so sorry that due to the time and resource limitation, we just fine-tuned the model on VOC and didn't perform it on COCO.
If you want to do, you can follow the details introduced in One-Shot Object Detection with Co-Attention and Co-Excitation (Generating target and query pairs section)

Thanks for your reply, I just wonder the random query patch detection could also have amazing enhancement for one-to-many matching. Because object queries of DETR is sparse and the VOC dataset is relative easy.

If you are familar with one-shot detection setting, you can try it with UP-DETR.
As far as we observe, there is no notiable difficulty of fine-tuning UP-DETR to support one-to-many matching.
Of course, there is a potential research problem that random query patch detection only supports one-to-one matching.


docs: prepare changelog for v1.22.1 release

Codecov Report
Patch and project coverage have no change.

Comparison is base (2ba2bee) 35.63% compared to head (cb80c02) 35.63%.

:exclamation: Current head cb80c02 differs from pull request most recent head c0f0e13. Consider uploading reports for the commit c0f0e13 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #951   +/-   ##
=======================================
  Coverage   35.63%   35.63%
=======================================
  Files          92       92
  Lines       11342    11342
=======================================
  Hits         4042     4042
  Misses       6907     6907
  Partials      393      393

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Baidu Internal English Dataset

Where can I find Baidu Internal English Dataset, and all these data sets are clean?

Hi, we have not publish the internal English Dataset to open source community yet, we have provided open source models only.

@DannyIsFunny datasets are clean .wav?

嗨，我們尚未將內部English Dataset發佈到開源社區，我們僅提供了開源模型。

Hi, we have not publish the internal English Dataset to open source community yet, we have provided open source models only.

@DannyIsFunny datasets are clean .wav?


Replace instances of tostring() with tobytes()

Since the former is deprecated in favour of the latter.

so this fixes the numpy deprecation only? (ie all the changed are numpy objects?)

so this fixes the numpy deprecation only? (ie all the changed are numpy objects?)

I think so - the tests were complaining about all of these and ran successfully afterwards.

I think so - the tests were complaining about all of these and ran successfully afterwards.

Ok to merge?


Gird: Enum filter dropdown - Selection

Please help me to understand what I'm doing wrong.
The example seems so simple yet I must be missing something.
When I specify a field in a grid which is an Enum, the dropdown does not get filled with the values available from the Enum:

I'm using v3.0.0.preview-1 on a .NET 6 Server application. Chrome browser.
Cheers,
Dan

@powertec-dan Thank you for using BlazorBootstrap. Please share a sample code to reproduce the issue with minimal steps. I'll take a look.

I can get the sample code to for just fine.
I thought it might have been something to do with the Enum being returned by an extension method. But I tested that theory and that worked as well.
So, while I keep digging for what is different in my environment to the sample code, I did find a different problem.
When you have an enum that has enough elements to push the drop down below the bottom of the grid, it doesn't close up properly once the item is selected, and after that, any other enum drop down stops working as well..

`@page "/usertest"
<Grid @ref="grid" TItem="User" Class="table table-hover table-bordered table-striped" DataProvider="UsersDataProvider"
AllowFiltering="true" Responsive="true">
<GridColumn TItem="User" HeaderText="Id" PropertyName="Id">
    @context.Id
</GridColumn>
<GridColumn TItem="User" HeaderText="User Name" PropertyName="Name">
    @context.Name
</GridColumn>
<GridColumn TItem="User" HeaderText="DOB" PropertyName="DOB">
    @context.DOB
</GridColumn>
<GridColumn TItem="User" HeaderText="Status" PropertyName="Status" FilterTextboxWidth="170">
    @context.Status
</GridColumn>
<GridColumn TItem="User" HeaderText="BigEnum" PropertyName="BigEnum" FilterTextboxWidth="170">
    @context.BigEnum
</GridColumn>

@code {
BlazorBootstrap.Grid grid = default!;
private IEnumerable users = default!;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
    await base.OnAfterRenderAsync(firstRender);
}

private async Task<GridDataProviderResult<User>> UsersDataProvider(GridDataProviderRequest<User> request)
{
    if (users is null) // pull employees only one time for client-side filtering, sorting, and paging
        users = GetUsers(); // call a service or an API to pull the employees

    return await Task.FromResult(request.ApplyTo(users));
}

private IEnumerable<User> GetUsers()
{
    return new List<User>

{
new User { Id = 107, Name = "Alice", DOB = new DateOnly(1998, 11, 17), Status = UserStatus.Registered },
new User { Id = null, Name = "Bob", DOB = new DateOnly(1985, 1, 5), Status = UserStatus.Verified },
new User { Id = 106, Name = "John", DOB = new DateOnly(1995, 4, 17), Status = UserStatus.Registered },
new User { Id = 104, Name = "Pop", DOB = new DateOnly(1985, 6, 8), Status = UserStatus.Registered },
new User { Id = 105, Name = "Ronald", DOB = new DateOnly(1991, 8, 23), Status = UserStatus.VerificationPending },
new User { Id = 102, Name = "Line", DOB = new DateOnly(1977, 1, 12), Status = UserStatus.VerificationPending },
new User { Id = 101, Name = "Daniel", DOB = new DateOnly(1977, 1, 12), Status = UserStatus.Registered },
new User { Id = 108, Name = "Zayne", DOB = new DateOnly(1991, 1, 1), Status = UserStatus.Verified },
new User { Id = 109, Name = "Isha", DOB = null, Status = UserStatus.Verified },
new User { Id = 110, Name = "Vijay", DOB = new DateOnly(1990, 7, 1), Status = UserStatus.Verified },
};
}
public record class User
{
    public int? Id { get; set; }
    public string? Name { get; set; }
    public DateOnly? DOB { get; set; }
    public UserStatus Status { get; set; }
    public BigEnum BigEnum { get; set; } = BigEnum.BigEnum1;
}

public enum UserStatus
{
    Registered,
    VerificationPending,
    Verified
}

public enum BigEnum
{
    BigEnum1,
    BigEnum2,
    BigEnum3,
    BigEnum4,
    BigEnum5,
    BigEnum6,
    BigEnum7,
    BigEnum8,
    BigEnum9,
    BigEnum10,
    BigEnum11,
    BigEnum12,
    BigEnum13,
    BigEnum14,
    BigEnum15,
    BigEnum16,
    BigEnum17,
    BigEnum18,
    BigEnum19,
    BigEnum20,
    BigEnum21,
    BigEnum22,
    BigEnum23,
    BigEnum24,
    BigEnum25,
    BigEnum26,
    BigEnum27,
    BigEnum28,
    BigEnum29,
    BigEnum30,
    BigEnum31,
    BigEnum32,
    BigEnum33,
    BigEnum34,
    BigEnum35,
    BigEnum36,
    BigEnum37,
    BigEnum38,
    BigEnum39,
    BigEnum40
}

}`

Some more notes:
With the BigEnum, it works ok unless you scroll to an item in the drop down that is below the bottom of the grid. Once you have scrolled, then the dropdown doesn't clear any more. All other enum drop downs are broken.
Next: I have another test that chains two enums via an extension method (Setting one main enum, derives a series of other enums via extensions methods). When doing this, the derived enum dropdown works once. Then all enum dropdowns no longer function even if the filter is cleared.
The code to setup the extension method is as below (The test just adds the Category column to the grid, so I won't post that again):
`
public record class User
{
public int? Id { get; set; }
public string? Name { get; set; }
public DateOnly? DOB { get; set; }
public UserStatus Status { get; set; }
public UserCategory Category => Status.GetCategory();
public BigEnum BigEnum { get; set; } = BigEnum.BigEnum1;
}
public enum UserStatus
{
    Registered,
    VerificationPending,
    Verified
}

public enum UserCategory
{
    NotEnrolled,
    Enrolled,
    Disqualified
}

public enum BigEnum
{
    BigEnum1,
    BigEnum2,
    BigEnum3,
    BigEnum4,
    BigEnum5,
    BigEnum6,
    BigEnum7,
    BigEnum8,
    BigEnum9,
    BigEnum10,
    BigEnum11,
    BigEnum12,
    BigEnum13,
    BigEnum14,
    BigEnum15,
    BigEnum16,
    BigEnum17,
    BigEnum18,
    BigEnum19,
    BigEnum20,
    BigEnum21,
    BigEnum22,
    BigEnum23,
    BigEnum24,
    BigEnum25,
    BigEnum26,
    BigEnum27,
    BigEnum28,
    BigEnum29,
    BigEnum30,
    BigEnum31,
    BigEnum32,
    BigEnum33,
    BigEnum34,
    BigEnum35,
    BigEnum36,
    BigEnum37,
    BigEnum38,
    BigEnum39,
    BigEnum40
}

public static class UserStatusExtensions
{
    public static UserCategory GetCategory(this UserStatus status)
    {
        return status switch
        {
            UserStatus.Registered => UserCategory.NotEnrolled,
            UserStatus.VerificationPending => UserCategory.NotEnrolled,
            UserStatus.Verified => UserCategory.Enrolled,
            _ => UserCategory.Disqualified
        };
    }
}
`

@powertec-dan Thank you for your detailed feedback. I'll fix this.

I have the same problem, my enum for Status does not show anything when I click on it. See screen shot below.
       <Grid TItem="Person"
              AllowRowClick="true"
              AllowFiltering="true"
              AllowSorting="true"
              AllowPaging="true"
              PageSize="25"
              Class="table table-hover table-bordered table-striped"
              DataProvider="PersonDataProvider"
              HeaderRowCssClass="bg-primary text-white border-bottom-0"
              OnRowClick="OnRowClick"
              Responsive="true">

            <GridColumn TItem="Person" HeaderText="FirstName" PropertyName="FirstName" SortString="FirstName" SortKeySelector="item => item.FirstName" FilterTextboxWidth="100">
                @context.FirstName
            </GridColumn>
            <GridColumn TItem="Person" HeaderText="LastName" PropertyName="LastName" SortString="LastName" SortKeySelector="item => item.LastName" FilterTextboxWidth="100" IsDefaultSortColumn="true" SortDirection="SortDirection.Descending">
                @context.LastName
            </GridColumn>
            <GridColumn TItem="Person" HeaderText="Status" PropertyName="Status" SortString="Status" SortKeySelector="item => item.Status" FilterTextboxWidth="100">
                @context.Status
            </GridColumn>
            <GridColumn TItem="Person" HeaderText="CompanyApproved" PropertyName="CompanyApproved" SortString="CompanyApproved" SortKeySelector="item => item.CompanyApproved" FilterTextboxWidth="100">
                @context.CompanyApproved
            </GridColumn>
        </Grid>`

public class Person : LmsBaseEntity
{
    public string? FirstName { get; set; }
    public string? LastName { get; set; }
    public string? Title { get; set; }
    public string? ProfileImage { get; set; }
    public bool? AgeVerification { get; set; }
    public bool? TermsVerification { get; set; }
    public StatusType Status { get; set; }
    ...

public enum StatusType
{
    Active = 1,
    Disabled = 2
}


OCPBUGS-18607: re-add proxy.Status.HTTPProxy check

If a cluster is running in a disconnected environment (ie BYON), the LBs
can't be created because right now the tests rely on Floating-IPs, which
is not a resource we can use in a restricted network.
Re-adding the previous condition, aside of the new one to cover both
use-cases.

/jira refresh

/assign @eurijon

/approve

I was going to suggest creating a revert, but we're actually re-adding the original check in addition to the new one @EmilienM replaced this with in 9d74f3447. Makes sense.
/lgtm

/approve


Version 2.0.0 & ESM Issues

Version 2.0.0 is a pure ESM build and currently does not work with semantic-release. More information about this can be found in this ticket. Please continue to use version 1.x.x. You can install this version again with npm i -D @sebbo2002/semantic-release-docker@1.

:tada: This issue has been resolved in version 2.0.1-develop.1 :tada:
The release is available on:

v2.0.1-develop.1
GitHub release
v2.0.1-develop.1

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.0.1 :tada:
The release is available on:

v2.0.1
GitHub release
v2.0.1

Your semantic-release bot :package::rocket:

I released version 2.0.1 which removed the ESM stuff, so it should work again. Sorry for the inconvenience.


Wrong command on android setup section.

Update deployment key list command for android docs.

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


Existing Snapshots with Different Name Cause verify_no_existing_snapshot.yml to Fail

Existing Snapshots with Different Name Cause verify_no_existing_snapshot.yml to Fail
Check fails if another snapshot exists on the same LV even if the names are different.
Documentation Specifies
Both the check and create actions will verify free space and should fail if there is not enough. A check or create action should fail if any snapshots already exist for the given snapshot_set_name.

I can create a PR for this.

@swapdisk wrote the doc before I implemented it. I guess I misread it, but it did make sense to me . So, I'd like to get @swapdisk's opinion before we decide if it's the code or document that we should fix.

My intention was that the documented fail should happen if there would be a collision with existing snapshot volume names. I did not expect it to prevent using an origin volume that has a snapshot with different name. PR #13 looks good.


Additions to consul_key_value

Hi,
We have developed our own consul_key_value and would like to get the differences upstream.
Would you be willing to accept them?
Key changes:

Allows for the specification of the DC for a key/value.

Does not cache the whole key-value store. But only the prefixes of the keys requested.
Assuming:

That you are likely to modify some keys in the same directory
Caching the whole key-value store can be a heavy and unnecessary operation.

purge
Keeps track of the consul keys (with the purge: true) that are managed during this run
and deletes the key if they are no longer present as resources in the next puppet run.
Works a little like file{"/tmp": type => directory, purge => true}
This is very handy if your consul use case is similar to "exported resources".
It uses a special path in consul to keep track of this information across agent runs.

dc: yes
do we cache currently?
purge: I thought this came for free with any provider that could list all resources? How does it keep state between runs?

@solarkennedy @houtmanj usually provider that can list all resources can purge them too, without the need to keep state between runs.
IMHO something similar for consul k/v would be good to have, and it should not rely on state saved between puppet runs, as long as it could work for children of a specific key (eg. "purge foo/bar/baz and all its children"), more or less like the File resource can do for directories and their subdirectories.

DC: kewl

Cache:
you do, see list_resources in https://github.com/solarkennedy/puppet-consul/blob/master/lib/puppet/provider/consul_key_value/default.rb
I was afraid of the performance penalty for recursing the whole key-value store.
But I just realized that the proper use of ACL's will fix that issue.

Purge:
You are both right, a provider that can list all resources could purge unmanaged resources. Just like the file resource can do for a directory.
But that is not enough in the following scenario.
We have been using consul in part as a replacement for exported resources.
F.e. We would write our nagios service check definitions to consul, into a structure not a similar to this: /nagios/service/<check_hostname>/<service_check_name>
Our apache proxy would write:
/nagios/service/xyz.service.google.nl/check_ssl_certificate
while the application service would write:
/nagios/service/xyz.service.google.nl/check_status_page
Point being: not all keys in a directory are managed by the same puppet run.
So when check_status_page is renamed you need to be very carefull to ensure => absent the old key, other wise it will just stay in consul.
I propose a system where the provider maintains a little state on the system itself.
On the next run the provider can use the state to determine that /nagios/service/xyz.service.google.nl/check_status_page is no longer part of this puppet run and can be cleaned up.
Obviously this behaviour should be optional, but we can make it an argument for consul_key_value.


Rename extraFieldWrapperAttributes to extraEntryWrapperAttributes

Description
The extraFieldWrapperAttributes was wrongly documented in the info lists docs.

Thanks! 😊


Fix for styles rendering in IE9

Due to CSS bloat ( extremely sad ), we have to split css files to avoid CSS limitations in IE9. http://mitchgavan.com/style-sheet-limitations-in-ie9/
http://cssstats.com/stats?url=http%3A%2F%2Fconsumerfinance.gov&ua=Browser Default
Changes

Modified files to add gulp-bless and produce an IE9 specific version of the styelsheet.

Testing

Run gulp build.
View site on IE9 using your virtual machine or sauce labs.

Screenshots

Notes

I'm currently unable to correctly shrinkwrap with version 4.1.2 of NPM.

Todos

Checklist

[ ] PR has an informative and human-readable title
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[ ] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated
[ ] Reviewers requested with the Assignee tool :arrow_right:

@sebworks w/ node 6.10.0 (npm 3.10.10) I also get a shrinkwrap error but for unknown reasons it works if I run npm install a second time:
rm -rf node_modules/ npm-shrinkwrap.json
npm install
npm shrinkwrap --dev # complains about a missing dep
npm install
npm shrinkwrap --dev # works fine

Seems related to https://github.com/npm/npm/issues/9703.

thanks @contolini, that worked.

The main issue is that we don't have per module / page CSS. This is an old issue https://github.com/cfpb/cfgov-refresh/issues/253.  I've done some work on it but stopped. I'll look at it again.  If you run the page audit tool in chrome, you will notice that 80% of the css is unused for most of the pages.
We might get some small wins by elimination some of the styles which are unused or have been migrated to Capital Framework. misc.less has quite a few styles we no longer use.
Another thing to consider is using something like uncss. I know @anselmbradford had fooled around with it but discovered that a number of pages were breaking.  There is a bit of added complexity given the use of Wagtail.

We eliminated a small amount of unused css in v4 of Capital Framework, especially around layouts. I think those and the font mixins probably account for a good amount of our repetitive bloat. I know most of it is gzipped away, but it seems like the IE issue is the uncompressed size.
I think we really need to look into removing duplicated code. It'd be slimmer to use a font class in the markup than have the same font family mixins used everywhere (I'm not advocating that solution, just a point).
cc @Scotchester


Create skeleton for CCDB5

This is a very, very preliminary pull request.  It was created to elicit feedback from the technical stakeholders.  We are looking for feedback on:

Methodology

Is this how we create a new child url?
Is this how we use flags in the application

Additions

Skeleton pages for the CCDB5 Single Page Application and REST API

Removals

None

Changes

urls.py
base settings
vars menu

Testing

None yet

Screenshots
Todos

Determine the real URL and not platzhalter. (Picked for it's unique word and easy to replace)

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[x] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated
[x] Reviewers requested with the Assignee tool :arrow_right:

@sephcoster @amymok

Looks good to me, but since I don't have the cfgov-refresh context, I can't comment on those.

Adding @AdamZarger

@JeffreyMFarley can you please rebase against the master branch (no cfpb:) so we can see only the changes you're introducing, without the 1,000+ additional commits?

@chosak Since this is a new feature, I created a feature branch ccdb5 and set that as the base

@JeffreyMFarley you'll also need to add this new app (ccd5) to the list here so that the servers on content/www share the same database tables for it. @rosskarchner

@chosak I can do that, but we aren't using a database for this app, is it still required?

@JeffreyMFarley you're correct, it's only relevant for apps that need the RDBMS

New commits use @willbarton Wagtail Flags and re-use the Complaint database URLs
Before

Set the Flag

After

@rosskarchner @sephcoster @Scotchester any more comments?  Otherwise, I will merge around 11 EDT


Relax oj dependency

Please relax oj dependency to ~> 3.11.

@bibendi have you seen the latest version ?
https://github.com/panko-serializer/panko_serializer/blob/master/panko_serializer.gemspec#L33
If this is about the latest version, what's the problem you are experiencing there?

LGTM!
Thank you for the fix.

Happy it solved your issue :)
Closing the issue, if you have any new issues, feel free to open new one.


Improved Solution File Handling

This change makes a lot of improvements to how MSB4U solution file is generated, and more importantly what information it tries to bring forward when overwriting this file. This means, you can now modify and add items to the solution file, and have MSB4U preserve those.
This change addresses:
#86

    {

nit: consider moving these variables into a wrapper struct/class to decrease the number of arguments in this function call

Refers to: Source/MSBuildTools.Unity/Packages/com.microsoft.msbuildforunity/Editor/ProjectGenerator/Scripts/Exporters/TemplatedProjectExporter.cs:56 in 283a6d5. [](commit_id = 283a6d5076e3efe7c048247ed942130277a3ff1d, deletion_comment = False)


"Internal consistency check failed" during compilation using Erlang/OTP <IP_ADDRESS>

Environment

Elixir version (elixir -v):

Erlang/OTP 18 [erts-<IP_ADDRESS>] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Elixir 1.4.5

Database and version (PostgreSQL 9.4, MongoDB 3.2, etc.):

(PostgreSQL) 9.5.10

Ecto version (mix deps):

ecto 2.2.8

Database adapter and version (mix deps):

postgrex 0.13.2

Operating system:

macOS High Sierra 10.13.3
Current behavior
Compiling 70 files (.ex)
== Compilation error on file lib/ecto/query/builder/select.ex ==
** (CompileError) Elixir.Ecto.Query.Builder.Select: function '-merge_take/3-fun-0-'/3+24:
Internal consistency check failed - please report this bug.
Instruction: {test,is_tuple,{f,133},[{x,2}]}
Error:       {uninitialized_reg,{x,2}}:
(stdlib) lists.erl:1337: :lists.foreach/2
(elixir) lib/kernel/parallel_compiler.ex:117: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

Expected behavior
Compiling 70 files (.ex)
...
Generated ecto app
Note: in version ecto 2.2.7 there was no problem

"Internal consistency check failed" errors are bugs in the Erlang compiler. I'll try looking into working around it. The immediate solution would be to update Erlang/OTP.


Use the Web Bluetooth API

I sadly don't own a Solowheel Xtreme one but I'd love to see a Web App for it thanks to the Web Bluetooth API, an experimental Web API that allows websites to discover and interact with BLE devices.
I've written a simple proof of concept at https://beaufortfrancois.github.io/sandbox/web-bluetooth/solowheel-xtreme/. Source code is available at https://github.com/beaufortfrancois/sandbox/blob/gh-pages/web-bluetooth/solowheel-xtreme/index.html
Could you give it a try with your Solowheel device and let me know if this works for you?
If you have an Android 6 phone, you'll need Chrome Dev for Android app with the "Web Bluetooth" flag enabled at chrome://flags/#enable-web-bluetooth.
If you have an Android 5 phone, you'll sadly need a recent build of Chromium available at https://download-chromium.appspot.com/?platform=Android with the "Web Bluetooth" flag enabled at chrome://flags/#enable-web-bluetooth.
See the Web Bluetooth API implementation status at https://github.com/WebBluetoothCG/web-bluetooth/blob/gh-pages/implementation-status.md
Thank you in advance @kroot!

Very cool. I love the concept and your video is very well done.  I installed Chrome Dev, set the flag, and tried to connect to the Solowheel Xtreme but all I could see in the Chrome console is "Argh! DOMException: Bluetooth adapter not available."

Which phone do you have?
Which Android version is on it?

Samsung Galaxy S5 4.4.2
I have a Nexus 7 with Marshmallow.  I can try that tonight.

@kroot How did it go?

(gentle ping)

@kroot I'd love to try it by myself but I sadly don't have a Solowheel Xtreme device.
May you let me know if that works for you?

@kroot Did that work out for you?

Just googled for anyone else getting "Bluetooth adapter not available" and found this issue
I get the same problem on Android 4.4.4
I'm not sure if its relevant, but this bug tracker thread seems to suggest that the web api is only available in Andorid 6.x Marshmallow
https://bugs.chromium.org/p/chromium/issues/detail?id=543482

Indeed, the Web Bluetooth API is officially supported only in Android 6, Marshmallow or later.
See https://github.com/WebBluetoothCG/web-bluetooth/blob/gh-pages/implementation-status.md#notes for more details.

Thats a pain.
I can't think of a technical reason for this, as BLE has been available to Apps for ages (not sure which version of android it was part of. Perhaps even Android 2.0)
It cordova apps work fine with BLE.
I'm loathed to update my phone to Android 6, as its working just fine, and is rooted and customised, all of which I would loose if I upgraded.
Looks like I'll need to buy a cheap tablet or mobile with Marshmallow on it, just to test this feature with my BLE boards :-(

BLE has been introduced in Android 4.3: https://developer.android.com/guide/topics/connectivity/bluetooth-le.html
However as you can see, startLeScan has been deprecated at https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback) and is now available only starting in Android 5.0 https://developer.android.com/reference/android/bluetooth/le/BluetoothLeScanner.html#startScan(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback)

Interesting.


Modal dialog

A modal dialog presents an important message to the user, and blocks interaction with the rest of the interface until it is dismissed.
This will be implemented using RAC Modal as a base.
Note from @ty2k: This is mostly complicated by all of the different keyboard requirements for a component like this. Hopefully the underlying React Aria Component is very full-featured and this will be trivial.

My guess is that you're correct and we will want the Modal from RAC for this. The browser native <dialog> is extremely good and in everything now, but I imagine it will be way simpler to use RAC than to try writing a React wrapper around the native thing.
As an aside, we have been using react-modal in the CMS prototype, and it has been excellent. I expect RAC to be similar, glancing at their API docs.

I'll get into it and see how it goes — if RAC's solution doesn't feel right we can revisit and think about a different path.


Harrison/update wandb

seems stale, ok to close?

Duplicate of #https://github.com/langchain-ai/langchain/pull/2055#issue-1642858629


Add port if specified to ssh options.

Q
A

Bug fix?
Yes

New feature?
No

BC breaks?
No

Deprecations?
No

Fixed tickets
#1156

Do not forget to add notes about your changes to CHANGELOG.md

This updates the tests as well.

Thanks. Already added. But tests will be cool. Can you rebase pr?

@antonmedv: done.


Extra vars, why force using a file ?

Why we can't pass extra vars as arguments ? It would ease things :
Jenkins launches the build
Jenkins must create a file containing extra vars which will be read by tower-cli
Jenkins calls tower-cli with tower-cli job launch --job-template 18 --extra-vars ex.yml
Jenkins must erease the file
VS
Jenkins launches the build
Jenkins calls tower-cli with tower-cli job launch --job-template 18 --extra-vars test:23,site:example.com

Any update on this ?

I'm not commenting on the official implementation.  As a work-around in bash, consider process substitution:   tower-cli job launch --job-template 18 --extra-vars <(echo "{test: 23, site: example.com}")
This is untested, just brain-storming.

ping @jlaska Any update on this ? Did you discussed it internally ?

Hey @tristanbes.  No update at the moment.  We'll be reviewing outstanding issues with tower-cli and working them into the release cycle soon.

Ok. Hope it'll be soon then ;)

:+1:

I ended up writing a groovy script that interacts with the tower api. This allows you to have parameterized builds in jenkins and add/append this information to your extra_vars. No need for creating files etc... the api is rather straight forward so it wasn't difficult.

@tristanbes We are close to implementing this feature, but the syntax is different from the ideas you threw around here, and I just wanted to touch base with you about its usability. Ansible will accept either JSON syntax or the key=value pattern with whitespace between them for the extra_vars. We're going to try to mimic that pattern. For your example, it would be:
tower-cli job launch --job-template 18 --extra-vars "test=23 site=example.com"
In Ansible, you can also indicate a file name with extra variables by putting "@" at the start of the string, and we will do the same. I would imagine that Jenkins users will be able to easily work with this. Do you have any thoughts or comments on this structure?

@AlanCoding Yes fine by me with  --extra-vars "test=23 site=example.com"
Any complex structure would force us to construct it via libraries and string mainpulation, so the easier the simplest.
What happens if the value contains a whitespace ?
What happens if the value is an array ?

What happens if the value contains a whitespace ?

I'd recommend using quotes name="John Smith"

What happens if the value is an array ?

I'd recommend not using the <key>=<val> syntax for anything more involved than basics numbers/scalars.

@tristanbes Here are some test scenarios that will work with this update: in order to pass a list --extra-vars="a: [1, 2, 3, 4, 5]" , which is using YAML format. To pass whitespace, --extra-vars="a='white space'"  I still need to push another commit, but these cases will be covered in them.

perfect then :-)
And does the scenario
--extra-vars="a: [1, 2, 3, 4, 5] b='white space' "

works too ?

Yes, your 2nd statement will work. The only problem with your first statement is that you're using 2 different standards together. Here is the same thing reformatted to be a key="value" format:
--extra-vars='a="[1, 2, 3, 4, 5]" b="white space" '
This works, and I'll eventually put it in tests too. Ansible, itself, supports extra vars in this syntax so we can say that this type of statement is mostly future-proof.


#791: unique SNAPSHOT versions

fixes #791

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

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 66.953%

Totals

Change from base Build<PHONE_NUMBER>5:
0.0%

Covered Lines:
6587

Relevant Lines:
9486

💛  - Coveralls

Works:
$ ide -v
2024.12.001-beta-12_05_21-SNAPSHOT/

but I added a slash due to a bash expression syntax issue.


tesseract only processing first page of each tif when given text file with list of multipage tifs as input

tesseract -v
tesseract 5.0.0-18-g771c1
 leptonica-1.78.0
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
 Found NEON
 Found OpenMP 201511
 Found libarchive 3.2.2 zlib/1.2.11 liblzma/5.2.2 bz2lib/1.0.6 liblz4/1.7.1
 Found libcurl/7.58.0 NSS/3.35 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3

I was trying to OCR a list of multipage tifs by giving a list of images as input. Tesseract is only processing the first page per image when a list is given.

Versions used on Debian 10.9:

tesseract 4.0.0 (*)
leptonica-1.76.0
libgif 5.1.4
libjpeg 6b (libjpeg-turbo 1.5.2)
libpng 1.6.36
libtiff 4.1.0
zlib 1.2.11
libwebp 0.6.1
libopenjp2 2.3.0

We had this with several multipage TIFFs handed over via command line, and then could not reproduce it.
Command line was like:
/usr/bin/tesseract -l "deu" "/path/to/input.tif" "/path/to/target.hocr" hocr 1>>logfile.log 2>&1
The weird thing is, I can not reproduce it with the same tiff. It did write a HOCR file for the first page. It was not truncated or in any case botched or crooked, it was a complete and well formed HOCR file.
The tiff has 86 pages, and whenever I try again, tesseract (same version, no system updates or anything like that in between) processes all 86 pages. A diff -u between the old and the new only shows that the next results all have 85 more referenced pages, the first one is even the same.
There was nothing written to the log but the tesseract version and the processing of the first page. No error, no disturbance. Plenty of disk space and memory were also free.
So the issue seems to be random and not being related to the form of input other than multi-page tiffs are used.
(*) As the OP uses tesseract 5, I daresay this issue with multi-page tiffs is either related to libtiff (them 4.0.9, we 4.1.0) or is present for at least since tesseract-4.0.0.

@Shreeshrii: problem is that you are misusing tesseract the text file list feature. It is designed to replace multipage tif with one-page image format and it should not be used with multipage tiff (or another text file list).
Tesseract is OCR engine and you need to do image preprocessing (e.g. split multipage tiff or append/prepend other images) by yourself and in advance of OCR process.


Cannot find module after build

I am using "serialport": "1.7.4" npm package inside my project, everything seems to be working fine.
inside my packages.json I have
{
"serialport": "1.7.4"
}
meteor build. also completes without any errors.
then inside generated bundle directory I install npm modules
cd path/to/bundle/programs/server && npm install
but when running  "node main.js" I get this error:
Error: Cannot find module '/path/to/bundle/programs/server/npm/npm-container/node_modules/serialport/build/serialport/v1.7.4/Release/node-v14-linux-x64/serialport.node'

I tried solving this problem by using meteor package https://atmospherejs.com/donaldaverill/serialport
but ended up having exact same error, later I found out that by downgrading nodejs version 0.12.7 -> 0.10.36 I was able to resolve this issue, thus I guess this error is noway related to this package.


Compatibility with jarstone/bs5-toast

Hi again!
While I know that bs5 compatibility is not a complete goal, I'm still wondering why this is not working
I'm using https://github.com/jarstone/bs5-toast and here is a sample codepen
https://codepen.io/lekoalabe/pen/wvPygrg
(you can uncomment the inclusion of boostrap 5 js and see that it works, i simply alias bsn to window.bootstrap so that calls to window.bootstrap.Toast works)
The library is only calling the following features
 this.bootstrapToast = new bootstrap.Toast(this.element, {
        animation: this.#animation,
        autohide: this.#autohide,
        delay: this.#delay
      });
 show() {
      this.bootstrapToast.show();
    }
    hide() {
      this.bootstrapToast.hide();
    }

any reason why it doesn't work ? it seems it's not adding the fade/show classes. maybe it's a codepen only issue, because it seems to work just fine in my local project.
actually the real issue i have, that is not on the codepen, is that the "dismiss" cross is not doing anything when clicking on it.
regular toasts (added from html) work fine.

Well no. If you change the version to 4 and click the button you will see that the dismiss icon doesn't work

I don't understand. You want to use BSN V4 with a V5 compatible script?

No no sorry I wasn't clear. Use the latest version of BSN . The toast from html works as expected but the one generated appears but the dismiss icon doesn't work

I see. I've inspected the codepen and I see that the dismiss button of the Toast has the right attributes and event listener attached. For some reason, other event listeners (which are many of them) interfere in a way I cannot determine, I believe it has to do with this script bs5-toast/dist/bs5-toast.js, I don't know what is going on.

In short, you need to make sure the order is right:

add toast item to page
initialize
call show() via button action or whatever your logic needs

The original library works because event delegation, ours is more strict.

Ok it's still a bit unclear what needs to be fixed here. The bs5 toast lib does mostly that: insert html, call new and then show. In fact the dismiss element is found by BSN toast it just seems clicking on it never triggers the actual event. Since the element is there upon init I don't see why it's failing.

I say do your own script, make it use createElement instead of Element.innerHTML and it should work. The initial Toast demo was like that.

One more thing: be sure your toast is in the DOM when initialized.

When I look at bs5 toast that's what it does: insert in html then calling new. Sure it's using innerhtml but as far as I know that shouldn't be an issue ? Why would createElement work any better ?

I'm not 100% sure why, but here is a fork of your codepen, everything working properly with a custom createToast utility similar to your script. You can work it out your way.
Let me know how it goes.

In conclusion, jarstone/bs5.toast isn't something major to talk about, I think my above comment will provide a much better solution. I consider this to be solved.

fyi, i think i found the issue, it's simply because the lib adds the dismiss button twice and hide one of them. therefore, it's not working. in bs5, since it's delegating, it accepts any number of dismiss icon while bsn native assumes (for good reasons) that there should be only one.


Lk bootloader builds

This patch series is for building the lk bootloader for the dragonboard-410c, along with the toolchain pieces required to get that build to work.
If accepted, I'll submit a further pull request to bring in the rest of the bits needed to build a complete fastboot-able set of binaries for complete initialization of the Dragonboard's eMMC.

hi, thanks for the patches! I have been willing to intregrate LK for some time.. however i am wondering if we really need to go that far and include the arm-non-eabi cross compiler. can't we get LK to build with the regular toolchain instead ? (OE can build uboot or grub for example..)
i am a bit worried about the maintenance of adding the extra cross compiler in a BSP layer..
what do you think?

I'd like to avoid the extra toolchain recipes, too, but I wasn't sure we could coax the aarch64 toolchain into producing 32-bit baremetal code, which is what we need for lk.   I'll look into and see.

According to the TCWG in linaro, you can't generate 32bit code with an aarch64 toolchain :/
What could be used is something like https://github.com/96boards/oe-rpb-manifest/pull/45 , but that would be distro specific. The 96boards hikey machine has a similar problem and does fetch an external toolchain: https://github.com/96boards/meta-96boards/blob/master/recipes-bsp/l-loader/l-loader_git.bb

Yes, I found the same - two different back-ends, so at least for now the aarch64 toolchain can't generate aarch32 code.  I found the meta-ti layer also pulls in a prebuilt 32-bit toolchain for its recipes that need 32-bit baremetal code generation, although it has a separate recipe for it.
Another approach would be to use multilib and have the recipe depend on the 32-bit flavor of the toolchain, but that carries with it a bunch of other undesirable baggage, and I'm not sure that the 32-bit Linux ABI-targeted toolchain would generate the correct baremetal code for LK's purposes anyway.

well, if we have to get into multilib, then i would probably reconsider my initial statement ;-)
my main fear/worry is the maintenance cost for keeping the 32 bit non linux cross compiler in meta-qcom.. i still feel that it's wrong to have it there... @koenkooi is there a better place for that, or do you think it's ok to keep it in meta-qcom?

I'd go for a 32bit helper machine, since toolchain maintenance is not something you want to do. But from a 'one command to rule them all', but extra toolchain can be considered more user friendly.

Pre-built toolchain would be easier to maintain at least, and could already unblock this merge (depends on Nico).


Support version catalogs in classpath

This is a little more targeted than my previous ProviderConvertible Kotlin DSL PR, basically due to some open questions revolving around the 'correct' way to expose Provider/ProviderConvertible to the API. This one was designed with a different way of doing the Kotlin DSL than we currently do, and hopefully one that ends up more powerful.
Fixes #17792

This PR is waiting on #18910 to be merged, I want to fix the bug related to accepting API changes rather than commit more incorrect entries as this PR would require.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


VM: LEFT with big index should not fault

If an operand of LEFT is more or equal than length of the array, entire array should be returned.
Implementation https://github.com/neo-project/neo-vm/blob/master/src/neo-vm/ExecutionEngine.cs#L465
Test https://github.com/neo-project/neo-vm/blob/master/tests/neo-vm.Tests/Tests/OpCodes/Splice/LEFT.json#L154

Refs. #356.

I actually thought that failing in this case is an obvious and desired behavior and didn't even check with C# code. But turns out NEO VM is way more fancy.


chore: Slovak translation, enabling language and adding first translations

SUMMARY

Adding first translations for the Slovak language.

Thank you for your approval @villebro. Is there something I can do to fix E2E testing?

@minho95 it seems to be a flaky test, and should sort itself out (I've restarted the job). However, I notice there is no .json translation file, only the .po file. Can you check if you've followed all steps as outlined here: https://github.com/apache/superset/blob/master/CONTRIBUTING.md#updating-language-files


Connect to process in foreground mode

Hi! Is it possible to connect to a running process in foreground mode that running with supervice-daemon?
Like rc-service process_name fg?
Thanks!

no, and i don't think it's something we'd add.  ideally daemons would never be connected to anything.


Feature Request: Toggle to show beginner issues

For developers who have never contributed to open source projects, getting started working on one can be very intimidating.
Suggestion: Add feature that allows a user to subscribe to, or view, beginner issues. After a quick search, a list of beginner issues can be found here:
https://github.com/MunGell/awesome-for-beginners#ruby
I compiled and sorted a list of the most common labels for beginners. These can be used to search through the selected project to display/send beginner issues to the user.
Beginner issue labels:
beginner
beginner friendly
beginners-only
contribution-starter
d.firsttimers
difficulty/low
difficulty/newcomer
difficulty: easy
easy
easy fix
easy-pick
exp/beginner
first time contributor
first time only
first timers welcome
first-timers-only
for new contributors
good first bug
good first issue
good first task
good for new contributors
good for beginner
good-first-contribution
good-for-beginner
jump-In
junior job
level:starter
low-hanging-fruit
newbie
onboarding
starter bug
starter-issue

I would like to take a look at this but this is ironically my first time contributing. Just so I'm sure, would you like to:

have a drop down menu with all of these tags similar to the languages drop down on the home page. The expected behavior would then be that the user could see all projects with issues with that tag (perhaps sorted by #). Sort of like a "Filter List by Issue Type"  or
would you like a user see all current beginner issues associated with a project that they have already selected?

Thank you!

@rahulssheth I think a toggle after they have already selected a repository would be most helpful. I think a first time contributor would want to see all the beginner issues of the repository they wish to help on rather than all beginner issues in existence.


Fix linter issues in pkg/dhcp/

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Review status: all files reviewed at latest revision, 4 unresolved discussions.

pkg/dhcp/server.go, line 48 at r1 (raw file):

// Server describes an object prepared to be started in container namespace
// as a goroutine, serving network configuration data to a client in
// the same container namespace.

I'd rather say just "Server implements a DHCP server that runs in the container network namespace"

pkg/dhcp/server.go, line 60 at r1 (raw file):

// SetupListener prepares a dhcp4 listener to be listening on default dhcp port,
// on provided IP address.

SetupListener sets up a DHCP4 listener that listens on the default DHCP port and the specified IP address.

pkg/dhcp/server.go, line 72 at r1 (raw file):

}

// Close shuts down dhcp listener.

Close shuts down the DHCP listener.

pkg/dhcp/server.go, line 77 at r1 (raw file):

}

// Serve waits in a endless loop for dhcp client packets and reacts on them.

Serve waits in an endless loop for DHCP requests and answers them.

Comments from Reviewable

Review status: 0 of 1 files reviewed at latest revision, 4 unresolved discussions.

pkg/dhcp/server.go, line 48 at r1 (raw file):
Previously, ivan4th (Ivan Shvedunov) wrote…
I'd rather say just "Server implements a DHCP server that runs in the container network namespace"

Done.

pkg/dhcp/server.go, line 60 at r1 (raw file):
Previously, ivan4th (Ivan Shvedunov) wrote…
SetupListener sets up a DHCP4 listener that listens on the default DHCP port and the specified IP address.

Done.

pkg/dhcp/server.go, line 72 at r1 (raw file):
Previously, ivan4th (Ivan Shvedunov) wrote…
Close shuts down the DHCP listener.

Done.

pkg/dhcp/server.go, line 77 at r1 (raw file):
Previously, ivan4th (Ivan Shvedunov) wrote…
Serve waits in an endless loop for DHCP requests and answers them.

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


fix(ai-plugins): add missing kong.ctx.shared usage to llm.state

Summary

Checklist

[ ] The Pull Request has tests
[ ] A changelog file has been created under changelog/unreleased/kong or skip-changelog label added on PR if changelog is unnecessary. README.md
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Issue reference
Missing from https://github.com/Kong/kong/pull/13155

ce->ee cherrypick is handled in https://github.com/Kong/kong-ee/pull/9912


swift code format

Use swift code syntax. It provides better code highlighting on GitHub

Would have preferred as two commits where the first adds the backticks and the second changes the whitespace. But thanks!


[suggestion or bug?] Retrieving 1 less affix on anvil?

So the following behavior is in place
Rare item on anvil with Rare affix tome, only retrieves 1 affix instead of 2.
Epic item on anvil with Epic affix tome, only retrieves 2 affixes instead of 3.
Mythic item on anvil with Mythic affix tome, only retrieves 2 affixes instead of 3.
Is this what is supposed to be?
Preferred option, to be consistent and have them retrieve their supposed max amount of affixes,
Second Option: Make a slight modification that using an Epic affix tome with a rare item actually takes the 2 affixes, and using a Mythic tome on an epic item takes 3 affixes, and using an ancient tome takes 3 affixes from mythic. So in short, higher level book takes all affixes from lower level item.
Common and Uncommon does work as expected. Tx

Tomes simply remove half of the affixes rounded up.  2/2 = 1, 3/2 = 1.5 = rounded up to 2

wouldn't it be better if it gets all of them instead of half? if it gets only half and there is no way to create them other than loot then, you stop merging and mixing since they get lost, waiting for that good item to put all of them, so you stop using them for most of the game. just a thought.


[Feature] vLLM CLI for serving and querying OpenAI compatible server

FILL IN THE PR DESCRIPTION HERE
FIX #4167
BEFORE SUBMITTING, PLEASE READ THE CHECKLIST BELOW AND FILL IN THE DESCRIPTION ABOVE

 PR Checklist (Click to Expand)
Thank you for your contribution to vLLM! Before submitting the pull request, please ensure the PR meets the following criteria. This helps vLLM maintain the code quality and improve the efficiency of the review process.
PR Title and Classification
Only specific types of PRs will be reviewed. The PR title is prefixed appropriately to indicate the type of change. Please use one of the following:

[Bugfix] for bug fixes.
[CI/Build] for build or continuous integration improvements.
[Doc] for documentation fixes and improvements.
[Model] for adding a new model or improving an existing model. Model name should appear in the title.
[Frontend] For changes on the vLLM frontend (e.g., OpenAI API server, LLM class, etc.)
[Kernel] for changes affecting CUDA kernels or other compute kernels.
[Core] for changes in the core vLLM logic (e.g., LLMEngine, AsyncLLMEngine, Scheduler, etc.)
[Hardware][Vendor] for hardware-specific changes. Vendor name should appear in the prefix (e.g., [Hardware][AMD]).
[Misc] for PRs that do not fit the above categories. Please use this sparingly.

Note: If the PR spans more than one category, please include all relevant prefixes.
Code Quality
The PR need to meet the following code quality standards:

We adhere to Google Python style guide and Google C++ style guide.
Pass all linter checks. Please use format.sh to format your code.
The code need to be well-documented to ensure future contributors can easily understand the code.
Include sufficient tests to ensure the project to stay correct and robust. This includes both unit tests and integration tests.
Please add documentation to docs/source/ if the PR modifies the user-facing behaviors of vLLM. It helps vLLM user understand and utilize the new features or changes.

Notes for Large Changes
Please keep the changes as concise as possible. For major architectural changes (>500 LOC excluding kernel/data/config/test), we would expect a GitHub issue (RFC) discussing the technical design and justification. Otherwise, we will tag it with rfc-required and might not go through the PR.
What to Expect for the Reviews
The goal of the vLLM team is to be a transparent reviewing machine. We would like to make the review process transparent and efficient and make sure no contributor feel confused or frustrated. However, the vLLM team is small, so we need to prioritize some PRs over others. Here is what you can expect from the review process:

 After the PR is submitted, the PR will be assigned to a reviewer. Every reviewer will pick up the PRs based on their expertise and availability.
 After the PR is assigned, the reviewer will provide status update every 2-3 days. If the PR is not reviewed within 7 days, please feel free to ping the reviewer or the vLLM team.
 After the review, the reviewer will put an  action-required label on the PR if there are changes required. The contributor should address the comments and ping the reviewer to re-review the PR.
 Please respond to all comments within a reasonable time frame. If a comment isn't clear or you disagree with a suggestion, feel free to ask for clarification or discuss the suggestion.

Thank You
 Finally, thank you for taking the time to read these guidelines and for your interest in contributing to vLLM. Your contributions make vLLM a great tool for everyone!

Thanks for picking up where @simon-mo left off! Please remember to address the comments that originated in #4167.

@rkooo567 I pushed some changes. Please take another look!

I also reverted the doc change. We should test this out for another commit

You should update the docs to replace any references to the old way of launching API server.
Please also apply the change mentioned here.

@EthanqX hi, this is very cool. any blocker now?

LGTM, we can merge this if the full test passes 👍

@youkaichao Ready to merge.


Fix status state access

The field state needs to be used on status inside the deploymentManager.js

Thank you for this, that was a silly mistake on my part.


activation function decorator

instead of manually handling the activation function transformations, a decorator that provides easy add/remove interface for transformations will make it harder to do mistakes.

done


c.receive() returns None

In my example every 2nd command sent to the arduino returns None, every other shows the correct message.

saw that I need to set the timeout in the ArduinoBoard call to exceed the processing time of my command.


variables parameter for az pipelines create|update

Is your feature request related to a problem? Please describe.
Some variables can't be in the azure-pipelines.yaml file in source control. For that we have the ability to edit via the UI the variables of the pipeline definition. It would be ideal to have the ability to set variables while leveraging az pipelines create and az pipelines update.
Describe the solution you'd like
az pipelines create --variables key1=value1 key2=value2 same for az pipelines update
Describe alternatives you've considered
The alternative is to do that via the UI by editing the pipelines definition, but not very efficient for automation.

az pipelines is a az devops command. The issues are tracked in the repository - https://github.com/Azure/azure-devops-cli-extension/issues.

Got it thanks @atbagga, feature request moved there: https://github.com/Azure/azure-devops-cli-extension/issues/639 Thanks!


Update ECMPS Export Preview functionality

User Story
As an ECMPS user I want to be able to export and preview QA data using the export page on the left navigation panel of the ECMPS application.
Acceptance Criteria
Given a user navigates to the export page of the ECMPS application
When a user selects Emissions or Monitoring Plan as a data type
Then the preview functionality  is disabled
AND the user can export their file
Given a user navigates to the export page of the ECMPS application
When a user select QA as a data type
Then the preview button is enabled
Given that a user has selected QA as an export data type
When preview is selected
Then the applicable QA data is displayed
Given that a user has previewed their QA data
When QA data is selected from the data table
Then the export functionality is enabled
Dev Notes
Preview Functionality
Preview will not be required to export Monitoring and Emissions and the preview button is only enabled for QA.
Are users still required to preview qa data? or can they just export the entire file?

1/13/2023: The functionality seems to have been implemented in Dev already.


Allow lightbox to scroll when the content is taller than the screen

Is there a good way to allow the lightboxed content to scroll when the content is taller than the screen?

The content inside the lightbox should be scrollable. Could you setup a testcase where it is not?

Here is the project that I'm working on: http://toastmakerssupperclub.herokuapp.com/

Setting overflow: auto on the #agegate element should do the trick.

You da man.


feat: allow hyphen in project names

Description
Fixes #3462
How Has This Been Tested?
adapted unit and e2e tests
Checklist:

[x] The title of this PR complies with Conventional Commits.
[x] I have edited the CHANGELOG accordingly.
[ ] I have made corresponding changes to the documentation.

I think this can break dfx generate for candid bindings, ab-cd is not a valid variable name for most languages.

Will need more careful analysis in regards to the JS templating


Fix grammar mistakes in installation

Done!

Don't like exactly the new file.
You don't change grammar mistakes, you change the whole thing, and I'm not very fan...

I only thought it would be better, but I understand. I'll create a new pull request with actual fixes.


More than 3 files in window context can hide the prompt on smaller screens

To achieve the desired behavior where the output panel shrinks to always show 3 lines in the input prompt and 3 visible files in the attachment panel, we need to modify the layout and sizing of the components. Let's focus on the DevoxxGenieToolWindowContent class, which is responsible for creating the main layout of the plugin window.
Here's how we can modify the createSplitter method in the DevoxxGenieToolWindowContent class to achieve this:

Set a minimum size for the input panel (prompt input and file list).
Use a custom Splitter that respects minimum sizes.
Adjust the PromptContextFileListPanel to show a maximum of 3 visible files.

Let's start by modifying the createSplitter method:
private Splitter createSplitter() {
    Splitter splitter = new CustomSplitter(true, SPLITTER_PROPORTION);
    JPanel inputPanel = createInputPanel();

    splitter.setFirstComponent(promptOutputPanel);
    splitter.setSecondComponent(inputPanel);
    splitter.setHonorComponentsMinimumSize(true);
    return splitter;
}

private JPanel createInputPanel() {
    JPanel inputPanel = new JPanel(new BorderLayout());
    inputPanel.add(promptContextFileListPanel, BorderLayout.NORTH);
    inputPanel.add(new JBScrollPane(promptInputArea), BorderLayout.CENTER);
    inputPanel.add(createActionButtonsPanel(), BorderLayout.SOUTH);

    // Set minimum size to accommodate 3 lines of input and 3 files
    inputPanel.setMinimumSize(new Dimension(-1, 150)); // Adjust this value as needed
    return inputPanel;
}

Now, let's create a custom Splitter that respects minimum sizes:
private static class CustomSplitter extends Splitter {
    public CustomSplitter(boolean vertical, float proportion) {
        super(vertical, proportion);
    }

    @Override
    public void doLayout() {
        int size = vertical ? getHeight() : getWidth();
        int firstCompSize = (int) (proportion * size);
        int secondCompSize = size - firstCompSize;

        Component firstComp = firstComponent;
        Component secondComp = secondComponent;

        if (firstComp != null && secondComp != null) {
            Dimension firstMinSize = firstComp.getMinimumSize();
            Dimension secondMinSize = secondComp.getMinimumSize();

            if (vertical) {
                if (firstCompSize < firstMinSize.height) {
                    firstCompSize = firstMinSize.height;
                }
                if (secondCompSize < secondMinSize.height) {
                    secondCompSize = secondMinSize.height;
                }
            } else {
                if (firstCompSize < firstMinSize.width) {
                    firstCompSize = firstMinSize.width;
                }
                if (secondCompSize < secondMinSize.width) {
                    secondCompSize = secondMinSize.width;
                }
            }

            if (firstCompSize + secondCompSize > size) {
                float ratio = (float) size / (firstCompSize + secondCompSize);
                firstCompSize = (int) (firstCompSize * ratio);
                secondCompSize = (int) (secondCompSize * ratio);
            }
        }

        if (vertical) {
            divider.setBounds(0, firstCompSize, getWidth(), dividerWidth);
            if (firstComp != null) {
                firstComp.setBounds(0, 0, getWidth(), firstCompSize);
            }
            if (secondComp != null) {
                secondComp.setBounds(0, firstCompSize + dividerWidth, getWidth(), secondCompSize);
            }
        } else {
            divider.setBounds(firstCompSize, 0, dividerWidth, getHeight());
            if (firstComp != null) {
                firstComp.setBounds(0, 0, firstCompSize, getHeight());
            }
            if (secondComp != null) {
                secondComp.setBounds(firstCompSize + dividerWidth, 0, secondCompSize, getHeight());
            }
        }
    }
}

Now, let's modify the PromptContextFileListPanel to show a maximum of 3 visible files:
public class PromptContextFileListPanel extends JPanel implements FileRemoveListener, FileListObserver {
    private static final int MAX_VISIBLE_FILES = 3;
    private final JPanel filesPanel;
    private final JBScrollPane filesScrollPane;

    // ... existing code ...

    @Override
    public void fileAdded(VirtualFile file) {
        updateFilesPanelVisibility();
        FileEntryComponent fileLabel = new FileEntryComponent(project, file, this);
        filesPanel.add(fileLabel);
        updateUIState();
    }

    private void updateFilesPanelVisibility() {
        if (fileListManager.isEmpty()) {
            filesScrollPane.setVisible(false);
            filesScrollPane.setPreferredSize(new Dimension(0, 0));
        } else {
            filesScrollPane.setVisible(true);
            int fileCount = Math.min(fileListManager.size(), MAX_VISIBLE_FILES);
            int heightPerFile = 30;
            int prefHeight = fileCount * heightPerFile;
            filesScrollPane.setPreferredSize(new Dimension(getPreferredSize().width, prefHeight));
        }
        filesScrollPane.revalidate();
        filesScrollPane.repaint();
    }

    // ... rest of the existing code ...
}

These changes will ensure that:

The input panel (prompt input and file list) always has a minimum size to accommodate 3 lines of input and 3 files.
The custom Splitter respects the minimum sizes of its components, shrinking the output panel if necessary.
The PromptContextFileListPanel shows a maximum of 3 visible files, with a scrollbar appearing if there are more.

To implement these changes, you'll need to:

Replace the existing createSplitter method in DevoxxGenieToolWindowContent with the new version.
Add the CustomSplitter class to your project (you can put it in the same file as DevoxxGenieToolWindowContent or create a separate file).
Modify the PromptContextFileListPanel class as shown above.

These modifications should solve the issue of the chat input prompt becoming invisible when many files are added to the window context. The output panel will now shrink to accommodate the input area and file list, ensuring that the essential components remain visible.

Improved version, please try.
DevoxxGenie-0.2.9.zip

@stephanj  I can confirm is much better now!


[ja translation] playground-example/3-8,3-9

ref: #220
files:
Assertion Functions.ts
Recursive Type References.ts
Uncalled Function Checks.ts
Accessibility Modifiers.js
Export Modules From.ts
Private Class Fields.ts
Type Imports.tsx
diff: https://github.com/microsoft/TypeScript-Website/commit/8a61959555d6e121e3ad0fbbc4f288d9ca5099fd

@orta Hmm, code owners merge failed again. 👀

Boo! Sorry about that


Guard against cyclic structures in bridge.js

It can happens that mocha pass cyclic structures as argument of emitted event. In bridge.js that makes the JSON.stringify fails in a non trivial error:
 1) BlablaEditView #render should have select2 inputs:
     TypeError: JSON.stringify cannot serialize cyclic structures.
      at sendMessage (/Users/alex/Work4Labs/work4us/node_modules/grunt-mocha/phantomjs/bridge.js:16)
      at /Users/alex/Work4Labs/work4us/node_modules/grunt-mocha/phantomjs/bridge.js:32
      at http://<IP_ADDRESS>:9999/javascripts/test/libs/mocha.js:521
      at http://<IP_ADDRESS>:9999/javascripts/test/libs/mocha.js:4330
      at http://<IP_ADDRESS>:9999/javascripts/test/libs/mocha.js:4538
      at http://<IP_ADDRESS>:9999/javascripts/test/libs/mocha.js:4123
      ...
      ...

On my side I can reproduce by doing assertions (with Chai) on jquery objects:
expect($('.foo')).to.have.length(2)

We should probably male the serialization safe to cyclic structures:
http://stackoverflow.com/questions/9382167/serializing-object-that-contains-cyclic-object-value

+1

Any progress on this issue? I tried to checkout guard-cyclical branch but my tests didn't work at all (I saw SyntaxError: Parse error without any info what actually got wrong).

Hi, I think the parse error is due to a missing opening brace : https://github.com/kmiyashiro/grunt-mocha/commit/605a26963721124fc11d4fa14cace2fab1458851#diff-e13c31b37d59ab82c83534ae6bbadd2eR97
Without the typo, that fixes the initial problem of cyclic references.

@sophietk doh, that's what I get for not linting. If you already have one, could you give me a small test case for this issue?

@kmiyashiro, here is an example:
describe('AssertionError', function() {

    it('should fail with explicit message', function() {
        var luke = { name: 'Luke' };
        expect(luke).property('mother', 'Padmé');
    });

    it('should fail with explicit message, even if cyclic structures', function() {
        var luke = { name: 'Luke' },
            leia = { name: 'Leia' };
        luke.sister = leia;
        leia.brother = luke;
        expect(luke).property('mother', 'Padmé');
    });

});

The first test fails with an explicit assertion error: expected { name: 'Luke' } to have a property 'mother'
The second one fails with a TypeError exception: TypeError: JSON.stringify cannot serialize cyclic structures.


Deploy issue

I have been having some off and on issues deploying for about a week now and I am at my wits end with this. The most recent error was:
   throw error;```
so then I updated the cli and now Im just getting "error uploading"

I am having a similar problem
Upload progress [===================] 100%
Deploying project into Meteor runtime...
Starting build.
Creating directories for build environment.
Downloading source.
Executing build.
Demeteorizing application...
mop, this is your first time using Meteor!
Installing a Meteor distribution in your home directory.
######################################################################## 100.0%

/mnt/home/.meteor/packages/meteor-tool/.<IP_ADDRESS>kme59++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/meteor-promise/promise_server.js:116
      throw error;
            ^
undefined
Conversion failed.
Build failed, reverting project.

[✓] techshare running at techshare-61762.onmodulus.net
~/WebstormProjects/techshare> modulus --version
6.0.0
~/WebstormProjects/techshare> meteor --version
Meteor 1.3.1

@ivanthemeh @vjain20 we pushed out new build and run images today. Can you try to redeploy and let me know if you're still having problems? Also, to use the new run image you need to stop/start your application.

Hi,
The latest modulus build has created some problem with the deployment.  Now
whenever I am deploying my app and restarting it, I see the following:

<EMAIL_ADDRESS>start /mnt/app/bundle/programs/server

node ../../main

Could not read template file: welcome.html mailer
Now using node v0.10.41 (npm v3.8.6)
Found package.json: ./.modulus/nvm/package.json
ERROR: No start script found. There is no application to run.
Now using node v0.10.41 (npm v3.8.6)
Found package.json: ./.modulus/nvm/package.json
ERROR: No start script found. There is no application to run.
Now using node v0.10.41 (npm v3.8.6)
Found package.json: ./.modulus/nvm/package.json
ERROR: No start script found. There is no application to run.
Now using node v0.10.41 (npm v3.8.6)
Found package.json: ./.modulus/nvm/package.json
ERROR: No start script found. There is no application to run.
Now using node v0.10.41 (npm v3.8.6)
Found package.json: ./.modulus/nvm/package.json
ERROR: No start script found. There is no application to run.
Now using node v0.10.41 (npm v3.8.6)
Found package.json: ./.modulus/nvm/package.json
On Mon, Apr 25, 2016 at 1:15 PM, Jeremiah Harlan<EMAIL_ADDRESS>wrote:

@ivanthemeh https://github.com/ivanthemeh @vjain20
https://github.com/vjain20 we pushed out new build and run images
today. Can you try to redeploy and let me know if you're still having
problems? Also, to use the new run image you need to stop/start your
application.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/onmodulus/docker-build-meteor/issues/16#issuecomment-214506014

--
Thanks
Vaibhav Jain

@vjain20 It looks like you are running the old run-meteor image. Can you try deploying to a new project, or fully stop/start your existing build?

@vjain20 You will need to stop/start your project to use the updated run image. It is a requirement for the current build image.

Thanks. Its working now. I thought restarting should be enough.
On Tue, Apr 26, 2016 at 7:15 AM, Jeremiah Harlan<EMAIL_ADDRESS>wrote:

@vjain20 https://github.com/vjain20 You will need to stop/start your
project to use the updated run image. It is a requirement for the current
build image.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/onmodulus/docker-build-meteor/issues/16#issuecomment-214759322

--
Thanks
Vaibhav Jain

Unfortunately, a restart does not pick up the updated run image. 😢


Extract cryptography from NeoSharp.Core

In order to make NeoSharp modular and the NeoSharp.Core less dependent on external libs

Extract the Cryptography BouncyCastleCrypto dependency from NeoSharp.Core
Rename abstract class ICrypto to Crypto
Rename some private fields according with the coding rules (boy scout rule)
Move tests of NeoSharp.Cryptography to their own test project

Still non depended on external libs classes in the Cryptography folder in NeoSharp.Core like BloomFilter, ECPoint, Helper, MerkleTree, MerkleTreeNode and ProtectedMemoryContext that I would like to know if should be moved or not?
Why this objects should be move his own assembly?

In order to be reused this features in another projects as NEO-GUI-WPF without have to reference the NeoSharp.Core
To remove the height of dependencies on the NeoSharp.Core

What's the fear to reference NeoSharp.Core assembly? I'd like to refer to the article Project anti-pattern: Many projects in a Visual Studio Solution File

Agree that we don't need to have too many assemblies. We gonna need to find a balance on that.
In the PR i justify the reason. Other projects like the NEO-GUI-WPF need to reference the CORE to be able to have access to Cryptography or types and that make no sense.
This projects don't need to have access to the BynarySerializers, Logging or even Server. This is not only unnecessary but a huge unnecessary memory consuming.
No one is promoting creating 100 project assemblies but the necessary.

Regarding having less assemblies, I would like to point that if it is so bad been pointed, Windows and Visual Studio would be one giant assembly and they aren't, why? Simple, because when other components need to make a reference they don't need to reference this giant assembly but a smaller and more specific.

Crypto projects require Types?

Addressing concerns:

Other projects like the NEO-GUI-WPF need to reference the CORE to be able to have access to Cryptography or types and that make no sense
Having the access and actually use it without a need are two different things. As I said many times before protecting from developers by introducing physical boundaries is inefficient.
This is not only unnecessary but a huge unnecessary memory consuming.
I've checked compiled in debug mode NeoSharp.Core. It weights 198KB. It means being loaded it will take approximately this much of memory. I've also checked NeoSharp.BinarySerialization assembly to play role NeoSharp.Cryptography. The size is 22KB. I admit there is a difference but I would not say about huge memory consumption.
I would like to point that if it is so bad been pointed, Windows and Visual Studio would be one giant assembly and they aren't, why?
I feel sarcasm here but I will answer. These applications have many dependent libraries because those parts of software are intended being shipped or versioned independently of each other. I don't need to issue new Windows if I want to patch DirectX. For us, the question is "Could we ship a new version of NeoSharp.Cryptography without shipping NeoSharp.Core? Theoretically, yes. Is it possible to happen in practice? Unlikely. Do we want to manage all these versions? Definitely, no." Now the same exercise for NeoSharp.Types and the answer will be more straightforward: we absolutely cannot release NeoSharp.Types without releasing the rest.

I will not mark this PR as required changes but my opinion it will bring more harm than usefulness. I ask other members @shargon @gubanotorious @AshRolls to voice their opinions.

Changes like this will require consensus from the group and discussion prior to a pull request.
At this point I don't see value in this change, and if we do decide to extract the core to multiple assemblies, that will be discussed and decided after we achieve the first use case milestone.
I don't want to merge this pull request until it is blatantly blocking progress towards the milestone goal, and if that is the case, we need to specifically understand why.
I think we should revisit this at another time and instead of focusing effort on controversial refactoring, focus on implementing features and getting to the first milestone.

I think that we only need to separate Types, because is could be imported as nuget package for plugins or other things
Core -> Nuget [Types and VM together]
|
Nuget [Types and VM together]
|
HyperVM

@osmirnov, you should import the NEO nuget package into a project to understand what that others are talking about ...
I agree with @shargon, most of this extractions from the Neo.Core can be and should be NuGet packaged to be imported in other projects if necessary.


how to open onvif camera in java

hiii,
i want to open my ptz camera in java using your library. please tell me how to open camera.
thank you in advance.

If you want to use an Ovif device try to have a look at https://github.com/fpompermaier/onvif/blob/master/udoo-bot/src/main/java/org/udoo/telegram/bot/TelegramMsgHandler.java.
You need to write something like:
try {
	System.out.println("Connect to camera, please wait ...");
	OnvifDevice cam = new OnvifDevice(deviceIp, user, password);
	System.out.printf("Connected to device %s (%s)\n", cam.getDeviceInfo(), deviceName);
} catch (ConnectException | SOAPException e1) {
	System.err.println("No connection to device with ip " + deviceIp + ", please try again.");
	System.exit(0);
}

Then you can take a picture from the camera with:
MediaUri sceenshotUri = cam.getMedia().getSnapshotUri(profileToken);
File tempFile = File.createTempFile("tmp", ".jpg");
FileUtils.copyURLToFile(new URL(sceenshotUri.getUri()), tempFile);

Hi
I've been using your library successfully in my CCTV NVR for just over a year. For a couple of days last week, the Onvif discovery was failing. This was due to w3.org testing a planned dropping of support for http requests, which they would send a 301 (or similar) redirect. The problem is that my cameras use http urls for the schemas and the Onvif library does not redirect by default. Is there a way it can configured to follow redirects?
w3.org are planning to make this change permanent in the near future which would stop Onvif discovery working altogether.
Thanks in advance


chore: no div 1e asset.precision

Description

Notice

[ ] Have you followed the guidelines in our Contributing guide?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

Risk

Testing

Screenshots (if applicable)

Current dependencies on/for this PR:

develop

PR #2473

PR #2474   👈

This comment was auto-generated by Graphite.


Implement server-side Timer class

No need to do this, applications can just use ⎕WC instead of ∆WC.


Upgrade to latest Reaction 2.3.0

This brings in https://github.com/artsy/reaction/pull/1112 I added a few hours ago. I tested the artist page and it seems to be working fine.

Superseded by https://github.com/artsy/force/pull/2786


"FIXME: cancel the operation when we exit the generator early."

Hello,
I'm facing this not-fixed issue due to cancelling an operation in the middle. In my specific case, I have to cancel before finishing; so I have to overcome this issue.
For encryption, I overcame this by adding an _encrypt_halt() method, which used to work fine:
     # call this in OperationActive exception
     def _encrypt_halt(self):
        cdef CK_BYTE [:] tmp_out = CK_BYTE_buffer(8192)
        cdef CK_ULONG tmp_len = 8192
        # try to consume the buffer
        assertRV(_funclist.C_EncryptFinal(self.session._handle,
                                &tmp_out[0], &tmp_len))

But I think this is a hack, not the proper way.  Doing similar for sign/verify functions etc. not working; so I've decided to really fix the issue.
What is the best way of cancelling an operation? Hopefully I'll implement it.

There's two ways I can see to do this. One- wrap your input generator, to have a cancellation function, that if set raises StopIteration. This should cause our consumption of the generator to shut down.
Something like this:
class CancellableIter:
    def __init__(self, iter_):
        self.cancelled = False
        self._iter = iter(iter_)

    def cancel(self):
        self.cancelled = True

    def __iter__(self):
        return self

    def __next__(self):
        if self.cancelled: raise StopIteration()
        return next(self._iter)

iter_ = CancellableIter(data)
for chunk in session.encrypt(iter_):
    iter_.cancel()
    continue  # Not break, else it won't execute another pass of the iterator.

I haven't tested this, but something like it should work in theory.
Otherwise have a look at how SearchIter functions. Fundamentally it's an iterator object that let's you consume the data but also has a __del__ function to handle the cancel. The reason I've never done this is because I couldn't work out how to build it generically without needing a class for every generator.

Sorry for lateness,
I tried this. The I figured out that actually I never trigger a chunked operation. I call encrypt with single data, not an iterable. And I can trigger OperationActive in non-chunked operations.
For chunked ones, I can use your suggestion, for non-chunked, what could be done?

So that’s interesting and unexpected. Do you have multiple threads? There’s a section in the docs on concurrency issues. You might have to add some debugging to work out what’s going on there, because there should be locking that protects you from any kind of concurrency issue in operations.
On 26 Mar 2020, 21:34 +1100, figbux<EMAIL_ADDRESS>wrote:

Sorry for lateness,
I tried this. Then I figured out that actually I never trigger a chunked operation. I call encrypt with single data, not an iterable. And I can trigger OperationActive in non-chunked operations.
For chunked ones, I can use your suggestion, for non-chunked, what could be done?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.


Cherry-pick check titandb directory when titan is disabled

Signed-off-by: tabokie<EMAIL_ADDRESS>
What have you changed?
Check titandb directory is empty (ls *.blob count = 0) when titan is disabled. Fatal panic if this check fails, which indicates titan is turned off before all blob files are merged.
What is the type of the changes?

Misc (other changes)

How is the PR tested?

Unit test

Does this PR affect documentation (docs) or should it be mentioned in the release notes?
Does this PR affect tidb-ansible?
Refer to a related PR or issue link (optional)
Benchmark result if necessary (optional)
Any examples? (optional)

PTAL @Connor1996 @yiwu-arbug

/run-all-tests

/test

/test

/run-all-tests

/test

/tests

/build

/test

/run-all-tests

/merge


Fix breaking changes for mina 1.x version

According to these instructions: https://github.com/mina-deploy/mina/blob/master/docs/migrating.md

+1 please merge!!

+1


Large window after loading new content stays on previous position

Hi,
I would like to know, if there is a way to let the content for a large window always start from top after loading the iziModal window.
Example: I have content lets say 1600px long using the bodyOverflow : true option. -> I open it and scroll to the botton -> I close the window -> I reopen the window again and it opens again at the bottom of the window (you can see it even on the example page for iziModal), but I would like to let it open always from top of the content.
scrollTop(0) attached to iziModal-wrapper or iziModalContent did not work either for onOpened or onClosed event.
Thank you very much for your answer.

I understood @Etrimon .
For now you can use the following code on onOpened function:
        setTimeout(function(){
            $("#modal .iziModal-wrap").scrollTop(0);
        },1)

I will try it! Thank you for the answer!

Your method is sadly not working... (maybe I forgot to say, that I am using it inside Wordpress Ajax Method).

I tested this and it worked well.
Try to increase TimeOut time. Also check if it is running on the correct Callback.


Reason for 8x8 sector?

Hey @otto-schnurr, I'm hoping I can bug you for another question!
What is the motivation for having each thread operate on an 8x8 sector of output in the Metal kernel? I realize that Apple's implementation does this too, but maybe you have a better understanding of it than I.
If we instead allowed each thread to operate on a single element of output, wouldn't this remove the size restrictions and eliminate the need for padding?

It's funny. Someone asked a similar question a couple weeks ago. I can try to give you my best understanding of what I know (or lack thereof).
I'm seeing three issues/questions here:

The width of integers we're using for bytes-per-row.
Why even use bytes-per-row?
Why even use thread groups?

Matrix Stride
The second one is probably the one I understand the most so I'll start there.
Using a buffer "stride" is something that even CBLAS does. It's usefulness isn't just for rounding up to memory alignment boundaries (although that is helpful). It also lets us easily point the same matrix methods at sub-matrices in the same buffer of memory, for both input and output.
We accomplish this by advancing a matrix pointer into the buffer, reducing column and row counts accordingly to whatever sub-matrix dimensions we want, but leaving bytesPerRow the same. In my head, I always interpret bytesPerRow as "How many bytes would I need to advance to get to the same column position in the next row of the matrix (or sub-matrix)?"
Because we're using strides like CBLAS does, the MetalPipeline is pretty much ready do sub-matrix operations if we want to. (Or to make recursive calls on itself for other kinds of optimizations, etc.)
Thread Groups
The second half of this article probably describes thread groups better than I could. One of the big advantages I've heard of (that I don't believe the MetalPipeline kernel currently takes advantage of) is that all the threads in a group can share a pool of memory. (I'm guessing it's probably the fastest memory on the device.)
In terms of what you suggest, our hands might be tied. If you're suggesting we just make one huge thread group, using one thread for every value of the output matrix, I don't think thread groups are allowed to be that large. (I think you can query maximum sizes at runtime.)
Conversely, if we try to use groups with single-threads (i.e. one thread-group for every value of the output matrix). There might be technical limits there as well in terms of how many thread groups we can deploy.
It seems like the system wants us to break the work up in to small thread groups (with up to 512 threads per group on iOS for example).

For me, that suggests the first issue as the possible solution: increasing the width of integers we're using for bytes-per-row.
I'm sorry I haven't had a chance yet to look into this yet. My bandwidth outside of work is a little limited right now. But it seems like a good thing for me to address in the performance test so it can test some  bigger matrices.
Hope that helps.

One a different note, more directly related to your original question, I'm not sure why the Apple engineers chose to have a thread work on a "sector" of output. I can only speculate.
Maybe it provides additional performance somehow and they were looking to maximize the gflops they could report in their test?
With one thread creating 64 output values, they're able to reduce the number of deployed threads by a factor of 64. Maybe that's a big deal?
The other clue might be in their kernel. (I merely refactored it. The actual computations are the same as their example code.) They're accumulating the output matrix in 4x4 chunks to get the 8x8 result.

Updated Theory: The way the kernel is set up now, when you retrieve an input value from one of the input matrices, the kernel is able to update 8 output values with it. That represents 7 additional times that the input value does not need to be retrieved from memory again for the matrix calculation.
I think what the sector approach is doing is potentially reducing the memory bandwidth by up to a factor of 8.
If instead you had a thread only calculate a single output, the thread would run faster but it might not have enough work to do and waste time waiting for memory retrieval.
That's my best guess.

I think that it's a combination of your two theories. I just went back and watched this WWDC video, and around 12:00 they start talking about thread and memory optimization.
Basically, the overhead of launching threads is somewhat high, so Apple's recommendation is "do as much work as possible per thread." Of course there's a tradeoff - at some point the extra work will outweigh the parallelism that could be gained from launching more threads. I imagine Apple found 8 x 8 to be a good balance of work for a single thread in matrix multiplication - at least for the particular GPU they were testing on.
In addition, I think you're right about memory access. I've read some CUDA resources on kernel optimization such as this one, and the common recommendation is to make use of shared threadgroup memory to allow multiple threads to operate on a smaller subsection of the inputs/output. In this example, the author allows each thread to operate on a single element of C while reading local data from shared memory.  Interestingly, this is NOT how Apple does it... in fact, the WWDC video almost seems to discourage the use of threadgroup memory this way. Instead, each thread reads directly from device memory and simply performs more work with that data. The video mentions that this reduces the need for thread synchronization within its group.
So I guess the question is whether Apple's implementation is actually the best general solution, or whether it was written by some intern with minimal testing :)


Updating location of "Get Help" Slack info i box

🚀 Deployed on https://657a3792b9404b21c9c2934b--cozy-fox-0defec.netlify.app


On shutdown - exchange rate manager: Expecting value: line 1 column 1 (char 0)

The Issue
@jackrobison and I saw this recently when shutting down sometimes.
Task exception was never retrieved
future: <Task finished coro=<BlobServerProtocol.handle_request() done, defined at c:\users\thoma\documents\lbry\lbrynet\blob_exchange\server.py:35> exception=ValueError('seek of closed file')>
Traceback (most recent call last):
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\asyncio\base_events.py", line 1086, in _sendfile_fallback
    read = file.readinto(view)
ValueError: I/O operation on closed file

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\thoma\documents\lbry\lbrynet\blob_exchange\server.py", line 62, in handle_request
    sent = await blob.sendfile(self)
  File "c:\users\thoma\documents\lbry\lbrynet\blob\blob_file.py", line 166, in sendfile
    return await self.loop.sendfile(writer.transport, handle, count=self.get_length())
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\asyncio\base_events.py", line 1066, in sendfile
    offset, count)
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\asyncio\base_events.py", line 1094, in _sendfile_fallback
    file.seek(offset + total_sent)
ValueError: seek of closed file
2019-05-23 09:09:54,003 INFO     lbrynet.extras.daemon.exchange_rate_manager:217: Stopping exchange rate manager
Task exception was never retrieved
future: <Task finished coro=<MarketFeed._update_price() done, defined at c:\users\thoma\documents\lbry\lbrynet\extras\daemon\exchange_rate_manager.py:78> exception=JSONDecodeError('Expecting value: line 1 column 1 (char 0)')>
Traceback (most recent call last):
  File "c:\users\thoma\documents\lbry\lbrynet\extras\daemon\exchange_rate_manager.py", line 82, in _update_price
    self._save_price(self._subtract_fee(self._handle_response(response)))
  File "c:\users\thoma\documents\lbry\lbrynet\extras\daemon\exchange_rate_manager.py", line 133, in _handle_response
    json_response = json.loads(response)
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\thoma\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Suggested Next Steps
Refactor the exchange rate code so that you can call the exchange rate _update_price from a unit test and pass it the valid and then invalid JSON to test that it properly handles those cases.

@tzarebczan @eukreign Can i work on this

I will take this up.

There is a pull request that solves this issue, so I guess it can be closed.

@moodyjon & @eukreign appears this issue can be closed as PR https://github.com/lbryio/lbry-sdk/pull/2536 fixed it. Happy #Hacktoberfest

Closed as fixed by #2536.