DRAFT: V1.0.0 (was going to be v0.2.0, but refactor got bigger)

V1 Roadmap:

[x] remove support for hooks in route.js files.
[x] remove link from templates.
[x] remove customProps from Elder.js. Leave in customizeHooks.
[x] move the process of compiling HTML to a string to a hook named 'compileHtml' so that users can have full control of rendering of the html.
[x] reverse stack/hook priority
[x] update hooks.ts priority to match the reverse.

elder.config.js

[x] remove locations key in favor of srcDir, distDir, and rootDir
[x] all process.cwd() removed unless rootDir is not set, then it is called once to set it.

Shortcodes:

[x] shortcode integration via a hook.
[x] async shortcode support.
[x] get shortcodes from shortcodes.js
[x] add shortcodes from plugins.
[x] make sure plugin context is available in shortcodes defined by plugins.

Rollup Config:

[x] Internalized with the same configuration as before.
[x] remove all process.cwd() in favor of the elder.config.js refactor.

Other:

[x] useful errors when there are no permalinks due to not adding a request.route property when manipulating allRequests.

[x] validation for the data key when validating routes.

[x] route data functions have read only props. This keeps from things being broken unexpectedly.

[x] forked, meta-shortcodes to add async support, updated the test.

[x] Begin depreciating 'routeHTML' which is passed into 'Layout' svelte templates to be 'routeHtml'.

TODO Post Release:

[ ] revisit all plugin hooks and make sure the priority isn't messed up.
[ ] remove link from the template.
[ ] update all plugins to use the new standardized elder.config.js and remove process.cwd()

Breaking:

link helper is removed from templates. You can access it at helpers.permalinks the same way as before.
routeHtml in the Layout.svelte in the Elder.js template has been changed to 'routeHtml', you should update your project if you are using it as we will remove the naming in the future.
The order of stacks and hook priorities have been reversed. This may cause things to run out of order, please look at your hooks. Before this update, hooks with a priority of 1 where the highest priority, now they are the lowest.
process.browser replacements in rollup.config are now 'process.env.componentType' which will return browser or server. The TS plugin wouldn't let us use a boolean.
There was a major rework to the elder.config.js. If you defined anything in the elder.config.js under the locations key you'll need to rework those.
Remove automatic checking for a tsconfig. If you want to use typescript, please set your srcDir to the build folder found in your tsconfig.

Tests Needed

[ ] The shortcode hook elderProcessShortcodes
[ ] Test shortcode replacement.

Shortcodes for testing:
  {
    shortcode: 'numberOfPages',
    run: async ({ allRequests }) => {
      // allRequests represents 'request' objects for all of the pages of our site, if we know the length of that we know the length of our site.
      return {
        html: allRequests.length,
        // other values can be omitted.
      };
    },
  },

  {
    shortcode: 'box',
    run: async ({ content, props }) => {
      return {
        // this is what the shortcode is replaced with. You CAN return an empty string.
        html: `<div class="box ${props.class}">${content}</div>`,

        // This is added to the page's css through the cssStack. You probably want an external css file for most usecases.
        css: '.box{border:1px solid red; padding: 1rem; margin: 1rem 0;} .box.yellow {background: lightyellow;}',

        // Javascript that is added to the footer via the customJsStack.
        js: '<script>var test = true;</script>',

        // Arbitrary HTML that is added to the head via the headStack
        head: '<meta test="true"/>',
      };
    },
  },

yay v1

@halafi Can you figure out why these build tests are failing? They are overwriting the process.env and causing issues.
Besides that all the tests should be working and just need to get it working on EG and others.

@halafi we will also need a test for the new helper function in prepareInlineShortcode.ts basically in svelte templates shortcodes are a little silly to have.
Test:

[ ] prepareInlineShortcode

By adding @html helpers.shortcode({name:'foo' props: {key: 'val'}, content: 'string'}); we can inline them predictably, handle the JSON stringify, etc.

Codecov Report

Merging #35 into master will decrease coverage by 3.64%.
The diff coverage is 86.91%.

@@            Coverage Diff             @@
##           master      #35      +/-   ##
==========================================
- Coverage   96.02%   92.38%   -3.65%
==========================================
  Files          28       31       +3
  Lines        1031     1142     +111
  Branches      236      231       -5
==========================================
+ Hits          990     1055      +65
- Misses         41       87      +46

Impacted Files
Coverage Δ

src/hookInterface/hookInterface.ts
100.00% <ø> (ø)

src/utils/prepareServer.ts
96.29% <ø> (ø)

src/utils/validations.ts
81.35% <23.07%> (-16.48%)
:arrow_down:

src/Elder.ts
88.88% <73.68%> (-2.26%)
:arrow_down:

src/hooks.ts
89.83% <80.95%> (-6.60%)
:arrow_down:

src/utils/getRollupConfig.ts
87.95% <87.95%> (ø)

src/build/build.ts
91.72% <89.47%> (-5.88%)
:arrow_down:

src/utils/prepareRunHook.ts
88.23% <92.85%> (-4.63%)
:arrow_down:

src/utils/Page.ts
90.58% <95.23%> (-8.28%)
:arrow_down:

src/utils/prepareShortcodeParser.ts
95.83% <95.83%> (ø)

... and 17 more

Continue to review full report at Codecov.

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

TODO:

[ ] test the hydration options.

@halafi Moved the majority of the server implementation to a hook so it can easily be overwritten, customized, or whatever users want to do. Tests there are failing :/


Fix setup.py build / pip install on OS X

Hi Ludwig + Ilya,
I tried to pip install falconn and found that it failed to compile on OS X, so
I went ahead and fixed it.
Specifically, the current setup.py fails to use a version of the standard library
with C++11 support, and so chokes when attempting to include <type_traits>.
The fix is to explicitly set which standard library to use and ensure the
minimum required OS X version is set such that it's willing to use this library.
Note that this is with clang, because OS X g++ is an alias for clang with some
directories in /Developer added to the include path by default.
FYI / for people googling similar errors, the exact error message was:
In file included from falconn/swig/falconn_wrap.cc:3687:
In file included from falconn/src/include/falconn/falconn_global.h:8:
In file included from falconn/src/include/falconn/eigen_wrapper.h:11:
In file included from falconn/external/eigen/Eigen/Dense:1:
falconn/external/eigen/Eigen/Core:257:10: fatal error: 'type_traits' file not found
#include <type_traits>
         ^
1 error generated.

Thanks, looks good! Two questions:

Would it work on older versions of OS X?
@ludwigschmidt , can you check that the new version works for you, since I don't have an OS X machine?

Since 10.9 came out in 2013, I've generally just used that, but I can try it with 10.7 if we want.

If there is a simple way to support an older version, it'd be great. But I think not supporting anything older than back from 2013 is also fine.

It looks like:

10.7 causes it to spew errors seemingly pertaining to std::async
10.8 compiles but ends with clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9

So we can probably do 10.8 if you want, but it looks like it'll break at some point.

OK, let's say 10.9 is the minimum required version.
I'm merging the pull request.


Upgrade to Node 16

I wasn't able to run the tests since there's files missing from main
 ● Workspace.isAffected › dependency change › should not be affected (test-c, with pattern)

    ENOENT: no such file or directory, open '/Users/***/projects/is-workspace-affected/tests/project/package.json'

Resolves #350

@julien-capellari whoops, forgot about my work yarn config :)
I updated the PR, I think we're all set.  I bumped to 2.0.0 since technically a breaking change but a seemingly safe one.


[fuel-coroutines] not all exceptions are properly wrapped as FuelError

Bug Report
Description
A clear and concise description of what the bug is.
some Exceptions thrown inside a suspending request are not wrapped into FuelError
To Reproduce
cause a ConnectException on a suspending request with eg. awaitStringResponse
it will not be wrapped in a Fuel Error and crash the test
@Test
fun handleConnectException() = runBlocking {
    val (_, res, result) = Fuel.get("http://<IP_ADDRESS>:80")
        .awaitStringResponse()

    assertThat(res, notNullValue())
    assertThat(result, notNullValue())
    assertThat(result.component2(), notNullValue())
    val success = when (result) {
        is Result.Success -> true
        is Result.Failure -> false
    }
    assertFalse("should catch exception", success)
    when (result) {
        is Result.Success -> fail("should catch connect exception")
        is Result.Failure -> {
            assertThat(
                result.error.exception as? ConnectException,
                isA(ConnectException::class.java)
            )
        }
    }
}

Expected behavior
A clear and concise description of what you expected to happen.
should handle it in FuelError like non-suspending requests

fixed by #512


Incorrect type mismatch when recursing with a wrapped type variable

This was found when auto-generating encoders/decoders for https://github.com/Skinney/elm-deque/blob/1.1.0/src/Deque.elm
The custom types in the sscce correspond Type <-> Deque and Wrapper <-> Buffer.
Possible problem: the type variable a is apparently unified against copies of itself inside recursive calls, so recursing with a different type than we originally passed in fails.
Maybe this is related to what lazy fixed for json codecs?

SSCCE
Ellie: https://ellie-app.com/6khF9n9FHFCa1
The 1st argument to `encode_Type1` is not what I expect:

32|             encode_Type1 v0
                             ^^
This `v0` value is a:

    Type (Wrapper a)

But `encode_Type1` needs the 1st argument to be:

    Type a

Hint: Your type annotation uses type variable `a` which means ANY type of value
can flow through, but your code is saying it specifically wants a `Wrapper`
value. Maybe change your type annotation to be more specific? Maybe change the
code to be more general?

Read <https://elm-lang.org/0.19.0/type-annotations> for more advice!

module Deque exposing (Type)

type Type a
    = TypeCtor (Type (Wrapper a)) -- removing the `Wrapper` around `a` fixes it

type Wrapper a
    = Wrapper a

-- type alias TAWrapper a = a -- changing Wrapper to a type alias fixes it

type Opaque
    = Opaque -- e.g. Bytes.Encode.Encoder

-- ### sscce 1

encode_Type1 : Type a -> Opaque
encode_Type1 thing =
    case thing of
        TypeCtor v0 ->
            encode_Type1 v0

-- ### sscce2, a bit less sscce-ified.
{-
   encode_Type2 : (a -> Opaque) -> Type a -> Opaque
   encode_Type2 encode_a thing =
       case thing of
           TypeCtor v0 ->
               encode_Type2 (encode_Wrapper2 encode_a) v0

   encode_Wrapper2 : (a -> Opaque) -> Wrapper a -> Opaque
   encode_Wrapper2 encode_a thing =
       case thing of
           Wrapper v0 ->
               encode_a v0

-}

Elm: 0.19
Browser: Compiler bug
Operating System: osx + whatever Ellie is running on

EDIT:
after digging around in the type constraint code in the compiler a bit, the compiler gave me these type errors:
? -> Decoder (Deque (Buffer ∞))
? -> Decoder (Deque (Buffer ∞))
? -> Decoder (Deque (Buffer ∞))
Decoder (Buffer ∞)
Buffer ∞ -> Encoder
Buffer (Buffer ∞)
Deque (Buffer ∞)
Buffer (Buffer ∞)

Maybe related do the suite of errors saying "got type T1 but expected type T1", e.g. https://github.com/elm/error-message-catalog/issues/226


A filter for selecting specific channels

A filter for selecting specific channels

Thank you, I've already planned to implement something like this soon.
Will close the issue once done.


Add new MOA Chat to Crosshatch

The goal is to make this available on Decent as a selectable mix.
It's the same MOA as the example provided in moa-llm
TESTED=LOCALLY

This should only be merged when https://github.com/catena-labs/monorepo/pull/1299 is in.

Yep, you're right. I'll do that before merging


[Malawi Core] Filtering Module

Name of feature to enhance
A filter module is needed to filter patients for tracing - To follow up with a person over the phone or in the community with the intention of bringing the person into care or providing them with a service they need.
Description of feature
We need to filter by:

[ ] All Phone: List of all persons at the facility that need tracing that have a phone number. This list can be filtered by All Phone or Mine

[ ] All Reasons: List of all reasons that a person on the tracing list can be traced for e.g. a positive DBS result for exposed infants, High viral load results for clients

[ ] Age: The list should also be filtered by age ranges

If the required information has been found after filtering with All Phone and/or All Reasons, there is no need to filter with Age as well. Summarily, if the required information is found by filtering any one filter or combination of two filters, the CHW does not have to filter with the third.

Describe the enhancement

The all phone filter:

All Phone: List of all persons at the facility that need tracing that has a phone number. This list can be filtered by All Phone or Mine

Mine: Filters the list of all persons that require phone tracing to show only the list of all persons assigned to the CHW that require tracing

All reasons filter:

All Reasons: List of all reasons that a person on the tracing list can be traced for e.g. a positive DBS result for exposed infants, High viral load results for clients

All Reasons Dropdown Options: ART Client, Positive DBS, Missed Milestone, Missed Appointment, High Viral Load, Interrupted Treatment, Missed Follow-up VL, Viral Load Detectable, Linkage, ICT: CR, ICT: DR, ICT: PR,  ICT: FRS (CHILD CONTACT)and All Reasons

Age filter:

Age: The list should also be filtered by age ranges

Cool, thanks @Gental-Giant, we can split the underlying tech needs from the UI shown here, the underlying tech needs are

an API to generate search queries through
a UI to interact w/the search API, to the user this would look like filters

@rowo @HenryRae We will new designs that include these filters.

@Gental-Giant Please share a data dictionary with the list of reasons to be shown in this dropdown.
How are the reasons associated with the patient? e.g How do mark a patient as a Positive DBS?

@rowo @HenryRae We will new designs that include these filters.

If it's filtering out due families/patients, for now the designs don't have this feature. I this something you would want us to include?

@HenryRae The due filter is part of it. The screen mockups on this issue show the ability to filter the patient register/list by a couple of other attributes e.g by CHW Phone number, then by reason then finally by age.
We currently do not have UI to help us show these filters for selection.


Install of tcg/voyager failed

Version information

Laravel: v8
Voyager: v1.4
PHP: 8.0
Database: Mysql

Description

When I run the "composer require tcg / voyager" command I get this error.
Screenshots

As the error states, you don't have the git command on your system path.
Everything else works because you're not using dev versions for those.  Composer will do a git clone when grabbing dev versions.


Relationship 'strings' disappear when beyond 'full sheet viewer'

From<EMAIL_ADDRESS>on May 04, 2009 03:59:32
What steps will reproduce the problem? 1. Create 2 tables w a relationship linking them together
2. Move one table so it is located beyond perimeter of 'full page viewer'. What is the expected output? What do you see instead? The relationship 'string' is no longer visible beyond the perimeter. What version of the product are you using? On what operating system? 2.3.2 on firefox, ubuntu 8.1
Original issue: http://code.google.com/p/wwwsqldesigner/issues/detail?id=18

From ondrej.zara on May 05, 2009 01:59:53
Please provide some screenshot(s) and explain in more detail what do you mean by
"full page viewer". I am unable to reproduce this at the moment.

From ondrej.zara on June 08, 2009 08:58:34
Status: Invalid

From<EMAIL_ADDRESS>on June 14, 2009 13:12:00
screenshot attached...
Attachment: disapearingrelationshipline.jpg

From ondrej.zara on June 14, 2009 14:55:48
This is not a bug, it is a feature. Vector canvas must have fixed dimensions and
these are set to correspond with #area. If you want larger vector canvas (=> slower
computations), please adjust your area's dimensions accordingly (in style.css).


Ignores <select field

I'm not sure how to describe this issue:
If I submit a form the <select field is ignored. It's quite weird. The odd thing is it is in the <form. Jquery's $('form').serialize() does not pick it up even though $('form select').val() does.
Perhaps I'm doing something wrong? I'm not even sure how to debug this because it happens only on certain websites.
Using: 2.0.0 (development)

@Tarang could you please provide an example?


Automatic PR from RestAPI-PR1452

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/1452

Codecov Report

Merging #1320 into master will increase coverage by 0.01%.
The diff coverage is 74.85%.

@@            Coverage Diff             @@
##           master    #1320      +/-   ##
==========================================
+ Coverage   56.04%   56.06%   +0.01%
==========================================
  Files        2691     2694       +3
  Lines       71246    71286      +40
==========================================
+ Hits        39932    39966      +34
- Misses      31314    31320       +6

Impacted Files
Coverage Δ

...ke/analytics/account/models/firewall_rule_paged.py
80% <ø> (ø)
:arrow_up:

...datalake/store/models/trusted_id_provider_paged.py
80% <ø> (ø)
:arrow_up:

...nalytics/account/models/storage_container_paged.py
80% <ø> (ø)
:arrow_up:

...count/models/data_lake_store_account_info_paged.py
80% <ø> (ø)
:arrow_up:

...e/analytics/account/models/sas_token_info_paged.py
80% <ø> (ø)
:arrow_up:

...ytics/account/models/storage_account_info_paged.py
80% <ø> (ø)
:arrow_up:

.../mgmt/datalake/store/models/firewall_rule_paged.py
80% <ø> (ø)
:arrow_up:

...e/analytics/account/models/compute_policy_paged.py
100% <ø> (ø)
:arrow_up:

...lake/analytics/account/models/storage_container.py
55.55% <0%> (ø)
:arrow_up:

...t/datalake/store/models/data_lake_store_account.py
100% <100%> (ø)
:arrow_up:

... and 22 more

Continue to review full report at Codecov.

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

I am closing this PR as I am working with @ro-joowan to manually generate an aggregated ADL python SDK update.


Change call to metal3-dev-env script in CI image script

use make instead of 01_install_requirements.sh : https://github.com/metal3-io/metal3-dev-env/pull/56

CI broken due to merge of change https://github.com/metal3-io/metal3-dev-env/pull/56 . Merging anyways


Fixed #24141 -- Added QuerySet.contains().

Reopening of ticket #24141, based on discussion in django-developers.

Also release notes are missing.

buildbot, test on oracle.


Angular 11 dependency

Hello,
Your package works great! I want to update my application to Angular 11, but ngx-mention has a dependency on Angular 9. I get the following warning when I run ng-update:

I can ofcourse run ng-update with the force flag, but it would be nice if this package would be updated to Angular 11.
Thanks.

@SanderVO sorry for the late reply. I completely missed the notification.
The fix has been published to npm on v1.0.2. The notice shouldn't occur after updating..


[OSM] Allow OSM builder to fetch map data from web instead of file

+1. It would be great when doing this give the ability to pass a mock object as the http adapter, so we can easily test it (see e.g. https://pypi.python.org/pypi/requests-mock)


False information in plugin details

If you request the details of of PlotMe you get false information.
https://api.bukget.org/3/plugins/bukkit/plotme/latest
You can see that the API returns information from DynmapPlotMe and from PlotMe.
Main, description, hard_dependencies, authors and some others are from DynmapPlotMe.
It looks like that some information gets mixed together.
{ website: "http://dev.bukkit.org/bukkit-plugins/plotme", dbo_page: "http://dev.bukkit.org/bukkit-plugins/plotme", main: "com.worldcretornica.dynmapplotme.DynmapPlotMe", description: "Link between dynmap and PlotMe", curse_id: 40349, versions: [ { status: "Semi-normal", commands: [ ], game_versions: [ "1.8.1" ], changelog: "PGRpdiBjbGFzcz0iY29udGVudC1ib3gtaW5uZXIiPgo8aDM+CiBDaGFuZ2UgbG9nCjwvaDM+Cjxw PgogRml4ZXMgYSBkYXRhYmFzZSBpc3N1ZSB3aXRoIFNRTGxpdGUKIDxiciAvPgogUGFydGlhbGx5 IGZpeGVzIHdvcmxkZWRpdCBhbnl3aGVyZS4gVGhpcyB3aWxsIGJlIHByb3Blcmx5IGZpeGVkIGlu IDAuMTcKIDxiciAvPgogVGhpcyByZWxlYXNlIGlzIGNvbXBhdGlibGUgd2l0aCBhbGwgMC4xNi5Y IGFkZG9ucwogPGJyIC8+CiBOaW5qYVVwZGF0ZQo8L3A+CjwvZGl2Pg== ", dbo_version: "0.16.3", hard_dependencies: [ "dynmap", "PlotMe" ], download: "http://dev.bukkit.org/media/files/860/66/PlotMe.zip", version: "0.3", link: "http://dev.bukkit.org/bukkit-plugins/plotme/files/42-0-16-3/", file_id: 86066, date:<PHONE_NUMBER>, permissions: [ ], filename: "PlotMe.zip", type: "Release", slug: "42-0-16-3", soft_dependencies: [ ], md5: "4b855624773450ab1d1821c4b22314ca" } ], popularity: { monthly: 863, total: 43104, daily: 18, weekly: 176 }, plugin_name: "DynmapPlotMe", server: "bukkit", curse_link: "https://www.curse.com/bukkit-plugins/minecraft/plotme", logo_full: "", authors: [ "zachbora" ], logo: "", slug: "plotme", categories: [ "Anti-Griefing Tools", "Admin Tools", "Teleportation", "World Generators" ], stage: "Release" }

Closing this due to the project not being active anymore.


Peer -to-peer code review. Friday 10/14/2022.

Good job @AbayomiOlaoye 👏 . You have followed best practices and your code is DRY. Just a slight improvement I think you need to make on the below piece of your code.
Click here to see the code snippet

Thank you so much for your time, @johnkioko


can i do this for android in java?

Sorry I do not have much expertise in android or java, but I may point some leads if you elaborate your ask.


IOS dialog not showing

Hi,
Only when i press 2 times the home button, the dialog pops up (see img), and from then on the share button always works.

Thanks

Can you please elaborate? How are you triggering the plugin in your code?

just simply by this:
window.plugins.socialsharing.share(__this.model.Data.html, null, null, null, null, null);
      __this.tools.trackEvent('[tips] ' + __this.model.Data.title, "share", "share tips article");

But now i rebuild it in appBuilder in release mode and now it shows the popup fine.
Really strange


The download link of chrome doesn't work in http://outdatedbrowser.com/zh-cn

http://outdatedbrowser.com/zh-cn looks prety.
I have been using outdated-browser for a long time,very useful.
But the download link of chrome doesn't work in download link of chrome doesn't work in http://outdatedbrowser.com/zh-cn.As we all know,network is bad from within China,we can not approach Google.
Can I download the source code form the site  http://outdatedbrowser.com,and fix it for within China,non commercially?

Sorry @shery15 but the source code of the website isn't available.

What a pity!
The UI of http://outdatedbrowser.com looks great!
OK, I'll find another way out.

Hi @shery15, thanks for using Outdated Browser.
The only component that is open source is the Outdated Browser plugin, not the website. Otherwise, we'll end to have a bunch of Outdated Browser and loses the quality control.
Can you please tell us what's intend to do within China with this tool so can we analyse and adapt the tool accordingly the restrictions?
Thank you!

When using Outdated Browser plugin, I would open the website http://outdatedbrowser.com/zh-cn to show Browser download links  in most cases. Because of Google's exit from China, download link of chrome doesn't work within China, and most users can not fix this issue. So, if we can change the download link to a third party platform, it would be very friendly to the user from China.
Thanks for your response!

Hi @shery15 , thank for your help.
Ok, could you paste here the link that works within China?
Thank you!

Such as http://down.tech.sina.com.cn/content/40975.html and http://rj.baidu.com/soft/detail/14744.html work well works within China.


Scheduled Test against Vanilla Gitea

Adds a scheduled workflow that runs tests expected to pass with a vanilla gitea instance against the latest tagged Gitea image. Failures on this workflow could help us find issues before we've incorporated those changes into the latest AllSpice Hub image. The downside is that if there is such a change, this test will fail continuously unless we manually change test-gitea.sh to ignore it OR update AllSpice Hub and therefore py-allspice.
Can only be merged after #45.

Closing this is it is very outdated now.


Adds resuming and saving model to sb3 example

Adds the ability to save and load model for resuming training, run inference and save periodic checkpoints with CL arguments.
Limitations of this implementation:

While sb3 will save logs if starting multiple runs with the same experiment name by adding e.g. expname_1, expname_2 etc. to the folder name, my current checkpoint saving implementation requires a unique experiment dir or name argument to be set and prompts the user to set a different folder if the checkpoint folder exists, this is to prevent overwriting checkpoints from a previous run with the same experiment dir/name.

For example, if using the default arguments (no exp dir or name specified), the logs will be saved to:
.\logs\sb3\Experiment_1
and checkpoints will be saved to:
.\logs\sb3\Experiment_checkpoints

Resuming training does not keep track of previous timesteps in this implementation. So for example training with --timesteps=10_000 and saving a model, then resuming training with the same setting and saving the model again will train the model for 20_000 total timesteps, but 10_000 steps will be displayed in the console log after the final training run.

This is just a draft implementation, I welcome your feedback on whether it is sufficient as specified before starting changes to the documentation.

Nice, looking good! I haven't had time to test it though.

Thanks for the review. I ran a quick test on it in which it worked, but I didn't test every use case in-depth.

This is great! Maybe we could expose the show_window parameter, in other scripts I have this option as --viz. I think training can be faster if you don't render. (but obviously you can't see the agent's progress)
Otherwise LGTM feel free to merge.

Thank you for the review, I agree. Camera sensors may need --viz when used (I haven't tested them at all yet so I'm not sure about this, also whether they work better with a GPU, which I can't test yet), if they do we can consider adding a help note later to where the argument appears.
Will merge after all tests pass.


Fix autoscale without breaking manual scaling

This PR is a WIP
We've been testing changes to make the Autoscale functionality via HPA work again.
Right now it looks like this image (quay.io/kingdonb/controller:kb-fix-autoscale-take-5) is successfully permitting a manual scale as well as an HPA to be created, like:
deis autoscale:set cmd -a testing-hephy --min=2 --max=5 --cpu-percent=10

The concession we had to make is that we don't know what has changed with manual scaling in apps/v1 deployment, so we have left it at extensions/v1beta1 API for deployments.
The autoscaler/v1 HorizontalPodAutoscaler will only find the Deployment as a match if it is also provided with a scaleTargetRef.apiVersion selector that matches.  I added that here, and HPA now succeeds, assuming you have metrics-server properly configured so the HPA can get pod metrics to make scale decisions.
I also tested the manual deis ps:scale -a testing-hephy cmd=1 behavior, which was broken by the last attempt we made to upgrade to autoscaler/v1.  We should make any reasonable efforts to upgrade the deployment to apps/v1, but that is not necessary in order to fix the autoscale feature (without unfortunately also breaking manual scaling.)  This PR seems to do both 👍!
The other frankly unacceptable concession I had to make was in rootfs/api/models/app.py where the HPA is created, I have hardcoded 'apiVersion': 'extensions/v1beta1' as I'm not sure how the App resource is supposed to find out what the Deployment's api_version ought to be.
We discussed maybe adding an API version service that you can use from any module to determine what API versions are in use for what objects, but there is more discussion that needs to happen before it's clear what that piece ought to look like.
Also, since upgrading a resource's API version means necessarily destroying the old resource, we are going to need a bigger plan when it comes to upgrading deployments to apps/v1, since that step appears to be unavoidable, we might need to write code so that a cluster can recognize when these deployment upgrades are needed, and to handle them in a reasonable way.  I'm not sure how this can be done without potentially causing apps to have downtime.
(It should be perfectly safe to delete and recreate HPAs though, so for the upgrade guide, maybe we give that a little mention and this can go to press relatively as-is in the next release.)

I rebased this with some --onto and --rebase-merges magic, so it wouldn't include any reverse-merges back from master into the wip branch.

We can probably also take this to a new branch and do some commit squashing to improve the history, for the changelog.

Tested this on an EKS cluster running 1.13, verified as working.

@kingdonb , I would really like to improve the commit messages. I'm going to take your commits and put them on top of https://github.com/teamhephy/controller/pull/106 and merge them there. I will test again and merge everything once the tests pass. We probably want to squash some of these commits as well, the ones in the beginning (reverts).


vcpkg-configuration.json not following git registry baseline commit?

Describe the bug
I have a project which uses a vcpkg git registry that I maintain myself. In the project's vcpkg-configuration.json I set a commit hash for the registry's "baseline" field; however, whenever I try to grab dependencies from the registry I see that the registry's HEAD is used instead of the baseline commit.
Environment

OS: Windows, Linux, macOS.

To Reproduce
Steps to reproduce the behavior:

Set up a vcpkg git registry, with two commits C1 and C2, both containing different portfiles for a dependency. C1 is the latest master, and C2 is the latest commit on a different branch.
Set up a project which grabs its dependencies from the registry on step 1, and use C2 for the "baseline" field on vcpkg-configuration.json, i.e.

"registries": [
  {
    "kind": "git",
    "repository": "https://github.com/my-registry",
    "baseline": "C2_hash",
    "packages": [ "my_dependency" ]
  }
]

Install the dependency for the project (e.g. by building it using CMake and manifest mode).

Expected behavior
vcpkg will install the dependency as specified in commit C2 of the registry.
Actual behavior
vcpkg ignores commit C2 completely, and always grabs the latest master instead (i.e. C1).
Additional context
From https://vcpkg.io/en/docs/maintainers/registries.html#git-registries I see the following:

Since your user will set their baseline to a commit ID, that commit ID must always exist, and be accessible from your HEAD commit, which is what is actually fetched.

Does that mean that the "baseline" hash can only correspond to a commit on master? If so, this is even less useful than I thought. See also https://github.com/microsoft/vcpkg/issues/27583

Hi @Cheney-W @BillyONeal, I'm pinging this issue since I haven't gotten a response yet. Is there anyone currently looking at this? Thanks.

Hi @Cheney-W and @BillyONeal! This seems to be an issue still. Any updates? We recently moved to vcpkg and just bumped into this issue today. This issue will start causing headaches for us very soon when we have different branches in our repo pointing to different baselines.
//Best regards, Jesper [MSFT]

The intended design is:
The version database used comes from the fetched HEAD ref. The baseline selects versions that exist within that version database, subject to constraints placed upon the version selection.
So given:
main -> z_v2_added -> x_v2_added -> baseline -> z_v1_added -> y_v1_added -> x_v1_added

and
{
    "dependencies": ["x", "y", "z"]
    "vcpkg-configuration": {
        "registries": [{
            "ref": "main",
            "baseline": "baseline",
            "ports": ["x", "y", "z"]
        }]
    },
    "overrides": [
        {
            "name": "x",
            "version": "2"
        }
    ]
}

This will select x = 2, y = 1, z = 1, according to the version database located in main, because the baseline says x = 1, y = 1, z = 1, but x is overridden to be 2.
Are you seeing behavior different than this? (Your issue says that vcpkg looks at master, but doesn't talk about what versions are selected, so it isn't clear if the problem is that we fetched that in the first place or that we selected incorrect versions...)

Hi @BillyONeal, I think the difference is that I don't have a "ref" field within "registries". My understanding was that the "baseline" commit simply told vcpkg which versions of the portfiles to grab, but from your comment I see that it's more complex than that.

Hi @BillyONeal!
How come x is v2 but not z since main has both z and x as v2 according to the graph you provided?
And can you also please clarify - a commit is unique and can only hold one set of changes, so what is the purpose of "ref" when "baseline" points out a specific commit that should be used? I fail to understand how you should be able to provide two conflicting commits to be used.
//Best regards, Jesper [MSFT]

I think the difference is that I don't have a "ref" field within "registries".

I think the difference is that I don't have a "ref" field within "registries".

Then I believe it will be whatever head ref that repo advertises.

How come x is v2 but not z since main has both z and x as v2 according to the graph you provided?

Because the version selections come from the baseline, and the baseline said they are all v1.

And can you also please clarify - a commit is unique and can only hold one set of changes, so what is the purpose of "ref" when "baseline" points out a specific commit that should be used?

The version database comes from "ref""reference". The version database must name any and all versions reachable ever. "baseline" names a floor on which versions will be used; you can get versions that disagree with the baseline either through overrides or constraints.

EDIT: Also - documentation mentions nothing about this "ref" property!?

Sorry, that's what I get for doing an example without actually trying it. It should be "reference" rather than "ref": https://github.com/microsoft/vcpkg-tool/blob/7c1708eaeb1f87126ec808e9fe0f6bc7cb2c72ec/docs/vcpkg-schema-definitions.schema.json#L600 . If not specified it's whatever the head ref that git repo says is.


Is it possible to make a modal dialog sticky ?

I mean that it would not render its template+controller more than once
I know angular bootstrap $modal removes the DOM element once closed so I guess its impossible
Am I correct?
Thanks

if using ui-bootstrap's $modal service as intended, I'd say it's probably not possible.  However, you could ditch the $modal service and use the bootstrap CSS and markup directly.  You could ng-hide it when the sticky state is inactivated.

Check out this plunker which demonstrates a declarative bootstrap modal as a directive myModal: http://plnkr.co/edit/VMHjamaVP4THDq76rbIs?p=preview
It's used like so:
    <my-modal as-modal="foo.toggle">

I'm a modal state!

        <input type="checkbox" ng-model="foo.toggle">Use modal markup

        Substate

        <button class="btn btn-primary" ng-show="foo.toggle" ui-sref="normal.substate">Close</button>

    </my-modal>


aio rt trigger create fails to create a trigger with a feed from /whisk.system/alarms package

Describe the bug
Creating a trigger that has a feed (any of the alarms package feeds) fails with a Feed name is not valid error.
Example command failing with an error
$ aio rt trigger create my-trigger -f /whisk.system/alarms/once -p date "2022-10-26T11:00:00.000Z" -v
2022-10-26T10:25:23.920Z aio-cli-plugin-runtime {
  apiversion: 'v1',
  apihost: 'https://adobeioruntime.net',
  namespace: '******************',
  api_key: ''******************'
}
2022-10-26T10:25:23.920Z @adobe/aio-lib-runtime:RuntimeAPI:debug init options: {
  "apiversion": "v1",
  "apihost": "https://adobeioruntime.net",
  "namespace": "'******************",
  "api_key": "'******************"
}
2022-10-26T10:25:23.922Z @adobe/aio-lib-runtime:RuntimeAPI:debug proxy settings not found
2022-10-26T10:25:25.344Z aio-cli-plugin-runtime OpenWhiskError: PUT https://adobeioruntime.net/api/v1/namespaces/******************/triggers/my-trigger Returned HTTP 400 (Bad Request) --> "Feed name is not valid"
    at (...)
 »   Error: failed to create the trigger: feed name is not valid (400 Bad
 »   Request)
 »    specify --verbose flag for more information

namespace and APi key obfuscated
This looks like related to a leading slash, as the same command executed with wsk cli works:
$ wsk trigger create my-trigger -f whisk.system/alarms/once -p date "2022-10-26T11:00:00.000Z"
ok: invoked /whisk.system/alarms/once with id 3de991f748c94834a991f748c9783431
{
    "actionHost": "<IP_ADDRESS>",
    "activationId": "3de991f748c94834a991f748c9783431",
    "annotations": [
        {
            "key": "path",
            "value": "whisk.system/alarms/once"
        },
        {
            "key": "waitTime",
            "value": 128
        },
        {
            "key": "kind",
            "value": "nodejs:10"
        },
        {
            "key": "timeout",
            "value": false
        },
        {
            "key": "limits",
            "value": {
                "concurrency": 1,
                "logs": 10,
                "memory": 256,
                "timeout": 60000
            }
        },
        {
            "key": "initTime",
            "value": 158
        }
    ],
    "duration": 2277,
    "end":<PHONE_NUMBER>181,
    "invokerInstanceId": {
        "instance": 4,
        "instanceType": "invoker",
        "uniqueName": "rt-invoker-4",
        "userMemory": "1500000000000000 B"
    },
    "logs": [],
    "name": "once",
    "namespace": "******************",
    "podName": "wskrt-invoker-44-370593-prewarm-nodejs10",
    "publish": false,
    "response": {
        "result": {
            "status": "success"
        },
        "size": 20,
        "status": "success",
        "success": true
    },
    "start":<PHONE_NUMBER>904,
    "subject": "******************",
    "version": "0.0.245"
}
ok: created trigger my-trigger

Trying to use aio cli trigger create without the leading slash generates another error The requested resource does not exist
$ aio rt trigger create my-trigger -f whisk.system/alarms/once -p date "2022-10-26T11:00:00.000Z" -v
(...)
2022-10-26T10:40:22.974Z @adobe/aio-lib-runtime:RuntimeAPI:debug proxy settings not found
2022-10-26T10:40:26.448Z aio-cli-plugin-runtime OpenWhiskError: POST https://adobeioruntime.net/api/v1/namespaces/******************/actions/alarms/once Returned HTTP 404 (Not Found) --> "The requested resource does not exist."
    at (...)
 »   Error: failed to create the trigger: the requested resource does not
 »   exist. (404 Not Found)
 »    specify --verbose flag for more information

Note that in addition the working command does not align with the documentation which instructs to provide leading slash.
Documentation examples:

creating trigger using wsk cli
creating trigger using app builder manifest file

Expected behavior
The aio cli trigger create  works as documented.
The App Builder app deployment (aio app run) works as well and allows to create triggers along actions during deployment.
Versions:

OS: Windows 10 Pro
aio cli: 9.1.0
wsk cli: 1.2.0-windows-386
node: 14.17.0

Thank you for the report, we'll investigate. The leading slash is the correct way to reference the alarm package AFAIK.

Our daily e2e tests for aio-lib-runtime passed when creating a feed, but only tests for /whisk.system/alarms/alarm. Will continue probing and add a test for /whisk.system/alarms/once

Our e2e tests were run 12 hours ago, I just ran them manually and there are 2 failing tests with triggers and feeds.

Thank you for quick response and looking into this! Looking forward to seeing results of your investigation.

If I may add, there is an odd behavior that I observed, which may be related to this issue.
When I accidentally tried to create a trigger with a date in the past, I have received an error (as expected) informing me about that. But it also resulted in one more error, with no details in the returned json (see below). Just a plain app error.
Since then, all triggers stopped firing as they were scheduled. I can still fire them manually from the command line, but they are not triggered on scheduled time or interval. Like some internal scheduler/cron has been broken by my attempt to set a trigger in the past.
What's also important, that issue fixes itself overnight (I've experienced that twice), presumably by some runtime maintenance that (I guess) restarts something in the service.
Details
This is how it appears on the activation list as:
 Datetime        Status    Kind      Version    Activation ID                    Start Wait Init Duration Entity
 ─────────────── ───────── ───────── ──────── ─ ──────────────────────────────── ───── ──── ──── ──────── ───────────────────────────────
 10/26 15:50:19  app error nodejs:10 0.0.245    fc47163f11a1433087163f11a1f330e5 warm  25   0    1001ms   whisk.system/alarms/once
 10/26 15:50:19  app error nodejs:10 0.0.245    d3114b406618461b914b406618b61bf7 warm  50   0    70ms     whisk.system/alarms/once

$ aio rt activation get d3114b406618461b914b406618b61bf7
{
  "actionHost": "<IP_ADDRESS>",
  "activationId": "d3114b406618461b914b406618b61bf7",
  "annotations": [
    {
      "key": "path",
      "value": "whisk.system/alarms/once"
    },
    {
      "key": "waitTime",
      "value": 50
    },
    {
      "key": "kind",
      "value": "nodejs:10"
    },
    {
      "key": "timeout",
      "value": false
    },
    {
      "key": "limits",
      "value": {
        "concurrency": 1,
        "logs": 10,
        "memory": 256,
        "timeout": 60000
      }
    }
  ],
  "duration": 70,
  "end":<PHONE_NUMBER>086,
  "invokerInstanceId": {
    "instance": 4,
    "instanceType": "invoker",
    "uniqueName": "rt-invoker-4",
    "userMemory": "1500000000000000 B"
  },
  "logs": [],
  "name": "once",
  "namespace": "***************",
  "podName": "wskrt-invoker-44-376762-prewarm-nodejs10",
  "publish": false,
  "response": {
    "result": {
      "error": {
        "error": "date parameter '2022-10-26T13:16:00.000Z' must be in the future"
      }
    },
    "size": 85,
    "status": "application error",
    "success": false
  },
  "start":<PHONE_NUMBER>016,
  "subject": "***************",
  "version": "0.0.245"
}

$ aio rt activation get fc47163f11a1433087163f11a1f330e5
{
  "actionHost": "<IP_ADDRESS>",
  "activationId": "fc47163f11a1433087163f11a1f330e5",
  "annotations": [
    {
      "key": "path",
      "value": "whisk.system/alarms/once"
    },
    {
      "key": "waitTime",
      "value": 25
    },
    {
      "key": "kind",
      "value": "nodejs:10"
    },
    {
      "key": "timeout",
      "value": false
    },
    {
      "key": "limits",
      "value": {
        "concurrency": 1,
        "logs": 10,
        "memory": 256,
        "timeout": 60000
      }
    }
  ],
  "duration": 1001,
  "end":<PHONE_NUMBER>317,
  "invokerInstanceId": {
    "instance": 4,
    "instanceType": "invoker",
    "uniqueName": "rt-invoker-4",
    "userMemory": "1500000000000000 B"
  },
  "logs": [],
  "name": "once",
  "namespace": "***************",
  "podName": "wskrt-invoker-44-376762-prewarm-nodejs10",
  "publish": false,
  "response": {
    "result": {
      "error": {}
    },
    "size": 12,
    "status": "application error",
    "success": false
  },
  "start":<PHONE_NUMBER>316,
  "subject": "***************",
  "version": "0.0.245"
}

The service issue turned out to be a red-herring. I tried creating an alarm via the aio cli and it was successful just now.
The next step is to get the value of the x-request-id  header of the failing call.

macOS/Linux: Prefix DEBUG=*  before your command, then run it
Windows Powershell: set: $env:DEBUG = '*', then run your command

Hi @shazron, your mention of Windows Powershell actually struck me with the obvious question about the shell that's being used. I am mostly using git-bash and the failing command was executed from git-bash.
When I tried in Powershell and and then also in CMD it worked properly!
So apparently there is something incorrect with git-bash that I wasn't aware of.
If that's of any help, here's the failing git-bash command with --verbose that includes x-request-id.
I've removed some parts of the output to make it more readable.
$ wsk trigger create my-trigger -f /whisk.system/alarms/once -p date "2023-10-28T13:00:00.000Z" -p deleteAfterFire "rules" --verbose
REQUEST:
[PUT]   https://adobeioruntime.net/api/v1/namespaces/_/triggers/my-trigger?overwrite=false
Req Headers
{
  (...)
  "User-Agent": [
    "OpenWhisk-CLI/1.0 (2021-04-01T23:49:54.523+0000) windows 386"
  ]
}
Req Body
{"name":"my-trigger","annotations":[{"key":"feed","value":"/_/once"}]}

RESPONSE:Got response with code 200
Resp Headers
{
  "X-Azure-Ref": [
    "0QchbYwAAAACXtTcq3m8oS7aWYqgq/sCMV0FXMDFFREdFMDUxNwBiNzdiNjYzMy04ZjcwLTQyNWItOTJiZC03NmFlYmU5YWI5YzU="
  ],
  "X-Cache": [
    "CONFIG_NOCACHE"
  ],
  "X-Request-Id": [
    "OECo2knrvXfcI3z62I9vJnXAUONRvhpH"
  ]
}
Response body size is 200 bytes
Response body received:
{"annotations":[{"key":"feed","value":"/_/once"}],"limits":{},"name":"my-trigger","namespace":"53890-381goldflyingfish-stage","parameters":[],"publish":false,"updated":1666959425782,"version":"0.0.1"}
REQUEST:
[POST]  https://adobeioruntime.net/api/v1/namespaces/_/actions/./C:/Program%20Files/Git/whisk.system/alarms/once?blocking=true&result=false
Req Headers
(...)
Req Body
{"authKey":"********","date":"2023-10-28T13:00:00.000Z","deleteAfterFire":"rules","lifecycleEvent":"CREATE","triggerName":"/_/my-trigger"}

RESPONSE:Got response with code 400
Resp Headers
{
 (...)
  "X-Azure-Ref": [
  "0Q8hbYwAAAAASxLjiWO9ARZ2RO6eChBhaV0FXMDFFREdFMDUxNwBiNzdiNjYzMy04ZjcwLTQyNWItOTJiZC03NmFlYmU5YWI5YzU="
  ],
  "X-Cache": [
    "CONFIG_NOCACHE"
  ],
  "X-Request-Id": [
    "aCCr4BZHJSWLmb9ljXyoMvhQELZeLbvQ"
  ]
}
Response body size is 105 bytes
Response body received:
{"code":"aCCr4BZHJSWLmb9ljXyoMvhQELZeLbvQ","error":"The name of the entity contains illegal characters."}
REQUEST:
[GET]   https://adobeioruntime.net/api/v1/namespaces/_/triggers/my-trigger
Req Headers
(...)
RESPONSE:Got response with code 200
Resp Headers
{
  (...)
  "X-Azure-Ref": [
    "0Q8hbYwAAAAAjVmuQ+KGzS5Urp7XPGnliV0FXMDFFREdFMDUxNwBiNzdiNjYzMy04ZjcwLTQyNWItOTJiZC03NmFlYmU5YWI5YzU="
  ],
  "X-Cache": [
    "CONFIG_NOCACHE"
  ],
  "X-Request-Id": [
    "RTkPcuZQ7WvPgGN8hojo4rpWRCXpkGTJ"
  ]
}
Response body size is 200 bytes
Response body received:
{"annotations":[{"key":"feed","value":"/_/once"}],"limits":{},"name":"my-trigger","namespace":"*********","parameters":[],"publish":false,"updated":1666959425782,"version":"0.0.1"}
REQUEST:
[POST]  https://adobeioruntime.net/api/v1/namespaces/_/actions/once?blocking=true&result=false
Req Headers
(...)
Req Body
{"authKey":"********","date":"2023-10-28T13:00:00.000Z","deleteAfterFire":"rules","lifecycleEvent":"DELETE","triggerName":"/_/my-trigger"}

RESPONSE:Got response with code 404
Resp Headers
{
  (...)
  "X-Azure-Ref": [
    "0Q8hbYwAAAADlRMiIxz7CR5TeqMqGDYnkV0FXMDFFREdFMDUxNwBiNzdiNjYzMy04ZjcwLTQyNWItOTJiZC03NmFlYmU5YWI5YzU="
  ],
  "X-Cache": [
    "CONFIG_NOCACHE"
  ],
  "X-Request-Id": [
    "1Q4vHlh2cvtnXFO0IlZPG5QgbsqDM3da"
  ]
}
Response body size is 92 bytes
Response body received:
{"code":"1Q4vHlh2cvtnXFO0IlZPG5QgbsqDM3da","error":"The requested resource does not exist."}
REQUEST:
[DELETE]        https://adobeioruntime.net/api/v1/namespaces/_/triggers/my-trigger
Req Headers
(...)
RESPONSE:Got response with code 200
Resp Headers
{
 (...)
  "X-Azure-Ref": [
    "0Q8hbYwAAAADVvSKWEwegTacCFNRNvkqSV0FXMDFFREdFMDUxNwBiNzdiNjYzMy04ZjcwLTQyNWItOTJiZC03NmFlYmU5YWI5YzU="
  ],
  "X-Cache": [
    "CONFIG_NOCACHE"
  ],
  "X-Request-Id": [
    "FO2cKNeQriGaVGaWjipZ0rWca1D80I2F"
  ]
}
Response body size is 200 bytes
Response body received:
{"annotations":[{"key":"feed","value":"/_/once"}],"limits":{},"name":"my-trigger","namespace":"********","parameters":[],"publish":false,"updated":1666959425782,"version":"0.0.1"}
ok: deleted trigger my-trigger
error: Unable to create trigger 'my-trigger': Unable to configure feed '/_/once': The name of the entity contains illegal characters. (code aCCr4BZHJSWLmb9ljXyoMvhQELZeLbvQ)

There are sometimes issues with the alarm provider's state. Right now the best course of action is to delete all rules and triggers and re-create them. Not ideal, but if you want to use a manifest that would be painless.

I tried exactly this previously without success and had to wait until the next day when it fixed automatically. I will give it another try, though.

I found that setting the variable MSYS_NO_PATHCONV=1 (actually to any value) through export MSYS_NO_PATHCONV=1 or simply prepending it before the command, solves the issue and makes both following commands execute properly under git-bash.
wsk trigger create my-trigger -f /whisk.system/alarms/once -p date "2023-10-28T13:30:00.000Z" -p deleteAfterFire "rules"
aio rt create my-trigger -f /whisk.system/alarms/once -p date "2023-10-28T13:30:00.000Z" -p deleteAfterFire "rules"

So it appears to be a won't caused by my insufficient knowledge of git-bash.1
Running MSYS_NO_PATHCONV=1 aio app run in git-bash deploys all triggers with feeds included in the manifest properly.

However the breaking scheduler issue stays. I've created a trigger with date in the past through the manifest and since then all triggers stopped firing. Even when I removed all trigger and rules, and re-created them again.

Oh wow! I should have asked for the output of aio info as well to figure out your shell.
Does quoting "/whisk.system/alarms/once" work, without the MSYS_NO_PATHCONV=1 env var?
I'll write up this path issue as a separate issue for other user's benefit (and to prime Google search).

However the breaking scheduler issue stays. I've created a trigger with date in the past through the manifest and since then all triggers stopped firing. Even when I removed all trigger and rules, and re-created them again.

Don't have an answer for you yet for this issue.

@dominik-kornas-wttech here's the advice I was given:

We still have the known issue when trying to delete and recreate the triggers of the same name. This requires a lot of rework in the current alarms and is a low priority for now -- the mitigation is to simply use unique names for the triggers to prevent reuse.

Hi!
I tried with double quotes, but the results is the same: an error prompt informing about feed name not being a valid one.
And regarding trigger names, I'm sure I tried with different ones and the issue persisted. From my point of view, this isn't really an issue with recreating triggers. The initial attempt to create a trigger fails because of the date in the past. Then, even if I create another trigger with a valid date and a different name, this and any other trigger aren't fired.
Though, I don't know the inner details of the alarms package so it still may be somehow relate to the mentioned known issue, just the observation doesn't seem that much related.


Problems on Linux

Describe the bug
Hi!
I created a simple layout for my app.
It works fine on Windows, but on Linux, it has a weird "visual glitches". It seems that they are appearing when I hover the TabView.
Also, the Menu has a white background instead of transparent.
Code: https://pastebin.com/26N03444
Screenshots

Desktop/Platform

OS: Lubuntu 22.04.3
FluentAvalonia 2.0.1
Avalonia 11.0.4

I don't really know what's going on in the first screenshot. For the menu, if the white background appears behind popups, it means your OS doesn't support transparent windows (or that isn't enabled at least). This I can't do anything about as this not an Avalonia thing.
I'm not a linux expert, especially with non-mainstream distros so unfortunately there's not much help I can offer here

I don't really know what's going on in the first screenshot. For the menu, if the white background appears behind popups, it means your OS doesn't support transparent windows (or that isn't enabled at least). This I can't do anything about as this not an Avalonia thing.
I'm not a linux expert, especially with non-mainstream distros so unfortunately there's not much help I can offer here

Hmmm... Okay. I installed Lubuntu because I thought it was pretty popular and small. I'll try to install normal Ubuntu and see if it happens.

I don't really know what's going on in the first screenshot. For the menu, if the white background appears behind popups, it means your OS doesn't support transparent windows (or that isn't enabled at least). This I can't do anything about as this not an Avalonia thing.
I'm not a linux expert, especially with non-mainstream distros so unfortunately there's not much help I can offer here

I installed an Ubuntu 22.04.3 Desktop amd64 and problem still persists :/
It works perfectly fine on Windows, and on Linux it worked too when I used pure Avalonia.
As I said, the problem is probably with the TabView (because it only happens when I hover on it/drag it)

I slightly misspoke, its not the OS not supporting transparency, its the Window Manager.
I just tested the sample app on Ubuntu (which uses the default Gnome window manager) and I have no issues, so both issues I'm guessing are tied to whatever window manager you're using. Still not sure how the first issue relates to that - unless Skia/OpenGL doesn't like said window manager.
Is it just hover, or is it drag specific. When dragging a tab, it goes invisible during the reorder/drag operation and that may be triggering some sort of rendering glitch? Still not entirely sure.

I slightly misspoke, its not the OS not supporting transparency, its the Window Manager.
I just tested the sample app on Ubuntu (which uses the default Gnome window manager) and I have no issues, so both issues I'm guessing are tied to whatever window manager you're using. Still not sure how the first issue relates to that - unless Skia/OpenGL doesn't like said window manager.
Is it just hover, or is it drag specific. When dragging a tab, it goes invisible during the reorder/drag operation and that may be triggering some sort of rendering glitch? Still not entirely sure.

The white background is working fine, sorry, I didn't mention that.
I'll try to use the sample app and see if it works.
This happens when I hover on it, and honestly I don't know if dragging have something to do with it, because, well, to drag you need to hover. I'll try to record it too.

The entire sample app is glitching like this on Umu buntu. Maybe it's because of vmware? I don't know. I have a friend with Linux, I'll ask him to test it.

@NotroDev looks like transparency is disabled on your VM machine.

@NotroDev looks like transparency is disabled on your VM machine.

But on Ubuntu, the Menu looks normal and has a transparent background. The only problem now is the first mentioned in the issue

Are you using the software rendering backend (or no GPU) for your app? Basically we don't support transparency on platforms without a GPU.

I don't understand. Where I can check it? And also:

But on Ubuntu, the Menu looks normal and has a transparent background. The only problem now is the first mentioned in the issue

So it probably doesn't matter anymore

@NotroDev in that case please update the issue description carefully. Thx.

@NotroDev I've asked the avalonia core team and they said that running in a VM is a valid thing. However I got this response:

"Probably need to blacklist gpu driver"

As I'm not a linux expert, can't say anything how to achieve it. But maybe you can google around and give it a try.

@NotroDev I've asked the avalonia core team and they said that running in a VM is a valid thing. However I got this response:

"Probably need to blacklist gpu driver"

As I'm not a linux expert, can't say anything how to achieve it. But maybe you can google around and give it a try.

Thanks! I'll try :)


Toggl Desktop invisible when disconnecting external screens

Toggl Desktop is visible on an external screen and when disconnecting the screen Toggl Desktop is not able to reposition itself to another screen.

You can work around by right click > Move then use the arrow keys and mouse to move it back onto a visible screen.

Assigning to myself so I can see if this still occurs.

Cannot reproduce the problem in current build. I suspect that WPF handles this by default, moving the window from one screen to the other, if it becomes invisible.


add proper error message when project is not in database

Pull Request Test Coverage Report for Build 4044

0 of 3 (0.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.001%) to 36.094%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
0
3
0.0%

Files with Coverage Reduction
New Missed Lines
%

azkaban-web-server/src/main/java/azkaban/webapp/servlet/ProjectManagerServlet.java
1
0.0%

Totals

Change from base Build 4040:
-0.001%

Covered Lines:
10509

Relevant Lines:
29116

💛  - Coveralls


AudioBufferSourceNode not properly ended

After playing an AudioBufferSourceNodesrc until the end with (src.loop = false), there is a call to src.onended, as expected. However, changing src.loop = true plays the sound again. It means that it was properly dismissed.

Thanks for flagging, looking at the code it does not properly handle the case where the source has ended and subsequently a loop=true is issued:
// The output must change to a single channel of silence at the beginning of a render
// quantum after the time at which any one of the following conditions holds:
// 1. the stop time has been reached.
// 2. the duration has been reached.
// 3. the end of the buffer has been reached.
if scope.current_time >= self.stop_time
    || self.render_state.buffer_time_elapsed >= self.duration
    || !is_looping
        && (computed_playback_rate > 0. && buffer_time >= buffer_duration
            || computed_playback_rate < 0. && buffer_time < 0.)
{

We can fix it with an extra self.ended_triggered check. However for some reason I have not been able to reproduce this in a unit test. TBC

Hey,
Yup, we definitely miss an additional check.
Just to mention I tried to add a unit test for that (without the fix to see it fail properly):
fn test_loop_no_restart() {
    let sample_rate = 48_000.;
    let mut context = OfflineAudioContext::new(1, RENDER_QUANTUM_SIZE * 2, sample_rate);

    let mut buffer = context.create_buffer(1, 1, sample_rate);
    let data = vec![1.; 1];
    buffer.copy_to_channel(&data, 0);

    let mut src = context.create_buffer_source();
    src.connect(&context.destination());
    src.set_buffer(buffer);
    src.start_at(0.); // play in fast track

    // set src loop to true after it should have stopped
    context.suspend_sync(128. / sample_rate as f64, move |_| {
        src.set_loop(true);
    });

    let result = context.start_rendering_sync();
    let channel = result.get_channel_data(0);

    println!("{:?}", channel);
}

I just expected to see the second part the resulting buffer filled with 1 but it gave me this unexpected error instead:
thread 'node::audio_buffer_source::tests::test_loop_no_restart' panicked at src/node/audio_buffer_source.rs:582:37:
index out of bounds: the len is 1 but the index is 128

I didn't dig further as I didn't know where you were on that but I can have a closer look in the next days if you want

Nice catch. Feel free to fix. I'm not working on that part


Clarify license

Could you please clarify you license?
You released it as

Released publicly under the Apache License Version 2.0

The following statement is against the Apache 2.0 License.

For commercial licenses please contact the dev team at invopop.

It is unclear now, under which conditions this library is published now. Especially because the license file only includes the Apache License 2.0 text and does not mention a change and prohibited commercial use.

Yes, that is a bit confusing! We'll see if we can reword it. The intent was that the project is released under an Apache 2.0 license, but if you need something else you can get in touch.
We're actually planning to deprecate this project soon in favour of invopop/gobl.cii, which is the underlying format, so we'll be sure to improve the wording for there.


added an example of translating from english to spanish at the top of…

… the privacy-policy page
: Implement multi-language support to cater to a wider audience by allowing the website to be accessible in different languages.

@all-contributors please add @Adonai-Technologies  for code, content, ideas, and translation


Running the test scripts with IMDG version support is added

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Windows test PASSed.

Linux test PASSed.


[HOLD Web 34579] Use new api command UpdateWorkspaceGeneralSettings

Details

Uses the new UpdateWorkspaceGeneralSettings command following offline pattern B (optimistic with feedback).
Fixed Issues

$ https://github.com/Expensify/Expensify/issues/219957
Tests

Check out and test with https://github.com/Expensify/Web-Expensify/pull/34579
A. Basic Update

Log in with any account
Create a workspace with the green plus button
Click the Avatar at the top left, the workspace name, General Settings
Update only the workspace name
Click Save
Wait a couple seconds, then refresh to verify that the changes have saved
Update only the workspace currency
Click Save
Wait a couple seconds, then refresh to verify that the changes have saved
Update both the name and currency
Click Save
Wait a couple seconds, then refresh to verify that the changes have saved

B. Offline

Go offline
Update the workspace name
Verify that all inputs are grayed out
Go back online
Verify that the inputs are no longer grayed out

C. RBR

Throw this error at the top of updateWorkspaceGeneralSettings so that it fails

throw new ExpError('test-uuid', 'Test');

Update the workspace name
Verify that you see an error message saying "An error occurred updating the workspace, please try again."
Hit the back button at the top left of the modal
Verify that there is a red brick on the "general settings" menu item
Hit the back button at the top left of the modal
Verify that there is a red brick on the workspace menu item
Verify that there is a red brick on the avatar at the top left of the screen
Follow the red brick road back to the workspace settings
Hit the "X" to dismiss the error
Verify that all red bricks disappear immediately

[ ] Verify that no errors appear in the JS console

PR Review Checklist

Contributor (PR Author) Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] Any functional components have the displayName property
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

PR Reviewer Checklist
The Contributor+ will copy/paste it into a new comment and complete it after the author checklist is completed

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] Any functional components have the displayName property
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

QA Steps

Tests A and B above.

[ ] Verify that no errors appear in the JS console

Screenshots

Web

Offline feedback

RBR
https://user-images.githubusercontent.com/26260477/186429938-33a44e96-3869-4ccf-ab5c-3955a4eab129.mp4
Mobile Web

Desktop

iOS

Android

Ready for review! I'm still waiting on a copy check for the error message text since I just realized that the label only works on an issue.

Currently, I can't test this. Changing the workspace's name fails every time. The error displays correctly, though!
That said, the new (failed) workspace name remains pretty much everywhere until I refresh (I changes the name from workspace to workspaces):

Hmm that's weird. Well anyways I'm going to have to update this to use UpdateWorkspaceGeneralSettings. I'll make this a draft again. Please see my update here.

The offline flow is currently not working because somehow the ReconnectApp command is overriding the data. I'll investigate more to figure out what's going on.

It looks like the ReconnectApp command hits the server and finishes before UpdateWorkspaceGeneralSettings, but the Onyx updates don't happen until after the Onyx update from UpdateWorkspaceGeneralSettings. Therefore, ReconnectApp overrides the policy name that is set by UpdateWorkspaceGeneralSettings.

Ok. I thought there was something weird going on, but it turned out that I was simply passing outputCurrency to the api when it expected currency. Then I had some git chaos, but I think it's all straightened out now 😅

I tried to base off of Alberto's branch to delete Policy.update, but then I realized that it's still used by Policy.uploadAvatar, so we'll have to wait unit that refactor to delete Policy.update.

Ready for review!

This merge this one, right???

Thanks for the quick review @vitHoracek. I'm ready for another when you have time.

@neil-marcellini Linter is complaining

Ready for more reviews!

Thanks for the reviews! I'll make some updates and comment here once that's done.

I made changes all blocking comments. Now I'll test on all platforms.

Tests pass on all platforms that I tested!

Changes have been made again and it still tests well. Ready for review again.

Updated and ready for review once again.

Tests were passing when I merged https://github.com/Expensify/App/pull/10400/checks?sha=04c1bb50dee39f2c3e5f2c4f16ef9e090c1fb130, otherwise I wouldn't have been able to merge.

Woohoo, thanks everyone! 🚀

🚀 Deployed to staging by @neil-marcellini in version: 1.1.93-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Wait, how come this PR is not market as released in the latest production release? It was listed in the staging deploy cash 2 days ago. cc @AndrewGable


More explicit error.

Signed-off-by: kuba--<EMAIL_ADDRESS>Related to https://github.com/src-d/gitbase/issues/521

Duplicated of https://github.com/src-d/go-mysql-server/pull/399


Error 404 on Ubuntu 18.04 installation

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-3.0.100
Operating System: Linux Ubuntu 18.04 - x64
Provide details about the problem you are experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
The "sudo apt-get update" should be before "sudo apt-get install apt-transport-https" or else apt-get gets a 404 error

Thanks.
CC @rowanmiller

actually, @felipepessoto are you sure this is the case? apt-transport-https is not part of .NET, but it is required to be able to hit our https mirrors.

cc @leecow and @dagood to chime in on this

I created a VM from scratch (on Azure) and ran the instructions in https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-3.0.100.
Idk if this only happens on Azure. I'll create a new VM and get the output of the error

The apt-transport-https is required to download repo info from the Microsoft package repository, I believe, so I think you need another update in between, not just a move:
sudo add-apt-repository universe
sudo apt-get update # In case you didn't have universe enabled.
sudo apt-get install apt-transport-https
sudo apt-get update # Get the Msft repo into behind an https url.
sudo apt-get install dotnet-sdk-3.0

Your Azure VM probably has a minimal set of repos enabled--that would explain why you might see this there but not a Ubuntu Desktop VM, which I think has more enabled by default.

Here is the output:
felipe@Teste:~$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
felipe@Teste:~$ ls
packages-microsoft-prod.deb
felipe@Teste:~$ sudo dpkg -i packages-microsoft-prod.deb
Selecting previously unselected package packages-microsoft-prod.
(Reading database ... 56293 files and directories currently installed.)
Preparing to unpack packages-microsoft-prod.deb ...
Unpacking packages-microsoft-prod (1.0-ubuntu18.04.2) ...
Setting up packages-microsoft-prod (1.0-ubuntu18.04.2) ...
felipe@Teste:~$ sudo add-apt-repository universe
'universe' distribution component is already enabled for all sources.
felipe@Teste:~$ sudo apt-get install apt-transport-https
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  apt-transport-https
0 upgraded, 1 newly installed, 0 to remove and 7 not upgraded.
Need to get 1692 B of archives.
After this operation, 153 kB of additional disk space will be used.
Err:1 http://azure.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 apt-transport-https all 1.6.11
  404  Not Found [IP: <IP_ADDRESS> 80]
E: Failed to fetch http://azure.archive.ubuntu.com/ubuntu/pool/universe/a/apt/apt-transport-https_1.6.11_all.deb  404  Not Found [IP: <IP_ADDRESS> 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Oh, that's different... appears that Azure has their own package mirror (http://azure.archive.ubuntu.com/ubuntu), wasn't aware of that. It looks like it was down for a bit, or the cache that's included in a fresh VMs is out of date and causes a 404, requiring an update before first use.
Seems more like an Azure issue at this point. If adding another update fixes it, I don't think it's bad for us to add it to the .NET Core install instructions, but it seems like it could be fixed closer to the source.
@leecow maybe you can weigh adding a workaround vs. directing this to Azure to fix?

I don't know anything about the Azure mirror but can imagine that it will lag release publishing by some amount.

apt-transport-https isn't our package, it should have been available for quite a while now. Note the 404 url:
http://azure.archive.ubuntu.com/ubuntu/pool/universe/a/apt/apt-transport-https_1.6.11_all.deb  404  Not Found [IP: <IP_ADDRESS> 80]


ws wf rework

Rework WS to work like https://github.com/magey/classic-warrior/wiki/Windfury-Totem#triggered-by-melee-spell
Autos have a cast batch where damage and result are calculated, and a damage batch where autos are applied.
This should allow two Instant stike GCD's in a row to proc WS with the second ability benefiting from the AP of the first proc.
(Same for autos but harder to time / align)
Refactored WS/ WF totem to share the same helper function code.
Still need to prevent WS/WF AP from turning off in the middle of a batch though.


How to use it with react-native-router-flux?

Hello,
quite new to the react scene and I am struggling to understand some flow...
I have an index page where I registered all the scenes, as suggested on the router-flux docs:
const scenes = Actions.create(
	<Scene key="root" hideNavBar={true}>
		<Scene key="Lessons" tabLabel="Lessons" component={Lessons} />
		<Scene key="Trainees" tabLabel="Trainees" component={Trainees} initial={true} />
		<Scene key="TraineeDetails" component={TraineeDetails}>
			<Scene key="TraineeDetailsLessons" component={TraineeDetailsLessons} initial={true} />
			<Scene key="TraineeDetailsPurchases" component={TraineeDetailsPurchases} />
			<Scene key="TraineeDetailsContacts" component={TraineeDetailsContacts} />
		</Scene>
		<Scene key="Purchases" tabLabel="Purchases" component={Purchases} />
		<Scene key="Settings" tabLabel="Settings" component={Settings} />
	</Scene>
);

And then I call
return (
			<Router scenes={scenes} createReducer={reducerCreate} getSceneStyle={getSceneStyle} />
		);

in my redner method... works fine...
but then on the page
TraineeDetails I have a Tabbar on the top... and I would like to display content from the assigned components
The code in my TraineeDetails:

/**
* Trainee details
*/
'use strict';

import React, { Component } from 'react';
import { StyleSheet, View, StatusBar, Image } from 'react-native';

import Icon from 'react-native-vector-icons/MaterialIcons';
import Tabs from 'react-native-tabs';
import Config from '../../constants/Config';

import {Actions} from 'react-native-router-flux';

class TraineeDetails extends Component {

	constructor(props, context) {
		super(props, context);
		this.state = {
			tab: 'today'
		};
	}

	componentDidMount(){
		StatusBar.setBackgroundColor(screenConfig.primaryColor, true);
	}

	goBack(){
		Actions.Trainees();
	}

	onSelectTab(el){
		console.log('PROPS: ', el.props);
		console.log('NAME: ', el.props.name);
		console.log('VIEW: ', el.props.view);

		//Actions[el.props.view]({data:this.props.data});

		this.setState({tab: el.props.name});
		this.setState({tabContent: el.props.view});
	}

	render() {

		const Player = this.props.data;
		return (
			<View>
				<Icon.ToolbarAndroid
					title={Player.name}
					navIconName="arrow-back"
					onIconClicked={this.goBack.bind(this)}
					overflowIconName="arrow-drop-down"
					actions={actions}
					style={styles.toolbar}
					backgroundColor={screenConfig.primaryColor}
					titleColor='white'
				>
				</Icon.ToolbarAndroid>

				<View style={styles.container}>
					<View style={styles.header}>
						<Tabs
							style={styles.tabs}
							selected={this.state.tab}
							selectedStyle={styles.tabIconSelected}
							selectedIconStyle={styles.tabIconSelected}
							onSelect={this.onSelectTab.bind(this)}
						>
							<Icon view="TraineeDetailsLessons" name="today" size={36} />
							<Icon view="TraineeDetailsPurchases" name="local-atm" size={36} />
							<Icon view="TraineeDetailsContacts" name="message" size={36} />
						</Tabs>

						<Image source={{uri: Player.avatar}} style={styles.avatar} />
					</View>

					<View>
						{/* NEED THE TAB CONTENT HERE */}
					</View>
				</View>
			</View>
		);
	}
}
// ..... and so on

How do I insert the component and re-render it each time the tab is tapped?
In your example you just change a variable and text on the same scene... would be helpful if you could add a container and change the content (loaded dynamically from a component)

I assume you have looked at how Tabs are done in the react-native-router-flux Example code and are confused, understandably. They recently switched to using a different Tab component in 3.26.0 and just today switched back to using react-native-tabs, but it looks like they may have not reverted the Example code to work with it. You might want to look at the Example in an older version.
Looking at your code quickly, it looks like for starters, you need to have a <Scene key="tabbar" ... />  wrapping your tabs.
You might have noticed that react-native-router-flux is still very unstable. I am using 3.24 successfully in my app but am aware that when I need to upgrade, for example if I need to switch to a newer version of react-native, I will probably have a significant rewrite of my code.

the thing is, that both examples (the recent one and the old one) in the react-native-router-flux repo change the whole scene, and not one section of the scene... whilest the example on react-native-tabs changes only one value on the screen, and doesn't load different content... I guess I should just have a switch there

You need to wrap the tabs with a TabBar component. That will display the selected tab component
with the tabs at the bottom.
I think you want to customize the scene to have the tabs at the top and additional common content.
I had a similar problem (I'm on iOS) --- I use react-native-navbar instead of the default navigation bar and I had to insert that at the top. What I did was make a copy of the RNRF TabBar and modify it, so it has the navbar at the top, then the child tab component, then tabs.

+1

Anyone has idea how use react-native-router-flux with react-native-tabs already?
Thx~

How can I catch touch event on Tabbar?
I want re-render when tabbar item is touched.
I also want to pop all navigator route when tabbar item is touched.
Thanks


Feature Request: Export FrameMetadata type

Describe the solution you'd like
The SDK exports a FrameMetadata object which is a React component.
There's a second thing with the same name in the SDK: the FrameMetadata type.
It would be useful to be able to use this type, as it's the type we must pass to getFrameHtmlResponse()
If it is indeed exposed, I'd consider renaming it so there's no clash with the FrameMetadata component
Describe alternatives you've considered.
No response

Love that you discovered the FrameMetadata component even if I still have to document it. 👏
I agree with you on both exporting and renaming. Should it just be FrameMetadataType? or do you have any other idea as name?

nah that name sounds great

@alfonso-paella v0.4.5 is out with the FrameMetadataType, have fun!


Deserialize header failed

Current Behavior
C:\Users\lgh\Desktop\abc>lstmtraining --model_output C:\Users\lgh\Desktop\abc\lstm --continue_from C:\Users\lgh\Desktop\best\eng.lstm --train_listfile C:\Users\lgh\Desktop\abc\eng.abc.exp0.lstmf --traineddata C:\Users\lgh\Desktop\best\eng.traineddata --debug_interval -1 --max_iterations 400
Loaded file C:\Users\lgh\Desktop\best\eng.lstm, unpacking...
Warning: LSTMTrainer deserialized an LSTMRecognizer!
Continuing from C:\Users\lgh\Desktop\best\eng.lstm
Deserialize header failed:
Deserialize header failed:
Deserialize header failed:
Deserialize header failed: y^w훩좇\漠[s?큍????A?b?훠?C퐘j4C壁??r虹a.W뗏폇;훠bF8?<!쀷쏴?쮡??鑿燾?/?46?むrCGg"H?끲R?얲)?쇕璉?Fブ+
Deserialize header failed: 垓%?f?3?FQYı?n?丞&%?굵?
Load of page 0 failed!
Load of images failed!!
abc.zip
Expected Behavior
No response
Suggested Fix
No response
tesseract -v
C:\Users\lgh\Desktop\abc>tesseract --version
tesseract v<IP_ADDRESS>20712
leptonica-1.78.0
libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
Found AVX2
Found AVX
Found FMA
Found SSE4.1
Found libarchive 3.5.0 zlib/1.2.11 liblzma/5.2.3 bz2lib/1.0.6 liblz4/1.7.5 libzstd/1.4.5
Found libcurl/7.77.0-DEV Schannel zlib/1.2.11 zstd/1.4.5 libidn2/2.0.4 nghttp2/1.31.0
Operating System
Windows 10
Other Operating System
No response
uname -a
No response
Compiler
No response
CPU
AMD Ryzen 5 3400G with Radeon Vega Graphics       3.70 GHz
Virtualization / Containers
No response
Other Information
I tried with tesseract v.5.3.1 but same error occurs. It was confirmed that tif, box, and traineddata were created and recognized well by tess4j, but this is an error that occurs when performing lstmtraining. Could it be cpu related?

Try to use the latest tesseract version
Can you provide minimum data/files for reproducing the problem?


COCO Support

Hi,
Are there any plans to include support to Import / Export annotations in COCO https://cocodataset.org/#home format?
Thanks and best regards

Definitely not as a core feature. But a crosswalk would be great to have as a plugin.

Thanks, will have a look if I can support in a useful way :)


Importing a large library (carbon-icons-svelte) causes a out of memory error

Describe the bug
When trying to import an icon from carbon-icons-svelte, running vite build runs into an out of memory error. Increasing the memory to 16GB helps, but 2GB should be enough for such a small project.
Could be a duplicate of #2433, but I am not sure.
Reproduction
https://github.com/nachtjasmin/vite-out-of-memory-bug

System Info
Output of npx envinfo --system --npmPackages vite,@vitejs/plugin-vue --binaries --browsers:

  System:
    OS: macOS 11.2.3
    CPU: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
    Memory: 110.51 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 15.14.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.7.6 - /usr/local/bin/npm
  Browsers:
    Edge: 89.0.774.76
    Safari: 14.0.3
  npmPackages:
    vite: ^2.1.5 => 2.1.5

It's also reproducible on my ThinkPad, which runs Arch Linux.
Used package manager: yarn
Logs

debug-log.txt

I write a vite plugin vite-plugin-imp
it will works like:
import { Add16 } from "carbon-icons-svelte";  // => import Add16 from "carbon-icons-svelte/lib/Add16";

import { defineConfig } from 'vite'
import svelte from '@sveltejs/vite-plugin-svelte'
import vitePluginImp from 'vite-plugin-imp'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    svelte(),
    vitePluginImp({
      libList: [
        {
          libName: 'carbon-icons-svelte',
          camel2DashComponentName: false,
          replaceOldImport: true,
          libDirectory: 'lib',
          style() {
            return false
          }
        }
      ]
    })
  ]
})

with this plugin, you can run yarn dev & yarn build very fast in your Reproduction repo.
It might be an option.

With this plugin, you can run yarn dev & yarn build very fast in your Reproduction repo.
It might be an option.

Until this bug is fixed, this is a good workaround. Thank you!

I can reproduce JavaScript heap out of memory error on your reproduction but once I update deps to latest version I'm no longer getting the error but is very slow.
it builds much faster when importing icon like this
import Add16 from "carbon-icons-svelte/lib/Add16";

update of deps will require a change in vite config
import { svelte } from "@sveltejs/vite-plugin-svelte";


Feature: auth

Preliminary support for auth. Needs unit testing and production testing.

Adds a dependency on werkzeug

should close #5, will do some testing first though


[WIP] Do not send notification when user is logged out

This PR attempts to fix following scenario:

Connect on root application URL,
Application redirects to first resource screen,
API returns a 401 response (it requires authentication)
A "Unauthorized" notification is sent
User is redirected on login page
"Unauthorized" is still displayed as a notification

Probably related to https://github.com/marmelab/admin-on-rest/pull/526/files, but it doesn't seem to work.

As seen with @fzaninotto, we missed the following code in our authClient:
    if (type === AUTH_ERROR) {
        const { status } = params;
        if (status === 401 || status === 403) {
            localStorage.removeItem('token');
            return Promise.reject();
        }
        return Promise.resolve();
    }

Adding it fixed the issue.


mm/map: Remove the unnessary map.h inclusion in various drivers

Summary
and Fix include/nuttx/mm/map.h:55:28: error: 'struct task_group_s' declared inside parameter list will not be visible outside of this definition or declaration
Impact
Fix build break
Testing
Pass CI

@jlaitine our internal build server found some issue with https://github.com/apache/nuttx/pull/8021.

@jlaitine our internal build server found some issue with #8021. Please take a look.

What is the error exactly?
The struct task_group_s needs to be forward declared in map.h. map.h is included in fs.h, but not every driver using map.h uses fs.h
you'll end up in circular dependencies between fs.h <-> sched.h <-> map.h, because sched.h includes fs.h.
I think I did this properly by forward declaring struct task_group_s in map.h, and included map.h in places where the mm_map is used.

@jlaitine our internal build server found some issue with #8021. Please take a look.

What is the error exactly?

Ah got it. This PR was a fix for exactly that + removing some extra include!


[Bug]: HTML table elements not rendered properly

What happened?
Based on the stackblitz demo, I tried to to render a basic HTML table.
Apparently it used to work because in an older version of an application I work on that used version "^4.1.1" it rendered given td tbody etc. just fine. Any hints on what is missing in the default configuration?
Old version (ignore styling for this one):

Current version, based on the demo:

I skimmed through both the docs for ngx-editor and ProseMirror. I also found issues regarding support for tables, but I assume we're speaking of spreadsheet-like tables, right?
I've added a stackblitz link, here are the changes I made (and also tried in my application):
tableHtml = `

    Company
    Contact
    Country

    Alfreds Futterkiste
    Maria Anders
    Germany

    Centro comercial Moctezuma
    Francisco Chang
    Mexico

`;

form = new FormGroup({
  editorContent: new FormControl(this.tableHtml, Validators.required())
});

Version
15.3.0
Angular Version
15.2.7
What browsers are you seeing the problem on?
Firefox, Chrome
Link to reproduce
https://stackblitz.com/edit/ngx-editor-quickstart-5bvvkt?file=src%2Fapp%2Fapp.component.ts
Relevant log output
No response
Willing to submit a PR?
None

Sorry for the dealy.

Apparently it used to work because in an older version of an application I work on that used version "^4.1.1" it rendered given td tbody etc. just fine. Any hints on what is missing in the default configuration?

Yeah, much has changed. the older versions run on a basic contentEditable and breaks between different browsers. as they are implemented by the vendors differently since there is no standard. Even the table you might have pasted might work differently in chrome and firefox or safari.
To address this the prose mirror was adapted as a underlying editor. The table might not work by default you might need to configure prosemirror to understand tables.
You can try using extensions, maybe hub.com/ProseMirror/prosemirror-tables can help.
new Editor({
  // other config hidden
  plugins: [
    // your plugins here
  ],
 schema // configure the schema if required
})

Moving this to a discussion as this is not an issue with the editor.


added nav links

fixes #21
@CuriousLearner  Please review

@CuriousLearner I'm unsure why News tab was added. Was it requested by any of us at the time PR was created?

I am clueless right now about that. But as far as I remember it wasn't the requirement anytime. Maybe @nileshgulia1 added it on his own.

Ah, I just followed traditional  landing page concepts for navbars :), my bad.


US4R-529: Fixed OEM+ clamping on channels with disabled TX

@jrozb91 this branch is not needed anymore -- v0.11.0-dev already calls the IUs4OEM::BuildSequenceWaveforms method.


Add CI job for govuk-developer-docs

In light of the recent token issues, I'd prefer to run the tests for this on our own machines instead of CircleCI.

@surminus this was added to the govuk_ci::master::pipeline_jobs, so I think it won't be added to the deploy list in jenkins?

Oh, I totally didn't view the whole context of change there! You're right.


Add fake images service

Signed-off-by: mozhuli<EMAIL_ADDRESS>ref: #20

@Random-Liu I have try everything i can do with the CLA. the email is same and I have already assosiated with my Github account.

@mozhuli I'll try to figure it out on Monday. Thanks~

@mozhuli did you sign up with cncf as an individual contributor?

@mikebrow Yes,I have signed up with cncf as an individual contributor. I found some people who signed up cncf recently face the same problem with the CLA. Is there something wrong with the CLA?

@mozhuli did you receive an email indicating successful signup with the cncf?
See here for troubleshooting instructions: https://github.com/kubernetes/community/blob/master/CLA.md

@mikebrow I have not recevied the email indicating signing up with the cncf successfully, but I can log in the Linux Foundation with my ID.

@mikebrow I check out my email again, I am  sorry to tell that my email have drop the Hello sign email from<EMAIL_ADDRESS>

@mozhuli Cool! Will review your PRs later today.

@mozhuli Glad you're all signed up, I figured it was something like a deleted email :-)

@mikebrow Thanks for reviewing! updated

@Random-Liu Thanks for reviewing! updated

Please address the comments:

https://github.com/kubernetes-incubator/cri-containerd/pull/37#discussion_r116895781
https://github.com/kubernetes-incubator/cri-containerd/pull/37#discussion_r116895870
https://github.com/kubernetes-incubator/cri-containerd/pull/37#discussion_r116895431

LGTM


Edited checksummed addr article

Edited checksummed article to be more clear, and include a note to suggest adoption to a reader's favorite ethereum organizations.

lgtm!


Fix Error type for SimpleDecoder and SimpleEncoder

Separate serialize::Error and network::Error from util::Error
Remove unneeded propagate_err and consume_err

Closes #131

@apoelstra Is there any reason we're not using e.fmt(f) in fmt::Display impls?

@dongcarl I assumed that wouldn't work unless fmt::Display was imported, and I prefer to use the full path fmt::Display everywhere rather than doing so.

All concerns should have been addressed.