MSBuild reference resolver lacks .NET 4.6.2+ frameworks

I don't know if this is a problem, but it seems we don't handle .NET 4.6.2, 4.7.x here and in the entire file:
https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/MSBuildReferenceResolver.fs#L86-L107

That durned resolver is a pain.  However, we build 4.6.2 and 4.7 fine.  This file is interesting and a complete PITA because it supports magic references in the language service and FSI (I.e. not guided by a project file).  When we finally have package management in FSI I hope and pray that this kind of magic goes away.

OK :)

Every time I see it, I die a little.  There is that whole reshaped_msbuild code in the coreclr build that I really want to throw away.


I am so support your program, but some bugs still exists.

when execute vendor/bin/phinx migrate
It will be returned
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table def
inition; there can be only one auto column and it must be defined as a key
and I confirm my SQL can normal use , please help me to look this 。
thank you

ok, i know now, because phinx automatically assigned id primary key, but i use other field as primary key, so may be have a  solution ? please, thank you.

@gotoin Hello. You could use some magic about this, Phinx docs says, that you can define custom primary key for table and disable auto creating id column. It may look like this:
<?php

use Phinx\Migration\AbstractMigration;

class MyNewMigration extends AbstractMigration
{
    /**
     * Migrate Up.
     */
    public function up()
    {
        $table = $this->table('followers', array('id' => false, 'primary_key' => array('user_id', 'follower_id')));
        $table->addColumn('user_id', 'integer')
              ->addColumn('follower_id', 'integer')
              ->addColumn('created', 'datetime')
              ->save();
    }

    /**
     * Migrate Down.
     */
    public function down()
    {

    }
}

yes, i know, but i use your phinx-migrations-generator now, could you update this?thank you

@gotoin Could you include some sql dump of your table with this problem and its generated migration?

If MySQL says "Incorrect table definition; there can be only one auto column and it must be defined as a key" then you just have to add a primary key for the AUTO_INCREMENT field (e.g. id).

@odan i use other field as AUTO_INCREMENT field , so i need phinx-migrations-generator autogeneration like phinx docs says
$table = $this->table('followers', array('id' => false, 'primary_key' => array('user_id', 'follower_id')));

Ok i get it. I try to implement this feature in the next days.

thank you very much!


Support wildcard queries with * syntax

For now, only support * via http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.4/query-dsl-wildcard-query.html.

https://github.com/agco-adm/elastic-harvest/commit/4ac93dd86268933aa93d4ccbf86b252c832e9c5a


response body corrupt after pass ResponseAdapter

Describe the bug
response body corrupt after pass ResponseAdapter.
To Reproduce
Steps to reproduce the behavior:

create a pipeline as below

name: index-pipeline
kind: HTTPPipeline
flow:
  - filter: proxy
  - filter: rsp
filters:
  - name: proxy
    kind: Proxy
    mainPool:
      servers:
      - url: http://<IP_ADDRESS>:9095
      loadBalance:
        policy: roundRobin
  - name: rsp
    kind: ResponseAdaptor
    header:
      del:
      set:
      add:
        AddByRequestor: "[[filter.proxy.rsp.body.name]]"

Send a request to easegress to get a response whose body size > 10k
See error

This issue also exists in RequestAdapter.

The response and request body maximum size is limited here to 10k.
In many http servers the default limit is larger than 10K ((nginx has default limit 1MB and Java Servlet unlimited) and can be changed in the configuration.
Let's change it so that there is no error thrown for 10k or larger bodies. By default there should not be limit (=unlimited body size) but user can provide new optional field maxBodySize in HTTPServer object definition.


fix: added support for user mi avm/res/search/search-service

Description
Added support for User Managed Identity
Fixes #2199
Pipeline Reference
 (using a temporary branch)
Type of Change

[ ] Update to CI Environment or utilities (Non-module affecting changes)
[ ] Azure Verified Module updates:

[x] Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in version.json:

[ ] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[ ] The bug was found by the module author, and no one has opened an issue to report it yet.

[ ] Feature update backwards compatible feature updates, and I have bumped the MINOR version in version.json.
[ ] Breaking changes and I have bumped the MAJOR version in version.json.
[x] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[ ] I have run Set-AVMModule locally to generate the supporting module files.
[ ] My corresponding pipelines / checks run clean and green without any errors or warnings

@krbar, as the owner of this module, please take a look. Thanks!

@rajeshkaremane Thank you very much for your contribution! Could you by any chance attach a pipeline badge showing that the module passes all validations?

Hi,
I have deployed using an internal pipeline
https://dev.azure.com/defragovuk/DEFRA-FFC/_apis/build/status%2FADP%2FCore%2Fplatform-adp-core-env?repoName=DEFRA%2Fadp-infrastructure-core&branchName=rv%2F382090-openaiinfra

@rajeshkaremane
Thank you, I tested the module and it required a few minor updates:

conflict resolution of conflict caused by the recently merged #2350
addressed some readme inconstencies: missing comma and differences in API version which were causing static validation failures
addressed a BCP321 warning

Now the module looks fine and passes all tests,
@Azure/avm-core-team-technical-bicep please review the changes as I added some new code to the PR and cannot approve it any more. The changes have been tested in a (temporary) branch users/krbr/pr2200test which I will delete after merging this PR.
Here is a pipeline badge:  (the final test still runs)

Thanks @krbar. Looks like the pipeline has failed due to existing resource with same name . Could you please delete the resource and rerun thanks

Looks good to me. You should now be able to approve the PR

Looks good to me. You should now be able to approve the PR

Waiting for a green pipeline validation, which is still running

Hi, @krbar Where can I see the version tags being applied?

Hey @rajeshkaremane the most straightforward way I know of is directly in the pipeline log: https://github.com/Azure/bicep-registry-modules/actions/runs/9694279814/job/26753261544#step:4:291


Signing cookies problem

With configuration:
nelmio_security:
    # signs/verifies all cookies
    signed_cookie:
        names: ['symfony', 'two_factor_trusted_computer']

I get my system cannot login anymore for any user. Is there a requirement for this?
symfony configuration:
framework:
    #esi:             ~
    secret:          "%secret%"
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form: ~
    csrf_protection: ~
    validation:      { enable_annotations: false }
    translator:
        enabled: false
    templating:
        engines: ['twig', 'php']
    assets: false
    default_locale:  "%locale%"
    trusted_hosts:   ~
    session:
        name: "symfony"
        handler_id:  snc_redis.session.handler
    fragments:       ~
    http_method_override: true
    ide: "phpstorm://open?file=%%f&line=%%l"

I'm experiencing this problem too, as soon as I enable signed cookies, it's impossible to login.

Anyone knows a work around so that I can use cookie signing with login working?

Same problem here

Debugging SignedCookieListener it seems that the session cookie generated by PHP is missing from the Request object. A workaround is to whitelist cookie names that you wish to sign, leaving the session cookie out.

Any ideas what's the best way to fix this, while keeping the signed cookie option?  @romainneutron Thanks!

+1 i am experiencing the same ... enabling signed cookies break the login somehow

TL;DR: do not use nelmio_security.signed_cookie.names: ['*'] to prevent the session cookie from being part of the signing process.

I tracked the problem to the fact that the session cookie is not being signed.
First: SignedCookieListener removes cookies that fail the signature check from the request: https://github.com/nelmio/NelmioSecurityBundle/blob/master/EventListener/SignedCookieListener.php#L60
Next step: SignedCookieListener only signs cookies that are part of the Response object: https://github.com/nelmio/NelmioSecurityBundle/blob/master/EventListener/SignedCookieListener.php#L85
Moving on: Instead of creating the cookie directly, for instance, using setcookie(), you'd need to inject the cookie in your Response. The code below lives in a controller.
$response = new Response();
$response->headers->setCookie(new Cookie('foo', 'bar'.time()));
return $response;

After this, you should see a cookie called foo', with a value barLONG-HASH-WHICH-IS-THE-SIGNATURE`.
Last piece of the puzzle: if you're using the default Symfony configuration, you probably use the native session storage: framework.session.storage_factory_id: session.storage.factory.native. The NativeSessionStorage is not aware of your Response object. It just builds the cookie string and pushes it out to the browser directly, using header() function: https://github.com/symfony/http-foundation/blob/5.3/Session/Storage/NativeSessionStorage.php#L161

At least that's my understanding of what's wrong.
I assume you could build Response-aware session storage to make use of the Response object. That is, of course, if you're happy with starting the session late in the request lifecycle, which you are probably not. I think I just nailed the reason why is the NativeSessionStorage creating the cookie directly.
I'll pop this problem into the ever-growing "too-hard basket" and result in other session-related security hardening measures.
Suppose you want to use the cookie signature, set up a companion (signed) cookie that lives alongside the session cookie, with the value matching the session cookie. If the session cookie value diverges or the companion cookie signature fails, terminate the session and log it as a security incident.
Not ideal, but it should work.


Update minor stimulus mismatch in Malania 2007

The stimuli of Malania 2007 had a minor mismatch to the originals which has been fixed here.

@mschrimpf Looks good to me


API docs: Add a way to show a param as optional

* @param {number} index  The index number of the slide.
* @param {number} speed  Transition duration (in ms). Optional.
* @param {boolean} runCallbacks  Whether or not to emit the `willChange`/`didChange` events. Optional. Default true.

Closed with driftyco/ionic@f3eb5fd3f2ef007b2c0432a7e81bde9be580c131
Syntax: wrap param name in [ ] to flag as optional.
@param {string} [awesomeParamName] description here.


Maskar's Map Features Suggestion List

Feedback-Based Interactivity; this looks cool, but it also means people have more of a solid sense of what they're selecting and searching for.
Post Location System; some kind of information in regional or planetary popups showing you the location of posts within the galaxy would be very cool to see.
Dynamic Border History; the ability to see the changes in faction borders over time would be interesting, though I have no idea how feasible this is.
Region Specific Maps; the ability to focus on specific regions of the galaxy and have the rest of the map fade from view, become transparent, etc, etc, would be nice to see.
Dynamic Map Modes; the ability to see regions of high player activity based on the number of posts, areas where certain factions tend to post, etc, etc; really just any sort of interesting informational overlays; would be cool.

Thanks for the feedback, ill start looking into these as some of them seem more then doable as we fill in the map with planet/region data.
Ill dm you for more info if needed


java.lang.IllegalStateException: Failed to create configuration instance.

@FairyLaunch
public class Opdrachten extends Plugin {
    @Getter
    private static Opdrachten instance;

    @Override
    public void onPluginEnable() {
        instance = this;
        Log.info("Plugin Enabled.");
    }

}

[18:17:29 INFO]: [Opdrachten] Enabling Opdrachten v0.0.12
[18:17:30 INFO]: Version mappings loaded successfully!
[18:17:34 INFO]: [ERROR] Error while scanning classes for framework
[18:17:34 ERROR]: [Fairy] java.lang.IllegalStateException: Failed to create configuration instance.
[18:17:34 INFO]: Plugin Enabled.

How should I debug this?
There aren't any additional logs

Hey @maurxce , Thanks for reporting, can you show us a minimum reproducable project?

Hey, thanks for your time and help
This issue was fixed as per your assumption:

It's most likely caused by Configuration class having additional parameter
which it's not supposed to have

My Configuration had a non-empty constructor, which expected an injected component as well.
Moving that to the method body worked out fine!


Delay after disconnections

Hi,
That bug seems to have existed in pulseaudio too and, according to the bug report, was solved. Right now everytime I have small connection problems, the audio starts lagging behind. It can be fixed by hitting pause in mpv and unpausing, so I assume mpv must keep writing in a buffer which for some reason doesn't get flushed after a reconnect, or something like that. Using 1.2.0 from portage (gentoo).

Yes, I know about this issue. I've been trying to fix (pinpoint) it for almost a year now... but without any success. Could you past here the link to the bug for PA?

Sure, here : https://bugs.freedesktop.org/show_bug.cgi?id=58746
Sounds like the same issue to me, they seem to have fixed it by messing with the buffer size if I understand it correctly

Thanks for the link, there is some valuable information there :)

Using 1.2.0 from portage (gentoo).

Try **9999. There are A LOT of changes since 1.2 (I will release 1.3 in the near future, though :D). In the master there is also the same workaround (decreased transport buffer) as in the (proposed) patch for PA - 79f68a9. I hope, that this will work for you, however do not close this issue yet, because it is not solved entirely.
I experience out of sync audio-video when I'm using mpv with a large video file (>1G) stored on a suspended hard drive (e.g USB disk). There is no problem when using hardware ALSA PCM, so this issue is for sure bluez-alsa related.

This looks like the same underlying problem as issue #15

It seems this issue is most likely fixed when using latest bluez-alsa code. Given that there has been no update here for a long time, and the related issue #15 is now closed, I am now closing this one too. Please open new issue with debug logs from latest bluez-alsa if same or similar issue occurs now.


Collection-activity-toggle-hide-outliers

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[x] Feature

Needs Design check

@exezbcz please review

Context

[x] Closes #8234
[x] Closes #8108

Did your issue had any of the "$" label on it?

[x] My DOT address: Payout

Screenshot 📸

[x] My fix has changed UI

Copilot Summary

🤖[deprecated] Generated by Copilot at 74bbdff
Added a feature to hide outliers in the price charts of NFT collections and the global market. Improved the UI and positioning of the dropdown components used to control the chart options. Refactored the NeoDropdown.vue component and updated the translation file.

🤖[deprecated] Generated by Copilot at 74bbdff

Sing, O Muse, of the skillful coder who refined the chart
Of the collection's price, with many a clever art.
He made a dropdown menu, NeoDropdown, shining bright,
And gave it a position prop, to place it left or right.

the text to 12px font please

@exezbcz
all done.
please check again

😍 Perfect, I’ve sent the payout
💵 $30 @ 5.19 USD/DOT ~ 5.78 $DOT
🧗 1cAsKZYNRb8dkSCpn4eVkEn6ycNZTGoDo5dGDgB8J1UUWK8
🔗 0x06038c33ef1abf29b3eb849ff7a261e83d4141e996332c79fb5a54976cb462cb
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


version constraints are incompatible with latest version of typer (0.12.1)

Version constraints on dbt-dry-run are incompatible with latest version(s) of typer (now at 0.12.1):
Because no versions of dbt-dry-run match >0.7.5,<0.8.0
 and dbt-dry-run (0.7.5) depends on typer (>=0.6.1,<0.7.0), dbt-dry-run (>=0.7.5,<0.8.0) requires typer (>=0.6.1,<0.7.0).
So, because {project} depends on both dbt-dry-run (^0.7.5) and typer (0.12.1), version solving failed.

I don't think there are any breaking changes in these newer versions, so should be remedied with a constraint change.

Fixed in v0.7.7 👍


fix bug with joining non-string values

to: @chunyong-lin / @Ryxias
cc: @airbnb/streamalert-maintainers
Discovered bug in classifier when joining a list of not strictly integers:
[ERROR] TypeError: sequence item 0: expected str instance, int found
Traceback (most recent call last):
  File "/var/task/stream_alert/classifier/main.py", line 26, in handler
    Classifier().run(event.get('Records', []))
  File "/var/task/stream_alert/classifier/classifier.py", line 244, in run
    self._classify_payload(payload)
  File "/var/task/stream_alert/classifier/classifier.py", line 164, in _classify_payload
    self._process_log_schemas(record, logs_config)
  File "/var/task/stream_alert/classifier/classifier.py", line 129, in _process_log_schemas
    parsed = parser.parse(payload_record.data)
  File "/var/task/stream_alert/classifier/parsers.py", line 482, in parse
    valid = valid and self._key_check(record, self._schema, self._optional_top_level_keys)
  File "/var/task/stream_alert/classifier/parsers.py", line 259, in _key_check
    LOGGER.debug('Found keys not expected in record: %s', ', '.join(sorted(found)))

Changes

Casting items in list to string.

Testing
Added unit test for this.

Coverage remained the same at 96.609% when pulling 39caef212d3a263ff94dd73aacbdac188bfba174 on ryandeivert-fix-join-bug into 0670203a1da6a89d4ea7d51db338f462ebb5d15e on release-3-0-0.


Fix metadata test breakage

REST server now returns item sequence number on source resource entry

Fixes: https://github.com/IBM-Bluemix/gp-js-client/issues/58

Coverage remained the same at 90.862% when pulling 7a88be6d215bce79d0636b034d91f95f2adb920d on srl295:fix-sequence into 42f91f603864c7dd8988cd7b02cfdf00d937c439 on IBM-Bluemix:master.

LGTM


KAFKA-14705: Remove redirections and unused tools

This is just applying the plan laid out by KIP-906 regarding old tools package redirections and unused/broken tools.

@mimaison fyi


GUARD-164 Update Inventory Only if Manage Stock is On; Batches for Product Updates in v3

…ucts in sequential batches of 100

Timothy said we currently do a sequential batch of 100 for inventory sync. Doing the same here. Unfortunately, there are no instances in the app or NuGet packages for C# 6 that do that already


502 error Unable to start Reporting

Test scenario:
1.Git clone from develop
2.nano .env and change to
TAG_REPORTING_UI=<IP_ADDRESS>-SNAPSHOT
TAG_REPORTING_SERVICE=<IP_ADDRESS>-SNAPSHOT
3../zebrunner.sh setup
Actual result :  Unable to start Reporting.
ERROR: Couldn't find env file: /home/ec2-user/tools/zebrunner/reporting/configuration/postgres/variables.env

@dhreben, issue should be fixed by registering in reporting/.env concrete 3.8-management rabbitmq version.
please, redeploy from scratch using zebrunner branch: develop.
Also, test carefully new integrations, they seems to be broken as minimal for Jenkins

Fixed.


Fix "Learn More" button

Fix the "Learn More" button on the landing page

Currently it takes you to the route /workflow which has nothing there. The landing page already describes the workflow which I think is great, so we can either get rid of this button or have it point to a page about the organization, or a more detailed description of the tech.

Actually I do have ideas about a learn more page! But this page is not on a priority at all, so we can bring this up after the most of things are done.


edit storage section

@Bradamant3 PTAL. Fairly heavy copyedits
Tried to focused on:

clearer explanations
consistent punctuation
consistent terminology

/lgtm. Changed my mind, will merge and deal with conflicts on my end :-)


docs: change Twilio's ADOPTERS.md contact to @alecjacobs5401

Hey, I just made a Pull Request!
My last day at Twilio is 2024-05-17 and Alec Jacobs will take over as Tech Lead and point person. Update Twilio's contact in ADOPTERS.md to reflect the change.
It has been a blast!
Follows #11943
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

/cc @alecjacobs5401


Create System Design Document

The system design document helps to ensure that the system will meet the needs of the organization or user: By creating a system design, it is possible to identify and plan for the specific needs and requirements of the organization or user. This can help to ensure that the final system will be well-suited to the organization's goals and objectives, and will be able to support the organization's operations and processes. The system design provides a clear and comprehensive plan for implementation: A system design serves as a roadmap for the development and implementation of the system. The system design also helps to identify potential problems and issues: By creating a system design, it is possible to identify potential problems or issues that may arise during the development and implementation of the system.

This is kinda covered by #72 and #78. So closing for now.


go1.8: no type aliases

When I used go get -u github.com/antonmedv/expr, I met vendor/github.com/antonmedv/expr/type.go:9: syntax error: unexpected = in type declaration this error, after troubleshooting go1 .9 is supported, but our production environment is go1.8, how can I solve it?

yes, looks like 1.8 is too old :)
https://travis-ci.org/antonmedv/expr/builds/444297524
What what added in 1.9?

Type aliases. Well if your what you can send PR and remove type alias.

I've did it myself: https://github.com/antonmedv/expr/releases/tag/v1.1.3

thx


Volume control doesn't work with DELL U2520D on v2.1.0

To Reproduce
Steps to reproduce the behavior:

Go to MonitorControl on top menu bar
Click on Volume adjust level
Try to adjust the volume level
Sound output for Audio jack 3.5mm still in maximum level

Expected behavior
Volume adjustment should be work

macOS version: Big Sur 11.2.3 (20D91)
Mac model: MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)
MonitorControl version: v2.1.0
Monitor(s): Dell Monitor U2520D
Apple Silicon/M1 (yes or no): No

Same issue on DELL U2719DC.

Same monitor, same issue. DELL U2520D is displayed and recognised but no volume change occurs.

+1 for the DELL U3415W

+1 for DELL U2717D

+1 for DELL U2720D

+1 for DELL U2422H

Seems like Dell issues are quite the trend, merging this one with #226


官方网页在chrome浏览器打开，鼠标滚轮滚动会卡住无反应; 自己基于naive-ui写的项目也有这种情况

Describe the bug
官方网页在chrome浏览器打开，鼠标滚轮滚动会卡住无反应，而在edge 浏览器打开没有这种现象；
自己基于naive-ui写的项目也有这种情况
Steps to reproduce
应该不用写复现步骤了吧
Link to minimal reproduction
re
System Info
System:
    OS: Windows 10 10.0.19044
    CPU: (12) x64 12th Gen Intel(R) Core(TM) i7-1255U
    Memory: 1.45 GB / 15.69 GB
  Binaries:
    Node: 20.10.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.2.5 - C:\Program Files\nodejs\npm.CMD
    pnpm: 8.14.3 - C:\Program Files\nodejs\pnpm.CMD
  Browsers:
    Edge: Chromium (123.0.2420.81)
    Internet Explorer: 11.0.19041.3636

Used Package Manager
pnpm
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion.
[X] The provided reproduction is a minimal reproducible example of the bug.

未复现

未复现

提供demo  容易复现问题

This issue does not have any recent activity. If you are still experiencing similar problems, open a new error, including a minimal copy of the problem


Is there a way to only format manually (never format on save)?

Did you check existing requests?

[X] I have searched the existing issues

Describe the feature
I want to format when I press a key binding, not when I save the buffer. Is there a way to do this, a config option maybe?
I'm currently using kickstart with lazy.nvim, this is my conform config:
{ -- Autoformat
    'stevearc/conform.nvim',
    opts = {
      notify_on_error = false,
      format_on_save = {
        timeout_ms = 500,
        lsp_fallback = true,
      },
      formatters_by_ft = {
        lua = { 'stylua' },
        -- Conform can also run multiple formatters sequentially
        -- python = { "isort", "black" },
        --
        -- You can use a sub-list to tell conform to run *until* a formatter
        -- is found.
        javascript = { { 'prettierd', 'prettier' } }
      }
    }
  }

I've tried fiddling with the config, deleting the whole format_on_save block, etc. but it seems to always autoformat on save.
Provide background
No response
What is the significance of this feature?
strongly desired
Additional details
No response

Disregard, it was some nonsense with zig autoformatting on save for some reason. Had to set let g:zig_fmt_autosave = 0 for anyone else running into this problem


[Feature Request] el-input: password box should have a closed-eye when password is not revealed

Existing Component
yes
Component Name
el-input
Description
when password is revealed in password box, el-input should have open-eye icon, and when password is hidden, icon should be closed
right now el-input where always show a open-eye icon, which is a little strange compare to other ui library such as antdv.
element:

and i also notice that Element doesn't have a closed-eye icon, really hope this feature can be added.
antdv:

It is difficult to fix this problem. We need to add an eye closed icon to the font icon. I hope someone can help or suggest a solution.

How about using a css style to  like this:
background: linear-gradient( to top left, transparent 0%, transparent calc(50% - 1px), #c0c4cc 50%, transparent calc(50% + 1px), transparent 100% );


GetRandomArgument is gone but the new method doesn't work in GSE.

with GetRandomArgument gone, I've turned to the following code:
/run local t={"insert something funny","insert something vaguely insulting","insert question re parentage","ask whether they’ve had a blow to the head","etc"}SendChatMessage(t[random(#t)],"YELL")
this works as a normal macro but not in GSE. The lua error:
Message: [string "local t=SendChatMessage(t[random(#t)],"YELL..."]:1: attempt to get length of global 't' (a nil value)
actually, I think the error is that the above code won't save like that and gets shortened to just:
/run local t=SendChatMessage(t[random(#t)],"YELL")
This game is made much more entertaining when I can spout off random shit with a much higher character limit. GSE is a fantastic addon and I thank you very much for it.

It's never going to work in GSE.  Its outside the space where GSE can operate.

You could however write this as a Variable.
on the variable part try something like:
function()
  local t={"insert something funny","insert something vaguely insulting","insert question re parentage","ask whether they’ve had a blow to the head","etc"}
  return t[random[#t]
end

and then in the macro put
/run SendChatMessage("~~VARIBLENAME~~","YELL")

You can test the variable returns a different value by testing the variable in the editor.

See #691 and #726

you might also need to use ' instead of " or matching [[ ]] tags.  The use of " might be causing the issue.

thanks for the huge and timely help! so far using the variable is working to an extent. using the test variable gives a random string as expected but when I use the macro it doesn't seem to recalculate the variable if that makes sense. It will select a string randomly but then it will keep giving that same string over and over. I need to tell it to recalculate the variable every time I use the macro somehow. I will experiment with ' and [[ ]] next.

RNG could just be being RNG - It may also be that GSE is "locked" in combat.  I use the t[random(#t)] syntax in GSE's random function and it works.
Looking at Lua further there is another syntax of return t[random(1, #t)] that might be more explicit.

/run local t={'insert something funny','insert something vaguely insulting','insert question re parentage','ask whether they’ve had a blow to the head','etc'};SendChatMessage(t[random(#t)],'YELL') might work as a one liner - i changed the "'s to ' and added in the missing ;

yeah I just can't seem to get anything to properly work. So close with the variable working but just for some reason not randomizing when you actually use the macro. I think I'm actually making this harder than it needs to be. I'll just restructure my macros to be on separate lines and use your random line function. Probably should have done that in the first place.

https://youtu.be/Ln2n_pYcpOk
All working after a bit of busywork :P


Add optional 'spacer' argument to Spinner

Addresses #2395
Type of changes

[ ] Bug fix
[x] New feature
[ ] Documentation / docstrings
[ ] Tests
[ ] Other

Checklist

[x] I've run the latest black with default args on new code.
[x] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[x] I've added tests for new code.
[x] I accept that @willmcgugan may be pedantic in the code review.

Description
Please describe your changes here. If this fixes a bug, please link to the issue, if possible.

@willmcgugan I've completed the missing things on the checklist, so this one is ready for review.

Not convinced this is necessary. If the spacing is not consistent, then perhaps that should be addressed. But I don't think it needs to be an option.
Closing because I'm clearing the backlog. Re-open if you want to discuss further.

We discussed this before; please see your comment in #2395:

The spinners are inherited from another project, and I suspect they are there to compensate for differences in how emojis are rendered on different platforms.

If your spacer argument makes it look a little better on your platform, at the expense of it breaking on another, then I would't want to add it.
If you can show me that it doesn't visually break on Mac, Windows, and Linux, I'll reconsider...

As far as I can see, this is independent of platform.
The default value for spacer makes it so that the behavior is identical to what it was before.

And if you change it from the default you break another platform. Which will be the case if the spinners were crafted with the space in mind.

I don't understand how spaces act differently on the various platforms. In any case, the original issue is easy to work around.


Karl moon patch 1

Please start submitting prices.

Merged in https://github.com/TowoLabs/ftso-signal-providers/commit/e53b1faeb76cae29ac5e265ed59f6b5ea93faa5b


Hard crash on Android

Unexpected view type nested under text node class abi28_0_0.com.facebook.react.uimanager.LayoutShadowNode
To reproduce:
<Markdown>{'a  \nb'}</Markdown>

The spaces followed by the newline seem to be the issue. 'a\nb' is fine, so is 'a \nb'

Thx, will take a look at it

Fixed issue in v3.2.8 was a issue with hardbreak being seen as a non block element.


Dir picker shows nothing at the root location

简略描述 / Describe the bug
There is a Magisk module "ExSDCard Access Enabler" that mounts the external SD card under "/mnt/media_rw/". Placing the download location of EhViewer in this way will allow faster access to files on the external storage (compared with the Document API).
However, I found that I failed to navigate into "/mnt/media_rw/" on one of my devices, as at "/" it shows nothing:

如何重现 / To Reproduce

In download settings, press "Download Location"
Press "continue"
Navigate backward to "/".
Check if it is blank

预期行为 / Expected behavior
It should show the dirs at "/", so I can navigate into "/mnt/media_rw/".
On my another device, here is the correct behavior:

And the location url is now like this:

设备型号与 Android 版本 / Device model and Android version

Device model: OPPO Find7 (storage merged)
Android version: Android 7.1.2, Official OmniROM (7.1.2-20171120-find7-WEEKLY)

Is the Magisk module "ExSDCard Access Enabler" works on other apps?

Interesting. Hinted by your words, I found on this machine (find7), apps without root permission will fail to access "/". "/mnt" is accessible but "/mnt/media_rw" not as its permission is 750. So, even though the magisk module did work, no regular app will be able to access the mount point. It appears that the rom has a bit stricter permission.
To my knowledge, it seems this issue is ROM/Device-dependent and no effort is required from developers. But, do you know this case and have any suggestion?

Please try this one. Click the "Preset" button to select a directory. One directory should be in the SD card.
https://drive.google.com/open?id=1mzPxnqyjU51msKT6MoJ7F72JVMYlpx3Y

Sorry for my delay. I see your point, that you added shortcuts to quickly navigate into these writable app data dirs. That's a good idea to avoid using the Document API, and works well.
It's pleased to see the commit being added. Thank you for the work.


Save-Help Needs Ability to Retrieve Help for Modules not on Machine

Please build in the capability to Save-Help -Module * or some form of lookup where it not only pulls help for all modules on a machine, but allows you to pick other modules as well (e.g. IIS, Active Directory, SQL).  Not having this feature makes it very difficult to build a reliable offline, regularly updated repository on a share.

I think this would need some form of centralised repository of at help information or at least a directory of forwarding links, which might already exist, but if it does I've not seen any kind of indication of how you'd go about directly accessing help information like this.
That said, this absolutely should be possible. 😄

The PSGallery exposes the module manifests on the website. Save-Help could be updated to check PSGallery for theHelpInfoUri link. It doesn't help modules that aren't available on the gallery. The gallery would also need to be updated have a way to expose the raw file instead of the formatted HTML page, for example: https://www.powershellgallery.com/packages/IISAdministration/<IP_ADDRESS>/Content/IISAdministration.psd1

There's probably an API call that can be used to retrieve the raw file or something. But as you said, it won't help the Windows subsystem modules which tend not to be on the gallery. 😕


Highlighting the wrong match

Got this report by email:

while playing with the rubygems demo I noticed that when you do a typo, the result highlighting is slightly off. E.g. if you search for foodcritc (note the missing i before last c) the top result is foodcritic which is good but it highlights [foodcriti]c as a search match, I assume it is highlighting based on the query string length and not based on what actually matched. Should be [foodcrit]ic IMO.

Note that this issue is also present on rust and pypi pages, e.g. https://pypi.meilisearch.com/?q=jobib - so I guess it's more a core issue of MeiliSearch than one specific to this repo.

Hi!
@erlend-sh the highlight we use for the demo is the highlight returned by MeiliSearch. That's why @Seldaek can notice the same "issue" on Pypi.
That's not an issue but an expected behavior of MeiliSearch. MeiliSearch uses the Levenshtein algorithm to handle typos.
When you do a typo, MeiliSearch tries to change characters and finds if it matches a word in your documents. In your example, MeiliSearch finds a result by changing the last character: i instead of c. You wrote foodcritc (9 characters), that's why you have the highlight foodcriti (9 characters) instead of foodcrit (8 characters): because of the character change.
Here are some links about typo tolerance:
https://docs.meilisearch.com/guides/advanced_guides/typotolerance.html#typo-tolerance-rules
https://docs.meilisearch.com/guides/main_concepts/relevancy.html#examples

Hey, thanks for the clarification. The matching thanks to typo tolerance makes complete sense and that's great to have, no question. I still find it weird that it highlights the string including the typo fixes though, but it's ultimately a UX decision you as a project have to make. Feel free to close this if you see fit (I was the one who initially reported this to @erlend-sh via email btw).

Thanks for asking this question @Seldaek! Indeed, I'm not sure this behavior is obvious for everyone 😉
As you said, it's more a core-engine discussion, so if we finally re-open the debate, it will be in the MeiliSearch part.
I close the issue 🙂

To complete my previous answer, sometimes, the typo fix is in the middle of a word.
Example: documant needs to highlight [document] and not only [docum]e[nt] (if we only highlight the non-typo part).
In your example, the change is at the end of the word, that's a specific case 🙂


Using emscripten webgpu.hpp with webgpu-raii.hpp causes compilation errors

It looks like there is an inconsistency between the Dawn and Emscripten versions of webgpu.hpp: one uses addRef, the other uses reference, to increment the refcount.
This means that it is not currently possible to use the RAII wrappers on Emscripten:
WebGPU-raii/webgpu-raii.hpp:70:9: error: no member named 'addRef' in 'wgpu::Device'
   70 |                 m_raw.addRef();

There are numerous cases of mismatch these days, as all the breaking changes are happening prior to the upcoming v1 of the API. So it is important to stick to the very version of emscripten/dawn/wgpu-native that is marked in "txt" file next to your webgpu.hpp (if you're using this distribution repo).
The "AddRef" way is the latest standard, and most likely the one to remain on the long run. But Emscripten's lagging behind and may still use Release (and it probably depends on which version of emscripten), which is why I maintain different webgpu.hpp. I do not want to take initiatives and "adapt" emscripten API to the new standard before they do otherwise it'll make even more variants of versions around.
That being said, if your project needs to run with the same C++ codebase and using todays version of Dawn and emscripten, I'd suggest you to manually edit the webgpu.hpp that comes for your version of emscritpen so as to replace "release" by "addRef" and thus be able to write only "the dawn way" and have it adapted to (old) emscripten. The header is made such that this kind of change is easy enough: there is only the defininition of the HANDLE macro to change and it'll have effect on all objects.
Note that this will not be the only discrepancy you'll have to deal with. A possible other solution is to switch to the fork of emscripten maintained by Dawn people, though I haven't tested it.

Thanks for the advice! I'll modify the header for now.


Fix suggestion for #4253

In the cpp tokenizer, angled brackets (<>) were separated from other brackets to hold an additional post-condition:
...
	[/[{}()\[\]]/, '@brackets'],
	[/[<>](?!@symbols)/, '@brackets'],    // <----

Not sure why, one guessed motivation is that a tokenizer needs to be extra careful with < since it might eventually resolve to the operator <<. However,
(1) this doesn't solve it, << is still not tokenized to an operator (it fails all tokenizer regexes),
(2) this extra-liberal exclusion causes bugs like #4253.
This suggested fix treats angled-brackets identically to other brackets. A true c++-conforming tokenizer might require @rematch and other heavy machinery, but this one is pretty certain to be at least some step forward.

Ping

Thanks for the PR!


Not building production with 0.57.1

I upgraded to 0.57.1 - in dev mode it works fine. But when trying to build production I get the following errors:
> Task :app:bundleReleaseJsAndAssets
warning: the transform cache was reset.
Loading dependency graph, done.
bundle: Writing bundle output to: C:\Users\Mercurius\Documents\GitHub\diddo\android\app\build\generated\assets\react\release\index.android.bundle
bundle: Done writing bundle output
bundle: Copying 1 asset files
bundle: Done copying assets

> Task :react-native-dialogs:compileReleaseJavaWithJavac
Note: C:\Users\Mercurius\Documents\GitHub\diddo\node_modules\react-native-dialogs\android\src\main\java\com\aakashns\reactnativedialogs\modules\DialogAndroid.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

error: resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found.
error: resource android:style/TextAppearance.Material.Widget.Button.Colored not found.
C:\Users\Mercurius\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\d94b99b494c4f9c5f565af0a9fe2d1a5\res\values-v26\values-v26.xml:9:5-12:13: AAPT: error: resource android:attr/colorError not found.

C:\Users\Mercurius\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\d94b99b494c4f9c5f565af0a9fe2d1a5\res\values-v26\values-v26.xml:13:5-16:13: AAPT: error:
resource android:attr/colorError not found.

C:\Users\Mercurius\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\d94b99b494c4f9c5f565af0a9fe2d1a5\res\values-v26\values-v26.xml:17:5-93: AAPT: error: style attribute 'android:attr/keyboardNavigationCluster' not found.

C:\Users\Mercurius\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\d94b99b494c4f9c5f565af0a9fe2d1a5\res\values\values.xml:251:5-69: AAPT: error: resource android:attr/fontStyle not found.

C:\Users\Mercurius\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\d94b99b494c4f9c5f565af0a9fe2d1a5\res\values\values.xml:251:5-69: AAPT: error: resource android:attr/font not found.

C:\Users\Mercurius\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\d94b99b494c4f9c5f565af0a9fe2d1a5\res\values\values.xml:251:5-69: AAPT: error: resource android:attr/fontWeight not found.

error: failed linking references.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-background-color:verifyReleaseResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 47s
140 actionable tasks: 132 executed, 8 up-to-date

Add this lines in the end of the build.gradle file on the android folder.
subprojects {     project.configurations.all {         resolutionStrategy.eachDependency { details ->             if (details.requested.group == 'com.android.support'                     && !details.requested.name.contains('multidex') ) {                 details.useVersion "27.1.1"             }         }     } }

Thank you @ecavalcanti! I am trying now.

Couldn't get it to work while in my apps android/build.gradle, going to try putting this into node_modules/react-native-dialogs/android/build.gradle now:

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency {
            details -> if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
}

@ecavalcanti I think it was correct to place this inside react-native-dialogs/android/build.gradle is this correct?

No @Noitidart. The android folder into your root project folder.

Here my <project>/android/build.gradle.
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 18
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
    }
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
        google()
    }
}

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

Oo, Thanks will try again at top level.

Wow I fixed it. It was weird. Into my [PROJECT]/android/build.gradle I had to add your part above but then also an extra bit:
subprojects {
    project.configurations.all {

        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }

        afterEvaluate {project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion 26
                    buildToolsVersion '26.0.2'
                }
            }
        }

    }
}

See that afterEvaluate. Do you know why this fixed it @ecavalcanti ?
Here is my final [PROJECT]/android/build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
    }
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
        google()
    }
}

subprojects {
    project.configurations.all {

        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }

        afterEvaluate {project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion 26
                    buildToolsVersion '26.0.2'
                }
            }
        }

    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

closing as it seems to be resolved


Alternative way for automated Cpp testbed

Pull request description and content
This pull request is an alternative way to create an automated test for integrating the C++ testbed into the Gradle and Ant build processes.

I will work on getting Jenkins and Appveyor to be able to resolve cpp, gcc and g++ ... but it is risky and time consuming so I will do other PRs first


Data Slices Info

Info Required:

Page
Viz Type
Fields
Axes
Granularity
Filters

Done and shared w/ @akkisagiraju and @shreyaagrawal0809 .


Log.ts : duplicated methods with different modifiers.

Hi,
This is a very nice and clean boilerplate !! even if I'm new to typescript, it feels solid enough to build on top of it, but I have question about the reason of the duplication of methods (debug, info, warn, error, log) in src/core/log/Log.ts while setting different modifiers for them.

Hi, thanks for your information.
We just did a big refactoring, so this issue is gone. Just be patient for our new release.

OK ! That sounds promising :) ! I'll wait for it.
Good job ;) !!

Hi guys, I'm not sure if this is related but is winstonLoader even necessary?
I mean, all logs are handled by the logger in src/lib/logger/Logger.ts or I'm missing something?
Best regards!


[New Snap] Polkagate

Checklist
All items in the list below needs to be satisfied.

[x] Is the Snap repository publicly accessible and linked in this ticket? https://github.com/PolkaGate/snap
[x] Is the Snap distributed on npm and linked in this ticket? https://www.npmjs.com/package/@polkagate/snap
[x] Has an audit been performed and the audit report attached or linked in this issue? https://sayfer.io/audits/metamask-snap-audit-report-for-polkagate-snap/
[x] Is a complete list of discovered vulnerabilities from the audit documented in this issue?
[x] For vulnerabilities that have been deemed necessary to be addressed, are the links to the fixes attached to this issue?
[x] For vulnerabilities that have been deemed not necessary to be addressed, is a reason for each of them documented in this issue?
[ ] The corresponding pull request in this repo has been merged.

Audit Findings:

No warning when Signing information [Fixed]
Insufficient Unit Tests [Fixed]

Version to be allowListed: 0.2.1


Add port exclusion option to task.rb

Minor change to add support for the --exclude-ports flag.

Would it make sense to flesh this out to operate like port inclusion does? Sort of like:
    long_option :flag => '--exclude-ports', :name => :exclude_ports do |opt,value|
      unless value.empty?
        [opt.flag, value.map { |port|
          case port
          when Range
            "#{port.first}-#{port.last}"
          else
            port.to_s
          end
        }.join(',')]
      end
    end

@postmodern thoughts?

Added the option, but extracted the port range formatting logic into a reusable method.


Adapt Cassandra VectorStore constructor DB connection through cassio.init

Description
The cassio library underlying the Cassandra Vector Store integration has gained a global cassio.init(...) method that sets a globally-available database connection. This way, for all subsequently created CassIO table abstractions (such as the one behind LlamaIndex's CassandraVectorStore, the connection parameters session and keyspace can be left out entirely, in that case falling back to the global values.
This PR adapts LlamaIndex' class signature to this usage, essentially making the session and keyspace parameters of CassandraVectorStore optional as well.
A slightly breaking change in the __init__
I am aware that this introduces a slight breaking change, limited to former instantiations being done passing positional arguments. That is, keyword-based existing code does not suffer any disturbance, but the (IMO almost nonexistent) positionally-specified constructions such as this one would raise an error with this PR:
my_v_store = CassandraVectorStore(
  my_session,
  my_keyspace,
  table="my_table_name",
  ...
)

While I think that enabling use of the cassio.init(...) handy method, on the long run, vastly overweighs the discomfort of having to revise usages like the above, I took care of:

rephrasing the docstring for the __init__ method to make it as clear as possible how the code should be changed to work again;
enforcing, with the * special argument, a keyword-only syntax from now on for the __init__. This well matches the keyword-based examples that we provide everywhere and would prevent future similar trouble, and incidentally results in an error message from the occasional legacy positional-based usage that points to the actual proper cause of the error.

I would be happy to discuss the motivation behind this choice in more detail! Thank you for a review!

Thank you @Disiok for taking an interest in this PR! Just FYI, I had a discussion on this very improvement with @logan-markewich before submitting the PR, with whom you may find it convenient to sync. Thank you again!

Thanks for the detailed explanation of the change and being thoughtful about the slightly breaking change. I agree with you that it's worth the minor pain to upgrade this!


preserve and chain writer CBs in fregion::writer

@smunix is there such use-case to cascade the write callback?

@smunix is there such use-case to cascade the write callback?

yes, transactional log (recordOrdering) breaks without this change.

Are you sure that it breaks without the change?  Maybe we should have a test to validate it I guess.
As I recall, this would normally result in one write CB per wseries (in order to correlate recording across all of them), which doesn't need multiple callbacks in a single wseries.

Without this change, the following is broken:
writer w = ...; auto &s1 = w.series<T1>(); auto &s2 = w.series<T2>(); w.recordOrdering("log", s1, s2); s1.setWriteCB([](uint64_t){   acmeShootMissile(); });

But you can't do w.series<T1>(); without a name right?  And if you do auto& s1=w.series<T1>("x"); auto& s2=w.series<T2>("y"); then w.recordOrdering("log",s1,s2); works without your change right?

(i.e.: because the callback is on the series, different series having just one callback is sufficient for recordOrdering to work correctly for recording a correlation series between all of them)

Basically, the use-case for multiple callbacks per series would be multiple correlation sequences where the included set of series between them might overlap (though historically we haven't ever had such a use-case, it's possible that we might want it).

w.series<T1>() requires a name...
Yes, it was just a snippet of code to convey the idea of how I'm using the APIs here

(i.e.: because the callback is on the series, different series having just one callback is sufficient for recordOrdering to work correctly for recording a correlation series between all of them)

Agreed, yes. Writing w.recordOrdering() at the end works only for an astute software engineer, but not for the careless developer I can be at times (one who relies on the APIs to do the right thing irrespective of the order in which they get invoked).
In one of my apps, I'm using this writeCBs to keep track of the offsets  at which I write some of my data.

Ah that's a good use-case too, hadn't thought of that.  :)


perf(request): Optimize HTTP date parsing

Don't check for obsolete date formats by default. When obsolete date
formats are not enabled, avoid unnecessary processing time and data
structure instantiation.

Current coverage is 100.00%

Merging #589 into master will not affect coverage as of b5be5b5

Powered by Codecov. Updated on successful CI builds.

:+1:


Controller mesh rotation

There was a small problem with left-handed systems (the controller mesh was rotated wrong).

feeling better:)


dasel put -t json -s 'array.[]' -v "{…}" to a TOML file crashes dasel

Describe the bug
dasel put fails to write more than one complex element (of type JSON, which is apparently how one denotes an object regardless of the target format) to an array in a TOML file.
To Reproduce
Steps to reproduce the behavior:
$ touch test.toml
$ dasel put -f test.toml -t json -s "array.[]" -v "{ \"key\": \"value\" }"
$ cat test.toml
array = [{ key = "value" }]
$ dasel put -f test.toml -t json -s "array.[]" -v "{ \"key\": \"value\" }"
panic: reflect.Set: value of type []interface {} is not assignable to type []map[string]interface {}

goroutine 1 [running]:
reflect.Value.assignTo({0x104b89c80?, 0x1400012d5d8?, 0x104ba5ea0?}, {0x104a0a05d, 0xb}, 0x104b89ec0, 0x0)
        reflect/value.go:3145 +0x214
reflect.Value.Set({0x104b89ec0?, 0x1400012d170?, 0x94?}, {0x104b89c80?, 0x1400012d5d8?, 0x140003562d0?})
        reflect/value.go:2160 +0xc8
github.com/tomwright/dasel.Value.Append({{0x104b9eba0, 0x140002e9e50, 0x94}, 0x14000328540, 0x140003285b0, 0x140003562d0})
        github.com/tomwright/dasel/value.go:239 +0x17c
github.com/tomwright/dasel.glob..func3(0xf000000000000006?, 0x16?, {0x104faf9c8?, 0x14000356390?, 0x140002dae20?})
        github.com/tomwright/dasel/func_append.go:26 +0x25c
github.com/tomwright/dasel.BasicFunction.Run(...)
        github.com/tomwright/dasel/func.go:140
github.com/tomwright/dasel.(*Step).execute(0x1400014e960)
        github.com/tomwright/dasel/step.go:30 +0x5c
github.com/tomwright/dasel.(*Context).Next(0x14000275300)
        github.com/tomwright/dasel/context.go:225 +0x1cc
github.com/tomwright/dasel.(*Context).Run(0x104be5480?)
        github.com/tomwright/dasel/context.go:193 +0x34
github.com/tomwright/dasel.Put({0x104be5480, 0x14000356180}, {0x16b8cb9aa, 0x8}, {0x104be5480?, 0x14000356150?})
        github.com/tomwright/dasel/context.go:128 +0xa0
github.com/tomwright/dasel/internal/command.runPutCommand(0x14000331cc8, 0x1049e0ca7?)
        github.com/tomwright/dasel/internal/command/put.go:132 +0x4ac
github.com/tomwright/dasel/internal/command.putRunE(0x14000338300?, {0x14000275200, 0x0, 0x8?})
        github.com/tomwright/dasel/internal/command/put.go:83 +0x304
github.com/spf13/cobra.(*Command).execute(0x14000338300, {0x14000275180, 0x8, 0x8})
        github.com/spf13/cobra@v1.6.1/command.go:916 +0x5c8
github.com/spf13/cobra.(*Command).ExecuteC(0x14000338000)
        github.com/spf13/cobra@v1.6.1/command.go:1044 +0x35c
github.com/spf13/cobra.(*Command).Execute(...)
        github.com/spf13/cobra@v1.6.1/command.go:968
main.main()
        github.com/tomwright/dasel/cmd/dasel/main.go:10 +0x24
$ dasel put -f test.toml -t json -s "array.[]" -v 123
panic: reflect.Set: value of type []interface {} is not assignable to type []map[string]interface {}

goroutine 1 [running]:
reflect.Value.assignTo({0x1055fdc80?, 0x1400012d578?, 0x105619ea0?}, {0x10547e05d, 0xb}, 0x1055fdec0, 0x0)
        reflect/value.go:3145 +0x214
reflect.Value.Set({0x1055fdec0?, 0x1400012d110?, 0x94?}, {0x1055fdc80?, 0x1400012d578?, 0x140002d62a0?})
        reflect/value.go:2160 +0xc8
github.com/tomwright/dasel.Value.Append({{0x105612ba0, 0x14000269e20, 0x94}, 0x140002aa540, 0x140002aa5b0, 0x140002d62a0})
        github.com/tomwright/dasel/value.go:239 +0x17c
github.com/tomwright/dasel.glob..func3(0xef00000000000006?, 0x16?, {0x105a239c8?, 0x140002d6360?, 0x1400025ade0?})
        github.com/tomwright/dasel/func_append.go:26 +0x25c
github.com/tomwright/dasel.BasicFunction.Run(...)
        github.com/tomwright/dasel/func.go:140
github.com/tomwright/dasel.(*Step).execute(0x1400010e9b0)
        github.com/tomwright/dasel/step.go:30 +0x5c
github.com/tomwright/dasel.(*Context).Next(0x140001f3300)
        github.com/tomwright/dasel/context.go:225 +0x1cc
github.com/tomwright/dasel.(*Context).Run(0x105659480?)
        github.com/tomwright/dasel/context.go:193 +0x34
github.com/tomwright/dasel.Put({0x105659480, 0x140002d6150}, {0x16ae579ba, 0x8}, {0x105659480?, 0x140002d6120?})
        github.com/tomwright/dasel/context.go:128 +0xa0
github.com/tomwright/dasel/internal/command.runPutCommand(0x140002b3cc8, 0x105454ca7?)
        github.com/tomwright/dasel/internal/command/put.go:132 +0x4ac
github.com/tomwright/dasel/internal/command.putRunE(0x140002ba300?, {0x140001f3200, 0x0, 0x8?})
        github.com/tomwright/dasel/internal/command/put.go:83 +0x304
github.com/spf13/cobra.(*Command).execute(0x140002ba300, {0x140001f3180, 0x8, 0x8})
        github.com/spf13/cobra@v1.6.1/command.go:916 +0x5c8
github.com/spf13/cobra.(*Command).ExecuteC(0x140002ba000)
        github.com/spf13/cobra@v1.6.1/command.go:1044 +0x35c
github.com/spf13/cobra.(*Command).Execute(...)
        github.com/spf13/cobra@v1.6.1/command.go:968
main.main()
        github.com/tomwright/dasel/cmd/dasel/main.go:10 +0x24
$ dasel put -f test.toml -t json -s "array2.[]" -v 123
$ dasel put -f test.toml -t json -s "array2.[]" -v "{ \"key\": \"value\" }"
$ dasel put -f test.toml -t json -s "array2.[]" -v 1234
$ cat test.toml
array2 = [123.0, { key = "value" }, 1234.0]

[[array]]
  key = "value"

Expected behavior
The above commands should succeed.
Desktop (please complete the following information):
$ dasel -v
dasel version 2.0.2

Thanks for raising this issue. I am able to replicate it and will do some digging.
As an FYI, you are able to create a complex object using any of the parsers. Here's an example with TOML input:
dasel put -f test.toml -t toml -v 'key = "value"' 'array.[]'

The related docs are here: https://daseldocs.tomwright.me/commands/put
Specifically for the -t,--type flag:

The type of value we are writing.
Can be string, int or bool. If it is not contained in that list dasel attempts to find a read parser of --type and if found will read the input value as a document.

@TomWright thank you for looking into this!
FWIW, I had tried using -t toml for the input value but couldn't get it to work with multiple pairs at the same point. A comma in between (key = "value", key2 = "value2") wouldn't parse.

I am currently reworking the encode/decode logic for all formats as part of https://github.com/TomWright/dasel/pull/289.
I can reevaluate and hopefully fix this issue as part of that work.


Fix absence of Quick Info in case of malformed XML Doc

This fixes https://github.com/Microsoft/visualfsharp/issues/2506

@dotnet-bot test this please

linux and mac don't love us :)

@dotnet-bot test this please

@vasily-kirichenko
Thanks for this
Kevin


Clarify DCO agreement steps

In the review of #3192 the question came up, if new contributors need to accept the Developer Certificate of Origin agreement through a specific step. This should be clarified in CONTRIBUTING.md. If nothing is required, that's great. A half-sentence clarifying this will avoid possible confusion.

We should not require a specific step.


[IMPROVEMENT] Improve handling of 16TiB+ volumes with ext4 as the underlying file system

Is your improvement request related to a feature? Please describe (👍 if you like this request)
ext4 supports a maximum file size of 16TiB. So Longhorn volumes greater than or equal to 16TiB cannot be created on an ext4 disk and Longhorn volumes less than 16TiB cannot be expanded to greater than or equal to 16TiB on an ext4 disk.
The Longhorn UI and control plane allows the creation of 16TiB volumes. These volumes fail during initial attachment due to a SIGSEGV for the replica process. The failure is confusing to users, as it is not clear why the volume fails to attach.
The Longhorn UI and control plane allows the expansion of existing volumes to 16TiB. Expansion of these volumes fails due to a SIGSEGV for the replica process. The SIGSEGV does not allow a rollback, so the replica is left broken. In https://github.com/longhorn/longhorn/issues/7174, the user lost data as a result.
Describe the solution you'd like
Maybe we don't need all of these, but combined they seem like a complete solution. Perhaps we can backport the documentation and the SIGSEV prevention while doing the nodes.longhorn.io CR work only in the latest version?

[ ] Clearly document that the maximum size of a Longhorn volume when using an ext4 underlying file system is 16383 GiB (or less than 16 TiB).
[ ] Figure out where exactly the replica process SIGSEGV occurs and prevent it. For example, (though I'm sure there's a better way), execute truncate -s <new_size> before doing any other operations and refuse to proceed if that command fails. This prevents corruption due to a failed rollback.
[ ] Learn and record the file system type of each disk in its corresponding nodes.longhorn.io. Do not schedule replicas for 16TiB+ volumes to ext4 disks. Refuse to expand volumes to 16TiB+ if they use ext4 disks before the expansion request reaches longhorn-engine in the first place. (The user can evict their ext4 replicas if they want to do the expansion.)

Additional context

https://github.com/longhorn/longhorn/issues/7174
https://github.com/longhorn/longhorn/issues/4768
https://github.com/longhorn/longhorn/issues/2509

Instance manager logs from a 16TiB volume that fails on its initial attach:
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] [test-way-too-big-r-030f144e] time="2023-12-22T17:10:14Z" level=info msg="Starting to create disk" func="replica.(*Replica).createDisk" file="replica.go:863" disk=000
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] [test-way-too-big-r-030f144e] time="2023-12-22T17:10:14Z" level=error msg="Caught FATAL error:  runtime error: invalid memory address or nil pointer dereference" func=main.ResponseLogAndError file="main.go:50"
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] goroutine 1 [running]:
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] runtime/debug.Stack()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /usr/local/go/src/runtime/debug/stack.go:24 +0x5e
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] runtime/debug.PrintStack()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /usr/local/go/src/runtime/debug/stack.go:16 +0x13
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] main.ResponseLogAndError({0xee5020?, 0x18e4e50?})
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/main.go:51 +0x30a
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] main.cleanup()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/main.go:59 +0x54
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] panic({0xee5020?, 0x18e4e50?})
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /usr/local/go/src/runtime/panic.go:914 +0x21f
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.(*Replica).createNewHead.func1.1()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/replica.go:698 +0x4b
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.(*Replica).createNewHead.func1()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/replica.go:706 +0x11f
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.(*Replica).createNewHead(0xc00051c000, {0x0, 0x0}, {0x0, 0x0}, {0xc000040030, 0x14}, 0x0?)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/replica.go:712 +0x633
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.(*Replica).createDisk(0xc00051c000, {0x1024b2d, 0x3}, 0x0, {0xc000040030, 0x14}, 0x0, 0x100000000000)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/replica.go:905 +0x496
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.construct(0x4?, 0x100000000000, 0x200, {0x7ffc84b54518, 0x39}, {0x0, 0x0}, 0x0, 0x0, 0x0)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/replica.go:224 +0x557
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.New(...)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/replica.go:145
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/pkg/replica.(*Server).Create(0xc000090960, 0xe?)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/pkg/replica/server.go:53 +0x2cd
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/app/cmd.startReplica(0xc000470c60)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/app/cmd/replica.go:110 +0x26d
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/longhorn/longhorn-engine/app/cmd.ReplicaCmd.func1(0xc000470c60?)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/app/cmd/replica.go:78 +0x1d
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/urfave/cli.HandleAction({0xe80c20?, 0x108dc78?}, 0x7?)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/vendor/github.com/urfave/cli/app.go:526 +0x75
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/urfave/cli.Command.Run({{0x1027b1d, 0x7}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x0, 0x0}, {0x1047630, ...}, ...}, ...)
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/vendor/github.com/urfave/cli/command.go:173 +0x63e
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] github.com/urfave/cli.(*App).Run(0xc0000e9500, {0xc00012e1a0, 0xd, 0xd})
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/vendor/github.com/urfave/cli/app.go:277 +0xb07
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] main.longhornCli()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/main.go:153 +0x27ba
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] main.main()
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb]     /go/src/github.com/longhorn/longhorn-engine/main.go:34 +0xb6
[instance-manager-cb8ea04b1204debf53e18db4ba29e6fb] Caught FATAL error:  runtime error: invalid memory address or nil pointer dereference

Clearly document that the maximum size of a Longhorn volume when using an ext4 underlying file system is 16383 GiB (or less than 16 TiB).

@mantissahz Please also update the doc as well. Probably the good place will be https://longhorn.io/docs/1.6.0/volumes-and-nodes/volume-size/ and https://longhorn.io/docs/1.6.0/volumes-and-nodes/expansion/.

Verified pass on longhorn master(longhorn-manager be0885) with test steps

Have a 17Tib disk. create volume on the disk:

Extend volume to 16384 GiB rejected with message

admission webhook "validator.longhorn.io" denied the request: file system filesystem does not support volume size<PHONE_NUMBER>4416

Extend volume to 16383 GiB succss

> k get pvc -o yaml | grep -m 1 storage:
        storage: 16383Gi

Create a 16 TiB (16384 GiB) volume success but no replica is scheduled to any disk.

I will close this after the doc mentioned here ready, thank you.

Hi @chriscchien,
Here is the PR for documents, https://github.com/longhorn/website/pull/831.

Close this ticket as test passed and doc ready, thank you.


fixes #852

This fixes #852.  Implements fix suggested by @jaredhoberock.

The fix looks correct to me, and unit tests build and run correctly on my machine.


Remove beta warning message

The amount of confusion over this message has been very surprising to me.  It was intended to warn against using Machine in production, but users have taken it to indicate that Machine is unreliable in lower environments as well.  Since I'm not sure how to phrase the message to explain this to someone who doesn't grok the difference between "development" and "production", perhaps it's best just to take out.
cc @moxiegirl @ehazlett
Signed-off-by: Nathan LeClaire<EMAIL_ADDRESS>

If the warning still applies, we can clarify it rather than remove it.  Your choice.  It might present a company liability to remove it. You'd have to check with the legal team on that account.

Any suggestions on how to clarify the message to people who don't understand what production is?  "Docker Machine is great for developing on your local computer, but ..."

Machine is currently in beta so its features are likely to change frequently.   For this reason, you shouldn't rely on Machine for use in software processes or production workflows that your company depends on daily. You can use Docker Machine for your own evaluations, in sandboxes, in test, and other non-production environments.

To me, "you shouldn't rely on Machine for use in software processes or production workflows that your company depends on daily" implies that it's not suitable for development use (as development is a daily process), so the problem seems to remain the same with that phrasing.

Machine is currently in beta so its features are likely to change frequently.   For this reason, you shouldn't rely on Machine for use in software processes or production workflows that your company depends on daily. You can use Docker Machine for your own evaluations, in sandboxes, in test, and other non-production environments.

Let me play with that and see what I come up with.

Machine is currently in beta so its features are likely to change frequently.   For this reason, you shouldn't rely on Machine for use in critical software processes or production workflows that your company depends on. You can use Docker Machine for your own evaluations, in development environments, in sandboxes, in test, and other non-production environments.

I feel like that just introduces a lot more uncertainty into the mix though. Our main problem today is that the current message doesn't clearly communicate that Machine is perfectly suitable for use in development, but we don't feel comfortable about recommending it in higher environments just yet.

@nathanleclaire Like my original comment said, these kind of warnings are standard in technical documentation.  My understanding has always been as a hedge against liability.  If you want to remove it, that is your choice.
If the restriction is still the case, I would advise against removing it and would vote for rewriting it. I've offerred you several options that I think are appropriate. If you want to keep the warning, I suggest we meet to iron out the language to your satisfaction.  It would be more efficient.

I'm going to take this risk and merge this


Runner automatically shuts down

Runner automatically shuts down if there is no activity in the repository for approximately 2 months

has been resolved by adding a new workflow scenario that automatically adds a commit after a period of repository inactivity.
If you synchronize your fork with the original repository, you will need to manually grant new permissions in the settings of your fork.
go to repository settings, Click on Actions > General. Update the "Workflow permissions" to "Read and write permissions". Click on save.

screenshot

If you are creating a new fork, you don't need to do anything additional.


undefined method 'raise'

Minimum code to replicate it:

class A
  def blow_up
    elem = B.new
    raise elem.thingy
  end

  class B
    def thingy
    end
  end
end

A.new.blow_up

Slightly smaller. But this is the minimum example I reached.
def thingy
end

class A
  def blow_up
    raise thingy
  end
end

A.new.blow_up

Further reduced to:
def foo(ex : String)
end

class A
  def blow_up
    foo 1
  end
end

A.new.blow_up

("works" with --prelude=empty)
Gives incorrect error, should be easy to fix :-)

Is this the same issue? http://carc.in/#/r/9zk
If so, mind pointing me to where I can fix it? Really annoyed by it! :D

@sardaukar Don't worry, it was easy to fix, I just forgot about this bug :-)

Thanks!


how to make connections

hi, thank you for the work you are doing.
I've been trying to use this method for several days but I can't read the data coming from the shunt. can you kindly tell us how to connect the shunt: to which of the two ports: the one of the display or the other?
the order of the cables to the rs-485 converter? which gpio on the esp32?
I tried all possible combinations but I can't read any data.
please help me
A thousand thanks

To read the data, you only need to connect GND and A of the RS485 port to your ESP OR TTL to USB device. Yes it is not RS485 so much as basic TTL with text output. I am able to read the output with a TTL converter into windows running YAT (Yet Another Terminal)
This is what you should see, cross reference to the manual to see what it all means.
:R50=1,:r50=1,208,5232,5710,923007,24276928,132091777,7900119,137,0,0,0,973,2154,
:R51=1,:r51=1,142,0,0,0,0,0,100,0,0,13000,100,100,100,0,0,1,

I also knew this method but the problem is how do you import these data into HA? How do you create battery percentage, current and voltage sensor?

I dunno, I cannot for the life of me get this stuff to work. At least my devices seem to stick in ESPhome now with a static IP.

I have an cheap rs485 ttl (something like https://www.aliexpress.com/item/1005001621746811.html) hooked up to the non display port. I forget the pin wiring, but I think the manual covers it.
I then have the other side of the rs485 hooked up the esp pins which i then define in the yaml as the uart. I also give it vcc and gnd on the uart side too.


@mixin \Eloquent not working on Lumen

I have followed every trick and suggestion out there, but PhpStorm still doesn't properly recognize the static methods (create, findOrfail, etc.) on models in Lumen 5.5.
I have added @mixin \Eloquent and @mixin \Illuminate\Database\Eloquent\Builder to my model.
But since \Eloquent doesn't actually exist, I also tried setting config/app.php:
return [
    'aliases' => [
        'Eloquent' => \App\Models\Model::class,
    ],
];

and enabling $app->withFacades(); and $app->configure('app');.
This looks like a hole in Lumen support, or did I miss a step somewhere?

@ihipop can you elaborate a bit? In the boot function of AppServiceProvider I have no variable known as $app. I do have this variable in app.php. I tried putting the code in the app.php file but and regenerating the ide-helper file but I still have the same issue.

@SolveSoul Edited.
Change $app -> $this->app


EndpointRegistry tests

@davsclaus @rhuan080 Guys, do you mind sharing your thoughts about this?
Claus had suggested, on the discussion on apache/camel#9972, that the LRUCache was an interesting test scenario. Here I am providing a set of tests that should cover a few of the areas that I believe could be hit by the LRUCache changes.
There are 4 new tests added and they should cover the following aspects:

EndpointCreationTest: compute the accumulated time of all the operations required to create a given number of routes (500, in this test).
EndpointResolveTest: compute the accumulated time of all the operations required to resolve the same route over and over (this is a rather "macro" operation, so it's not something that would be inlined)
EndpointRegistryTest: tests specific operations of the Endpoint registry in single-thread scenarios.
EndpointRegistryScalabilityTest: tests specific operations of the Endpoint registry in multi-thread scenarios.

I am currently running the baselines for these (on 4.0 main and 4.0 M1). After that, I'll run it with the changes on apache/camel#10157 to verify the impacts.
Please let me know if you notice something is missing or wrong.

It may also be interresting to test with camel-caffeine-lrucache on the classpath to use caffeeine as thread-safe cache. Then we can compare this with #10157
Also #10157 can potentially be optimized to only sync on certain situations.

LGTM, I think we should add the license everywhere in this repo.

Indeed! I created a ticket so I don't forget to fix these ... we have quite a couple ones missing the license information.


Don't lose your confidence in the project

I actually started doing the project last week (I know it's a bit late but I was kinda busy during the semester and didn't know where to start). I panicked a lot thinking what if I couldn't finish. But I surprisingly finished in three days. Guess I was lucky and didn't have to change much of my code from level to level. My approach was to minimise the change while making it pass all the test cases. Although I think my design isn't perfect, but I have completed it haha!
So don't be too anxious if you are still not done with the labs or projects. Take a deep breath and do whatever you can achieve in these three days.  You may be able to finish everything before Thursday. Good Luck!
And to everyone, all the best to your finals!

thanks for this :")

thanks for this LOL , gives me some hope

Adding to that, I gave up with my initial implementation and reworked from scratch. It also took around 3 days for a working project HAHA

i am only at level 2 gg i just see what i can complete hopefully wont have to remod or get Dapao

The picture is so cute! But shortly after I got reminded of the Pokemon exception 😭

Thanks needed this i am barely done with the project HAHAHA At this rate, i would be happy with a C+ :')

I think it is a good thing that you finish in three days!
But please be reminded that while you can finish in three days, others might not be able to finish in three days!
By saying this, you could actually be giving stress to other people who are already taking longer than 3 days to code, questioning their own ability!

Needed this post. Thanks!

power sia bro, finish in 3 days, i took 3 months 😂😂😂😂


fix(core): ods html5 output path to work directory

Summary
Add ods html5; to function wrapCodeWithOutputHtml and make it similar to SAS EG.
The reason to make the change is that the SAS will generate html files in th 'current' diretory instead of 'work' directory. For exampl, I can change the current directory with %put %sysfunc(dlgcdir("&__prjpath./SAS"));, and then SAS will generate the html file in the path of '&__prjpath./SAS', however, vscode-sas-extension wants find the file in the work directory.
There is a function in 'client/src/connection/com/index.ts' which try to correct the ods output path and depends on ods html5;
      //write ODS output to work so that the session cleans up after itself
      const codeWithODSPath = code.replace(
        "ods html5;",
        `ods html5 path="${this._workDirectory}";`,
      );

Testing
Using the COM in main branch or IOM in sas9-itc branch
%put %sysfunc(dlgcdir("&__prjpath./SAS"));
proc print data=sashelp.cars(obs=10) noobs;
run;

Add (id=--vscode-sas-extension-htm) to the html5 which make the temporary file collect all outputs until the explicite closing. So we can make other ods html/html5 or ods html5 close or ods listing on in any where of the code.
The issue left is in onShellStdOut, the html5FileName below catch the file name from the last ods html5 setting. However, we want the very first one.
        this._html5FileName =
          line.match(/NOTE: .+ HTML5.* Body.+: (.+)\.htm/)?.[1] ??
          this._html5FileName;

So looks like the regexp can be enhanced to include the id, something like
new RegExp(`NOTE: .+ HTML5(${id}).* Body.+: (.+)\.htm`)

Test code:
proc print data=sashelp.cars(obs=10) noobs;
  title "The block prior to ods html5 spec.";
run;

ods html5 file="abc.html";
proc print data=sashelp.cars(obs=10) noobs;
  title "The block with ods html5 spec";
run;
ods html5 close;

proc print data=sashelp.cars(obs=10) noobs;
  title "The block after ods html5 spec and ods html5 close.";
run;

Hi @ShuguangSun, thank you very much for your patience. I just got feedback from the team and we'd like to have the id be just "vscode", that is ods html5(id=vscode). Do you mind make it? Thank you!

@ShuguangSun, please let me know if you'd like any help

I'll update it this weekend.

Updated but not sure the test.

Hi @ShuguangSun, the test script will also need to be updated with id=vscode to pass
https://github.com/sassoftware/vscode-sas-extension/blob/main/client/test/connection/itc/index.test.ts#L163

The result page is displayed as expected if the user specify a personal work directory for html5 output.

@ShuguangSun, great contribution! Cheers!


"RUN --mount=type=cache" caches not persisted

This isn't a request for a code change as much as for documentation, presuming that there is in fact a reasonable way to reuse the ./cache directory for arbitrary user-provided content from inside the container. If there isn't, then this might be into feature-request territory (which I'd be happy to take a shot at if given some guidance about what an implementation would look like).
Insofar as oci-build-task uses Buildkit, extended syntax is available in Dockerfiles using it; for example:
RUN --mount=type=cache,target=/go-cache env GOCACHE=/go-cache go build

(similar use cases include Maven jar caches, Nix store caches, etc).
Unfortunately, even with caches: [{"path": "cache"}] enabled, this doesn't actually work to reuse downloaded Go modules across builds -- there's an error of the form:
 (*service).Write failed                       error="rpc error: code = Canceled desc = context canceled

...and as far as I can tell, the ./cache directory isn't mapped into the container context.
Is there a reasonable way to cache content inside of oci-build-task?

To sum up, buildkit type=cache mounts are not considered an image layers, and are not exported by the buildkit's --export-cache functionality on which the oci-build-task relies. There are some workarounds suggested, which imply running of two extra build operations (possibly defined in a separate Dockerfile(s)):

first - to import the cache contents into the type=cache mounts
second - to export type=cache mounts contents out into some persistent storage
Implementation details could vary, should it rely on docker layer caching, CI caching functionality, or just use rclone to sync the volumes with S3/whatever.

Also, there is one quite different suggestion, which looks more like a real solution to the problem. It proposes to use a dedicated buildkitd server, which would execute actual container build jobs, and clients inside the CI jobs would only send a context to it. I like this solution, but not sure this fits well into the Concourse philosophy.


Hosting profit and potential profit fields

This is untested as of 6.5, 6:42 pm. Though I've finished what I think needs to be done, it needs to be tested on livenet and verified through the corresponding Sia-UI PR

moved to #558


Reintroduce header patterns for filetype detection

Replacing header patterns with signature patterns in #2819 was a mistake, since both are quite different from each other, and both have their uses. In fact, this caused a serious regression: for such files as shell scripts without *.sh extension but with #!/bin/sh inside (and other similar common use cases that have no filename matches and thus were relying on header matches), filetype detection does not work at all anymore.
Since both header and signature patterns are useful, reintroduce support for header patterns while keeping support for signature patterns as well, and make both work nicely together.
Also, unlike in the old implementation (before signatures were introduced), ensure that filename matches take precedence over header matches, i.e. if there is at least one filename match found, all header matches are ignored. This makes the behavior more deterministic and prevents previously observed issues like https://github.com/zyedidia/micro/issues/2894 and https://github.com/zyedidia/micro/issues/3054: wrongly detected filetypes caused by some overly general header patterns.
Precisely, the new behavior is:

if there is at least one filename match, use filename matches only
if there are no filename matches, use header matches
in both cases, try to use signatures to find the best match among
multiple filename or header matches

Changed signature patterns back to header patterns in almost all syntax files, except C++ and Objective-C (for which signature was actually introduced).
Also done a bit of refactoring and bugfixing of the code in UpdateRules() (see commit messages for the details).
Fixes #3201

Thank you for taking care and cleaning it up that far!


chore: Temporarily disable gapic generation for gameservices

There are no plans to regenerate new versions of gameservices-v1alpha, that is why it was removed from synth.py. When v1 version is available, it will be added to synth.py (using bazel generation).

@chingor13 PTAL


warning: spurious network error

Hi! I'm stuck trying to optimize a smart contract.
When I run rust-optimizer in the root folder of a clean copy of https://github.com/InterWasm/cw-template I get some network problems...
docker run --rm -v "$(pwd)":/code \
  --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
  --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
  cosmwasm/rust-optimizer:0.12.4

Info: RUSTC_WRAPPER=sccache
Info: sccache stats before build
Compile requests                      0
Compile requests executed             0
Cache hits                            0
Cache misses                          0
Cache timeouts                        0
Cache read errors                     0
Forced recaches                       0
Cache write errors                    0
Compilation failures                  0
Cache errors                          0
Non-cacheable compilations            0
Non-cacheable calls                   0
Non-compilation calls                 0
Unsupported compiler calls            0
Average cache write               0.000 s
Average cache read miss           0.000 s
Average cache read hit            0.000 s
Failed distributed compilations       0
Cache location                  Local disk: "/root/.cache/sccache"
Cache size                            0 bytes
Max cache size                       10 GiB
Building contract in /code ...
    Updating crates.io index
warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Name does not resolve; class=Net (12)
warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Name does not resolve; class=Net (12)
error: failed to get `cosmwasm-std` as a dependency of package `c01 v0.1.0 (/code)`

Caused by:
  failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  network failure seems to have happened
  if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by:
  failed to resolve address for github.com: Name does not resolve; class=Net (12)

I haven't a proxy or similar...
Can somebody help me please?

Are you in Windows, right? For what I've seen, this can be caused by many issues (corporate network, wrong env vars, proxy settings, Windows / WSL version, ...)
This is likely NOT a rust-optimizer issue. I suggest you to take a look to the following threads:

https://github.com/rust-lang/cargo/issues/6513
https://github.com/dhovart/cargo-local-registry/issues/164
https://github.com/rust-lang/cargo/issues/9335

If you fix it, please comment what worked for you, as this may be useful to others.

Hi @maurolacy, thanks. No, I'm in MacOS
System Software Overview:
      System Version: macOS 11.6 (20G165)
      Kernel Version: Darwin 20.6.0

Docker:
      Version: <IP_ADDRESS>

If I locally run:
RUSTFLAGS='-C link-arg=-s' cargo build --release --target wasm32-unknown-unknown
I haven't any issue:
Compiling proc-macro2 v1.0.28
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.74
   Compiling serde_derive v1.0.127
   Compiling serde v1.0.127
   Compiling ryu v1.0.5
   Compiling serde_json v1.0.66
   Compiling crunchy v0.2.2
   Compiling itoa v0.4.7
   Compiling schemars v0.8.3
   Compiling byteorder v1.4.3
   Compiling static_assertions v1.1.0
   Compiling hex v0.4.3
   Compiling dyn-clone v1.0.4
   Compiling base64 v0.13.0
   Compiling uint v0.9.1
   Compiling quote v1.0.9
   Compiling serde_derive_internals v0.25.0
   Compiling schemars_derive v0.8.3
   Compiling thiserror-impl v1.0.26
   Compiling cosmwasm-derive v1.0.0-beta4
   Compiling thiserror v1.0.26
   Compiling serde-json-wasm v0.3.2
   Compiling cosmwasm-std v1.0.0-beta4
   Compiling cw-storage-plus v0.11.1
   Compiling cosmwasm-storage v1.0.0-beta
   Compiling cw2 v0.11.1
   Compiling c02 v0.1.0 (/Users/gustavo/Projects/c02)
    Finished release [optimized] target(s) in 39.34s

So, I think the problem is not my machine nor network... I have no proxy, no VPN... I also try adding git-fetch-with-cli = true in cargo config file... Same result.

Perhaps the problem is DNS resolution from inside the docker container?
Can you try entering the container and checking DNS resolution works?

The problem gone upgrading docker version to 20.10.11.
Thanks @maurolacy !


[WIP] Implemented basic image filters for some drawing operations

          <Style Selector="Image">
              <Style.Animations>
                  <Animation Duration="0:0:2"
                             IterationCount="Infinite"
                             FillMode="None"
                             PlaybackDirection="AlternateReverse"
                             Easing="SineEaseInOut">
                      <KeyFrame Cue="0%">
                          <Setter Property="DropShadowImageFilter.Offset" Value="0,0"/>
                          <Setter Property="DropShadowImageFilter.Blur" Value="5,5"/>
                          <Setter Property="DropShadowImageFilter.Color" Value="Green"/>
                      </KeyFrame>
                      <KeyFrame Cue="100%">
                          <Setter Property="DropShadowImageFilter.Offset" Value="40,60"/>
                          <Setter Property="DropShadowImageFilter.Blur" Value="20,30"/>
                          <Setter Property="DropShadowImageFilter.Color" Value="Blue"/>
                      </KeyFrame>
                  </Animation>
              </Style.Animations>
          </Style>

See extra info in #2605
The basic idea is to have a way to apply a filter to a particular drawing operation instead of a while subtree (box-shadow CSS property does exactly that). We can extend the API to apply the filter to the entire subtree via drawing it in RTB first, but that won't play nicely with our current layering implementation.
So once we get our layers sorted out, we could have something like
<Control ImageFilter.AffectsSubtree="True">
     <Control.ImageFilter>
           <DropShadowImageFilter Offset="5,10" Color="Green"/>
     </Control.ImageFilter>
</Control>

I'm also considering to rename ImageFilter to FillImageFilter/BackgroundImageFilter since it's only supported for background fills.
We might implement LayerImageFilter later.
Note: This PR lacks Direct2D implementation.

I can't test it right now but is it respecting ClipToBounds="True"? because as I remember these images were clipped when I tried to implement these effect.

Yes, it currently gets clipped to control bounds. If you want only content to be clipped, you need
<Border>
   <Border.ImageFilter>
      <DropShadowImageFilter Color="Red" Offset="10,10"/>
   </Border.ImageFilter>
   <Border ClipToBounds="True">
       <YourContent/>
   </Border>
</Border>

Unfortunately, the effect is only applied to Fill, not to Stroke. So stroked borders with transparent background don't drop any shadows.

Mkay, shadows for strokes can be implemented separately by drawing said stroke two times and applying SkMaskFilter when drawing the "shadow" part.

I think we need two separate properties: FillEffect and StrokeEffect. That way we can have shadows for text too.

Any news regarding this feature ?

closing due to inactivity.

Has this work been deprecated? Currently I'm in the absolute need for Paths to have a simple shadow.

Also looking for this, my search for WPF`s
<Image ...>
    <Image.Effect>
        <BlurEffect Radius="20"/>
    </Image.Effect>
</Image>

led me here eventually, which doesn't seem possible in Avalonia at the moment, right?

Thanks for letting me know! I'll probably not use it yet though as it has more code than any other part of this small app :D


Not counting added columns correctly when columns already exist

So, discovered when trying to figure out what was happening with #87 that, when you upload a spreadsheet that you've already manced, Geomancer will not re-append columns which it has already appended (which is good) but it results in a confusing message on the download page:

To replicate, mance a spreadsheet, download the results, then use that spreadsheet to mance a second time selecting the same columns to append. You'll end up with the same spreadsheet you uploaded the first time but with the slightly confusing error message. This could also be confusing if a user is trying to use that first spreadsheet to mance with a difference geography column (because the values will be from the first mancing session)

We can address this issue by appending the geo-type we're matching on (city, state, etc) in the column header of the data we're adding. Something like this:
Gini Index of Income Inequality (State)
or
Federal Assistance (County)


added several site and removed duplicates

Added https://freeproxy.lunaproxy.com/
Added https://raw.githubusercontent.com/proxifly/free-proxy-list/main/proxies/all/data.txt which periodically updates within 5 minutes.
Added https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/all.txt which also updates periodically. It is also maintained by creator of linux- Linus Torvalds
Some site contains duplicate proxy. So, I rechecked and removed duplicate proxies before writing to file.

Hello!
Thank you for the contribution! Can you please run flake8 . to make sure there's no error to fix the checks?

Hello! Thank you for the contribution! Can you please run flake8 . to make sure there's no error to fix the checks?

flaked the code.

Thank you!


Version2.1

I think this will work to bring caching back.  There's more I'd like to do, but this is loads better than nothing.
Let me know if you don't like the way I've done it, or you'd like it to be configured differently.

This one definitely needs thorough review.  I'm going to try and write some better tests and maybe even some benchmarks, but I made caching rather complicated.  I think it needed to be, but I'd love to be wrong.  Any and all feedback is welcome.

Well the file based one isn't thread safe for starters.

Well, by itself no, but as used in the CachingPipeline I think it is.
Didn't want to write all the locking code in both cache
implementations. Was there something specific I missed? Don't have the
code in front of me now but I might have forgotten cache write locking
for invalidation. I'll check that.
I'll improve the cache interface documentation to reflect my thread
access assumptions.
-Nick
Sent from my phone. Please forgive terse responses and autocorrect disasters.
On Jan 18, 2012, at 2:03 AM, Steven Robbins
<EMAIL_ADDRESS>wrote:

Well the file based one isn't thread safe for starters.

Reply to this email directly or view it on GitHub:
https://github.com/xpaulbettsx/SassAndCoffee/pull/42#issuecomment-3543445

This was premature.