Feature Request : TextArea with coloured strings support

Hi Kotrcrab,
I was wondering if its possible for VisUI to have TextArea extension which allows us to append text with the colour we want. Like appendText(String text, Color color). This will be a really good feature to have because it is a pain if we want to add different coloured text lines inside text area. We have HightlightTextArea but I don't think it solves the purpose.
Thanks.

I'm not sure if this can be implemented in reliable manner. You see, showing coloured text is not a problem but letting user edit text is. It's not possible to embed colours tags in text because because user could overwrite them and text area can't handle text that has some part invisible at all. I'm not seeing any solution for this. HightlightTextArea works completely different as it uses parser to determinate colours so after editing text it can be just reparsed.

All right then.. Not sure how to achieve this because in my application I have chatbox in which I want to have separate colors for different types of user (Text by Admin has a different color, Text by Donator has a different etc).
But no worries, I will see if I could do something with HighlightTextArea. Thanks.

Why would you use text area for chatbox? It usually isn't editable text and if it's not editable you can use simple coloured labels or labels with libGDX's colour markup language.

I didn't think about that to be honest :) I can give it a try I just felt creating labels for every message will be too much. Also I am not sure how exactly I will do it because I will need it to be scrollable and the text should be inside the bounds of chatbox etc etc.
For time being I solved my purpose using HighlightTextArea as in my particular game I pass tags in chat for different type of user levels. I used them to set colors. It works fine but I will give the label idea a go someday.

Labels probably wouldn't be too much, at some point you will have to clear old messages anyways. If I membered correctly text area will start having performance problems when you have about 1000 lines of text (regardless if highlighting is used or not).


Increase unit testing coverage (and some related refactors)

Raised coverage from 44% to ...

Codecov Report

Merging #86 (f86c747) into main (1842b93) will increase coverage by 7.78%.
The diff coverage is 74.50%.

@@            Coverage Diff             @@
##             main      #86      +/-   ##
==========================================
+ Coverage   38.94%   46.73%   +7.78%
==========================================
  Files          20       18       -2
  Lines        1330     1256      -74
==========================================
+ Hits          518      587      +69
+ Misses        767      620     -147
- Partials       45       49       +4

Flag
Coverage Δ

unittests
46.73% <74.50%> (+7.78%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/goexec/file.go
36.50% <60.86%> (+0.09%)
:arrow_up:

pkg/testutil/channels.go
66.66% <66.66%> (ø)

pkg/ebpf/common/ringbuf.go
80.26% <80.00%> (+80.26%)
:arrow_up:

... and 3 files with indirect coverage changes


Update kuberentes example with latest image tag

Thanks for fixing this @mshivanna, totally missed this while updating to v0.20 🙈


Missing battery sensors for HP3501

Hello - Thanks for the fantastic integration!  Overall the integration is working well for my Ecowitt HP3501, except I have no battery sensors. The color display shows 4 battery levels, one for the anemometer, rain gauge, indoor and outdoor thermostats.   What's interesting is the log states it's setting up sensor.ecowitt & binary_sensor.ecowitt, but I can't find those sensors in the entity list, developer tools, or anywhere else.  I can setup more verbose logging and re-install if that's helpful.  Thanks!
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.setup] Setting up ecowitt
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.setup] Setup of domain ecowitt took 0.0 seconds
2020-12-24 12:47:38 INFO (MainThread) [custom_components.ecowitt] First ecowitt data recd, setting up sensors.
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.ecowitt
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.ecowitt
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.indoor_humidity
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.humidity
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.wind_direction
2020-12-24 12:47:38 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.wind_speed
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.wind_gust
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.rain_rate
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.event_rain_rate
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.daily_rain_rate
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.weekly_rain_rate
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.monthly_rain_rate
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.yearly_rain_rate
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.solar_radiation
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.uv_index
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.outdoor_temperature
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.indoor_temperature
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.relative_pressure
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.absolute_pressure
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.windchill
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.dewpoint
2020-12-24 12:47:39 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.ecowitt entity: sensor.indoor_dewpoint

I have the exact same model. It makes me crazy sad, but the JSON data does not contain battery data.  I have no idea why.  It's clearly known by the unit, and from what I can see, other people with different models get the battery data, but for some reason this one just doesn't bother pushing it.
It's not the fault of the integration sadly, it's the device that just doesn't bother to send it at all.  :(

I have the exact same model. It makes me crazy sad, but the JSON data does not contain battery data.  I have no idea why.  It's clearly known by the unit, and from what I can see, other people with different models get the battery data, but for some reason this one just doesn't bother pushing it.
It's not the fault of the integration sadly, it's the device that just doesn't bother to send it at all.  :(

OK, understandable.  Thanks, @garbled1 !

OK, understandable.  Thanks, @garbled1 !

Hi @garbled1 - Just letting you know the release notes from the recent 1.5.7 firmware upgrade for the HP3501 suggests ecowitt may have fixed the battery upload issue.  See below.  Thanks!

Did you update?  Do they appear now?  Are you getting any unhandled sensor errors in HA?

Hi @garbled1 - I did update the ecowitt firmware and re-started HA.  There was no change to the number of sensors, and no unhandled sensor errors.  I rebooted the ecowitt for good measure - no change.  At info logging level, the logs yield this at reboot:
2021-02-27 15:45:59 INFO (MainThread) [custom_components.ecowitt] First ecowitt data recd, setting up sensors.
2021-02-27 15:45:59 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.ecowitt
2021-02-27 15:45:59 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.ecowitt

Device looks like this:

I then deleted and re-installed the integration - no change.
Thanks.

Yeah, it seems to never send out the battery values in "ecowitt" mode.. not sure why... All the other ones do..


add caching to travis for pip/pre-commit

Overview
adds caching for pre-commit deps, pip packages and mypy stubs in the hope of speeding up pr tests.

Codecov Report

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

@@            Coverage Diff             @@
##           master     #427      +/-   ##
==========================================
- Coverage   76.61%   76.57%   -0.04%
==========================================
  Files          30       30
  Lines        2771     2771
==========================================
- Hits         2123     2122       -1
- Misses        648      649       +1

Impacted Files
Coverage Δ

taskcat/_cfn/template.py
84.31% <0%> (-0.99%)
:arrow_down:

Continue to review full report at Codecov.

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

/do-e2e-tests


JSonLogic in Kotlin Multiplatform

Hello, together with my team from Allegro we implemented a Kotlin Multiplatform version of JSonLogic standard.
It completely covers whole JSonLogic contract (all of the operators from https://jsonlogic.com/operations.html). We also prepared some optional std-lib operators for our needs. It is an extended feature set based on Kotlin standard library which offers more operators. These additional functionalities are modular, so there is no compulsion to use it, read more .
We would like to add a sidebar link to our open source repository on github so more people might use it in the future, just like other implementations, C++ for example. Our implementation is available here: https://github.com/allegro/json-logic-kmp.
Looking forward to your feedback!

Hi! Just a friendly reminder about that issue :) We worked hard to provide a high-quality implementation of JsonLogic in Kotlin Multiplatform, and we think other people may also benefit from that :)


Docs for integration and system tests

Testing

try the commands mentioned in the contributing doc :)

Trade-offs

Dependencies

Screenshots

Please add an instruction on how to test a single file. I think this is the way most of us will be using these.

When I run npm run test:integration:local, only one test is being run (UISettings-cy). This is not intentional, right?

@GeorgiSTodorov I think it kinda expects a -- -s as it's thought for a single file usage. I wonder if we shall extract this into some bash script 🤔

Integration tests work.
Why do we need Before you start, please make sure you are configured against a new and empty cluster (Seewebpack/proxy.dev.js).?

Because the system tests mutate the cluster (schedule new things) and assume that no one else schedules things (matching for lengths in lists).
If you are configured against soak for example I hope this hint will remind you to abort the script

@juliangieseke @GeorgiSTodorov Could you take a look again?

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


Monaco Mode - Phase 2 - Mode & Worker

For the second phase, we will implement a monaco mode and worker, and we only support completion and maybe diagnostics. Summarized more completely in #1445
Outcomes

introduces packages/monaco-graphql and examples/monaco-webpack
Diagnostics (working), Completion Support (todo)
Required baseline: schema loading, primitive config loading

Todo

[x] GraphQL Mode & contribution
[x] GraphQL Worker Manager
[x] GraphQL Worker - written but worker manager will not load it
[x] GraphQL Language features

[x] completion - mode providers work
[x] Diagnostics - mode providers work

Another PR?

[ ] Create graphql-config loaders for browser config load by default
[ ] programatically provide graphql-config ala #1272?
[ ] handle schema loading/changing schema via monaco service

Scoped to only completion for now. Other features will be iterative
How to Develop/Test

check out this branch
from the root: yarn --force
from the root: (watcher) yarn tsc --watch (one time) yarn build-ts
in another terminal tab, from examples/monaco-graphql: yarn start

to preview the monaco branch, append the slash /monaco path:
https://deploy-preview-1459--graphiql-test.netlify.com/monaco/

latest preview: https://deploy-preview-1459--graphiql-test.netlify.com/monaco/


Fixed Broken Link

Fixed Broken Link in Case Study of Box

This change is

Actually, in this document there is one more place, where http://kubernetes.io is already mentioned, should I change that also to https://kubernetes.io ?
And there are few other links such as,
http://php.net/
http://deis.io/
Should I change them also to https?
I also observed one more thing in all the case studies that, in the starting sections like Challenge and Solution, few of the links are not working. Fox example in this case study, in Challenge section the link to Box website is not clickable.

@chenopis / @radhikapc, I have amended my commit as required, kindly review and merge


Why do you use only 1D-Arrays?

Hey @Wren6991,
just trying to dig through the color-terminal example and understand, what's going on.
I noticed that you always use 1D-Arrays, even when representing multi-D Data (2D like the charbuf or 3D like the font or array of colorplanes)
Personally, i find this very counter-intuitive and it gives me a hard time understanding the code and so i am wondering why do you do this?

It's more intuitive to me. The memory layout is meaningful, especially when you are accessing the same data in asm and C, so it should be explicit.
There are also a lot of irregularities around multidimensional arrays in C. For example, they can't be dynamically allocated (and an array of pointers to arrays is not at all the same thing as a 2D array).

they can't be dynamically allocated

Actually I guess VLAs are a thing.
Other point stands :)


Ajax for select2

Hi,
I really like your package. At the moment i have a CrudController in which i have an 1-n relation with an select2 field. But my edit and crete forms loading time is quite large because of the fact that the data loaded in the select2 is quite large. Is it possible to use the ajax functionality of select2 and load data in depending on typed text?
Thanks!

Hi @maesklaas
This is a pretty good idea! We've actually had to do something like this in the past as well, I'm not sure if its possible currently with the select2 fields, however if you're in urgent need of the feature, you can always copy the existing select2.blade.php(might be named slightly differently) into your app/resources/views/vendor/backpack/crud/fields/select2_ajax.blade.php and modify it for your own needs, You'll need to setup your own ajax endpoint route and controller method to do this

I did give it a try and it seams to work quit nice! Probably there are still some improvements possible. One thing that isn't working yet is when i have multiple of these ajax selects it just uses the first one. At the moment only that one will be inserted. I can get it out of the @if ($crud->checkIfFieldIsFirstOfItsType($field, $fields)) but i also need to do something to initialize the corresponding select. Any ideas for this?
By the way an underscore in the blade file of the custom field is not working.
My code is below for anyone who can use it.
Controller functions
`public function getCities()
{
$q = Input::get("q");
$cities = \App\Models\City::where('name', 'like', '%'.$q.'%')->paginate();
return \Response::json($cities);
}
public function getCity($id)
{
    $city = \App\Models\City::findOrFail($id);
    return \Response::json($city);
}`

field init
$this->crud->addField([             // 1-n relationship             'label' => "End", // Table column heading             'type' => "select2Ajax",             'name' => 'city_id', // the column that contains the ID of that connected entity;             'entity' => 'city', // the method that defines the relationship in your Model             'attribute' => "name", // foreign key attribute that is shown to user             'model' => "App\Models\City", // foreign key model             'datasource' => url("api/cities"), // url to controller search function (with /{id} should return model)             'placeholder' => "Select a city", // placeholder for the select             'minimumInputLength' => 2, // minimum characters to type before querying results         ]);
select2Ajax.blade.php
`

{!! $field['label'] !!}
model; ?>
      'form-control select2Ajax'])
    >
{{-- HINT --}}
@if (isset($field['hint']))

{!! $field['hint'] !!}

@endif

{{-- ########################################## --}}
{{-- Extra CSS and JS for this particular field --}}
{{-- If a field type is shown multiple times on a form, the CSS and JS will only be loaded once --}}
@if ($crud->checkIfFieldIsFirstOfItsType($field, $fields))
{{-- FIELD CSS - will be loaded in the after_styles section --}}
@push('crud_fields_styles')

<link href="{{ asset('vendor/backpack/select2/select2.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('vendor/backpack/select2/select2-bootstrap-dick.css') }}" rel="stylesheet" type="text/css" />
@endpush

{{-- FIELD JS - will be loaded in the after_scripts section --}}
@push('crud_fields_scripts')

@endpush

@endif
{{-- End of Extra CSS and JS --}}
{{-- ########################################## --}}`

Hi @maesklaas ,
OMG - this is exactly what I was going to suggest! I do think it's the best way to achieve this and it would be a useful addition. Especially since we now have AJAX datatables - tables with millions of entries are a possibility.

I'd call this select2_ajax.blade.php and include it as a standard field in the core and in the documentation. @OwenMelbz , do you agree? See any reason why we shouldn't?

For saving multiple entries you need to take a look / do the same thing with select2_multiple. Basically the difference would be in the definition:

$this->crud->addField([ // 1-n relationship with AJAX
            'label' => "End", // Table column heading
-           'type' => "select2Ajax",
+           'type' => "select2_multiple_ajax", // or maybe select2_ajax_multiple would be better?
            'name' => 'city_id', // the column that contains the ID of that connected entity;
            'entity' => 'city', // the method that defines the relationship in your Model
            'attribute' => "name", // foreign key attribute that is shown to user
            'model' => "App\Models\City", // foreign key model
            'datasource' => url("api/cities"), // url to controller search function (with /{id} should return model)
            'placeholder' => "Select a city", // placeholder for the select
            'minimumInputLength' => 2, // minimum characters to type before querying results
+           'pivot' => true,
        ]);

and in the <select> (it needs the "multiple" attribute). Here's a snapshot of the difference between select2 and select2_multiple, maybe it will help.

Question: in the blade file you're only using the getCities() method, right? That's what the api/cities/ route is pointing to? I want to also suggest that method in the documentation, to make it easier for people to implement.

Where should we recommend that the user places the getCities() method? On the current EntityCrudController on on the CityCrudController, if he has one?

I say we should think hard about the names here before including in the core, no way back afterwards. I think we only need to change the casing, to keep it consistent between fields. Your thoughts?

$this->crud->addField([
            // 1-n relationship
            'label' => "End", // Table column heading
-            'type' => "select2Ajax",
+            'type' => "select2_ajax",
            'name' => 'city_id', // the column that contains the ID of that connected entity;
            'entity' => 'city', // the method that defines the relationship in your Model
            'attribute' => "name", // foreign key attribute that is shown to user
            'model' => "App\Models\City", // foreign key model
-           'datasource' => url("api/cities"), // url to controller search function (with /{id} should return model)
+           'data_source' => url("api/cities"), // url to controller search function (with /{id} should return model)
            'placeholder' => "Select a city", // placeholder for the select
-           'minimumInputLength' => 2, // minimum characters to type before querying results
+           'minimum_input_length' => 2, // minimum characters to type before querying results

        ]);

Would you like to create a fork & pull request to make this official? The benefit is that you'd also appear on Github as a contributor to Backpack. And I love it when that number grows :-) If you don't have the time, I or @OwenMelbz can take care of including it.

That being said - thank you for this. I really think it's a useful new feature.
Cheers

Hi @tabacitu
Great that you like my try. I had an error when i used the select2_ajax name, but i just retried that and it fine now. So i will make a pull request somewhere next week. And i will add the multiple version as well, select2_ajax_multiple seems to be the best fit i believe. I agree with the name changes in 5. I am actually using the getCity request as well in the ajax call in the initSelection where i use the route api/cities/{id} to get the current model for the edit. Maybe i should create an other property in the field definition such that the route doesn't have to be similar to the data_source route, what do you think?
Before i will make a pull request there is one other issue that should be solved. When you have a form in which i include multiple of these select2_ajax fields, all of these fields will use the javascript code of the first one due to the
@if ($crud->checkIfFieldIsFirstOfItsType($field, $fields))
So getting the specific javascript code outside this if is definitely one step to take. But besides that the jquery part $('.select2Ajax') has to be changed such that it is specific for every select, any suggestions?

Hi @maesklaas
Hmm... I guess we can merge the methods then, make the $id parameter optional and return:
I guess we can place the custom JS outside the @if ($crud->checkIfFieldIsFirstOfItsType($field, $fields)) and trigger the javascript on a custom ID, instead of class, something like $("$select2_ajax_{{ $field->name }}") since $field->name is unique anyway.

Please check out my previous comment on github, not email. I just edited it.
I'm not usually a premature commenter, but happens to all guys at one point, I guess... :-))

The JS does seem the way to go, i'm not sure about merging the methods either. It might also be possible that users want to reuse methods they already have for this, especially when they have an api, and by merging them we force them to create new methods.

@maesklaas how's this coming?

FWIW I had a play with this yesterday....I implemented it as
public function autocomplete($table, $column)
....
Route::get('search/{table}/{column}', 'SearchController@autocomplete');

@OwenMelbz I have been quite busy for some time at didn't find the time to make a pull request yet. I will try to do it in the next couple of weeks.

@OwenMelbz @tabacitu I just created a pull request ;)

awesome :) I'm sure @tabacitu will be able to give some feedback once he's got time to see if it can go into a future release!

how about this?
public function getCities()
    {
        $q = Input::get("q");
        $district = \App\Models\District::where('name', $q)->first();
        $cities = $district->cities();
        return \Response::json($cities);
    }

along with a 1-n relationship and q being a select field containing all the district objects added

I'm just going to close this up as the original issue has a PR for it, and its been added to the new consolidation list https://github.com/Laravel-Backpack/CRUD/issues/285

See this link https://github.com/vermaboys/select2-autocomplete-laravel5.4

Update: we've had a select2_from_ajax field for a while now.


Broken link to Visio Stencils

The link to https://aka.ms/AzureDiagrams does not appear to be working giving a 502 error when clicked

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

ID: 6624d44c-f9f6-02f8-2c67-0f0637fed62e
Version Independent ID: 9346a8ff-bab5-be2c-9dc1-d546fda1efa9
Content: Azure icons - Azure Architecture Center
Content Source: docs/icons/index.md
Service: architecture-center
GitHub Login: @Zimmergren
Microsoft Alias: tozimmergren

@ld0614
Thanks for your feedback! We will investigate and update as appropriate.

@ld0614 Thanks for reaching out. I have reached out to the owner of the short link to fix the issue.

@ld0614 As per the internal discussion the link has been removed from the document.
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


some missing reading/phonetic ?

就活	名詞,固有名詞,組織,*,*,*,就活,*,*
I might be wrong but some words are missing phonetic/reading

"就活" is not included in the build-in dictionary Mecab-IPADIC, so janome cannot give reading or phonetic information to that.
For "unknown words", as it is called, please consider to use user dictionary.


added ignore to .terraform

#14

Codecov Report

Merging #15 (3cc3765) into main (31e5fe0) will decrease coverage by 2.65%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #15      +/-   ##
==========================================
- Coverage   88.65%   86.00%   -2.66%
==========================================
  Files           1        1
  Lines          97      100       +3
==========================================
  Hits           86       86
- Misses          9       11       +2
- Partials        2        3       +1

Flag
Coverage Δ

unittests
86.00% <0.00%> (-2.66%)
:arrow_down:

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

Impacted Files
Coverage Δ

internal/services/drivers/terraform_parser.go
86.00% <0.00%> (-2.66%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Update flutter/test/cupertino to no longer use TestWindow

There are currently 20 references in flutter/test/cupertino that make use of TestWindow properties, these should be updated to use TestFlutterView and TestPlatformDispatcher as appropriate for the use cases.

scrollbar_test.dart has 2 references
text_field_test.dart has 12 references
text_selection_test.dart has 4 references
text_selection_toolbar_test.dart has 2 references

This was reverted due to the dependent ticket #117481 being reverted for google test failures. Reopening.


Add support for suspense when mounting  components

Description
When defining routes you can define a props function that can be async. By default this does not require suspense to be used. But with this update to the component utils suspense will be used if it is detected.
This makes it possible to use suspense's fallback for loading states.
<Suspense>
  <template #fallback>
    Loading
  </template>

  <RouterView/>
</Suspense>

Hmm not sure why the test runner doesn't like Promise.withResolvers. Added ESNext to the tsconfig and it runs locally 🤔


[I2C] Code clean up for i2c_host_tx_rx_test.c

Description
Per discussion in #16972 the code for the i2c host test can be improved by:

Utilizing function i2c_testutils_connect_i2c_to_pinmux_pins
Using anonymous enum instead of a magic number
Using an array of structs to simplify switch statements

Suggest that this goes to P4 as a clean-up task. If this needs to be included then will need to raise priority back up to P2 and add an effort estimate.


Resolve replica placement for EC volumes from master server defaults.

What problem are we solving?
Make EC balancing logic topology-aware: https://github.com/seaweedfs/seaweedfs/discussions/6179 .
How are we solving the problem?
Implements a stopgap solution for EC re-balancing based on system topology, as Seaweed currently has no support for shard placement strategy options.
The plan is to rely on volume replication settings to filter destination racks/nodes for EC shards which need to move. Since EC shards have no replication information, we instead infer it from master defaults. Moving forward, we'll need a better solution in place - maybe as simple as a new shard_placement field.
How is the PR tested?
Updated unit tests for getDefaultReplicaPlacement().
Checks

[x] I have added unit tests if possible.
[x] I will add related wiki document changes and link to this PR after merging.

Or use a command line parameter?

Or use a command line parameter?

As in, for the EC default replication placement? Or to control use/don't use replication data overall?
Some sort of solution without requiring additional config knobs would be nice. As noted, we currently don't have a better solution than relying on master defaults to do so.

for the EC default replication placement

for the EC default replication placement

Doable. I'd prefer something relying on existing topology configuration, even if imperfect, instead of a new config switch. It would be easy to miss for end users.
Let me know which one you prefer though, and i'll update the PR.

Default value for the command can derive from the master if necessary.

Default value for the command can derive from the master if necessary.

That works :smile: Fixed, PTAL.


Deprecate XmonDevice, Foxtail and Bristlecone.

Resolves #4856 .
qcs_notebook fxn now returns a Sycamore device which feels like "more correct" behavior.
BREAKING_CHANGE=Json and repr files were removed for these objects since it looks like they were never really needed.
The Foxtail and Bristlecone objects were just static singleton datastores we had in the library itself - in their current form there would never be any need to serialize them. Plus working in the deserialization of global singletons to avoid some warnings isn't something that seemed worth doing for this removal.
xref #4744

Automerge cancelled: A status check is failing.


Sorting merge data corruption

This adds a unit test that recreates the failure seen in #139
The merged row reader will overwrite values in its internal buffers when filling up the buffer during the ReadRows call.
This causes data corruption in the final rows that are returned to the caller.
This adds a potential fix for this issue by called the rowAllocator capture method we can copy in the byte arrays. However this creates some significant hits to the benchmarks seen below.

Hello @thorfour, thanks for taking the initiative to put together a fix.
I wonder if we could solve this problem without introducing more copies; since we know that each ReadRows call on the underlying RowReader will read a batch of values that remain valid until the next ReadRows call, we could break out of the MergedRowReader.ReadRows method each time we exhaust one of the sub-buffers that reads from each underlying reader. This would ensure that we are not invalidating pointers internally before returning from ReadRows.

Hello @thorfour, thanks for taking the initiative to put together a fix.
I wonder if we could solve this problem without introducing more copies; since we know that each ReadRows call on the underlying RowReader will read a batch of values that remain valid until the next ReadRows call, we could break out of the mergedRowReader.ReadRows method each time we exhaust one of the sub-buffers that reads from each underlying reader. This would ensure that we are not invalidating pointers internally before returning from ReadRows.

Yea let me see how well that works

@achille-roussel updated by having the merged row reader return early if the buffer is exhausted. It's definitely better performing than previously.
diff.txt

Thanks for making the change, the impact looks within the ballpark of what I would expect; interesting to see that it reduces memory utilization in those benchmarks as well.
Now trying to understand what's going on with CI... looks like a dependency broke our build?
Error:  The build could not read 1 project -> [Help 1]
Error:
Error:    The project  (/home/runner/work/parquet-go/parquet-go/parquet-mr-apache-parquet-1.13.1/parquet-cli/pom.xml) has 1 error
Error:      Non-readable POM /home/runner/work/parquet-go/parquet-go/parquet-mr-apache-parquet-1.13.1/parquet-cli/pom.xml: /home/runner/work/parquet-go/parquet-go/parquet-mr-apache-parquet-1.13.1/parquet-cli/pom.xml (No such file or directory)
Error:
Error:  To see the full stack trace of the errors, re-run Maven with the -e switch.
Error:  Re-run Maven using the -X switch to enable full debug logging.
Error:
Error:  For more information about the errors and possible solutions, please read the following articles:
Error:  [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
Error: Process completed with exit code 1.

Now trying to understand what's going on with CI... looks like a dependency broke our build?

Yea I had no idea what was going on with CI. All the tests passed locally.

See https://github.com/parquet-go/parquet-go/pull/141 for a fix @thorfour

See https://github.com/parquet-go/parquet-go/pull/141 for a fix @thorfour

Thanks, all green now. Let me know if this is good to merge

I still got corrupted rows from a MergedRowReader in 0.24.0 which should have this patch. I fixed internally by calling "Clone()" on the "head()" as @fpetkovski described here https://github.com/segmentio/parquet-go/pull/512; but I think this bug is still happening on 0.24.0


Version 0.6.1 recipe update.

Version bump and add jsonschema requirement.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


fix: don't break on vendored dependencies

Pull Request Template
📝 Summary
Running some old converted jupyter notebooks gave me a kernel failure:
Process Process-1:
Traceback (most recent call last):
  File "/nix/store/ddhcwc8k9ma093n5vlpa9l617p4q2cax-python3-3.10.5/lib/python3.10/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/nix/store/ddhcwc8k9ma093n5vlpa9l617p4q2cax-python3-3.10.5/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/dylan/.cache/bazel/_bazel_dylan/8bbdcf70ee87482f767b06aac75f66d1/execroot/drt/bazel-out/k8-fastbuild/bin/notebooks/marimo.runfiles/deps/pypi__marimo/marimo/_runtime/runtime.py", line 1397, in launch_kernel
    register_formatters()
  File "/home/dylan/.cache/bazel/_bazel_dylan/8bbdcf70ee87482f767b06aac75f66d1/execroot/drt/bazel-out/k8-fastbuild/bin/notebooks/marimo.runfiles/deps/pypi__marimo/marimo/_output/formatters/formatters.py", line 83, in register
_formatters
    original_find_spec = finder.find_spec
AttributeError: '_SixMetaPathImporter' object has no attribute 'find_spec'

It looks like certain packages will "vendor" or include their own version of a package- e.g. with six<1.16 is this was common: https://blog.pecar.me/six-warnings
The blog post suggests just updating deps, which is fair- but their issue also didn't cause failure, just warnings
🔍 Description of Changes
use gettatr and set default
I don't really know the broader implications of this? Might be a won't fix, just wanted to document it either way
🛠 Additional Information

📋 Checklist Before Submitting

[x] I have read the contributor guidelines and the Pull Request section.
[ ] This PR fixes an issue (If applicable, specify issue number #).
[ ] This change was discussed or approved through an issue or the community discussions (Please provide a link if applicable).
[x] I have added necessary tests for the changes made.
[x] I have run the code and verified that it works as expected.

🧩 Related Issues

📜 Who Can Review?

@akshayka OR @mscolnick

Wow. Speediest review ever @sourcery-ai
Waiting till CI is fixed to change this. Will change from id no-op to returning None (as handled by a branch case)


Refactoring of the local metrics

Refactored (mainly) local metrics code. The changes include:

For reference_free metrics with Detoxify / AutoModelForSequenceClassification, created base classes and made logics such as tqdm progress bar common.  For these metrics I also added an argument local_overflow_strategy, with which you can handle the input longer than the model input window in 3 different ways (truncate, nullify, raise)
For semantic similarity (both local and openai), made a base class and put most of the logic into that class.
For non-english factual consisntency, long inputs always caused error, so avoided it by adding truncation=True argument. (I would like to add the overflow handling to the factual consietency metrics too, but it should be huge enough to develop in another PR)
Moved loading logics of many models into model_manager. check_model_availability became flaky as a result, so I disabled these checks for now.

@yosukehigashi
The PR became much bigger than I thought, but I would be happy if you could take a look when you have time!!

Thanks for the review! Let me resolve the comments first, then we can do the sanity-check together as you say!

@yosukehigashi
Does the change look good to you? If so, we can start testing the new version.

@yosukehigashi Does the change look good to you? If so, we can start testing the new version.

yeah looks fine to me! can you start testing English and Japanese then? I need to make some code changes to test German / Chinese

Tried some examples of Japanese & English with references, there were no errors at least.


Error: read ECONNRESET

Hello!
All was working fine, but 3-4 days ago I started to get this error while trying to make any request from your package in random order.
The same request can work normally or may generate this error at different times.
After 3 days of debugging I still have no idea what is the reason and how to resolve this.
So I want to ask if only I get this trouble or there is a common problem and is there any solution for that?
I will be glad to any advice.
(STDERR) Unhandled rejection RequestError: Error: read ECONNRESET
(STDERR)     (No stack trace)
(STDERR) From previous event:
(STDERR)     at Request.send (.../package/node_modules/instagram-private-api/client/v1/request.js:371:15)
(STDERR)     at AccountFollowersFeed.get .../package/node_modules/instagram-private-api/client/v1/feeds/account-followers.js:35:10)

@zreiby Im guessing proxy :)

It was first what i did.
I create every session with different proxy urls, but have the same result. Some request are failed with this error.
error: { [Error: socket hang up] code: 'ECONNRESET' }

"ECONNRESET" means the other side of the TCP conversation abruptly closed its end of the connection. Not really problem of library. You can fix this by catch RequestError and check for code === 'ECONNRESET' and if so then repeat action.

Thank you. Will do this.

@huttarichard I can't immediately see how the solution you offer could be applied to feeds, in particular with feed.all() used.
An automatic retry function in FeedBase could be useful, such as in:
https://github.com/sachin-handiekar/jInstagram/commit/aff3c8c2e9275d1d524ed1883794e79f11f57e31#diff-e517c17d10ebcd548222a2950e815569L841


Work with CUB hide names feature

Would it be possible to get Group Initiative to work with CUB's hide names feature?
At the moment the Initiative group shows the name of the NPC even if their name has been hidden from the players.

That's interesting. It was working before. Will check what changed to cause this.

I'm going to release a version that wraps the grouping with a setting. This way you can disable the grouping while I try and refactor the code for this. Unfortunately the grouping code is inherited code from the original code repo.
This way you can opt-in for the grouping or opt-out (by default) while I try and sort this out.
This should be an interim fix for your CUB hide names issue.
Sorry for the inconvenience.


Request to Disable Serving ActivityPub JSON by User Agent

As there is not an easy fix for #78 and it seems unlikely there would be, requesting optional special casing based on user agent.
https://github.com/aaronpk/XRay/blob/main/controllers/Parse.php#L16
Essentially, in this function, return early if you detect XRay in the User-Agent.
https://github.com/pfefferle/wordpress-activitypub/blob/master/includes/class-activitypub.php#L36
I know technically speaking, @aaronpk 's code is asking for the ActivityPub version, but one side has to special case it.
Or give me an easy way to filter at this point?

Here's my suggested code: https://gist.github.com/dshanske/e2659241f1c8c064441737afbd89654c

I do not think it is that easy! @aaronpk has added it, because it seems to be a nice fallback if no other semantic is available and we can not get sure, that Microformats are available only because of someone installed the Webmention plugin.

If we could deactivate that by default, than I would vote for doing it on the XRay side!

fixed by @aaronpk https://github.com/aaronpk/XRay/issues/101


[Docker Hub] Create a repo for the Mesherator Operator

Created - https://hub.docker.com/r/layer5/mesherator.


kickflip.io is down

I don't know if there is another way to get in touch with the administrator of the servers... but the service is down

fixed


class_generator - add object as field type - 2073

[Auto generated]
Number: [#2073]

openshift-python-wrapper[pull_request][608f-11ef-96bb-18c3f8e56285][PR 2073]: Closing issue for PR: class_generator - add object as field type.
PR was closed.


Hop 2109

I tried the pull request and I love it.  Code is much cleaner and the selected perspective is nicely highlighted in the GUI.
Tested on Linux.


Null is very non-intuitive as a way to say "i don't care" when subclassing a generic type

Sometimes, there is a class and it has a generic type, and it has some subclasses that work for all types. For example:
abstract class MenuItem<T> {
  String get label;
  bool matches(T value);
}

class Option<T> extends MenuItem<T> {
  Option(this.value);
  final T value;
  String get label => '$value';
  bool matches(T value) => value == this.value;
}

class Divider extends MenuItem<T> { // but what should T be?
  String get label => '---';
  bool matches(T value) => false; // and what about here?
}

For example, this happens with Flutter's PopupMenuEntry<T> class hierarchy. I've also seen it with other cases, for example, I have one project where there's a Progress<T> class which can report progress on getting a value of type T, and there's a subclass that represents having hit an error, and that class doesn't care about T.
Currently, the only way to do this is to use Null as the value of T for the "general" subclasses. However, this is super unintuitive. In Dart 1, you used to be able to use "dynamic", which is better, though still not ideal. It would be great if there was a way to do this that was clearer and more obvious.

Couldn't be void used here?

I don't think that's particularly intuitive either. :-)

This is a classical example - a divider is not a menu item  (it's not, really - you can't select it, you need to skip it when you use arrow navigation, it cannot have a key shortcut key, it doesn't really have a label, it's a square peg in a round hole), but it has to co-exist with menu items in the list of menu content.
Here the first step has been taken, by separating Option from Divider, but there are still members of the MenuItem superclass that do not apply to Divider.
The honest modeling would be that a Menu contains MenuContent, and Divider and MenuItem are separate MenuContent classes. The Menu should probably allow you to iterate its items without seeing the dividers.
(Another alternative is to have separate groups of items, and automatically display dividers between them, rather than having to add dividers - logical formatting vs physical formatting).
With the current model, I'd use Null as the element type. It's a MenuItem<T> for any T, so it fits in all menues, and it clearly signifies that the value of the "item" is irrelevant. You can't use void (it's not a MenuItem<String> so it won't fit in a Menu<String>).
I do think that MenuItem<Null> very clearly states that there is no interesting value here.
I also think that it generalizes to other cases where some class works at all types - the only value which does work at all types is null, so that must be the type. If we get non-nullable types, we'll likely need a bottom type below those, exactly to handle these cases. That's a type that contains no value (but sadly won't be called void, since that one is taken).

Apart from the concrete class hierarchy design, there's the issue of considering Null as a natural choice when a "general" entity is needed. I know that it isn't easy to argue convincingly that any particular solution is intuitive, because that's a property of a person's state of mind. But here's a point of view that might help:
To create a "general type annotation", e.g., in order to declare a variable whose value can be drawn from the greatest possible set of instances, use a top type. So a general variable in the extreme case could have type Object, and a "general list" variable could have type List<Object>, etc. You may opt in to a more forgiving static analysis by using dynamic, but that's a separate issue.
Conversely, to create a "general instance", e.g., in order to create a menu item that can be passed around anywhere a menu item is expected (and used in a read-only manner), use a bottom type, that is, Null.
There's even a spatial metaphor for this: In order to be a container that is able to receive and hold anything, be big; in order to be able to go into any container, be small.

As I was laying in bed last night I concluded that actually void would convey the right thing — it's saying "I won't read this value" (e.g. in the matches method above).
Null isn't something I would have guessed. I spent quite a long time trying to figure out what type to use here, last night. I tried dynamic, and after that was a bit stumped, until I remembered that Flutter does this for menu items, and that's when I found we had used Null.
I'm open to alternative approaches. I'm not sure I understand the MenuContentidea. The desire is to provide a tree that represents what we should render, with static analysis catching the case ofMenuItembeing used with the wrongT` for the menu (each menu has a particular type of value that it can return).

I have a different thought. Rather than complaining about Null, I'd like to point out that MenuItem is a contravariant class. MenuItem<void> (or MenuItem<dynamic>, too) is the correct type in a world where MenuItem<T> can be, and is, marked contravariant.
To be fair, I would already like to see a type on top of Null. It would just be there as a stricter set of Null -- sure, null is allowable anywhere, so a Bottom type that allows null makes sense. But a Bottom type that rejects Null has value too.*
I also think it would get past the confusion a bit here -- Null looks like a type that should be easy to comprehend and intuitive, and its anything but.
The difficulty in naming the new Bottom, is that both top and bottom are both everything and nothing:

Object is not provably anything, because it may be everything
Bottom is assumably everything, because it must be nothing.

I think if they were named Anything/Nothing this would be pretty clear...though there would be confusion over void/Nothing.
The current state of void/Object/dynamic/Null is already confusing enough. I think void/Object/dynamic/Nothing would be an improvement....but we have no reason to remove Null, which probably means void/Object/dynamic/Null/Nothing is even worse. (we could lint Null much more effectively in this world though, with a rule adapted from prefer_void_to_null).
Bikeshedding out-of-the-box names for Nothing: Assumed, Empty, Placeholder, Everything...
Really the best description of Bottom is: "the empty set of values & the subtype of all types," but there isn't exactly a good english word that captures that...
* () -> Null may return a value, and () -> Bottom would not be able to. This has fringe benefits...one example is accepting a Bottom Function(Error) handler which is guaranteed to throw (or at least, not resume execution in the caller).

.. a Bottom type that rejects Null

Right, I think that we'll need a Nothing type denoting the empty set when we add non-null types, because otherwise we won't be able to specify those "general instances" or, for contravariant placement "all-inclusive function types":
// Assuming types are non-null by default, nullable with `?`.

Nothing fn() => throw 'Never completes with a value';

int? Function() f1 = fn; // OK
int Function() f2 = fn; // OK, but it couldn't be a `Null Function()`.

List<Nothing> ln = [];

List<int> ints = ln; // OK
// etc.

I'm not quite sure that Nothing would take over completely as the only relevant bottom type. It is also possible that Null can be useful — we're now talking about situations where the type specifies that null is allowed because someone really wanted that and wrote an explicit ?, and in that situation a null could be delivered and play the role as "something which is missing", or whatever null is taken to mean.
With that, I think it's quite meaningful to name the class that contains null (and nothing else) as Null. YMMV, of course. ;-)

One problem with Nothing is that it's novel. I'm not sure it's something I've seen in any language that's commonly used, and its behaviour and semantics are not intuitively derivable from experience with either Dart or other commonly used languages.
Also, I think we should be wary of any solution that requires an understanding of "top" vs "bottom" to explain, because very few of our users are going to be comfortable enough with types that they will be able to follow such an explanation.

Right, I think that we'll need a Nothing type denoting the empty set when we add non-null types

I'm going beyond "will need," I'm saying "already could use."
For instance, Null is confusing, and if we had Never, then we could easily lint usages of Null, and over time the language would become less confusing. (maybe).
It also solves the problem I showed before where you can accept a Never Function(Error) handler, and you have some guarantee that users won't pass in, for instance, (e) { print(e); }, causing issues when:
  if (!file.exists) {
    handler(Error("won't delete folder, it doesn't appear to be a build output directory."));
  }
  // oops, handler can return Null instead of throw/exit/loop!
  folder.delete();

And it makes it easier to have a conversation about it because you don't have to convince people that Null isn't null before even getting to the hard part.

The bottom type exists in Typescript, Rust, Scala, and (kinda) C++.

Yeah, that's fair. The Typescript case is particularly compelling. (Rust is an interesting case in that they explicitly call out the ! type as not being bottom.)

Ah interesting re: rust. I didn't realize the RFC for Bang as the Bottom type wasn't submitted (I thought that was the RFC introducing bang, so I didn't read it :))

Can we close this to make two issues:

a true Bottom type "Never"
contravariant generics

?


[BUG] Http server prompting for pattern specs even when providing them through urlencoded params

The following request should prompt ppink to summon the image "palisade-blue" with height and width of 50, and have it repeat on a stroke with a distance of 5 between instances.

Instead, when receiving that request, I am presented with the yellow target icon and I need to manually set the size by dragging the cursor, as well as the distance by clicking a second time after the size has been established.

Your parameters w,h,d are in lower case. The URL decoding is case sensitive (use of standard function without case sensitivity flag). Can you confirm and close the PR. I will add a note in the readme page

@pubpub-zz that did the trick, you were right. I had set up all my other requests with upper case, not sure why I used lowercase. Is there a particular reason why it's case-sensitive? Regardless, I've fixed my implementations and now everything works great

as said, the analysis relies on TryGetValue function which is case sensisive.


PhysicsEngine

I am a js game developer and I am developing a physical module based on frame synchronization. I need this module to ensure consistent input and consistent output on each client. So I need to implement a fixed-point module. Because floating point numbers can cause errors, resulting in consistent input, the output can be inconsistent. Fortunately, I saw bignumber.js. I don't know if it's satisfying my needs. If I use bignumber as the underlying Number type, implement the physics engine. Is it possible to ensure consistent input and consistent output? On different CPUs.

I'm not sure whether bignumber.js is deterministic on all different JS engines.
You may want to have a look at https://github.com/stdlib-js/stdlib though, I think having consistent output for basic math functions is one of the goals.

Thank you for your help

Because floating point numbers can cause errors, resulting in consistent input, the output can be inconsistent.

If you are referring to results like
0.1 + 0.2    // 0.30000000000000004

then can't you just stick to integers - you have<PHONE_NUMBER>740991 of them to work with, surely that's enough!
The CPU should be irrelevant to this library's output, but for a physic's engine you would surely want to stick to primitive numbers for performance reasons.
What inconsistencies are you talking about exactly anyway?

The results from the Math object's methods may not be excatly the same on all platforms, but arithmetic with the JavaScript number type should be consistent everywhere. If you have an example of it not being so I would like to see it.

Thank you, for the precision caused by the float, I just checked the relevant documents on google, but I think the basic data type of js is the precision under the strict IE754 standard. Theoretically, there will be no such problem. If only the result of the math object will cause this problem, the addition and subtraction multipliers and logical judgments (equal, greater than or less than) for javascript's basic data types are the same principle. We only need to implement the floor, ceil, cos, abs Sin and so on function library can achieve the consistent input consistent output I want.

We only need to implement the floor, ceil, cos, abs Sin and so on function library can achieve the consistent input consistent output I want.

I understand why the result of functions like cos might differ across platforms or libraries -- e.g. their implementations may have different time/accuracy trade-offs. But, why do think that floor and ceil might be uncertain in practice (assuming it's true that JavaScript using IEEE 754)?


redefine vsprintf in a nice way

Hi,
first, thank you for this project is really nice!!!!
I have a couple of questions:

there's a "nice way" without changing the ctest.h header to redefine the vsnprintf function?
in my system I have to use a specific test_msg() function (for various reasons) to report text messages to the system so I cannot use any "printf" function. how can I extend ctest to use custom printf functions?

Also I have another function test_results() to report results to the main test framework.
there's a way to call a user function to report test results for the single test? how will you handle this?

how can I define different test suites and skip/execute those depending on a "configuration":

for example I can have
suite1
suite2
suite3
configuration1 -> execute 1, skip 2 and 3
configuration2 -> execute 1, skip 2 execute 3
configuration3 -> execute 1, 2 and 3
switch(test_configuration)
case NO_STRESS_TEST
result = ctest_main(configuration1)
case TEST_ALL
result = ctest_main(configuration3)

There is no real nice way. There is a CTEST_SKIP() version that skips tests, but you would have to wrap that in macros of your own..


Write cloud-config during kubelet configuration

This file should only be updated during kubelet upgrade so that
master components are not accidentally restarted first during
preinstall stage.

ci check this

this was uncovered as part of an upgrade from 1.8->1.9 with the config file change in #2221

Missing roles\kubernetes\node\templates\*-cloud-config.j2, they still in roles\kubernetes\preinstall\templates


Dark/Light toggle button

Issue #745 fixed

@khushi-joshi-05 i have resolved all the conflicts please merge and close this issue

@khushi-joshi-05 please merge and close this issue


TUS misuse of OCIS_CORS_ALLOW_ORIGINS ?

Describe the bug
If you don't have the OCIS_URL in OCIS_CORS_ALLOW_ORIGINS, uploads bigger than the TUS chunk threshold (10MB) fail.
They fail because the storage-users service aborts the PATCH request of the first chunk with HTTP 403.
CORS is checked on the browser side and not the server side, so I expect a misusage of the CORS configuration here...
Additional context
See also:

https://github.com/owncloud/ocis-charts/pull/744
https://github.com/owncloud/ocis-charts/issues/643

Had similar issue in https://github.com/owncloud/ocis/pull/10482#discussion_r1848099478


Curious about zero-shot performance for the pretrained VLLM

Is the LLM part of internlm-xcomposer-vl-7b the base version (internlm-7b) or the chat version (internlm-chat-7b or internlm-chat-7b-v1.1)?
If the LLM part is the base version, and there is no sft on xcomposer-vl, then how does it have the ability to follow the instructions of benchmarks to get high performance on zero-shot (instead of few-shot) testing?

Hi, thanks for your interest in our work, our model is based on the InternLM-Chat-7b-v1.0, so it still has the instruction-following capability after the multi-modal pretraining and SFT. We will clarify it in the README and the paper in the following update.


Support for Django 2.0

From Django 2.0 Release note...

The on_delete argument for ForeignKey and OneToOneField is now required in models and migrations. Consider squashing migrations so that you have less of them to update.

So on_delete must needed in ForeignKey so update to Django 2.0 won't break the development.

@rajasimon Thank you for the pull request. I'm going to check the following two things and if everything checks out, I'll pull this in.

[ ] Check if database migrations need to be created
[ ] Double check that these changes are still compatible with Django < 2.0


Web - Error of not displaying the name and avatar of the person requesting the money in the workspace

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
. User A creates a workspace -> invites user B to the workspace
2. User B requests money for user A's workspace
3. Then user B deletes the request
4. User A enters any chat group and returns to box chat with owe requests
Expected Result:
The request is deleted.
After requesting money, the name and avatar of the person sending the request is still displayed.
Actual Result:
The request is not deleted, after requesting money the name and avatar of the person sending the request is not displayed.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
bug#15 (1).webm
https://github.com/Expensify/App/assets/93399543/718ffd4a-ed98-4c0a-a363-9986c7ea5d70
Expensify/Expensify Issue URL:
Issue reported by: @Le Thi Thu Thuy
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1693386002150119
View all open jobs on GitHub

Can't reproduce, when I tested the deleted request automatically disappeared from the workspace.


Ignore old, deprecated fields in rosetta transactions

This PR allows rosetta parsing to ignore deprecated fields when they are null.
Checklist:

[ ] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[ ] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them

!ci-build-me

!ci-build-me

Confirmed working with transaction
{
  "signature": "a9ad136ccc8dfdfc76937dc884036d625cbdc6baadc968c13f2be090bf53a01f3e0cee3f0959c6a85f6d939ca08d9200ee15a0a64440a0f8e5affe8afde3251f",
  "payment": {
    "to": "B62qkcjubxpCvKyJvtisJqVrnNcXHE7EeZPbQ9FNJbTbFwXPVcYnjgX",
    "from": "B62qoigHEtJCoZ5ekbGHWyr9hYfc6fkZ2A41h9vvVZuvty9amzEz3yB",
    "fee": "10000000000",
    "token": "1",
    "nonce": "68",
    "memo": null,
    "amount": "16571009648348",
    "valid_until": "4294967295"
  },
  "stake_delegation": null,
  "create_token": null,
  "create_token_account": null,
  "mint_tokens": null
}

!ci-build-me


41: Node: Physics => 14: bug 5482     => Body has not the same angle after some moves (see screenshot)

I have a fix (PR is ready)

@halx99
How can I find the bug 5482 on the cocos2d (4.0).
I want know what was fixed there.


Fix bad path check in download-libs.sh

git-blame says I should cc @daniel-ziegler to review this. :)

Merged upstream so I just cherry-picked that.


Backfill does not support caching with yarn 2+

It stems from yarn.lock parsing support is not forward compatible with @yarnpkg/lockfile

This is actually a bug in workspace-tools


bbknn: AttributeError: 'tuple' object has no attribute 'tocsr'

...When run bbknn on adata which has been calculated the pca, umap, and leiden, the AttributeError shows 'tuple' object has no attribute 'tocsr'.

sc.pp.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
...
computing PCA
on highly variable genes
with n_comps=50
finished (0:00:27)
computing neighbors
using 'X_pca' with n_pcs = 50
finished: added to .uns['neighbors']
.obsp['distances'], distances for each pair of neighbors
.obsp['connectivities'], weighted adjacency matrix (0:00:24)
computing UMAP
finished: added
'X_umap', UMAP coordinates (adata.obsm) (0:01:27)
%%time
sc.external.pp.bbknn(adata, batch_key='batch')

<!-- Put your Error output in this code block (if applicable, else delete the block): -->

computing batch balanced neighbors
AttributeError                            Traceback (most recent call last)
 in ()
----> 1 get_ipython().run_cell_magic('time', '', "sc.external.pp.bbknn(adata, batch_key='batch')")
6 frames
 in time(self, line, cell, local_ns)
 in ()
/usr/local/lib/python3.6/dist-packages/bbknn/init.py in compute_connectivities_umap(knn_indices, knn_dists, n_obs, n_neighbors, set_op_mix_ratio, local_connectivity)
63         distances = get_sparse_matrix_from_indices_distances_umap(knn_indices, knn_dists, n_obs, n_neighbors)
64
---> 65         return distances, connectivities.tocsr()
66
67 def create_tree(data,approx,metric,use_faiss,n_trees):
AttributeError: 'tuple' object has no attribute 'tocsr'

#### Versions:
<!-- Output of scanpy.logging.print_versions() -->
> ...
scanpy==1.5.1 anndata==0.7.3 umap==0.4.3 numpy==1.18.4 scipy==1.4.1 pandas==1.0.3 scikit-learn==0.22.2.post1 statsmodels==0.10.2 python-igraph==0.8.2 leidenalg==0.8.0

I solved the problem by using umap 0.3.9. Thank you


WIP: pretty print full exception when midje fails at load-time

The error messages shown when midje fails to load files at autotest startup only show the exception's message. Hence, useful error information that is in the exception's data (in the case of clojure.lang.ExceptionInfo) or exceptions with nested causing exceptions, is hidden.
Before:
LOAD FAILURE for your-service-test
clojure.lang.ExceptionInfo: Error in component :routes in system com.stuartsierra.component.SystemMap calling #'com.stuartsierra.component/start {:reason :com.stuartsierra.component/component-function-threw-exception, :function #'com.stuartsierra.component/start, :system-key :routes, :component <Routes>, :system #<SystemMap>}, compiling:(your_service_test.clj:8:1)

After:
clojure.lang.ExceptionInfo: Error in component :routes in system com.stuartsierra.component.SystemMap calling #'com.stuartsierra.component/start

  some-exception-data "foo"
  function: #'com.stuartsierra.component/start
  reason: :com.stuartsierra.component/component-function-threw-exception
  some-more-exception-data "bar"
  details: {:from routes/validate-auth,
            :reason :invalid-routes,
            :routes ("/some/api/endpoint")}
  type: :server-error
                                                      clojure.core/ex-info           core.clj: 4617
                                            util.exceptions/make-exception     exceptions.clj:   42
                                                 util.exceptions/terminate     exceptions.clj:   24
                                                   clojure.core/partial/fn           core.clj: 2522

TODO: investigate why the exceptions printed on load failures differs if you use load-facts or autotest

It would be cool if users could customize the exception handler.

@rafaeldff regarding https://github.com/marick/Midje/pull/402#issuecomment-327527547 for now I'm just going to create a :pretty-print config flag that is by default set to true, but when set to false defaults to the old way of formatting exceptions (in case anyone doesn't like the change).
This isn't ideal or very configurable, so I will look into allowing custom exception handlers in the future.
For now I ran into some issues trying to implement that: I tried basing my plugin system on protocols and ran into issues of reloading protocol definitions and trying to use them with old instances (due to how midje reloads code on changes). So I tried to fix how midje reloads changes using clojure.tools.namespaces but ran into more issues. I'm going to keep poking at it, but I want to get this out in the meantime.


Moved to psc-package, 0.12.

Hi RF
Still holding on to an old conversation about using this in DateTime, and also have use for it in vectors.
Are you still doing Purescript??
Thanks
Alex

justin says this is not the thing to do


Inconsistency in capabilities per permission

The introduction of the page it says "All users can create and edit their own queries and save them under My Queries. Only you can view queries saved under your My Queries space".
While in the table the "Readers" permission does not have the "Create and save managed My queries" check mark. This means that a user with only the Read permission is not able to "create and edit their own queries and save them under My Queries." as mentioned in the introduction.

Task
Stakeholders
Readers
Contributors
Project admins

View and run managed queries
✔
✔
✔
✔

Create and save managed My queries
✔

✔
✔

Contribute, delete, and manage permissions of Shared queries and folders(Stakeholders can't save Shared queries even if granted permissions)

✔

View query charts

✔
✔
✔

Create query charts

✔
✔

Powerful semantic work-tracking search
✔
✔
✔
✔

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

ID: 54179351-62b2-c41b-949b-0652a0f1d354
Version Independent ID: 1ffcd0b3-e67b-6cfe-caa6-814a699627db
Content: Set query permissions - Azure Boards
Content Source: docs/boards/queries/set-query-permissions.md
Product: devops
Technology: devops-agile
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@olenitsj  - Thank you for the feedback. You are correct, Readers don't have permission to save anything. I'll update the introduction to rephrase accordingly.


No symbols founds in zip after appcenter_upload

I run the following command
 appcenter_upload(
            api_token: "...",
            owner_name: "...",
            app_name: "...",
            upload_dsym_only: true,
            dsym: "dSYM path",
        )

A zip file is correctly uploaded on app center and I see it in the list of uploaded file but it says "No symbols found" with a size of 0B. I tried to download the zip file and the file correctly contains the symboles apart the fact that the dSym file is present a two places (at root and in a path that sounds like the complete path of the original location of the symbole file (e.g. ../bin/.../...dSym)
When repackaging the zip file with only the dSym file at root and then uploading again in appcenter, the symbols are found and everything works well.

How did you create the dsym zip file? Is it possible to use other commands found in appcenter_upload_action.rb?

Is it possible to use other commands found in appcenter_upload_action.rb?

@MrHubble this plugin provides single appcenter_upload fasltane action, create_dsym_upload is an internal method for calling App Center API.
Provided command appcenter_upload(..., upload_dsym_only: true, dsym: "dSYM path") is fine, it just takes file from the path and uploads it to App Center (and create_dsym_upload is used inside).

@evkhramkov appcenter_upload works but uploaded zip package has a weird structure

dSym file is present a two places (at root and in a path that sounds like the complete path of the original location of the symbole file (e.g. ../bin/.../...dSym)

and this gives the mentioned bug

No symbols founds in zip

In fact the zip sent to app center is correct. It's on app center, that there seems to have an issue

Workaround is to download the zip (even if it says that it's 0B), delete the bin folder in the zip and then upload the zip again.

@janpio dsym file is generated by a Xamarin.iOS build (using souyuz fastlane plugin)

Oh ok. Problem is here somewhere then probably: https://github.com/voydz/souyuz/blob/9f79826968ec97188f7e22ab9927fba9ce366273/lib/souyuz/generators/zip_dsym_command_generator.rb#L4

@Eversole

Provided command appcenter_upload(..., upload_dsym_only: true, dsym: "dSYM path") is fine, it just takes file from the path and uploads it to App Center (and create_dsym_upload is used inside).

Thanks for that. Doesn't App Center also require the source map of the app? Does this get created with create_dsym_upload?
Reference:

Create a ZIP file with the dSYM package on your Mac and the JavaScript source map of your app. The source map should named "index.ios.map".

https://docs.microsoft.com/en-us/appcenter/crashes/react-native

@janpio the generated dSym and zip files looks fine. It's the zip file present on AppCenter that has this strange structure.

Wait, so before you upload the file it is all correct, and only after uploading you get this strange structure? Wouldn't that be kind of impossible, as Appcenter can't know about the path of your local file if the uploaded zip doesn't contain that information? (Or am I misunderstanding something?)

You are right, seems not possible but it's what I discovered this morning. I will re-test.

I checked and the bug is as you said on soyouz side. @janpio Thanks for your help!

Thanks for reporting back. Hope you can get it fixed on their side.


⚠ API - Lens has degraded performance

In 2e2b695, API - Lens ($LENS_API_URL) experienced degraded performance:

HTTP code: 503
Response time: 393 ms

Resolved: API - Lens performance has improved in 830a897 after 6 minutes.


Remove Chef::Config[:resource_cloning]

Tweaking this isn't a viable strategy for preserving Chef 12 back-compat and would just encourage landmines, so we're going to remove it in Chef-13.  The setting is only intended to test for Chef-13 compat by being able to turn off resource_cloning during Chef 12.

See #4838


Replace master with main

This PR removes the outdated API used to get djs docs and now adds the capability to get the main branch as opposed to the now deleted master branch of discord.js
The way this achieves that is by adding an npm package called discord.js-docs
fixes #6

LGTM


No app started when it says "Application startup complete"

Hi mukulpatnaik,
I have followed the instruction and installed a Ubuntu on my Windows, then I have cloned and installed all the required resources in the Linux system, also added my API key. But when I use the uvicorn command, it shows something like this:

then nothing happens more, I don't see the interface of the application. What should I do next?

You can enter the url http://<IP_ADDRESS>:8000 in your browser. :D


autogen.sh fails

Running ubuntu 15, used "git clone https://github.com/syscoin/syscoin2.git"
runnging under su did >./autogen.sh
got:
/syscoin2# ./autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, build-aux'. libtoolize: copying file build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, build-aux/m4'. libtoolize: copying file build-aux/m4/libtool.m4'
libtoolize: copying file build-aux/m4/ltoptions.m4' libtoolize: copying file build-aux/m4/ltsugar.m4'
libtoolize: copying file build-aux/m4/ltversion.m4' libtoolize: copying file build-aux/m4/lt~obsolete.m4'
configure.ac:10: installing 'build-aux/compile'
configure.ac:5: installing 'build-aux/config.guess'
configure.ac:5: installing 'build-aux/config.sub'
configure.ac:9: installing 'build-aux/install-sh'
configure.ac:9: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, build-aux'. libtoolize: copying file build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, build-aux/m4'. libtoolize: copying file build-aux/m4/libtool.m4'
libtoolize: copying file build-aux/m4/ltoptions.m4' libtoolize: copying file build-aux/m4/ltsugar.m4'
libtoolize: copying file build-aux/m4/ltversion.m4' libtoolize: copying file build-aux/m4/lt~obsolete.m4'
configure.ac:45: installing 'build-aux/compile'
configure.ac:45: installing 'build-aux/config.guess'
configure.ac:45: installing 'build-aux/config.sub'
configure.ac:28: installing 'build-aux/install-sh'
configure.ac:28: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, build-aux'. libtoolize: copying file build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, build-aux/m4'. libtoolize: copying file build-aux/m4/libtool.m4'
libtoolize: copying file build-aux/m4/ltoptions.m4' libtoolize: copying file build-aux/m4/ltsugar.m4'
libtoolize: copying file build-aux/m4/ltversion.m4' libtoolize: copying file build-aux/m4/lt~obsolete.m4'
configure.ac:52: installing 'build-aux/compile'
configure.ac:15: installing 'build-aux/config.guess'
configure.ac:15: installing 'build-aux/config.sub'
configure.ac:25: installing 'build-aux/install-sh'
configure.ac:25: installing 'build-aux/missing'
Makefile.am:5: warning: user variable 'GZIP_ENV' defined here ...
/usr/share/automake-1.15/am/distdir.am: ... overrides Automake variable 'GZIP_ENV' defined here
Makefile.am:56: warning: user target 'distcleancheck' defined here ...
/usr/share/automake-1.15/am/distdir.am: ... overrides Automake target 'distcleancheck' defined here
src/Makefile.am: installing 'build-aux/depcomp'
src/Makefile.am:479: warning: user target '.mm.o' defined here ...
/usr/share/automake-1.15/am/depend2.am: ... overrides Automake target '.mm.o' defined here
parallel-tests: installing 'build-aux/test-driver'
src/Makefile.am:400: warning: variable 'syscoin_tx_SOURCES' is defined but no program or
src/Makefile.am:400: library has 'syscoin_tx' as canonical name (possible typo)
src/Makefile.am:409: warning: variable 'syscoin_tx_LDADD' is defined but no program or
src/Makefile.am:409: library has 'syscoin_tx' as canonical name (possible typo)
src/Makefile.am:403: warning: variable 'syscoin_tx_LDFLAGS' is defined but no program or
src/Makefile.am:403: library has 'syscoin_tx' as canonical name (possible typo)
/syscoin2#
Any help?

where is it failing?

Hmmm...seems I didn't have enough coffee this morning. I took the warnings to mean errors.
./configure proceeded just fine.
Please close this non-issue and excuse my brainlessness :)


Update styles for action buttons and tabs

Before:
After:
also needed - https://github.com/silverstripe/silverstripe-cms/pull/1233

looking gewd

Don't merge this just yet, still a couple of changes to come in :)

Very nice

Updated with new, more consistent padding layout + slightly enhanced colours.
@clarkepaul

Looking good, Scott! In order to make review and feedback easier, can you please always provide before/after screenshots on style changes?

@chillu done, will keep that in mind  :)

Same here, no keyboard focus on buttons breaks accessibility

I much prefer the Blog Posts etc links aligned left.
Not keen on losing buttons and tabs though – it looks good visually, not sold on it from a UX angle.
I do a lot of CMS support with not-that-computer-literate people and without the familiarity of a conventional button / tab it's going to make it harder for them. Especially the "Add New" which is pretty lost without any kind of colour to it.
That said, I'm not a fan of the existing bulky gradients so this feels like a step in the right direction IMHO.

I like the tabs a lot. Its a big improvement, space wise. I'm less keen on buttons looking like regular text. Generally those things are supposed to be calls to action, and I'm afraid they will just be overlooked without definition.
I am a fan of dropping the gradients though.

One minor bug - the border here:

I’m a tiny bit on the fence about the tab changes. The new style looks great, I just worry that the tabs might be a bit lost: if I tell a client to click the "Categorisation" tab in the example screenshots, I feel like they won’t spot it. Is there any way we could make them stand out a little more?
I don’t like the button changes though: they’re harder to spot/identify, inconsistent with all the other buttons in the CMS and I don’t really think they look much better anyway.

"I don’t like the button changes though: they’re harder to spot/identify, inconsistent with all the other buttons in the CMS and I don’t really think they look much better anyway."
That's a good point. Would changing the colours up to look more like links help, do you think? You could also make the selected 'tab' look more link a tab, and have the others more minimal, but I'm not sure you'd save on space quite as much.

My 2 cents on this very subjective topic! :)
I agree with @feejin about looking cleaner visually but being less obvious for users to know what to do. My immediate reaction to the loss of the tabs was "how do I get to that area now?". Tabs are so familiar to users that they require no thinking whereas the new style would be less hard-wired so feels less natural and requires a millisecond of thought.
I kind of like the gradient buttons! After all, Github uses them so they must be good!!! Again, I think gradients buttons are so familiar as a place to click to do something that anything else is less natural. As an alternative to gradients, one could have a very subtly raised flat button; anything would be fine as long as it looks like a physical button with a slight 3D effect. If not buttons, then the labels should have verbs...for example, "Show Settings" and "Show Content" and "Edit Content" or similar.
I am neutral about left or right justification of the tabs since either way it is clear how to access those areas.

Thanks for the feedback, I think I need to justify some of the changes. We will be increasing the size of "North" bar to accommodate one line of breadcrumbs and another for the page name, if we keep the old style tabs which take the full space they would be huge and stand out far too much. It is the second set of tabs (if they exist) that the user interacts with mostly.
I believe that within the CMS we have too many things competing for the users attention. There are too many places where bold text is being used and too many boxes used to make things standout. The items which matter most like the editing the page, save and publish become prominent.
With the tabs we could look at some other options with color or highlighting the selected item, I've tried changing the tabs before with multiple options and there was no consensus on a style. The solution I've provided will help with a space issue (when there are a lot of tabs) because we don't have the bulk of the old tabs. FYI we still need to solve the wrapping tab issue.
One of the main reasons for removing the border style from the buttons is to allow for all the actions to be consistent between the larger and smaller site tree view and without the bulk of buttons there is a lot more space to allow for additional actions.
IMHO The age of making everything look like buttons has passed – we need the main actions to be more obvious and the less prominent actions to be available. All of your comments are valuable and the team will consider it all before it is released – that's what the Beta is for :).
Anyway this is what we are aiming for at the moment, hopefully it is progressing on what was there previously.

I really like the new tabs, but I think the secondary tabs need a bit of extra contrast somehow - the North tabs stand out thanks to a different background colour but think the second row are getting a little lost.
While we're backing off of gradients a bit, now seems like a great time to remove all the gradients from the left sidebar. They're starting to look a bit out of place and that whole section already stands out heaps thanks to the darker background so don't think we need to draw more attention to the options with gradients.

One last idea from the peanut gallery: what about using the style of tree view/list view buttons on top right of middle panel for all main actions ? This would bring a really satisfying consistency. In the trio of "Add Page  Actions Options" in the middle panel you could leave the selected one, Actions, as it is but add thin black outlines to Add Page and Options, to match the black outline around the tree view/list view buttons and to indicate they are clickable. You could also use this style for the "Go" the "Edit" buttons and all the tabs selectors too. Heck, event those big old gradient blobs in the left panel could be done this way.  Given the choice between obvious buttons and something obscure that takes time to work out if it is even clickable, I'll take the buttons. Long live the buttons!!! Same with tabs. Long live the tabs !!!

That design looks really nice! I like the selected/hover(?) state on the button. I think that might help convey understanding. The iconography is also a bit larger too, yes?
I understand that this is an incremental thing, but there's a lot in that 'direction design' that makes the interface make sense in a way that the current implementation doesn't. For one, the breadcrumb positioning helps draw attention to the second level tabs. How long before we can get all of it? ;)

I like the minimal look of the tabs. Similar to what Google is currently doing - which is nice also.

The buttons could have an outline maybe - to make them more button like. Overall it looks really good!

Rebased against @flashbackzoo's 3 column layout

Couple of things:

Vertical alignment is a bit off
The height of the top bar varies depending on what section you're in. Navigate between 'Reports' and 'Security' and you'll see what I mean.
Can we apply the new button styles to the SiteTree only? Or apply them to all top level sections? Have the new styles only in 'Pages' seems weird.

Just noticed the width is incorrect then the panel is collapsed

Updated with numerous bug-fixes + spacing changes. This should now look a lot like @clarkepaul's screenshot. I haven't changed much with the designs of the buttons/tabs but if you haven't already checkout the branch, have a play around and post your feedback on what you think.

I think the buttons styling still needs work: It's too subdued at the moment. There's a few UI elements like breadcrumbs, the URL segment and the page tree which are obvious links (blue highlight). There's others which are obvious buttons ("save"). Either of them communicates clearly that the UI element is clickable and will invoke an action. Then there's some grey UI elements which don't do anything (current page in breadcrumbs, form field labels, "your site name"), and others which perform an important action (tabs and "add page"). @clarkepaul That seems quite inconsistent?

Perhaps you could copy what google does and use colours to at least highlight the active tab? Maybe using the link colours or some other shade of blue?

The UI elements become even more imbalanced when you have unsaved edits and preview mode (big fat green buttons) - we need to look at this holistically. Also, visible hover/focus feedback is great, but ideally we come up with a UI paradigm that also works well on touch devices where you don't have that level of feedback.

I think we'll revisit the site tree / gridfield actions and tabs based on peoples feedback and see what other options might be an improvement - personally I think its more about what people are used to and not being confident that the change will be meaningful enough. From the limited testing I did with real authors they had no issues whether or not they where actions or tabs - I didn't test on multiple designs though so not the best tests so far.
@adrexia I've already tried using a blue instead of Googles red for tabs and it just didn't look right.
@chillu Plenty of interfaces these days use iconography instead of the button look, and while we are trying to find solutions which can be rolled out to the whole interface we cannot do that all at once unfortunately and the way the main actions work is another complexity which makes things harder for sure.
Example:

Plenty of interfaces these days use iconography instead of the button look

Yep, if done consistently. My point is that the "half redesigned" state at the moment creates weird visual focus points, some action stand out much more than others due to blue text or button styling. And those aren't necessarily the most important actions. But I do acknowledge that we have to start somewhere. Given this is on the 3 branch, and 3.3 won't be released soon, I'm happy to merge this as "work in progress", and look forward to further UI concepts to make this more consistent across the board.

@chillu can we get this merged as work in progress? - we realise there is more to do before 3.3 is released.
Outstanding work which we aim to get prioritized:

Button consistency across entire UI (provide a few alternatives to community for review)
Interface iconography to be more consistent across UI
Tab refinement (provide a few alternatives to community for review)

Sweet, merged! Great to hear those three areas are on your todo list for 3.3.

@clarkepaul I'm still a bit worried about the secondary tabs - agree that blue wouldn't work well because it's the standard link colour in SilverStripe, and I think that's why Google uses red - it looks like an active state rather than a link. Red wouldn't work for us but how about that green/teal colour used on silverstripe.org? I think that could work quite well (forgive the dodgy photoshop colouring):

In fact it's already used in a similar way on silverstripe.org:

Thanks for that @jonom, yeah I've added something to our backlog of work to cover those three items because of the feedback we've received to see if we can make everyone more comfortable with any changes.
Feel free for anyone to provide some options for consideration - when the work comes up I can fine tune the ideas for a better comparison.

I actually really like the way which @Rhym has done this in his re-theme module https://github.com/Rhym/silverstripe-cms-theme - a subtle indication without the massive change in colour of everything works well.

That does look good but I don't know if it would work well for a secondary/nested set of tabs


xp tracker: Use AttackStyle as combat XP modifier

Summary

Updated AttackStyle and WeaponType to be public for reusability
Added onVarbitChanged and updateAttackStyle to track attackStyle
Updated getCombatXpModifier to factor in AttackStyle
Moved some logic into variables for readability

Links

Issue: #6479
Wiki: Combat Options

Notes

This is my first PR for Runelite

Since this change impacts all combat with the XP tracker, this would benefit from some automated testing; unfortunately I haven't worked with Mockito in years and XpTrackerPluginTest is already pretty sparse

With some debug logging I manually tested all the attack styles for melee, ranged, and magic along with the edge case of manually casting spells with no weapon wielded
2023-08-11 21:12:04 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: ATTACK , combatXpModifier: 1.33
2023-08-11 21:12:04 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: DEFENCE , combatXpModifier: 1.33
2023-08-11 21:12:04 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: STRENGTH , combatXpModifier: 1.33
2023-08-11 21:12:04 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:12:08 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: ATTACK , combatXpModifier: 1.33
2023-08-11 21:12:08 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: DEFENCE , combatXpModifier: 1.33
2023-08-11 21:12:08 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: STRENGTH , combatXpModifier: 1.33
2023-08-11 21:12:08 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Controlled , skill: HITPOINTS , combatXpModifier: 1.33
...
2023-08-11 21:12:55 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: ATTACK , combatXpModifier: 4.0
2023-08-11 21:12:55 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:12:58 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: ATTACK , combatXpModifier: 4.0
2023-08-11 21:12:58 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: HITPOINTS , combatXpModifier: 1.33
...
2023-08-11 21:13:19 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Aggressive , skill: STRENGTH , combatXpModifier: 4.0
2023-08-11 21:13:19 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Aggressive , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:13:23 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Aggressive , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:13:25 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Aggressive , skill: STRENGTH , combatXpModifier: 4.0
...
2023-08-11 21:13:53 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive , skill: DEFENCE , combatXpModifier: 4.0
2023-08-11 21:13:53 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:13:56 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive , skill: DEFENCE , combatXpModifier: 4.0
2023-08-11 21:13:56 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive , skill: HITPOINTS , combatXpModifier: 1.33
...
2023-08-11 21:16:46 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Ranging , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:16:46 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Ranging , skill: RANGED , combatXpModifier: 4.0
2023-08-11 21:16:48 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Ranging , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:16:48 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Ranging , skill: RANGED , combatXpModifier: 4.0
...
2023-08-11 21:17:50 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Longrange , skill: DEFENCE , combatXpModifier: 2.0
2023-08-11 21:17:50 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Longrange , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:17:50 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Longrange , skill: RANGED , combatXpModifier: 2.0
2023-08-11 21:17:51 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Longrange , skill: HITPOINTS , combatXpModifier: 1.33
...
2023-08-11 21:23:55 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive Casting , skill: DEFENCE , combatXpModifier: 1.0
2023-08-11 21:23:55 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive Casting , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:23:55 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive Casting , skill: MAGIC , combatXpModifier: 1.33
2023-08-11 21:23:58 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive Casting , skill: DEFENCE , combatXpModifier: 1.0
2023-08-11 21:23:58 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive Casting , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:23:58 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Defensive Casting , skill: MAGIC , combatXpModifier: 1.33
...
2023-08-11 21:24:45 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Casting , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:24:45 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Casting , skill: MAGIC , combatXpModifier: 4.0
2023-08-11 21:24:48 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Casting , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:24:48 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Casting , skill: MAGIC , combatXpModifier: 4.0
...
2023-08-11 21:51:13 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: MAGIC , combatXpModifier: 4.0
2023-08-11 21:51:16 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: HITPOINTS , combatXpModifier: 1.33
2023-08-11 21:51:16 MDT [Client] INFO  n.r.client.plugins.xptracker.XpState - attackStyle: Accurate , skill: MAGIC , combatXpModifier: 4.0

This looks like a decent first shot at this, though one other notable case which is not covered is powered staves, which only grant 2xp per damage.

This looks like a decent first shot at this, though one other notable case which is not covered is powered staves, which only grant 2xp per damage.

I see, yes, that's noted on the Powered staff page. I'm not a member, so  I'm not familiar with this category and don't think I can experiment or test things.
Looking through the wiki it seems all of the powered staves list two Accurates and a Longrange which would appear to fit the definition of TYPE_28
https://github.com/runelite/runelite/blob/ec2e121f619d1df9aea3fe2874b633570c87ff47/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/WeaponType.java#L43-L72
I went ahead and made some updates to track the equipped weapon and factor that in to the logic.

@Nightfirecat How's this looking?
I'd appreciate if someone could manually test with powered staves since I'm not able.

Since this PR has been created, we've removed the WeaponType enum in favor of looking up weapon types from the client enum. This PR would need to be reworked to account for that change.

@Adam- Feel free to give this a look and/or test since it's now using some of the same code from your update.
As previously mentioned, I also don't have the ability to test powered staves since I'm F2P. So the check I added is an educated guess.


IE shows apostrophe as ' on charts.

Tested on IE10/11.
Firefox OK.
v0.2.5 was OK.

@redstreet You run Windows, right? Does this happen for you as well?

Yes, I can confirm I'm seeing this on IE11 running on Cygwin/Windows as well, in 0.2.6. I haven't checked previous versions.
I run Cygwin/Windows + Chrome. It appears fine in Chrome.

@redstreet Thanks for confirming (saved me from setting up another VM).
I think this is a bug in the Chartist.js-library we use for the charts. I simply changed the format from MM 'YY (eg. Mar '16) to MM YYYY (eg. Mar 2016) to avoid this - and it looks cleaner anyway, IMHO.


Code Tour Suggestion: Use shell command for dotnet commands

I'm not sure this is a good idea, but if it works it would be nice to use the shell command syntax to allow executing the dotnet add package ... commands in the terminal rather than requiring the user to copy and paste them. This is kind of grunt work from the learner's perspective, it doesn't teach me EF concepts.
One possible downside is that the Code Tour docs says that this creates a new terminal window and executes the steps. This might not work well in the case where we're executing several commands, or could be confusing since we're already having them type some commands in a terminal window. But... if it does work well, I think it would be a better experience.

@jongalloway Maybe I should have read the docs better! Yes, I think we should be using this.