[Outlook] (Admin) Update userProfile and diagnostics links

Docs Build status updates of commit bb36d5c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/outlook/compare-outlook-add-in-support-in-outlook-for-mac.md
:white_check_mark:Succeeded

docs/outlook/tips-for-handling-date-values-in-outlook-add-ins.md
:white_check_mark:Succeeded

docs/outlook/troubleshoot-outlook-add-in-activation.md
:white_check_mark:Succeeded

docs/outlook/understanding-outlook-add-in-permissions.md
:white_check_mark:Succeeded

docs/outlook/use-rest-api.md
:white_check_mark:Succeeded

docs/reference/objectmodel/requirement-set-1.6/outlook-requirement-set-1.6.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Outline: none prevents keyboard visible focus

Overview of the problem
Oruga version: 0.5.6
Vuejs version: 3.2.30
OS/Browser: Pop!_OS/Chrome
Description
The presence of outline: none on interactive elements prevents them from receiving visible keyboard focus. This is a conflict with WCAG Success Criterion 2.4.7 Focus Visible (Level AA): any keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible.
This issue does appear to be addressed for the button in the next version of the docs in lines 155 - 163.
The workaround I'm using now in my project's css:
[class^="o-"] {
  outline: revert !important;
}

Steps to reproduce
Use the tab key to navigate on a page where there are interactive Oruga elements, like buttons, radio buttons, checkboxes, dropdowns, etc (but not the buttons in the docs, because this issue is addressed there).
Expected behavior
I would expect keyboard users to be able to navigate through a page with interactive elements and see an outline (either the one that the browser shows natively or an Oruga-specified outline) indicating which element is receiving focus.
An example of clear visual focus can be seen on the USWDS website and other federal websites that use that library. If you use the tab key to navigate that page, a thick blue outline shows up to indicate which element you are interacting with.
Actual behavior
Since outline: none is set on many of the interactive elements in this library, interactive elements do not receive visible keyboard focus. A project using this library will not meet WCAG level AA and presents a barrier for keyboard users.

Can you make a PR to fix the default theme?


Create welcome screen

This includes menus and the implementations

Interested. But what about A logo or Image for our app to be used on the welcome screen? Please respond ASAP. Thanks.

for now just create the UI as it is, if necessary that will be added later
https://www.figma.com/file/WvsIHWAfe51T9tRkucwfpU/WellnessCity?node-id=0%3A1
this includes both the Welcome dialog

Noted.
On Mon, Oct 12, 2020, 12:06 PM Chidi Loveth<EMAIL_ADDRESS>wrote:

Assigned #3 https://github.com/kulloveth/WellnessCity/issues/3 to
@osaiol https://github.com/osaiol.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/kulloveth/WellnessCity/issues/3#event-3866098034, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AODISW3HOCAN77UMQKY3VQLSKLPKTANCNFSM4SIQY55Q
.

Dear Loveth,
Please I have got a tight schedule. Work and exam would have loved to
continue work on it.
Thanks for your understanding but please keep me posted on every
development. You really made me sit up to understanding the project
architecture.
I'll get back to you soon.
Regards,
Osaitie
On Thu, Oct 15, 2020, 5:13 PM Chidi Loveth<EMAIL_ADDRESS>wrote:

@osaiol https://github.com/osaiol any update on this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kulloveth/WellnessCity/issues/3#issuecomment-709432997,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AODISW7WFL5HGPENZX3FBTLSK4NTPANCNFSM4SIQY55Q
.

Dear Loveth, Please I have got a tight schedule. Work and exam would have loved to continue work on it. Thanks for your understanding but please keep me posted on every development. You really made me sit up to understanding the project architecture. I'll get back to you soon. Regards, Osaitie
…
On Thu, Oct 15, 2020, 5:13 PM Chidi Loveth @.***> wrote: @osaiol https://github.com/osaiol any update on this? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#3 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AODISW7WFL5HGPENZX3FBTLSK4NTPANCNFSM4SIQY55Q .

alright


License

Thanks for your work!
Would you be able to add a license to your project?
Ideally MIT or Apache

Hi, we have added an MIT license.


Global and local zookeeper should use different stats server ports

Global and local both try to use port 8080 so they can't be started on the same machine out of the box. -Dstats_server_port will work around the issue.
Note that from zookeeper 3.5.0 onwards, zookeeper itself runs an admin server on 8080.
Expected behavior
I expect to be able to start a global zookeeper and local zookeeper node on the same machine
Actual behavior
One will fail because they are both trying to bind 8080 for the stats server.
Steps to reproduce
Try to set up a cluster with global and local on same node.
System configuration
1.20.0-incubating (rc0)

Moreover, setting this define is a pain. You need to dig into bin/pulsar to figure out the environment variable. I expected it'd be PULSAR_EXTRA_OPTS, but pulsar-env stomps on this. You can't change pulsar-env because global and local both use this. You have to set it in OPTS.

I worked around this by updating conf/pulsar_env.sh, changing where PULSAR_EXTRA_OPTS is overwritten. I then launch global zookeeper with the following env variable set:
PULSAR_EXTRA_OPTS="-Dstats_server_port=8081"

Modified line (original):
PULSAR_EXTRA_OPTS="${PULSAR_EXTRA_OPTS} ${PULSAR_MEM} ${PULSAR_GC} -Dio.netty.leakDetectionLevel=disabled -Dio.netty.recycler.linkCapacity=1024"


How to remove delayed_job activerecord logs in production.log?

Hello, in production.log I have a lot of records like this:
Delayed::Backend::ActiveRecord::Job Load (0.6ms)  UPDATE "delayed_jobs" SET locked_at = '2016-03-01 10:19:58.969011', locked_by

How to disable it?
I haveDelayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))
in my initializer, but it looks, that it logs only delayed_job to this file, delayed_job tables logs to production.log.

Setting the ActiveRecord::Base.logger.level = 1 in an initializer should handle that.  Note that the Worker will do put calls for it's own logging on top of the calling the currently configured logger, which is less than ideal.  The flag (quiet) to disable that is unfortunately in the initialize method and the default is false, and the provided rake task to start the worker has that hardcoded to false as well.

@hoserdude quiet is not hardcoded in the rake task https://github.com/collectiveidea/delayed_job/blob/master/lib/delayed/tasks.rb#L22
Logging is determined by how you start the worker. Daemonize has different requirements and therefore reopens all logging file descriptors to point to an independent delayed_job.log but does NOT change the system log level except it does define a new logger for DJ specific messages. The rake task simply uses the rails logging settings, as we don't touch the rails logger. Be aware rails recently changed the default production log level to debug, which means you get a ton of noise in your production logs.

Hi,
So I'm having this exact same problem. I tried adding these:
Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 60 Delayed::Worker.max_attempts = 3 Delayed::Worker.max_run_time = 5.minutes Delayed::Worker.read_ahead = 10 Delayed::Worker.default_queue_name = 'default' Delayed::Worker.delay_jobs = !Rails.env.test? Delayed::Worker.raise_signal_exceptions = :term Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log')) ActiveRecord::Base.logger.level = 1
in config/initializers/delayed_job_config.rb.
But, in my production.rb, it's full of UPDATE "delayed_jobs" SET locked_at... and my delayed_job log is only:
Logfile created on 2018-06-16 22:47:13 +0000 by logger.rb/56438
I, [2018-06-16T23:08:19.877957 #2355]  INFO -- : 2018-06-16T23:08:19+0000: [Worker(delayed_job host:ubuntu pid:2355)] Starting job worker
I, [2018-06-24T18:45:49.925238 #2355]  INFO -- : 2018-06-24T18:45:49+0000: [Worker(delayed_job host:ubuntu pid:2355)] Exiting...
I, [2018-06-24T18:47:00.827360 #2366]  INFO -- : 2018-06-24T18:47:00+0000: [Worker(delayed_job host:ubuntu pid:2366)] Starting job worker

I'm going bonkers. Lol. Appreciate any help given.

Log level 1 is Logger::INFO. You are actually specifically telling ActiveRecord to give you that noise and likely the rest of the app as by default the AR logger and rails app logger are the same. The Delayed::Worker logger is specifically for DJ messages from the worker and does not replace the app wide or AR logger. Also be aware your delayed job initializer is not specific to the worker process.
You could setup a plugin for worker specific setup similar to https://github.com/collectiveidea/delayed_job/blob/master/lib/delayed/plugins/clear_locks.rb
Instead of around(:execute) use before(:execute) and that will be called just before the worker starts processing the job loop.

Hey thanks for the reply @albus522. My bad then, I think I need to understand what I put on the config a bit more better. I'll try it out. Appreciate the response!

Hey sorry to revisit, but what is the solution here exactly? Tried running
QUIET=1 bin/delayed_job restart
but no luck...

Adding this nightmare worked for me:
# initializers/delayed_job.rb
unless Rails.env.development?
  module Delayed
    module Backend
      module ActiveRecord
        class Job
          class << self
            alias_method :reserve_original, :reserve
            def reserve(worker, max_run_time = Worker.max_run_time)
              previous_level = ::ActiveRecord::Base.logger.level
              ::ActiveRecord::Base.logger.level = Logger::WARN if previous_level < Logger::WARN
              value = reserve_original(worker, max_run_time)
              ::ActiveRecord::Base.logger.level = previous_level
              value
            end
          end
        end
      end
    end
  end
end

I added this to config/development.rb to ignore the sql query logs in development:
if caller_locations.map(&:path).any? { |c| c =~ %r{bin\/delayed_job} }
  ActiveRecord::Base.logger =
    Logger.new(Rails.root.join('log', 'delayed_job.runtime.log'))
end

you can also do it with:
if $ARGV.include?("jobs:work")
  ActiveRecord::Base.logger = nil
end

works with bundle exec rake jobs:work and rake jobs:work. you could of course customize it by putting it in the appropriate environment initializer or having checks like Rails.env.production? or ENV["DISABLE_SQL_LOGGING_FOR_JOBS"] (or have the logger log somewhere else, etc.)

Some time ago I've found an equivalent solution, similar to the one @Meekohi proposed but i can't find the original author and reference. I will post it to not forget

unless Rails.env.development?
Delayed::Backend::ActiveRecord::Job.singleton_class.prepend(
Module.new do
def reserve(*)
previous_level = ::ActiveRecord::Base.logger.level
::ActiveRecord::Base.logger.level = Logger::WARN if previous_level < Logger::WARN
value = super
::ActiveRecord::Base.logger.level = previous_level
value
end
end
)
end

Since my upgrade to Rails 6, this does not work anymore because of Unable to load application: NameError: uninitialized constant Delayed::Backend::ActiveRecord::Job.
I tried many ways to load this in other places, but no luck. Any ideas?

I posted my own answer to the question in a related thread: https://github.com/collectiveidea/delayed_job/issues/477#issuecomment-800341818

Change your bin/delayed_job script to...
#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Backend::ActiveRecord::Job.logger.level = Logger::INFO # <---- Add this line
Delayed::Command.new(ARGV).daemonize


Change toml lib + fix macro bug on devel

Fixes the orc bug on #169
Changes the toml parsing library to parsetoml which should make nimib run on orc finally. I had to do some workarounds though, like making my own customToJson proc to get the correct JSON for std / json to be able to parse it correctly into a NbConfig.

Looks great, thanks! And loadTomlSection will be used by nimibook (see https://github.com/pietroppeter/nimibook/blob/main/src/nimibook/configs.nim, I will make the changes).
It is all here right? We can merge this and then rebase the CI Pr on the new master, correct?

I found one bug that the stdlib doesn't like missing fields, so I opted for using jsony instead for the deserialization. But now it should be ready to go if the CI is green. I have tried it locally with devel and the configuration is loaded without any error. So we can merge this and see if the CI PR works with it :)

good yeah, I imagined jsony would be a better fit being a loose parser. looks good, merging and rebasing CI since I am curious to see it green (then I will also add a changelog for this)


Feature

Bring username password feature

What do you mean? Where do you want to use username and password? Please explain your feature request in detail.

What do you mean? Where do you want to use username and password? Please explain your feature request in detail.

when i open my onedrive index it will ask user pass auth  like gdrive index   see  https://gitlab.com/GoogleDriveIndex/Google-Drive-Index
to secure my index and  when i share onedrive index file link to someone they will stream or download it but they  cant access my index  bcz of userpass auth, this feature usefull bro
add this feature also make it optional, those who need it they will use and those who dont need it they will skip it
i hope u understand
thank you.

We already have the Password Protected Folders feature. That's similar to what you want.
It's already an optional feature, but it's a little different from what you're talking about in that you can't either list the file or download it directly via a link without a password, which is probably more in line with what most people would expect from a password-protection feature. (Controlling access via confidential URLs is usually insecure, the URLs themselves can easily be compromised in a variety of scenarios)

do u have telegram i will explain with example links

do u have telegram i will explain with example links

Please just explain here so that everyone could see and discuss. If you have something you don't want to show publicly, please send them to my email address<EMAIL_ADDRESS>


Unable to create new resource for QNA maker

Describe the bug
The subscription does not have QuotaId/Feature required by SKU 'S0' from kind 'QnAMaker' or contains blocked QuotaId/Feature.

I wanted to create QNA resource to make use of it but, i am getting the above mentioned error.
Version
Bot composer 2.1.2

Browser

[ ] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] Windows

To Reproduce
Steps to reproduce the behavior:

Go to '...' bot settings
Click on '....' development resources
Scroll down to '....' Azure QnA Maker > click on set up QnA maker > create and configure new azure resources > select subscription > fill the required details
See error

Expected behavior
 i should be able to see the successful creation of the QNA maker.
Screenshots

Additional context

From now onwards you can't create new QnA Maker. If you have an old QnA Maker in your Azure resources, you use it in Composer.
More information here


homebridge-freeathome stuck loading

Running latest version 2.0.4 with a Busch And Jaeger 2.6.4 SysAP (1.0).
The Plugin won't stop loading.
Config
{     "platform": "BuschJaegerSysAp",     "name": "freeAtHome",     "sysIP": "192.xxx",     "username": "xxx",     "password": "xxx",     "mappings": {} }
MyBuschJaeger
Remote Access is enabled,
Free@Home Api is enabled,
Push messages are enabled.
Log
[15.10.2022, 15:09:57] Registering platform 'homebridge-freeathome.free@home' [15.10.2022, 15:09:57] Registering platform 'homebridge-freeathome.BuschJaegerSysAp' [15.10.2022, 15:09:57] [BuschJaegerSysAp] Loaded homebridge-freeathome v2.0.4 child bridge successfully [15.10.2022, 15:09:57] [BuschJaegerSysAp] Initialising BuschJaeger Plugin [15.10.2022, 15:09:57] [BuschJaegerSysAp] Will try to connect to the SysAP at 192.xxx [15.10.2022, 15:09:57] [BuschJaegerSysAp] Trying to connect to SysAP [15.10.2022, 15:09:57] [freeAtHome] Received Master Update from System Acccess Point [15.10.2022, 15:09:58] [freeAtHome] Sent Subscription Request [15.10.2022, 15:09:58] [freeAtHome] Sent Subscription Confirmation [15.10.2022, 15:10:01] [BuschJaegerSysAp] Connected as<EMAIL_ADDRESS>[15.10.2022, 15:10:01] [BuschJaegerSysAp] Sent Authenticator [15.10.2022, 15:10:01] [BuschJaegerSysAp] Received Local Key [15.10.2022, 15:10:01] [BuschJaegerSysAp] Sent New Session Request [15.10.2022, 15:10:02] [BuschJaegerSysAp] Sent Login SASL Message [15.10.2022, 15:10:02] [BuschJaegerSysAp] Received SASL Challenge [15.10.2022, 15:10:02] [BuschJaegerSysAp] Sent SASL Challenge Response [15.10.2022, 15:10:02] [BuschJaegerSysAp] Received SASL Login Confirmation [15.10.2022, 15:10:02] [BuschJaegerSysAp] Successfully Authenticated [15.10.2022, 15:10:02] [BuschJaegerSysAp] Detected Access Point firmware < 3.0.1 - Sending Legacy Capability Announcement Message. [15.10.2022, 15:10:02] [BuschJaegerSysAp] Announced Capabilities to System Access Point [15.10.2022, 15:10:02] [BuschJaegerSysAp] Requested Master Data Structure from System Access Point [15.10.2022, 15:10:03] [BuschJaegerSysAp] Received Master Update from System Acccess Point [15.10.2022, 15:10:04] [BuschJaegerSysAp] Sent Subscription Request [15.10.2022, 15:10:04] [BuschJaegerSysAp] Sent Subscription Confirmation [15.10.2022, 15:10:11] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:10:17] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:10:31] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:10:37] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:10:51] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:10:57] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:11:11] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:11:17] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:11:31] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:11:37] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:11:51] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:11:57] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:12:11] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info. [15.10.2022, 15:12:17] [homebridge-freeathome] This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info.
The Plugin is now starting since 10 Minutes....
I tried an fork of your plugin (https://github.com/superyaro/homebridge-freeathome-local#readme) which allows to enable extra logging. Not sure if the logging comes from your plugin of if it is a feature of the fork but the plugin seems to do 2 successful api calls every 20 seconds.

Hello @Grauen
Please try to log into the SysAp and control an accessory manually. After that restart the home bridge plugin and test again.
The fork is not maintained by me but I think it uses the Local API which is not supported in SysAp 1.0.


Update moc.js interface for motoko NPM package

This branch is currently being used to generate the moc.js file for the motoko NPM package, and by extension embed.smartcontracts.org.
Changes:

Switches the target environment from "isomorphic" to "browser" for consistency between Sys and Sys_js (everything now works consistently between Node.js and the browser)
Fixes readDir(path), which previously returned an OCaml array rather than JS array
Adds readFile(path), parseMotoko(string) and parseCandid(string) functions
Increases the interpreter stdout/stderr buffers from 100 to 1000 characters

Future goals:

Fix a corner case where clearPackages() doesn't remove packages after running the interpreter
Pass line/column and type information in an function similar to parseMotoko()
Reset type name counter (T/1, T/2, etc.) after running the interpreter

Questions:

Is there currently a way to use compileWasm(path, 'wasi') without crashing moc.js? I am trying to find a working example to experiment with WASI bindings for Motoko Playground.

Is there currently a way to use compileWasm(path, 'wasi') without crashing moc.js? I am trying to find a working example to experiment with WASI bindings for Motoko Playground.

The code in WASI mode cannot contain actor. You can try it in my first version of playground. fac.mo can be compiled in WASI. test.mo also works if you click New package and import the default value.

(Updating the test cases to account for virtual file system error messages)

Good to know; that makes sense. I'll try it out right now.

This branch is currently being used to generate the moc.js file for the motoko NPM package, and by extension embed.smartcontracts.org.

For embed, I think it will use moc_interpreter.js instead of moc.js? The JS size is much smaller for interpreter.js

Future goals

Another nice to have future goal: The type name id (e.g. T/1, T/2) keeps increasing each time we call moc in browser. It would be nice to find a way to reset the number for each compiler invocation.

It seems like moc.js and moc_interpreter.js are both about 20 MB prior to minification and 5 MB afterwards. Does create-react-app / Webpack perform some additional tree-shaking on moc_interpreter.js for production builds?

The default Makefile is only a debug build. You need to pass --profile=release to make the code smaller, but it takes quite a long time to compile. Here is our release build setup.

Good to know about the debug vs. release builds. Thanks; I'll update the motoko package to offer a choice between using moc.js and moc_interpreter.js for optimization.

Hmm, that test that seems to fail (rts_gc_instructions.mo) is one I added recently and uses the performance counter and two new prims to measure instructions costs. It might be producing output that depends on the gc flavour and might need changing. Perhaps disable it for now to see if you pass CI otherwise.

@chenyan-dfinity, I managed to space-optimize the release builds by an additional 20% using uglify-js (benchmark). Would you mind if I added this directly to the Nix build process? I'm thinking of using npx -y<EMAIL_ADDRESS>... to remove the need to introduce any new build dependencies.

Can you confirm the optimized code still works? I tried a few minimizer in the past, they either make the code crash or make the code bigger...

Found a surprisingly clean way to add minification to the build process. Everything still works as expected (the same minifier is being used on https://embed.smartcontracts.org), and there's a ~20% file size reduction for both moc.js and moc_interpreter.js. To ensure backwards compatibility, the minified files are named with .min.js suffixes in the build output directory (alongside the original .js files).

Sounds good, as long as the CI is happy :)


Rubocop

Adopting style recommendations from https://github.com/sul-dlss/DeveloperPlaybook/tree/master/style.
Applied the auto-correct and checked that specs were passing before and after the corrections.

Can we configure this to not suppress explicit return statements?  These provide useful information.
How does this fit into the workflow?

WRT redundant return

http://www.rubydoc.info/github/bbatsov/rubocop/Rubocop/Cop/Style/RedundantReturn
usually and explict return is used as a control structure to return prematurely from a method
the implicit return of a method is the last statement's return value
I've generally adopted this practice, even though it was foreign to me when I first moved from python to ruby coding.  If there is a way to supress that warning, I've not wanted to use it.  I'm open to considering the option, although it goes against the 'ruby way' adopted by most ruby projects.

bundle exec rubocop will issue warnings about conflicts with ruby conventions, it is usually simple code style, but it can also help to detect logical and design flaws.  It can take a while to get familiar with the conventions, they are often helpful.  The aim is to use this as a tool to provide consistent ruby code using the guidelines of the ruby community.


ng2-material-dropdown results in undefined injector type

In this line of the ng2-material-dropdown component, the first injected dependency returns a type of undefined using reflect-metadata, which breaks Augury.
Some investigation is need to determine why this happens.
@souldreamer, this is your issue which you originally reported on #848.

Refactoring the project to use a service instead of the forwardRefs makes it work with Augury, so it's definitely something to do with those. Here's a version that does this: https://github.com/souldreamer/ng2-material-dropdown

@souldreamer Ok, I guess it's a forwardRef specific thing, which I can test easily enough. Thanks for the context.

I have the same problem with https://github.com/Gbuomprisco/ng2-material-select:


DRAFT PROPOSAL: Bulk ops

Can we also add getItems / setItems / removeItems alias? Those might be useful :-?

Can we also add getItems / setItems / removeItems alias? Those might be useful :-?

We can just rename the ones I specified to this instead. I have no feelings towards it

Can we also add getItems / setItems / removeItems alias? Those might be useful :-?

We can just rename the ones I specified to this instead. I have no feelings towards it

SGTM 👍

This would be super useful! Not sure if this is blocked on something?

@faahim blocked on when @sleekslush can finish the PR lol... but I think anyone can take on this idea to finalize it too :d


Vep pli update

PR checklist

[x] Updated pLi config
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/raredisease branch on the nf-core/test-datasets repository.
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
[ ] Ensure the test suite passes (nextflow run . -profile test_one_sample,docker --outdir <OUTDIR>).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

merging since the only failures is on nf-core linting. The warnings are unrelated to this PR and will hopefully be fixed with a new version of the nf-core TEMPLATE


page_store: ensure buffers are accessable from any version

This PR closes #240.

@w41ter CI takes a long time and seems the buffer_set_concurrent_update test is the problem, is that expected?
test page_store::version::tests::buffer_set_concurrent_update has been running for over 60 seconds

In my local env:
patrick@thinkbook:~/workspace/montplex/photondb$ cargo test -- buffer_set_concurrent_update
    Finished test [unoptimized + debuginfo] target(s) in 0.06s
     Running unittests src/lib.rs (target/debug/deps/photondb-f374be4ee1c0622e)

running 1 test
test page_store::version::tests::buffer_set_concurrent_update ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 62 filtered out; finished in 0.35s

It seems that is not normal in a CI environment.

Maybe investigate the test later if it is reproducible in the CI.


Profile lists all cards ever earned or crafted

Describe the bug
"My Profile" page will show every card ever earned or crafted.
To Reproduce
Steps to reproduce the behavior:

Login to MTGA with Pro Tracker running.
Craft a card or two and/or open a booster and/or earn a card as a reward.
Log out of MTGA, go to "My Profile" page with Pro Tracker.

Expected behavior
My Profile page should only list cards earned/crafted that day. Instead it lists pretty much every card ever crafted/earned/etc. instead.
Screenshots
If applicable, add screenshots to help

Additional context
This has happened to me twice recently. Each time it happened seemed to be shortly after my girlfriend played on my computer using her account-- she logs in to MTGA with her ID but doesn't shut down Pro Tracker first. Not sure why that would mess things up but just an FYI.

Thank you! We will investigate your issue

Multiple account support is unfortunately very problematic. We are working on it

v.1.7.8 should be able to address this issue.


Evaluate BackupReady condition for etcd resource

How to categorize this issue?

/area control-plane
/area ops-productivity
/kind enhancement
What would you like to be added:
Etcd-Druid v0.11.0 maintains a new BackupReady condition for the etcd resource. Gardener should evaluate this condition as part of its regular health checks and contribute the state to the ControlPlaneHealthy condition for shoots.
Why is this needed:
Missing or failing backups will go unnoticed if alerting is disabled.

/assign
/hold
as we wait for Driod v0.11.1, see https://github.com/gardener/gardener/pull/6292#issuecomment-1183003896

Druid v0.11.1 has been merged into Gardener. I plan to continue with this item in the coming days.


Performance or pros or comparison with other languages?

Describe what you would like to know or do
Hi, thanks for the wonderful library! I am seeking for a WebSocket server library and found this one. It seems that people often talk about C++, Go, JS, etc when talking to WebSocket IMHO. Thus, I wonder the comparison between this library and other libs in other languages? For instance, what is the performance, what are the pros, etc. Thanks!
Describe the solution you'd considered
I have searched the issues and found that ~3 month ago there was no performance test. However, since time has passed and this repo is so actively developed I decided to ask again.
Additional context
N/A

Hey
To be honest I think it is really hard to compare libs across different languages in regard to performance.
Performance depends on a lot of factors and adding different languages to the mix is just bad in my opinion.
Apart from this I think people should use the language they need in the specific project with the specific requirements.
Best regards,
Marcel

I agree with you. However, when persuading people into using a library I have to provide some data... For instance, if this library is not 2x slower than a go/js library, I think it can be acceptable. Moreover, if this library is very fast, it can be a great thing to attract more potential users!

@fzyzcjy then you should provide the data specific to your usecase to persuade people into using a lib.
A general comparison is in most cases not helpful.
I will not invest any time into this, sorry.
Best regards,
Marcel

@marci4 Ah OK I will try that.
Best regards,
Tom


WHEN UPDATE??? WHEN NEW RELEASE?????????

My whole body hurts, I need you to release new version of Motrix AFAP to stop my pain. I also require flatpak!!! Please; Thank you;

#1396 About the reasons for the suspension of Motrix, and the recent situation of the author agalwood

updated bro

close this issue()


maintenance: whitelist time advisories

This will fix the audit step that is failing in CI.
The same file is used in tokio

/rebase

/rebase

/rebase


Don't send a Slack invite until after user confirms their email address

Feature request
Currently, a user can register with an email and expect a Slack invite immediately. This is an issue because people can park emails they don't own.
Proposed solution
Only send a Slack invite after the user confirms they own the email address

Please also add the hacktoberfest topic to this repo:
https://hacktoberfest.digitalocean.com/hacktoberfest-update

I did!

I want to work on this. Please guide me on this.

Hey @mathagician I have already added a PR for this.
@aewens Please have a look at https://github.com/OperationCode/back-end/pull/362


added svg support for image tag.

Fixes #33
SVG images can be inserted using the IMAGE tag. The svg can be read from file or be injected from the js context. A thumbnail/fallback png needs to be specified.

That's awesome, thanks a lot for the effort!
While I'm reviewing this, what's the goal of the fallback png? I notice from the examples (example-node/images-path_report.docx and example-node/images-svg_report.docx) that the original SVG picture is not shown when you open the file in Word (at least in Word for Mac 15.x). Is it because my Word version does not support SVG?
Could you also comment on the large update to the test snapshot files? Why are these needed?
Thanks again! I look forward to merging this soon.

Hi @guigrpa
The goal of the png is to my knowledge twofold;

When seeing a preview of the file (like in Finder (Mac)) it is the thumbnail/fallback image being shown.
In case the SVG image is not supported it will fallback to the png image. Looking at the structure of the generated XML, you will see that the fallback is placed where you would see the reference Id of normal graphics - this tells me that if the Word version does not understand the new SVG schema, it will just read the fallback image.

SVG is supported from version 16. I would have included a link, but it seems Microsoft have now moved things around in there release notes :-(
I guess the fact that I am using Word version 16 explains the big changes in the snapshot. I was actually wondering what to do about this fact when creating the Pull Request :-) I really like the use of Jest - especially for what you are doing in your amazing library, but I guess one needs to take application version into account some how :-)
Perhaps I should just have added an SVG only test, but I saw that you already had SVG images in the code, but they where not working, so I fixed that :-)

Would it be possible to adapt this code for browser use? It looks like the thumbnail getter is expecting fs to be available.

This is some pretty great stuff! As this PR is already pretty old, i'll have to do some work on it first since the library has changed quite a bit since. If you want to contribute, feel free to fork guigrpa:33-IMAGE-command-SVG-support.


DisableAttribute

DisableAttribute has a third overload which is not documented:
https://github.com/Azure/azure-webjobs-sdk/blob/b798412ad74ba97cf2d85487ae8479f277bdd85c/src/Microsoft.Azure.WebJobs/DisableAttribute.cs#L54
Would be nice to see an example implementation.

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

ID: 3b7f85a6-7b15-afe0-6443-27512c831553
Version Independent ID: 5caea59e-779c-7b0e-e30b-497d4d1df4c7
Content: How to disable functions in Azure Functions
Content Source: articles/azure-functions/disable-function.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@mathiasbl Thank you for your feedback! We will review and update as appropriate.

@mathiasbl You can refer to the tests here on how this can be used.
For reference, you basically need a class like this as argument to the attribute
public class DisableProvider_Instance
{
    public static MethodInfo Method { get; set; }

    public bool IsDisabled(MethodInfo method)
    {
        Method = method;
        return true;
    }
}

We are assigning this issue to the content author for further review and to include samples for this as appropriate.

@mathiasbl You can refer to the tests here on how this can be used.
For reference, you basically need a class like this as argument to the attribute
public class DisableProvider_Instance
{
    public static MethodInfo Method { get; set; }

    public bool IsDisabled(MethodInfo method)
    {
        Method = method;
        return true;
    }
}

We are assigning this issue to the content author for further review and to include samples for this as appropriate.

Thank you for the example.
This actually throws a not supported error on build of the azure function.

@mathiasbl this constructor is only supported when using the WebJobs SDK directly. I've opened this issue to make sure that's noted in the source code documentation: https://github.com/Azure/azure-webjobs-sdk/issues/2477


Make Tab titles reactive

Currently, the only way to change the title of a Tab is to mutate TabModel.title.  This is a little counter-intuitive for dynamic tabs, such as those with badges, which one would expect to be reactive.  Consider refactoring TabModel.title so that developers can provide a dynamic renderFn closure.

We discussed that this is a likely use of the Content type + call to elementFromContent(tab.title)


Stop script when user clicks x on GUI

Currently it just hangs and does not end the script if the user presses x to close the gui.

And vice versa, if the script is stopped when GUI is open then GUI stays open and doesn't do anything on pressing start

Fixed this in latest commit


Digitalocean: Remote Target installation fails: "You specified an invalid image for Droplet creation"

The automatic digitalocean setup fails with:
POST https://api.digitalocean.com/v2/droplets: 422 You specified an invalid image for Droplet creation.

If I do the installation of such a cluster on digitalocean myself, I'm able to create the remote target. But whenever I do a remote deploy, it fails with an error: "End of file reached".
I've no idea what that means. Which file?

@tobkle
Thank you for logging the issue. We were using Ubuntu 14.10 in Digital Ocean, which got removed. We've updated our deployment script to use Ubutu 15.04 now. Please try to re-create the remote-agent from panamax and see if it works better.

@cakkineniDev

Droplet newDroplet = new Droplet();
newDroplet.setName("api-client-test-host");
newDroplet.setSize(new Size("512mb")); // setting size by slug value
newDroplet.setRegion(new Region("sgp1")); // setting region by slug value; sgp1 => Singapore 1 Data center
newDroplet.setImage(new Image(1601)); // setting by Image Id 1601 => centos-5-8-x64 also available in image slug value
newDroplet.setEnableBackup(Boolean.TRUE);
newDroplet.setEnableIpv6(Boolean.TRUE);
newDroplet.setEnablePrivateNetworking(Boolean.TRUE);
it is giving an error :+1:  You specified an invalid image for Droplet creation.
can anyone tell about cause of it.


Add support to manage a cache server with Gfsh

It'd be great if a gfsh "stop server" command could also shutdown the hosting spring-boot process when using spring-data-geode. I understand that this is not something we'd want to have as a default behavior but it can be convenient.
Perusing through the code, I was unable to find a way to accomplish this. Is this possible with the current APIs?

Perusing through the code, I was unable to find a way to accomplish this. Is this possible with the current APIs?

The short answer is, it is not easily feasible, or really possible.
The long answer is rather involved and encompasses with the way in which Apache Geode's, Geode Shell tool (Gfsh) launches and manages its servers, which is not "aware" of other potential existing services.
Under-the-hood, Gfsh's stop server command is based on the o.a.g.distributed.ServerLauncher class.  Internally, Apache Geode's Management infrastructure, which is JMX-based, creates Java registers Java MBeans with the JRE process's PlatformMBeanServer along with an internal, hidden Apache Geode Region to federate the data and management of servers across the cluster.  The MBeans that start and stop (or sometimes pause/resume) GemFire processes or services use other classes to ascertain the state of the processes, or servers.  In the stop server command's case, it relies on state derived from an instance of the o.a.g.distributed.ServerLauncher class, which Gfsh used to launch the server with start server.
Since a Spring Boot application possibly "embeds" a Geode (cache) server process in the "Spring Boot" JVM (first), a Geode server in this case would not be launched using an instance of the o.a.g.distributed.ServerLauncher class.  Plus, o.a.g.distributed.ServerLauncher is pretty specific to the way Gfsh and Geode's Management infrastructure functions, therefore, has not direct utility in SDG.
You should also keep in mind that the Spring container is the one thing bootstrapping all the services that your application requires to run.  Spring Boot starts by configuring and initializing the Spring container.  Spring and Spring Boot may in turn bootstrap/run an "embedded" Tomcat/Jetty HTTP server instance, particularly if your application is a Web application (that is, you have spring-boot-starter-web on the classpath).  You might be running an "embedded" Message Bus or be interfacing with an "embedded" database (e.g. HSQL or H2, etc) in an application.  All of these services much be properly shutdown when your Spring Boot application is shutdown.
Having Gfsh stop the Spring Boot application just because it has embedded an instance of Apache Geode is a bit shortsighted in the scenario above, which is not at all uncommon.  Additionally, Gfsh is not going to be aware of the Spring container in your application, much less these other services.  Furthermore, it is much more common that your Spring Boot application is an Apache Geode ClientCache (or cache client) application than an actual "peer" Cache application, that is a member and part of the cluster of servers.
Having said this, it is possible to run describe member (and most other Gfsh commands, minus the lifecycle commands (i.e. start, stop, status)) on a Spring Boot, Apache Geode-based Server application.  I have examples along with documentation for this here and here even
Now, on the flip-side, it is possible to start an Apache Geode server with Gfsh bootstrapped with Spring by using "start server --name=SpringConfigureGeodeServer --spring-xml-location=/classpath/to/spring/application/context.xml --classpath=/absolute/file/system/path/to/spring-data-geode-2.0.3.RELEASE.jar:...".
In this case, the JVM process is an Apache Geode server first, which then bootstraps a Spring container that then can initialize the Geode server (i.e. Cache and CacheServer instances) started in Gfsh.  You only need to ensure that SDG is on your server's classpath when starting the server in Gfsh in this way.  When the server is bootstrapped and configured/initialized with Spring in this manner, it is then possible to control the server status (i.e. status server) and shutdown (using stop server) in Gfsh.  However, it will no longer be a Spring Boot application.
See the corresponding SDG docs for more details.

Thanks John. I understand. That said, it is important that we highlight in the SDG documentation, in a way akin to @EnableLocator and @EnableManager, that currently the usage of the @CacheServerApplication and @PeerCacheApplication annotations is not a recommended way to add members to a server cluster in production environments. Similarly, the documentation should stress that SDG, under a Client/Server topology and in a production environment, should be used as client only. For a novice user, this may be something that can be easily missed. Let me know if this make sense to you.
Moreover, I'll take the liberty to add here some of the consequences of adding a member to a server cluster in a production environment using @CacheServerApplication and @PeerCacheApplication.
*There are two lifecycles at play to be managed: the spring-boot app and the embedded geode server
*Per above, no complete GFSH support for server lifecycle management is available.
*Per above, member instrumentation requires a combination of GFSH and custom code(e.g stop/start server scripts, spring-boot health indicators, etc)
*Member default configuration may be different than documented Geode configuration defaults. (e.g. disable-auto-reconnect is set to false in vanilla Geode however in SDG its practically true)

Hi Pedro,
Yes, very valid points.  I can definitely see how @EnableLocator and @EnableManager combined with the starting Annotations, either @PeerCacheApplication or @CacheServerApplication, would lead users to think that using these configuration options is the "recommended" way to starting servers, and more importantly, managing servers.
I have, fairly recently in fact, taken a very client centric approach for SDG.  This has to do, in no small part, with Pivotal Cloud Foundry.  When using PCF, the application developer really does not need to worry about the cluster of servers, other than managing and monitoring.  Provisioning is handled by the CF platform.
Having said that, I would say it also depends.
In fact, some users/customers do actually start and manage their clusters with Spring Boot, or more generally, with a Spring-first approach, while other users/customers have strict requirements from their administrative ops teams that impose on developers that they must use the tools provided with their database backends.  For Apache Geode, or more specifically, Pivotal GemFire, that usually means developers and ops teams must use Gfsh and Pulse, despite both tools not being entirely complete or all inclusive...
Unfortunately, even though the Spring team makes a best effort to provide interoperability and a seamless experience, it is not always reciprocal.  That is the Apache Geode community does not always do things that are in the best interests of the extended community, e.g. making things work in other contexts, like a Spring context.  In many cases, I have really gone to great lengths in order to make Apache Geode play nice in a Spring context.  But sometimes, I just need certain support from Apache Geode to do certain things.
Anyway, it is no excuse for clear documentation along with examples, and by no means, are either complete.  I definitely appreciate your feedback.
Now, to quickly address some of your other points.  Regarding...

There are two lifecycles at play to be managed: the spring-boot app and the embedded geode server

So, when Spring is doing the "bootstrapping" (i.e. you are using an embedded approach, which is perfectly valid), then you can rest assured that Spring (Data Geode) will do the right thing to manage the Apache Geode lifecycle in a Spring context.
As you know, Spring provides many lifecycle hooks (callbacks) to ensure that external services, like Apache Geode, are managed appropriately in a Spring context.

Closing as "won't-fix".  This Issue will morph into providing more complete documentation and examples instead.


Crate is rebuilt on every build due to rerun-if-env-changed

As mentioned in https://github.com/davidcole1340/ext-php-rs/pull/210#issuecomment-1406892456, every time I run cargo check etc then the ext-php-rs build script is run, due to the use of rerun-if-env-changed.
I tracked it down specifically to the PATH env var -- PHP and PHP_CONFIG don't cause issues (though those env vars are not set). My $PATH is stable, so it's not like it's changing. (unless the build script it's self is setting something).

Ran through debugging this with @joehoyle, this actually turns out to be due to:
https://github.com/davidcole1340/ext-php-rs/blob/e6afecbddd8fc9dbf0ef243211fb82ac8864c500/build.rs#L240
When this crate is loaded as a dependency, there's no local Cargo.lock (as it's in the root crate instead); this causes it to rebuild every time due to https://github.com/rust-lang/cargo/issues/6003

Ran through debugging this with @joehoyle, this actually turns out to be due to:
https://github.com/davidcole1340/ext-php-rs/blob/e6afecbddd8fc9dbf0ef243211fb82ac8864c500/build.rs#L240
When this crate is loaded as a dependency, there's no local Cargo.lock (as it's in the root crate instead); this causes it to rebuild every time due to rust-lang/cargo#6003

I've introduced that cargo flag recently, but I forgot to remove it. If you have the time, feel free to submit a PR to remove it! I'll be glad to merge it quickly. Thank you for this investigation

Should we retain it behind a flag? Might be useful for debugging/development purposes.

Should we retain it behind a flag? Might be useful for debugging/development purposes.

Let just remove it for the moment and see later if we can provide a better solution


0.3.1 release

Verison 0.3.1 [2020-02-26]

bumped min openwisp-utils 0.4.3
bumped django-netjsongraph 0.6.1

Signed-off-by: Ajay Tripathi<EMAIL_ADDRESS>

Coverage remained the same at 98.261% when pulling 95a168f5059c18e414ba5e2994e7d3ab02e791fa on atb00ker:master into 1d4703b3f76eab8eae626dab05830b304a295c17 on openwisp:master.


always save vocab file in xlnet tokenizer

Introduction
when reading the source code, I find that there is vital bug:
    def save_resources(self, save_directory):
        """
        Saves `SentencePiece <https://github.com/google/sentencepiece>`__ file
        (ends with '.spm') under `save_directory`.
        Args:
            save_directory (str):
                Directory to save files into.
        """
        for name, file_name in self.resource_files_names.items():
            save_path = os.path.join(save_directory, file_name)
            if os.path.abspath(self.vocab_file) != os.path.abspath(save_path):
                copyfile(self.vocab_file, save_path)

you can refer to: https://github.com/PaddlePaddle/PaddleNLP/blob/develop/paddlenlp/transformers/xlnet/tokenizer.py#L384
from the above code, you can get that xlnet tokenizer always save the vocab_file as the differnet resouce file.

Since XLNet only uses vocab_file as resource currently, it has no effect actually. Sure it is not good.


Compiler warnings

Fix misc. compiler warnings.

Actually I'm not sure if the libthai stuff has a future. It was an experiment because Thai wasn't working out well, but I got ICU working and it looks a lot better now. I can't find any situations where libthai gives us breakpoints that ICU doesn't - and @mhosken says it may be better to concentrate on ICU because there will be additional minority language support in the future.

OK then, I was just annoyed by the warnings.


feat(ui): refactor old send email and custom job from legacy to react…

For more info go to
https://github.com/SEMOSS/semoss-ui/issues/418

Title
feat(ui): refactor old send email and custom job from legacy to react…

User description
For more info go to
https://github.com/SEMOSS/semoss-ui/issues/418

PR Type
Enhancement

Description

Introduced support for a new "Send Email" job type in the application.
Enhanced the job builder modal to include fields for SMTP configuration, recipients, and email content.
Added dynamic job type handling with dedicated builders for "Custom Job" and "Send Email".
Updated job fetching, creation, and editing logic to accommodate email-specific fields.
Extended job table to display and edit email-related configurations.
Added utility functions for encoding and decoding "Send Email" job recipes.
Defined constants and types for the new job types and their configurations.

Changes walkthrough 📝
Relevant filesEnhancement9 files

JobBuilderModal.tsxExtend Job Builder Modal for Email Job Support

packages/client/src/pages/jobs/JobBuilderModal.tsx
Added support for new job types, including "Send Email".  Enhanced job builder modal to handle email-specific fields like SMTP host, port, and message.  Refactored modal close logic and validation to accommodate new job types.

+109/-58

JobTypesBuilder.tsxAdd Dynamic Job Type Builder Component

packages/client/src/pages/jobs/JobTypesBuilder.tsx
Introduced a new component to dynamically render job type-specific fields.  Added support for "Custom Job" and "Send Email" job types.

+44/-0

JobTypesCustomJobBuilder.tsxImplement Custom Job Builder Component

packages/client/src/pages/jobs/JobTypesCustomJobBuilder.tsx
Created a dedicated builder for "Custom Job" type.  Added fields for pixel and tags with autocomplete functionality.

+49/-0

JobTypesSendEmailBuilder.tsxImplement Send Email Job Builder Component

packages/client/src/pages/jobs/JobTypesSendEmailBuilder.tsx
Added a builder for "Send Email" job type.  Included fields for SMTP configuration, recipients, and email content.

+164/-0

JobsPage.tsxEnhance Jobs Page to Support Email Jobs

packages/client/src/pages/jobs/JobsPage.tsx
Updated job fetching logic to parse and handle "Send Email" jobs.  Extended job creation modal to support email-specific fields.

+44/-1

JobsTable.tsxUpdate Jobs Table for Email Job Support

packages/client/src/pages/jobs/JobsTable.tsx
Updated job table to handle and display email-specific fields.  Enabled editing of "Send Email" jobs directly from the table.

+11/-0

job.constants.tsxAdd Constants for New Job Types

packages/client/src/pages/jobs/job.constants.tsx
Added constants for new job types: "Custom Job" and "Send Email".  Defined options for job type selection.

+6/-1

job.types.tsExtend Job Types for Email Job Support

packages/client/src/pages/jobs/job.types.ts
Extended job types to include fields for email-specific configurations.  Added a new interface for "Send Email" job details.

+49/-0

job.utils.tsAdd Utilities for Email Job Encoding and Decoding

packages/client/src/pages/jobs/job.utils.ts
Added utility functions to encode and decode "Send Email" job recipes.  Enhanced utility logic to handle new job types.

+35/-1

💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

PR Reviewer Guide 🔍
Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶
418 - Partially compliant
Fully compliant requirements:

Add a new option on the Jobs Page for "Send Email" and incorporate it into the app.
Allow sending custom templates for the email message.
Ensure the UI is user-friendly and customizable for different use cases.

Not compliant requirements:

Implement dynamic behavior to pull users from a database (Select * from VISN_PREFS) for the "To" and "From" fields.

⏱ Estimated effort to review: 4 🔵🔵🔵🔵⚪
🧪 No relevant tests
🔒 Security concerns
Injection Vulnerability: The getEncodeByJobType function concatenates user inputs into a string for encoding (lines 165-171 in job.utils.ts). This could lead to injection vulnerabilities if inputs are not properly sanitized.
⚡ Recommended focus areas for review
Code SmellThe isBaseFormValid logic (lines 163-194) is complex and could benefit from refactoring to improve readability and maintainability.
Possible BugThe tags, to, cc, and bcc fields use Autocomplete with freeSolo enabled, but no validation is implemented to ensure valid email addresses are entered.
Possible BugThe convertSendEmailRecipeToJob function (lines 146-162) assumes the recipe string is always well-formed, which could lead to runtime errors if the input is malformed or missing expected patterns.
Code SmellThe getEncodeByJobType function (lines 165-171) directly concatenates user inputs into a string, which could lead to injection vulnerabilities if inputs are not sanitized.

PR Code Suggestions ✨

CategorySuggestion                                                                                ScorePossible issue

Validate required fields for SendEmail jobs before generating the recipe string

Ensure that the getEncodeByJobType function handles cases where required fields for SendEmail jobs are missing, to prevent generating invalid recipes.
packages/client/src/pages/jobs/JobBuilderModal.tsx [165-170]
 case JobTypeSendEmail:
+    if (!builder.smtpHost || !builder.smtpPort || !builder.to || !builder.from || !builder.message) {
+        throw new Error("Missing required fields for SendEmail job type");
+    }
     return `SendEmail(smtpHost=['${builder.smtpHost}'], smtpPort=['${builder.smtpPort}'], subject=['${builder.subject}'], to=['${builder.to}'], cc=['${builder.cc}'], bcc=['${builder.bcc}'], from=['${builder.from}'], message=['${builder.message}'], username=['${builder.username}'], password=['${builder.password}']);`;

Suggestion importance[1-10]: 10
Why: Validating required fields before generating the recipe string prevents invalid recipes from being created, which could cause errors downstream. This is a critical improvement for data integrity and functionality.
10

Validate the recipe string before attempting to parse it to avoid runtime errors

Add validation to ensure that the recipe string passed to convertSendEmailRecipeToJob is in the expected format to prevent runtime errors during parsing.
packages/client/src/pages/jobs/job.utils.ts [150-152]
 const recipeMatches: RegExpMatchArray = recipe.match(/(?<=\().*/g);
-if (recipeMatches.length === 0) {
+if (!recipeMatches || recipeMatches.length === 0) {
     return;
 }

Suggestion importance[1-10]: 9
Why: Adding validation for the recipe string ensures that the function does not attempt to parse invalid inputs, which could lead to runtime errors. This is a crucial enhancement for reliability.
9

Add a default case to handle unsupported jobType values in the validation logic

Ensure that the isBaseFormValid logic accounts for all possible jobType values to avoid runtime errors when an unsupported or unexpected jobType is encountered.
packages/client/src/pages/jobs/JobBuilderModal.tsx [163-180]
 switch (builder.jobType) {
     case JobTypeSendEmail:
         return (
             !!builder.name &&
             ...
             !!builder.cronTz
         );
     case JobTypeCustomJob:
         return !!builder.name && !!builder.pixel && !!builder.cronTz;
+    default:
+        return false;
 }

Suggestion importance[1-10]: 8
Why: Adding a default case ensures that unsupported or unexpected jobType values are handled gracefully, preventing potential runtime errors. This is a critical improvement for robustness.
8
Security

Securely handle password fields to prevent accidental exposure

Ensure that sensitive fields like password are handled securely and not exposed in unintended ways, such as being logged or displayed in plain text.
packages/client/src/pages/jobs/JobTypesSendEmailBuilder.tsx [155-159]
 <TextField
     label="Password"
     size="small"
     type="password"
     value={builder.password}
     onChange={(e) => setBuilderField('password', e.target.value)}
+    autoComplete="new-password"
 />

Suggestion importance[1-10]: 7
Why: Adding autoComplete="new-password" improves security by preventing browsers from autofilling or caching sensitive password fields, reducing the risk of accidental exposure.
7

Changelog updates: 🔄
2024-12-18
Added

Introduced React-based components for managing job types, including "Send Email" and "Custom Job".
Added support for configuring and scheduling email jobs with fields like SMTP settings, recipients, and message content.

Changed

Refactored legacy job management UI to React, improving maintainability and user experience.

to commit the new content to the CHANGELOG.md file, please type:
'/update_changelog --pr_update_changelog.push_changelog_changes=true'

implemented code review suggestions

Changelog updates: 🔄
2024-12-19
Added

Introduced React-based refactor for "Send Email" and "Custom Job" functionalities, replacing legacy implementation.
Added support for defining job types, including "Send Email" with SMTP configuration and "Custom Job" with pixel configuration.
Enhanced job creation and editing with new fields for email-specific configurations (e.g., SMTP details, recipients, etc.).

Changed

Updated job handling logic to accommodate multiple job types and their specific configurations.
Improved UI for job management with dynamic form rendering based on job type.

to commit the new content to the CHANGELOG.md file, please type:
'/update_changelog --pr_update_changelog.push_changelog_changes=true'


Add _BackendData utility class to improve FromParquet caching

While exploring the naively-implemented tpch queries in pola-rs/tpch (using scale-factor 1), I noticed that optimization performance is terrible for complicated queries containing FromPandas expressions. This is because we end up calling tokenize and _divisions_and_locations on the backend data repetitively.
This PR adds a _BackendData helper class to effectively wrap the backend data so we we can cache the results of  tokenize and _divisions_and_locations outside the FromPandas class.

thx


feat(select): add search feature for select

Closes #265
I've pushed the commit unverified as I'm facing operating system-related test errors on my local machine. Despite my efforts, I couldn't resolve the issue. I've opened an issue on the relevant project for further investigation.
https://github.com/modernweb-dev/web/issues/2589

Great job! @erbilnas  🚀 I have a few notes:

The search label does not seem centered.

There should be a divider between search and arrow icons.

We should see the search icon when there is no search in search, and we should only see loading during the search process. When the results are listed, it should return to the search icon after loading.

Also, we shouldn't see 3 icons in any case, we can remove the close button when the search icon appears. The close button can be seen again when the search icon disappears (clicking outside). 🙏

Hey @buseselvi, thanks for your kind feedback!

We should see the search icon when there is no search in search, and we should only see loading during the search process. When the results are listed, it should return to the search icon after loading.

For your feedback on this comment, the loading state isn't for typing but for monitoring the fetch process. For instance, if developers aim to display options through an API call, we need to provide them with the loading state. They can then modify the loading state as needed. We talked about it earlier.

can we remove the Select All from the No Data Found result

Also, I think while searching Select All works wrong. It should work as select all searched results, not all results that are not currently visible on the screen. @erbilnas


Publish resources and package.nls.json for vscode.dev testing

How did package-lock.json end up with sooo many changes?

Because I did a full update of it. Build was failing during the npm ci phase. Figured a refresh of the lock should help resolve that, which it did. If you'd rather it be done separately or more surgically, I don't mind, but in that case I'll pull that work out of this change.


Compiling scss to scss

Is it possible to also compile scss to css files in the build task?

How would you do that?
This would either assume that files need to be compiled in the same folder (not a good idea) or would require some sort of configuration.
Besides, package bundlers (such as webpack) handle converting SCSS to CSS.
Finally, you can simply extend Pragmatist tasks. See https://github.com/gajus/pragmatist#gulp-tasks

Valid points, thanks.
I will add my own build step to compile scss.
Great package!


DOC: Icon's name element overflows

[x] I'm sure this does not appear in the issue list of the repository

Basic Info

依赖包名 及 版本: -
系统版本: -
浏览器版本: -
复现地址: https://arco.design/react/components/icon

预期结果
the element should be inside its parent element
It should be:

while currently:

复现步骤

open that URL,
scroll to the Icon section
mouse hover on the name element
you will find out that

maybe useful code
.ac-content ul.iconlist .icon-cell .name {
    /*...*/
    text-align: center;
    box-sizing: border-box;
    padding: 12px;
    margin: 0;
}

Thanks, can you submit a PR?

sure, I will try

I just submit a PR which is #90 ,thanks


Add missing backslash to fix multi-line command

Make it so that copying and pasting the command directly into a terminal works, not leaving off the last line.
@jseldess

This change is

, thanks for catching this, @a-robinson.

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


realsense-viewer snapshot functionality broken under Wayland

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Linux (Arch Linux)

Kernel Version (Linux Only)
5.17.7

Platform
PC

SDK Version
2.50.0

Language
N/A

Segment
N/A

Attempting to grab a frame from the device using the realsense-viewer application has no effect.
In the console, there's this output:
sh: line 1: xprop: command not found

Hi @useronym  I note that you are using kernel 5.17.7.  The most recent kernels that the RealSense SDK has support for are 5.4 if installing from Debian packages, and 5.8 and 5.11 if building the SDK from source code with CMake.  The SDK can work with non-supported kernels, though with unpredictable consequences in regards to stability.
If your project is unable to change the current kernel version then you can bypass the kernel by building the SDK from source code with the RSUSB backend method.  This installation procedure is not dependent on Linux versions or kernel versions and does not require patching.  It is therefore helpful for situations where there may be a kernel conflict or if an exotic hardware / software configuration is being used on the computer (like your Wayland).

Hello @MartyG-RealSense , thank you for the quick reply!
I have built the SDK from scratch (I got the build setup from AUR and they use the following configuration -- seems like they don't use RSUSB backend however). The resulting realsense-viewer binary seems to work well as far as communication with the D415 is concerned, I can see streams from all sensers and configurations.
In any case, I would suspect the issue outlined above has to do with the command xprop not being available on my system, which is due to using Wayland protocol. xprop is a command that depends on X Server protocol. It would be great if realsense-viewer could be ported to work under Wayland as well. The rest of the app works well, so it's a minor annoyance, but I'd rather not write my own application just to take snapshots of the device data.

There is a discussion at the link below where a realsense-viewer user had problems with Wayland and found that realsense-viewer worked normally if they used the CMake build instruction -DGLFW_USE_WAYLAND=OFF so that the GLFW graphical interface that realsense-viewer relies on would not try to make use of Wayland.
https://bugzilla.redhat.com/show_bug.cgi?id=1965596
In regard to building a snapshot program, there is an existing librealsense example program for C++ called rs-save-to-disk
https://github.com/IntelRealSense/librealsense/tree/master/examples/save-to-disk
https://github.com/IntelRealSense/librealsense/issues/9448 has some scripting resources for doing so in Python.

Hi @useronym  Do you require further assistance with this case, please?  Thanks!

Well, the problem of snapshot functionality under Wayland persists, but I've worked around it 👍


Update README.md

What kind of change does this PR introduce?
(Is it a bug fix, feature, docs update, something else?)

[ ] PR title follows the guidelines defined in our pull request documentation

What is the current behavior?
What is the new behavior (if this is a feature change)?**

[ ] Tests for the changes have been added (for bug fixes/features)

Which issue(s) this PR fixes

Special notes for your reviewer
Does this PR introduce a user-facing change?
For user-facing changes, please add a concise, human-readable release note to
the release-note
(In particular, describe what changes users might need to make in their
application as a result of this pull request.)

/scdiff generate Maintained;ls

/scdiff generate ;ls

/scdiff generate Maintained;ls

/scdiff generate Maintained;ls

/scdiff generate Maintained;ls

/scdiff generate Maintained


Multiple 'start' with single 'finished'

I know it should be. an issue of the api, but since this is the implementation I though I open it here.
What is the situation?
Since it is allowed to click on play button next to test name while tests are already running, I though I can support sequentially adding new tests to the batch:
When run is called I just return a global promise and schedule the new tests.
Works fine but on the ui it doesn't show much just when I send the running event about the new tests. If I could send multiple started events with a single finished, that would give enough flexibility.
(Now the next start assumes that there is a missing finished. I guess this is an error handling logic now, so no one should depend on this.)
Bests,

Or another event which indicates that more tests will be run

You could already implement it like this:

if the user clicks run while tests are already running, remember that request in some queue and return a promise that will be resolved after the second test run
once the first test run is finished, fetch the next scheduled test run from the queue and run that
as a result, you'd send the events in this order: TestRunStartedEvent #1, ... , TestRunFinishedEvent #1, TestRunStartedEvent #2, ... , TestRunFinishedEvent #2. In other words: the events would make it look as if the user had requested the second test run immediately after the first test run (even though he really requested it during the first test run). This would also avoid having overlapping test runs, which may confuse Test Controllers.

Do you see any problems with this solution?

I had that solution but the problem the same: No UI feedback: When I start running a test you replace all the icons to blue/pending ones. That is what I'm missing from the second run. Either in case of your solution (which was my old solution) and in case my new solution I cannot achieve that the icon of tests/suites became blue/pending.
We can avoid the confusion by adding a new run event. With that I could send more test id's and you can change the icons: like TestRunExtendedEvent

Damn, I hadn't thought about the blue icons for scheduled tests. Looks like a TestRunExtendedEvent may indeed be the best solution.

I'm not sure about the naming though. extend, append, ...
And since we are talking about events...
I have this concept called 'static event'. It means basically that I don't have to do anything I already have the result of some tests/leafs. When a run of a suite starts at first I send those events and then I do the operation and send the rest of the events based on the result of the operation. Here is a tree.

Root

Suite1

Static1-1
Dynamic1-1

Suite2

Static2-1
Dynamic2-1

Events are the following in order:

TestRunStarted
TestSuiteEvent - running Suite1
TestEvent - running Static1-1
TestEvent - passed/errored/.. Static1-1
TestSuiteEvent - completed Suite1
TestSuiteEvent - running Suite2
TestEvent - running Static2-1
TestEvent - passed/errored/.. Static2-1
TestSuiteEvent - completed Suite2
TestSuiteEvent - running Suite1
TestEvent - running Dynamic1-1
TestEvent - passed/errored/.. Dynamic1-1
TestSuiteEvent - completed Suite1
TestSuiteEvent - running Suite2
TestEvent - running Dynamic2-1
TestEvent - passed/errored/.. Dynamic2-1
TestSuiteEvent - completed Suite2
TestRunFinishedEvent

The 'problem' here is 5 and 9. Sending those event's kills the blue/pending icon for the Dynamic1-1 and Dynamic2-1. (kills means changes to back to greyed normal). Eventually the tests were running so functionally it's ok, but not nice.
I could: not sending 5,9 and 10,14 but then I need some extra logic to check that other tests will be run under that suite, etc.. totally makes sense. But.. I'm a lazy person and I've tried (only on my machine) the following:

TestRunStarted
~TestSuiteEvent - running Suite1~
~TestEvent - running Static1-1~
TestEvent - passed/errored/.. Static1-1
~TestSuiteEvent - completed Suite1~
~TestSuiteEvent - running Suite2~
~TestEvent - running Static2-1~
TestEvent - passed/errored/.. Static2-1
~TestSuiteEvent - completed Suite2~
TestSuiteEvent - running Suite1
TestEvent - running Dynamic1-1
TestEvent - passed/errored/.. Dynamic1-1
TestSuiteEvent - completed Suite1
TestSuiteEvent - running Suite2
TestEvent - running Dynamic2-1
TestEvent - passed/errored/.. Dynamic2-1
TestSuiteEvent - completed Suite2
TestRunFinishedEvent

And it seems working as I expected and good for me. Can you approve this abbreviated usage?
(If yes, do I really need the TestRunStarted and TestRunFinishedEvent events at all for only static events? I guess yes because I can imagine TestRunFinishedEvent might indicates some post processing. Don't know)

I came up with a solution that I like more than having a new event:
First of all, let's see what happens when you simply report 2 separate (though overlapping) test runs: you'd send the 2 started events for both runs as soon as the user requests them and the 2 finished events as soon as the corresponding run is finished. The result would be that each started event colors its corresponding tests blue (good) but when the first run is finished, all blue icons would disappear - including those for the second test run (bad).
The problem is that when Test Explorer receives a TestRunFinishedEvent while multiple test runs are active, it doesn't know which test run is finished. I'd like to fix this by adding a testRunId property to all test run events. So when the TestRunFinishedEvent for the first run is received, only the icons for the first run are changed back to grey.
I think this should fix your problem, right?
As for sending test events without the corresponding suite events: yes, that is explicitly allowed (it's even mentioned in the documentation somewhere that the test suite events are optional).

As for sending test events without the corresponding suite events: yes, that is explicitly allowed (it's even mentioned in the documentation somewhere that the test suite events are optional).

Great, Nitpicking a bit:
Note: I do not send TestEvent state:running event for the static tests either. So I don't need those either, right?
And how about the TestRunStarted and Finished ones if I want to send static event, do I need those?

I came up with a solution that I like more than having a new event

Then I can forget the singleton promise-like solution (returning with the same promise at the second time as at the first time.
It seems okay at first glance, but I will think a bit more about it.

I do not send TestEvent state:running event for the static tests either. So I don't need those either, right?

Correct.

And how about the TestRunStarted and Finished ones if I want to send static event, do I need those?

Currently you don't need them (I think - I've never tested this). However in that case it would just be a coincidence, not something I intentionally wanted to support.
Generally I'd recommend staying as close to the "normal" sequence of events as possible - something that works today may not be supported by Test Explorer in the future if it's something that I never really intended to support.

The latest version of Test Explorer's API contains the testRunId property for all test run events, so if an adapter uses this property, running multiple test runs in parallel should finally work without UI glitches.

It does something but not bullet proof yet.
Issue no.1:
When the first run finishes the stop button transforms to play button. (Even if I send back the same promise for both run.)

When the first run finishes the stop button transforms to play button.

Thanks, I fixed this in 2.19.1.

Hello, Still there is an issue. I start a long test and then I start shortly after another long test works. But If I start 3 long tests in a row the third one messes it up. :S


[BUG] MJPEG streaming demo not working

Hi,
Background
I'm trying to get a browser stream going from a picamera v2 connected to a raspberry pi (v4, bullseye ver 11, picamera2 0.3.4).
Problem
Just copying and pasting the examples/mjpeg_server.py example provided results in a RuntimeError("Must pass io.BufferedWriter")  originating from line 89. This is somewhat to be expected as the StreamingOutput class in the example inherits the io.BufferedIOBase class, not io.BufferedWriter.
Solution?
I could get the stream going as expected when I replace an isinstance() check in line 46 in outputs/fileoutputs.py from io.BufferedWriter to io.BufferedIOBase. I'm not sure if this is the correct solution/intended behavior though.
Could someone look into this? Thanks.

Thanks for reporting this!
@chrisruk Does this look like the correct fix to you? I guess the lesson is that we should have a test for this. Maybe we copy mjpeg_server.py into the tests folder and run server.serve_forever() in another thread. Then we can leave it for a few seconds to check it starts, before doing
server.shutdown()
server_thread.join()

Annoyingly, it makes the 0.3.4 release slightly broken, and probably warrants a quick 0.3.5!

Thanks, yes, that makes sense, since io.BufferedWriter is a subclass of io.BufferedIOBase.
Just writing a fix.

Thanks for looking into it! Looking forward to the update.

I've posted an updated 0.3.5 release that fixes this, so closing this issue!


Provide initialValues as writable store

For some form handling, we need to read AND set the initial values as well. Examples:

I want to set a field only as touched (and hence process it further on submit) if the field has been touched AND the value has changed, compared to the initial value. Only if both conditions are met, it will be sent to the backend. This is especially important for GraphQL-backends, to only process modified properties and not all the values. Therefore I need to compare the actual value (in the $data-store) to the initial value.
When the form is processed at the backend, the new data is returned to the frontend and the form controls are updated accordingly. Now these NEW values must be set as the new initial values. When hitting the Reset-button, these new values must be set in the form. Therefore we need to set the initialValues outside of the form initialization.
For certain validation tasks we need to access the former value (=initial value, before changing the content of the input) as well, in order to compare the two values.
Certain calculations on the client may change the initial values, e. g. a date changes as some added task lasts longer. When resetting, the new calculated date should be set again as it is the new initial value that will be sent to the backend (instead of recalculating everything after reset).

In order to be able to do this, providing the initialValues as a store similar to $data and $touched would be a tremendous improvement for us.

From how initialValues is being used internally, making it a store would be a bit impractical. From your requirements, do you only need to reset the touched store to false when the Reset button is clicked? If that's so, would keeping track of your new initialValues outside of Felte work?
Currently, a way I see to reset your form to new initialValues could look something like this:
// This can mutate due to an external action
let initialValues = { /* Your initial values */};

const { reset, setFields } = createForm({
  initialValues,
  /* ... */
});

// This could act as your `reset` function
function resetForm() {
  // We reset the whole form
  reset();
  // We set the form's values to its new `initialValues`
  setFields(initialValues);
}

Regarding your last point, the previous call to setFields should be able to set the re-calculated date.

Is there something I missed/misunderstood from your issue? Felte's API has grown quite big so I'm hesitant to increasing said API even more if it's not absolutely necessary.

Thank you @pablo-abc for commenting. I will try what your solution and check if it fits our needs and will report back.
To clarify your questions: Setting just the $touched-state is not enough. When resetting or comparing it should be able to refer to the latest initialValues. These are initially set during the creation of the form, but when these need to be updated, then the new values should be used. E. g. a form is shown to the user with initial values. The user changes some values and submits the form. The data is sent to the backend and saved. The user changes some fields and hits the reset button. Now the values/$data must be set back to the values when the form was submitted, not the ones used during the creation of the form.
Handling the initialValues outside of Felte is an option, of course (I'm doing this currently). But this results in more code in each component to handle these, instead of letting the form-component/Felte let handle this.
Instead of providing a store, maybe a method like setFields(), but for initial values (setInitialValues())?
I will report back once I tried your proposed solution.

Hello @pablo-abc , so I tried your mentioned solution, but unfortunately it didn't work. I need the initial values somehow to set during form creation as well as when the backend processed the entries. As these are not available via Felte, I created and handle them outside of Felte. setFields() does what it says, and this works, but when resetting, the initial values are set again instead of the updated initialValues. So I'm using now my own reset-method.
As I have another problem right now (in combination with @imask/svelte: somehow the events overlay each other, so that the masking overwrites the current value instead of "extending" of what is in the input-field right now), I'm afraid that I need to turn to some other form-library (svelte-formula has the same problem, btw).
So from my side this issue can be closed now.

Hey, @taffit ! Thanks for giving Felte a try. Regarding the initial values issue, I guess I'm not seeing how handling this within Felte would remove complexity from your requirements. Is this more or less what you're referring to about resetting the form to different "initialValues"?
If initialValues were a store (or if a method to change it would be exposed) I guess I don't see much difference on the work you'd have to do from handling it outside of Felte with a custom reset form:
// This would be reactive regardless
let initialValues = {};
const { form } = createForm({ initialValues });

To handling it within Felte:
// Assuming it is a store
const { form, initialValues } = createForm({ initialValues: {} });

Your logic outside of Felte would need to be almost the same regardless of if Felte handles it internally or not. Specially since your validation requirements (comparing current values with latest initialValues) seem, at least to me,  as a bit of a special case scenario.

Regarding imask, you're not the first person to open an issue regarding this. This is a scenario on which in order to guarantee no race conditions with Felte I have dabbled around making a package integrating vanilla imask. (E.g. maybe a @felte/imask package). Anyway this is something I'll need to explore more in-depth at a future date. Thanks for your input, it serves a lot for improving Felte!

@pablo-abc You are probably right about the initialValues. I just thought that it might be slightly simpler if I can refer to the initialValues from Felte when comparing (as it contains initialValues already), but you are absolutely right: there is not much difference.
I created a REPL to illustrate my problem/intention, however as $touched seems to not work on the REPL (or more probable: I'm just too dumb ;-)), I couldn't finish it. Strangely also the isFormTouched doesn't work on the REPL while working fine locally. As it is only half-finished, take it with caution. But maybe it clarifies some questions.
It's comforting that even experienced developers have problems in combination with imask.  I was very impressed on how such feature requests were handled, as well as the whole Felte library, which IMHO is a very mature, complete and feature full one to handle forms with svelte. Felt at home immediately ;-).
(Fwiw, I try to revert now to svelte-use-form, which suffers from some other problems, but at least in combination with imask I didn't experience any problems. Hopefully I'm remembering this one correctly ;-))
Thank you for such a wonderful library!

I've experienced that, depending on the packages you use, CodeSandbox works better than the REPL sometimes. I'll check it out.
Regarding the touched part. The function of the touched store is just to let you know if the user has interacted with the field. On text/number/email/etc inputs this means focusing + blurring, on other inputs just interacting with it. Unless I'm not understanding correctly, the comparison to your new initial values would better be handled within the validation process rather than with the touched store?
Anyway, thanks a lot for taking your time to answer to my follow up questions! It's really appreciated!

Sorry, @pablo-abc , but I am now back at Felte again ;-). Just wanted to tell you about my findings regarding imask (which I will post in the related issue as well).
After reverting to svelte-use-form, I experienced the same problems there in combination with @imask/svelte. As I remembered that I had it working there, I continued experimenting.
What doesn't work: Having imask as action (as @imask/svelte provides) on the input-element in combination with some other library that accesses the field/events of the element. I experimented a bit with the events and the action, as e. g. adding an on:focus which invokes the sometimes mentioned IMask.updateValue(), but to no avail. And I'm also too noob on the frontend site to invest more time on this.
What does work, though:

Alternative 1:

Set the initial value directly on the element instead of using initialValues on form creation.

Alternative 2:

Remove the imask-action from the element
Create the mask during onMount to the element

This way it seems that imask got the value updated (I experienced some other quirks after resetting the form, but that may be my fault, i. e. parts of the mask reflect the former modifications. E. g. the field contains 1.000 (masked) -> I change it to 231.000 (masked) -> Reset -> 1.000 -> I add 987 on the head of the number -> 9.8731.000, i. e. the 3 from the previous edit is added. May be my fault, though).
What helps in this case with svelte-use-form is, that it contains a store with all the html-elements of the form. This way you can easily iterate and e. g. attach a mask or similar. That would be maybe useful also for Felte (or is there a way to iterate the form-controls that I didn't find yet?)
Regarding your proposal for moving the check for changed values to the validation: imo this is something different. Let me clarify my intention/idea behind all this. I want to make some forms as ~~idiot-~~user-proof ( ;-) ) as possible while hopefully being as user-friendly as possible.

At the beginning, the form is presented with the initial values: form: clean; status: valid
As long as no value is changed and it is valid, nothing needs to be done. Therefore the Reset- and Submit-buttons are disabled.
If a user focuses on some field and leaves it, the form is touched while still being valid. Still the buttons should be disabled for not triggering any unneeded action, as nothing changed.
If a user modifies a field with an invalid value: form: touched; status: invalid -> Reset: enabled, Submit: disabled
If a user modifies/corrects the field, resulting in a valid value: form: touched, status: valid (and changed) -> Reset: enabled, Submit: enabled.
The user should in this case also see a small information (in the case of the REPL: a different color for the border) on which field has been changed, so she clearly can identify what will be changed during submit and maybe check if that is correct or not.
Data is submitted, processed by the backend and returned. The returned values are becoming the new initial values (so a reset would set the fields to these returned values now), the form becomes untouched, still valid, but not changed, so Reset- and Submit-button are disabled again.
Therefore moving this to validation would be working, still it is not the same: The form may be 100 % valid and all fields touched, still there is nothing that needs to be done. Maybe the term dirty is appropriate here: The form has been touched and some data is modified, therefore it is dirty.

But maybe I just pretend too much from the frontend :-) .
Tl;dr: Moving back to Felte as I found a workaround for the imask-problem


Increasing game speed

See here !
https://www.gamedeveloper.com/design/the-pac-man-dossier

SpeedThe game starts with Pac-Man at 80% of his maximum speed. By the fifth level, Pac-Man is moving at full speed and will continue to do so until the 21st level. At that point, he slows back down to 90% and holds this speed for the remainder of the game. Every time Pac-Man eats a regular dot, he stops moving for one frame (1/60th of a second), slowing his progress by roughly ten percent-just enough for a following ghost to overtake him.Eating an energizer dot causes Pac-Man to stop moving for three frames. The normal speed maintained by the ghosts is a little slower than Pac-Man's until the 21st level when they start moving faster than he does. If a ghost enters a side tunnel, however, its speed is cut nearly in half.When frightened, ghosts move at a much slower rate of speed than normal and, for levels one through four, Pac-Man also speeds up. The table below summarizes the speed data for both Pac-Man and the ghosts, per level. This information is also contained in Table A.1 in the appendices.
| PAC-MAN SPEED | GHOST SPEED
-- | -- | --
LEVEL | NORM | NORM DOTS | FRIGHT | FRIGHT DOTS | NORM | FRIGHT | TUNNEL
1 | 80% | 71% | 90% | 79% | 75% | 50% | 40%
2 - 4 | 90% | 79% | 95% | 83% | 85% | 55% | 45%
5 - 20 | 100% | 87% | 100% | 87% | 95% | 60% | 50%
21+ | 90% | 79% | - | - | 95% | - | 50%


Very subtle crash (without apk)

Information

Apktool Version (apktool -version) - 2.2.0 (but probably all versions are affected).
Operating System (Mac, Linux, Windows) - Windows 8.1 (but probably happens on all Windows).
APK From? (Playstore, ROM, Other) - No apk needed.

Steps to Reproduce
I went crazy to figure out the cause of this crash and at the end was just a folder name (it possibly happens also with other special names).

On Windows put it here: C:\!\apktool.jar
Run: java -jar C:\!\apktool.jar -version
An you get:
Exception in thread "main" java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Unknown Source)
at java.util.Properties.load0(Unknown Source)
at java.util.Properties.load(Unknown Source)
at brut.androlib.ApktoolProperties.loadProps(ApktoolProperties.java:46)
at brut.androlib.ApktoolProperties.get(ApktoolProperties.java:37)
at brut.androlib.ApktoolProperties.get(ApktoolProperties.java:32)
at brut.androlib.Androlib.getVersion(Androlib.java:692)
at brut.apktool.Main._version(Main.java:251)
at brut.apktool.Main.main(Main.java:98)

On Windows is perfectly fine using ! inside file / folder names.

It is related to this: https://github.com/JesusFreke/smali/issues/422
but smali just don't show version but apktoll instead crash.

Pretty sure Java chokes on resource names if there is an ! in the path. Don't use an exclamation point. Problem solved. I don't want to spend my already slim amount of time on such a problem/issue that can be easily resolved.


WY - Failed ELRs on 11/10/21

WY's NBS system began receiving a large number of failed ELRs from Prime on November 10th.
We reviewed the records and found the following issues which need correction or the records will continue to fail:
•	MSH-4: This required SendingFacility value was missing.
o	Must be formatted as |SendingFacilityName^FacilityCLIA^CLIA|
o	We rather receive CLIAs than OIDs, etc. for MSH-4 for all NBS clients due to how this information is stored in the database
•	MSH-5: Records were missing this required value to indicate the receiving application. Please be sure to include the applicable information for this value. This value can be formatted as follows: |PHA_DOH|
•	MSH-6: Records were missing this required value to indicate the receiving facility. Please be sure to include the applicable information for this value. This value can be formatted as follows: |WY_DOH|
•	ORC-12.2 & ORC-12.3: These values are for the ordering provider’s first name and last name. These required values were missing. Please put “Unknown” if not available, i.e. |^Unknown^Unknown|
•	ORC-21: This value is for ordering facility name. Values were missing for this required section. Please put “Unknown” if the information is not available, i.e., |Unknown|
•	ORC-22: This section is for the ordering facility address. Values were missing for this required section. Please put “Unknown” in ORC-22.1 if the information is not available, i.e., |Unknown^^^|
•	OBR-16.2 & OBR-16.3: These values are for the ordering provider’s first name and last name. These required values were missing. Please put “Unknown” if the information is not available, i.e., |^Unknown^Unknown|
•	OBX-23: This value is the performing organization. This required value was missing from the 2nd OBX.
Here are three examples ORC-3.1 (accession number) values from some of the failed files received from CDC Prime:
•	12A04AEE-01EE-4868-8311-C57C414490D0
•	7F3C9BF3-A016-4DCE-82F9-70A2E00FE964
Their ticket number is Ticket SUP-20332 is open for this incident.

There was a duplicate issue created due to a githup hiccup. Closing and please reference #3132