Unity level previewer improvements

Obviously a lot needs doing to the level previewer in terms of material support, etc. Some important core changes need to be made before those, however:

[x] Load levels correctly from COMMANDS/MVR, rather than just MVR
[ ] Combine MVR and Commands data
[ ] Load COMMANDS data with names for entities
[ ] Support prefabs in loaded view, with hierarchies
[x] Option in script editor to show just the selected composite (related to #268)
[ ] Option in script editor to select the selected entity (should be relative to loaded composite)
[ ] Option to pull transform data back to selected entity in script editor

Exploring the possibility of a nice 3D display within the script editor before taking a look into this ticket. It would be a waaaay nicer solution in terms of keeping things streamlined but I think all the extra functionality the Unity Editor provides is probably gonna be too good to pass up.

On branch move-to-commands I've moved the Unity tool over to the latest CathodeLib, and deleted all the old legacy content. I've also re-implemented the Commands loading functionality so that it doesn't pull from MVR (although still can).
I've implemented the ability to load to the selected Composite from the script editor, rather than just loading the whole level, and have improved the general flow for things - e.g. you no longer have to edit the script to change the path to your Alien directory, the script editor will just send that info over.
Next up is a better way of displaying nested composites in the hierarchy. I'm doing it already, but it'd be cool to use the Unity prefab system and then apply alias'd overrides over the top in the proper way.
As well as that, at some point I'll need to find a way to sync all this with current changes in the script editor.

Just pushed some more minor material changes. Will look into utilising the correct environment maps next for shiny things.

Env maps also implemented.


Support scenario when IsEnabled is called to control flow but there is no event for the same diagnosticName

From @lmolkova on Friday, April 21, 2017 10:56:25 PM
We have recently introduced a new DiagnosticSource usage pattern in the HttpClient and AspNetCore.Hosting:
E.g. in AspNetCore.Hosting:

producer calls IsEnabled("Microsoft.AspNetCore.Hosting.HttpRequestIn", httpContext) just to determine that listener wants instrumentation to happen. Producer optionally adds context that could help consumer to check if he wants instrumentation for this particular request.
if 1 is true, producer calls IsEnabled("Microsoft.AspNetCore.Hosting.HttpRequestIn.Start") to check if consumer wants start event and if true, writes event with the same name
producers just writes IsEnabled("Microsoft.AspNetCore.Hosting.HttpRequestIn.Stop") if instrumentation was on in step 1.

The problem that even if there is no event for the first IsEnabled, user still has to write a method with corresponding DiagnosticName attribute.
    class HttpHandlerListener
    {
        [DiagnosticName("System.Net.Http.HttpRequestOut")]
        public void IsEnabled()
        {
        }

        [DiagnosticName("System.Net.Http.HttpRequestOut.Start")]
        public void OnStart(HttpRequestMessage request)
        {
        }

        [DiagnosticName("System.Net.Http.HttpRequestOut.Stop")]
        public void Stop(HttpResponseMessage response)
        {
        }
    }

I have tried to work it around in the other way with SubscribeWithAdapter(object, Predicate isEnabled),
but isEnabled never gets called if there is no attribute with this diagnosticName.
As a minimum solution, I would expect isEnabled predicate (provided to SubscribeWithAdapter) at least be called and it's result should be taken into account.
But may be IsEnabled should be done in the same way as Write?
[DiagnosticName("System.Net.Http.HttpRequestOut")] //or another attribute?
public bool IsEnabled(HttpContext context)
{
   return context.Request.Method != "OPTIONS";
}

And if there is no IsEnabled, DiagnosticName on the Write callback could be used as an indicator that event is enabled
Copied from original issue: aspnet/EventNotification#67

From @Eilon on Tuesday, June 6, 2017 10:19:57 AM
@rynowak thoughts?

From @Eilon on Wednesday, July 5, 2017 9:45:26 AM
Marking as up-for-grabs and moving to Backlog. This seems like a reasonable feature request, but we're not investing a lot in the automatic proxy generation logic at this time.


Android app is not working inside Samsung Knox folder

Hello, tried install Yoroi app into my S20 , inside the Knox folder, when i run the app i cannot pass Select Language screen. When i click Next it shows agreement screen, then i click Accept and it shows fingerprint validation popup but cannot pass it. It shows error
"Something went wrong, try again later. Check your app settings."
Btw, other apps works fine with FP .

🤔  hey @arkadym , can you please test this:

Kill the app if it's in the background
Disable your Biometrics/Fingerprint completely (turn it off) on the device (unfortunately Android doesn't have the same capability as iOS where you can disable it for a specific app.
Try to launch the app again (in this case the app will check that there is no keychain available and will ask for the pin that is stored encrypted in the device's local storage)
Enable your Biometrics/Fingerprint again

My guess is since we are forcing it, maybe we will have to check while launching if something goes wrong to automatically fall back to the PIN.
Really appreciate your feedback.

@stackchain in fact, i'm developer too, from my experience issue is related to Samsung Knox. My friends faced similar issue, means FP works fine when app installed outside of Knox folder. And cannot work with FP when installed inside Knox folder.
I would appreciate if you could implement FP as optional and allow set PIN.
I can try collect adb log if that will help, but will need to prepare my PC.

@stackchain sorry, i cannot follow your guide, i have some other apps using FP which will force me to reauthenticate all of them because FP changed if i will turn it off completely...

I've open a PR to enable continuing the app setup in this scenario, if you want to test it earlier, sign for the beta releases on Android play store. You can also download the Yoroi Nightly that we always push before deploying any new release.

Thank you! Not using play store, could you point me where to find nightly builds ?

Btw, i checked PR, could i propose a better solution - i've found in your codes there are 3 scenarios when error happened: cancelled, auth failure (e.g. wrong finger used) and other error (like my case), so i propose only fallback to pin when cancelled and other error, auth failure should be not fallback to pin... from security perspective. That case means someone can setup wallet on my phone, weird scenario, but still...

hey @arkadym , Nightly version is also inside Play store

Btw, i checked PR, could i propose a better solution - i've found in your codes there are 3 scenarios when error happened: cancelled, auth failure (e.g. wrong finger used) and other error (like my case), so i propose only fallback to pin when cancelled and other error, auth failure should be not fallback to pin... from security perspective. That case means someone can setup wallet on my phone, weird scenario, but still...

The 3rd scenario, if the fingerprint fails, but everything is supposed to be fine, that's ok, the user can change the app settings later.


Add retention-days for storing maven repo artifact

Summary
Add retention-days for storing maven repo artifact (1GB)
The default retention policy is 90 days - https://github.com/actions/upload-artifact#retention-period
Please select the relevant options.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Dependency update
[x] Refactoring
[ ] Backport
[ ] New scenario (non-breaking change which adds functionality)
[ ] This change requires a documentation update
[ ] This change requires execution against OCP (use run tests phrase in comment)

Checklist:

[x] Methods and classes used in PR scenarios are meaningful
[x] Commits are well encapsulated and follow the best practices

This needs to go in after https://github.com/quarkus-qe/quarkus-test-framework/pull/747 as releasing process fails when it is not based on the latest main.

I can rebase #747 after this is merged, if needed

thanks @fedinskiy , let get it in then


League types, teams, seasons, new fleaflicker URLs

Included tests this time and didn't change the formatting.

Cool, going to look through it this weekend and merge it in.

Real sorry for the huge delay, merged in going to make some commits on top for compatibility with older releases.


Alban/list containers

This is an initial implementation of the list-containers subcommand for #162 .
It reuses GetContainers() that was initially implemented in the gc subcommand. I moved it to a separate pkg to reuse it in list-containers.
The columns are aligned with text/tabwriter.
It just shows dead or alive at the moment. The exit status is not yet implemented.
Example:
$ sudo ./bin/rkt list-containers
CONTAINER                           STATUS
1d25bfdf-5baa-4186-a0e3-c4f863086bca        dead
30875910-03d1-4c57-8e93-4f82609098f1        dead
3f38a8a0-9bfe-401f-8f23-c6e518e920b1        dead
5697672d-dd17-4fde-8395-d70ec02ca016        alive

Oops, I have not noticed the work on the status command in #313. My implementation of list-containers will conflict with it. I will fix this.
However, my first commit should not conflict.

Thanks for the comments, iaguis. This new version should fix it.

Branch updated after vcaputo's comment.

@alban Can you squash those commits and rebase against master.

@kelseyhightower : should I wait to see what happens with #371 ? This pull request and #371 cannot go together.
Also, there is still discussions on #162 whether rocket should have this list-container subcommand.

@alban #371 doesn't need to implement rkt list it was just the canonical example of needing all containers so I slapped it on there for more context.  If the refactor portion of #371 lands I'm happy to omit the rkt list commit if you'd like.

The feature is discussed in #162 and it has been implemented with the merge of #415 and this branch does not apply anymore. So I'm closing this PR.


AMQP-570: Fix MimeType in SimpleAmqpHeaderMapper

JIRA: https://jira.spring.io/browse/AMQP-570

repushed with copyright fixes - cherry-pick to 1.5.x

Nothing to complain about.
Merging...

Merged as https://github.com/spring-projects/spring-amqp/commit/6c51549d5d5346d09658a561895f275af9f7e8bb and cherry-picked.


Separate task log stream for notification webhooks

tl;dr: It'd be useful if we had a separate field in 1F webhooks for raw user task output.
As part of our fuzzer framework we're signed up for webhooks to get notified when our tasks fail. Usually when our tasks fail, it's because of a panic in our code someplace.
However, because the error message reported to webhooks contain 1F logs (which in turn contain logs from our task), it makes it a bit harder to easily scan through and find the fault without understanding what the 1F agent itself outputs.
Most of the time when scanning through error logs, we have to explicitly look for process (stderr) supervisor: lines in order to find the output we're actually interested in.
It would be more useful if we had a separate field that got reported to our webhook that was dedicated to raw output from our task only.
Something like error['output'] in the schema.
AB#36103

Want to bump this again. We recently merged some changes to our 1F integration test that makes us dependent on the logs from OneFuzz, and it would be cleaner if we could interpret the logging output from our code directly.
@comcma mentioned that @chkeita said this task might make things easier on your end as well wrt file logging?
Cc @jagunter


Fix: Scrapping data from YellowPages

Description
Added YellowPages module to give the list of dictionaries containing businesses information
Usages
from scrape_up import yellowpagess

Create an instance of yellowpages class
data = yellowpages("restaurtant", "New York")

Method
Details

business_info()
Returns the list of dictionaries containing business information like: business name , business address , rating ,phone number , opening hours , website , amenities

                                                                                |

Resolves: [Issue Number]#1012
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[x] Have you adhered to the repository's defined coding convention rules?
[x] Have you updated the 'documentation.md' file with the method/function documentation?
[x] Have you sent a message along with the result or response?
[x] Have you used the try-catch technique?
[x] Has the method/class been added to the documentation (md file)?

Screenshots

Uploading a screenshot illustrating the approach you developed for validation is required.

Additional Notes/Comments

Any additional remarks or suggestions concerning this pull request are welcome.

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

Great work @Anshika14528  !!
Do not forget to

Share your contribution on socials and tag Clueless 🫂
Give this repository a star ✨
Follow Clueless Community on GitHub ✅

Thankyou Sir


[NSE-370] Failed to get time zone: NoSuchElementException: None.get

@zhztheplayer thanks for the fix!


TypeError: Cannot read properties of undefined (reading 'code_snippet')

Please include some context and the contents of the console in your browser's developer tools.
TypeError: Cannot read properties of undefined (reading 'code_snippet')
    at XE (http://<IP_ADDRESS>/demo/public/:72:249981)
    at mi (http://<IP_ADDRESS>/demo/public/:72:70706)
    at Ql (http://<IP_ADDRESS>/demo/public/:72:122308)
    at xc (http://<IP_ADDRESS>/demo/public/:72:109797)
    at _c (http://<IP_ADDRESS>/demo/public/:72:109725)
    at Cc (http://<IP_ADDRESS>/demo/public/:72:109588)
    at Nc (http://<IP_ADDRESS>/demo/public/:72:106582)
    at hc (http://<IP_ADDRESS>/demo/public/:72:103958)
    at nu (http://<IP_ADDRESS>/demo/public/:72:119816)
    at http://<IP_ADDRESS>/demo/public/:72:121187

User Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36

Thanks! This seems to be a duplicate of #109. I'll close this issue for now and we'll continue this discussion there.


Detailed Review // "Response From Owner Date" is missing

Hi.
I am using the newest version (download and installation on 2024-11-07).
If I active "Detailed Reviews", the column "Response From Owner Date" is empty (or actually "null" in Excel export).
"Response From Owner Ago" in text format is working, but date format is empty.
On "Featured Reviews" everything works fine.
Please fix.
Thanks in advance.
Tobi

That data point is only available for english language, as we compute it from Response From Owner Ago


Localize GuiHighlightTips.java/Missing localization text

Line 73 in GuiHighlightTips.java. "RedstoneBlock" and "Sample". Also this -> http://i.imgur.com/H0HrkBj.jpg can't be translated.
Also, nei.options.keys.showenchant have no localization(missing)

#185


strict dialyzer analysis

Issue/Task Number:
Overview
Added a more strict Dialyzer setting.
Changes
Fixed the reported issues from master.
Implementation Details
Fixed specs
Usage
/
Impact
Nothing mayor.

This should be able to go with v1.0 since it's only @spec changes

if you added :specdiffs to the configuration things would look different :-) I suggest you try it out and decide whether you think it's useful.

Thank you for your PR! 🎖🥇🥈🍾 🌟


Sequential state updates don't cause hook re-execution.

Hi @thomashoneyman,
first of all thx for this great project, it's really nice to have hooks for halogen.
It seems that I ran into a huge problem with sequential state updates. It seems that a hook is only interpreted once, this is a problem if you have state updates which are triggered by state updates. The following code demonstrates the problem (sorry if it's too much noise):
module Halogen.Hooks.Conditional where

import Prelude

import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype)
import Data.Tuple.Nested ((/\), type (/\))
import Effect.Aff (Milliseconds(..), delay)
import Effect.Aff.Class (class MonadAff, liftAff)
import Effect.Class (liftEffect)
import Effect.Class.Console (log)
import Effect.Random (randomInt)
import Effect.Unsafe (unsafePerformEffect)
import Halogen (Component)
import Halogen.HTML as HH
import Halogen.HTML.Events as HE
import Halogen.Hooks (Hook, UseEffect, UseState, useLifecycleEffect)
import Halogen.Hooks as Hooks

newtype UseConditional hooks = UseConditional (UseEffect (UseState (Boolean) hooks))
derive instance newtypeUseConditional :: Newtype (UseConditional hooks) _

useConditional :: forall slots output m . MonadAff m => Boolean -> Hook slots output m UseConditional (Boolean)
useConditional opt = Hooks.wrap Hooks.do
  -- unique id to understand which hook execution is called by useEffect
  id <- Hooks.pure $ show $ unsafePerformEffect $ randomInt 0 10000
  Hooks.pure $ unsafePerformEffect $ liftEffect $ log $ "runConditional(" <> id <> "): " <> (show opt)
  state /\ stateToken <- Hooks.useState false
  useMyEffect stateToken id state { opt }
  Hooks.pure state
  where
    useMyEffect stateToken id state deps@{ opt : opt' } = Hooks.captures deps Hooks.useTickEffect do
      liftEffect $ log $ "CHANGE HANDLER TRIGGERED(" <> id <> "): " <> (show deps) <> ": " <> (show state) <> ":" <> (show opt')
      Hooks.put stateToken opt'
      pure Nothing

newtype UseConditionalTest hooks = UseConditionalTest (UseConditional (UseEffect (UseState (Boolean) hooks)))
derive instance newtypeUseConditionalTest :: Newtype (UseConditionalTest hooks) _

useConditionalTest :: forall slots output m . MonadAff m => Hook slots output m UseConditionalTest (Boolean)
useConditionalTest = Hooks.wrap Hooks.do
  state /\ stateToken <- Hooks.useState false
  useLifecycleEffect do
    Hooks.put stateToken true
    pure Nothing
  val <- useConditional state
  Hooks.pure val

component :: forall query input output m. MonadAff m => Component HTML query input output m
component = Hooks.component $ \_ -> Hooks.do
  count /\ countToken <- Hooks.useState 0
  val <- useConditionalTest
  Hooks.pure do
    HH.div_
      [
        HH.text $ "count: " <> (show count)
      , HH.br_
      , HH.text $ "val: " <> (show val)
      , HH.br_
      , HH.button [HE.onClick (\_ -> handleClick countToken count)] [HH.text "trigger count change" ]
      ]

  where
    handleClick countToken count = Just do
      Hooks.put countToken (count + 1)

The problem is that the effect handler in useConditional is not updated and not called a second time after the input variable opt has changed. Clicking the trigger count change button forces the execution of the lost call.
I was able to fix this issue by changing the runUseHookFn inside of component to
runUseHookFn
  :: forall hooks q i ps o m
   . InterpretHookReason
  -> (i -> Hooked ps o m Unit hooks (H.ComponentHTML (HookM ps o m Unit) ps m))
  -> H.HalogenM (HookState q i ps o m) (HookM ps o m Unit) ps o m Unit
runUseHookFn reason hookFn = do
  interpretUseHookFn reason hookFn
  { evalQueue } <- getState
  sequence_ evalQueue
  modifyState_ _ { evalQueue = [] }

  -- Consider state updates triggered by state updates
  repeat reason evalQueue
  where
  repeat Finalize evalQueue = pure unit
  repeat Queued evalQueue = pure unit -- not sure about this one, maybe this should be recursive too
  repeat _ evalQueue = do -- don't call Initialize twice
    if (Array.length evalQueue) > 0 then runUseHookFn Step hookFn else pure unit

I was really just digging around in the source, so i have no idea if this is a good solution and what side effects it causes. But it triggers the interpretation of the current hook as long as the interpretation generates new items in evalQueue. I have no idea if this is too expensive, maybe there is a smarter way to do this.
Regarding the repeated hook execution in general, i think that react hooks work in a similar way.
This is the output before the change to runUseHookFn:
runConditional(3080): false
runConditional(653): true
CHANGE HANDLER TRIGGERED(3080): { opt: false }: false:false
runConditional(6754): true

This is the output after the change to runUseHookFn:
runConditional(5513): false
runConditional(434): true
CHANGE HANDLER TRIGGERED(5513): { opt: false }: false:false
runConditional(3605): true
runConditional(6510): true
CHANGE HANDLER TRIGGERED(6510): { opt: true }: false:true
runConditional(6724): true
runConditional(1650): true

@frabbit Putting this into my own words, let me redescribe your problem to ensure I'm understanding your question.
First, you have a useConditional hook that will trigger some handler (e.g. logging content to the console) when the argument passed into that hook (i.e. opt) changes. Since that hook uses the useTickEffect internally, it will always run the handler for the first time.
Second, your are are using useConditionalTest to attempt to trigger that handler function a second time (and every time thereafter) by

using a state value that gets passed into the useConditional hook
immediately changing the state value after the useState hook but before the useLifecycleEffect hook

The problem is that the useLifecycleEffect hook inside the useConditionalTest hook does not trigger the "useConditional's 'log to console'" handler a second time. You have found that clicking on the button will cause it to trigger find, but that's not what you're trying to do. While you could use runHookFn, you are hoping for something cleaner.
Here's my question. Does this 'bug' go away if you reorder your hooks, so that the useLifecycleEffect hook runs after the useConditional hook in your definition for useConditionalTest? In other words, reimplementing it like so:
useConditionalTest :: forall slots output m . MonadAff m => Hook slots output m UseConditionalTest (Boolean)
useConditionalTest = Hooks.wrap Hooks.do
  state /\ stateToken <- Hooks.useState false

  -- run the `useConditional` hook
  -- before the `useLifecycleEffect hook
  val <- useConditional state
  useLifecycleEffect do
    Hooks.put stateToken true
    pure Nothing
  Hooks.pure val

Hey @JordanMartinez ,
actually it's the other way around the second hook should do something based on a condition. A more real world example would be something like this:
do
  maybeConfig <- useLoadConfig "http://myapp/config.js"
  appData <- useLoadApplicationData maybeConfig

the second hook should load the application data only when config is Just. That's what i mean with sequential or dependant state updates.

This is a corresponding react example: https://stackblitz.com/edit/react-ze3hnw

@frabbit Thanks for catching this!
I took a brief review of the code. The relevant sections include evalHookM, which interprets HookM code into HalogenM, specifically the state update code here:
https://github.com/thomashoneyman/purescript-halogen-hooks/blob/87cc9b0bb348e2a1a338830105af7b453a37c3ac/src/Halogen/Hooks/Component.purs#L361-L368
This ensures that Hooks are re-run after any state update, so this code, for example, will evaluate the hooks twice on click:
Hooks.do
  state /\ stateToken <- useState 0
  let onClick = Hooks.modify_ stateToken (_ + 5) *> Hooks.modify_ stateToken (_ + 10)
  Hooks.pure $ HH.div [ HE.onClick \_ -> Just onClick ] [ HH.text $ show state ]

But as you also noticed, effects aren't run when the UseEffect hook is evaluated. Instead, they're queued to be run after all the hooks have been evaluated.
https://github.com/thomashoneyman/purescript-halogen-hooks/blob/87cc9b0bb348e2a1a338830105af7b453a37c3ac/src/Halogen/Hooks/Component.purs#L184-L221
So here's what happens:

Something triggers the hooks to evaluate, like initialization
2a. When an effect hook is evaluated, and the reason for evaluation is initialization or a 'step', then the effect (in HookM) is queued to be run.
2b. The effect in HookM will re-run the hooks when executed, but with the reason 'queued' so that effects don't run yet again.
When hooks finish evaluating, the evalQueue is run. Effects in the queue that update state will cause hooks to re-run, but without re-queuing effects.

It does seem like a state update should cause all effects to re-enqueue with Step. After all, a state update is a new render, and a new render should re-run Hooks, including re-running effects (useTickEffect would re-run every time, and useLifecycleEffect would not).
We don't necessarily want to re-run the eval queue just because effects have been added to it; what if those effects don't perform state updates?
Instead, we want to ensure that state updates are always necessarily followed by hooks re-evaluating, and that should include performing effects. I think it may just come down to changing this line:
https://github.com/thomashoneyman/purescript-halogen-hooks/blob/87cc9b0bb348e2a1a338830105af7b453a37c3ac/src/Halogen/Hooks/Component.purs#L220
so that the runHooks function used by evalHookM will actually re-run effects, rather than skip them.
@frabbit thanks again for catching this: this is definitely a bug, and it's a holdover from my first implementation when effects were evaluated as part of hook evaluation, and not after.

I'm pretty sure this issue is actually preventing my useEvent implementation that now allows unsubscriptions from working.

Given the below code...
component :: H.Component HH.HTML (Const Void) Unit Unit Aff
component = Hooks.component \_ -> Hooks.do
  state /\ tState <- useState 0

  Hooks.captures { state } useTickEffect do
    liftEffect $ log $ "run tick effect"
    pure $ Just do
      liftEffect $ log $ "clean up tick effect"

  Hooks.pure $
    HH.div_
      [ HH.button
        [ HE.onClick \_ -> Just do
          Hooks.modify_ tState \s -> s + 1
        ]
        [ HH.text "Click to change the state value, which will trigger \
                  \the useTickEffect."
         I will finally have some time open in my schedule tomorrow to work on this, and I'm anticipating putting up a fix for you and @frabbit to take a look at by tomorrow night. Thanks for the small example!

You mentioned updating runUseHookFn as a possibility, but I don't think that's quite correct. What if effects are added to the queue which don't perform state updates? That shouldn't re-trigger anything. It should strictly be done on state updates, in evalHookM, via the interpretUseHookFn function.
I'll need to test updating that line to make sure it doesn't introduce any undesirable behavior, but I believe that should fix this issue.

Using the work I did in #12, I tried changing interpretUseHookFn to runUseHookFn and it produces an infinite loop.

I think I've figured this out. Thomas might have a better idea as to WHY the above infinite loop occurs.
I would guess that runUseHookFn is the correct step to take, but the bug is caused by how that function is implemented:
{ evalQueue } <- getState
  sequence_ evalQueue
  modifyState_ _ { evalQueue = [] }

In this situation, we don't clear out the evalQueue until after all of its effects have been run. However, what happens if one of those effects is to call runHookFn? Then you'll get an infinite loop. So, I tried clearing out the eval queue before running the effects:
{ evalQueue } <- getState
  modifyState_ _ { evalQueue = [] }
  sequence_ evalQueue

That stops the infinite loop I was getting initially (again, I'm using the code from #12), but it still doesn't fix the problem. So, I think the fix is:

find all places where the code is used like that and update it to clear the evalQueue before running its effects
use @frabbit's "loop until no more evals exist" idea in its implementation somewhere.

Quick update on this: I want to make sure this issue can be understood, resolved, and not re-introduced. With that in mind I've been putting together tests that capture this problem, so you can write a spec like this:
stateHook :: Spec Unit
stateHook = describe "useState" do
  it "initializes to the proper initial state value" do
    ref <- initDriver

    Tuple { count } events <- evalTestM ref $ runWriterT do
      evalTestHook Initialize useStateCount

    -- The state should properly initialize
    count `shouldEqual` 0
    events `shouldEqual` [ RunHooks Initialize, Render ]

  it "updates state" do
    ref <- initDriver

    Tuple count events <- evalTestM ref $ runWriterT do
      { increment } <- evalTestHook Initialize useStateCount

      let runHooks = void $ evalTestHook Step useStateCount

      -- increment twice
      evalTestHookM runHooks increment *> evalTestHookM runHooks increment

      { count } <- evalTestHook Finalize useStateCount
      pure count

    -- The final state of the Hook should reflect the number of times it has
    -- been incremented.
    count `shouldEqual` 2
    events `shouldEqual`
      [ -- initializer
        RunHooks Initialize
      , Render

        -- state updates x2
      , ModifyState
      , RunHooks Step
      , Render
      , ModifyState
      , RunHooks Step
      , Render

        -- finalizer
      , RunHooks Finalize
      ]

which I can add to continuous integration for this repository to verify further internal improvements and tweaks succeed. Ideally some of this can be transformed into property tests as well.
I've added a failing useLifecycleEffect test to cover the issue you reported in this ticket, @frabbit, but I haven't yet had time to implement and test fixes. Working on it, though!

@frabbit I took your code and inlined all the hooks to get this:
module Test.Manual.Conditional where

import Prelude

import Data.Maybe (Maybe(..))
import Data.Newtype (class Newtype)
import Data.Tuple.Nested ((/\), type (/\))
import Effect (Effect)
import Effect.Aff (Milliseconds(..), delay)
import Effect.Aff.Class (class MonadAff, liftAff)
import Effect.Class (liftEffect)
import Effect.Class.Console (log)
import Effect.Random (randomInt)
import Effect.Unsafe (unsafePerformEffect)
import Halogen (Component)
import Halogen.Aff (awaitBody, runHalogenAff)
import Halogen.HTML as HH
import Halogen.HTML.Events as HE
import Halogen.Hooks (Hook, UseEffect, UseState, useLifecycleEffect)
import Halogen.Hooks as Hooks
import Halogen.VDom.Driver (runUI)

main :: Effect Unit
main = runHalogenAff do
  body <- awaitBody
  runUI component unit body

component :: forall query input output m. MonadAff m => Component HH.HTML query input output m
component = Hooks.component $ \_ -> Hooks.do
  count /\ countToken <- Hooks.useState 0
  state1 /\ stateToken1 <- Hooks.useState false
  useLifecycleEffect do
    Hooks.put stateToken1 true
    pure Nothing
  -- unique id to understand which hook execution is called by useEffect
  id <- Hooks.pure $ show $ unsafePerformEffect $ randomInt 0 10000
  Hooks.pure $ unsafePerformEffect $ liftEffect $ log $ "runConditional(" <> id <> "): " <> (show state1)
  state2 /\ stateToken2 <- Hooks.useState false
  useMyEffect stateToken2 id state2 { state1 }
  Hooks.pure do
    HH.div_
      [
        HH.text $ "count: " <> (show count)
      , HH.br_
      , HH.text $ "val: " <> (show state2)
      , HH.br_
      , HH.button [HE.onClick (\_ -> handleClick countToken count)] [HH.text "trigger count change" ]
      ]

  where
    useMyEffect stateToken2 id state2 deps@{ state1 : state1' } = Hooks.captures deps Hooks.useTickEffect do
      liftEffect $ log $ "CHANGE HANDLER TRIGGERED(" <> id <> "): " <> (show deps) <> ": " <> (show state2) <> ":" <> (show state1')
      Hooks.put stateToken2 state1'
      pure Nothing

    handleClick countToken count = Just do
      Hooks.put countToken (count + 1)

Now, if we follow the logic behind this code, I believe we'll see why this bug occurs:

count and state1 are initialized
the lifecycle effect is enqueued in evalQueue
state2 is initialized
the tick effect is enqueued in evalQueue
now that all hooks have been interpreted, we run the effects in the evalQueue. The lifecycle effect gets run, which reevaluates all hooks.

count remains unchanged
state1 gets changed
lifecycle effect is not rerun
state2 is unchanged
tick effect's finalizer effect and normal effect are both NOT enqueued because the interpret reason was Queued, not Step.

the tick effect gets run for the first time, which prints the initial 'change handler triggered' message

We expect a step 7 where the tick effect runs its finalizer (if any) and its normal effects since the dependencies were changed in step 5. These effects should have been enqueued in step 5.5, but weren't.
So, why weren't they enqueued? It's because the Initialize step for a lifecycle effect re-runs the hooks via the Queued reason. Thus, when we get to the tick effect, it does nothing. So, theoretically, if we changed this reason to Step, it should work, right?
Wrong. In this situation, the tick effect hasn't been initialized yet. Therefore, the effectCells queue does not have any mbMemos /\ finalizer elements yet. So, if we did use Step there, we would get a runtime error due to calling unsafeGetCell index effectCells.queue, which will return undefined.
So, I think the issue is that we are not enqueueing another Step interpretation, which would cause the hook to recheck its memos. However, I just tried something like that and it's still not working.
It's also way too late and my brain is fumbling at this point.

I believe I've figured out a fix to this bug. See this commit. I get the same output that @frabbit expected above when he used runUseHookFn. I'll submit a PR shortly so it's easier to see what I did in full.
However, this fix raises another question. If the finalizer for a useTickEffect (A) modifies state that is the dependency for another useTickEffect (B). How should the effects be run?

A finalizer
A initializer
B finalizer
B initializer

Or

A finalizer
B finalizer
B initializer
A initializer

The fix I linked above does the first approach, but I'm guessing we will want the second one...?

I think it's acceptable that an effect's cleanup and re-run be considered a unit -- a cycle that is performed after each render. Which is to say that for any render after the initial render the pair of effect cleanup, effect body should be considered one; if the cleanup happens to affect the memo of another effect, that effect can be evaluated once the first effect's body evaluates again.
We also don't want to render in between cleaning up an effect from a previous render and re-running it for the current render.
With that in mind, this sequence of events is fine:

A cleanup (changes memo of B), body
(because memo changed) B cleanup, body

@frabbit This was fixed in #20 and is available in release 0.2.0

@thomashoneyman @JordanMartinez thx a lot, i will give it a try when i'm back on my side project.


ConTravel (photoguide): Change colour of white bits of images

Would actually be best to provide versions of the images which work on both light and dark backgrounds, so all councils can use them.

In ConTravel there's a bit for upload passport style photograph. When you click through to the example it steps you through how to take a photo  - we need a light and a dark version of each image. Some are already done using code in SVG, but others need to be photoshopped to create a dark one. Match colours to those already done. Look in prototype for ones that need fixing.

@sanjaypoyzer @kaydale are these assets to be reused by LAs to build real services or just for prototyping? If the former we need to to a clean up of all assets to optimise for web.
NB: Ask Ed.


Add support for Swift Package Manager

Adds support for Swift Package Manager.
Testing
This P/R will need testing by someone who integrates into their project via Cocoapods and Carthage

 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.


100% coverage

At 97% now, more so we need better life cycle tests and better organization and sample app fixtures


Missing Descriptions for CDN actions

There are scarcely any descriptions for any of the CDN actions.

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

ID: 33219707-3b9f-cc6b-541e-a806dc82622a
Version Independent ID: b4e96391-bcf9-1f30-cb44-ed339469da4f
Content: Azure Resource Manager resource provider operations
Content Source: articles/role-based-access-control/resource-provider-operations.md
Service: role-based-access-control
GitHub Login: @rolyon
Microsoft Alias: rolyon

@rich-davies Thanks for the comment! We have this assigned to the content author to review further and update as appropriate.

Hi @SadiqhAhmed-MSFT, @MicrosoftDocs/azure-cxp-triage
These strings come from Azure. Can you assign this to the CDN team to review?
thanks

@rolyon thank you for your time.
@mdgattuso Could you please help here?

The CDN team will work on this to add descriptions.
thanks

@rich-davies We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


More fixes to creating output directories

(1) Make sure only master process creates directory
(2) Simplify check of stat function call

In lis/core/LIS_readConfig.F90, should we print an [ERR] log message when ios is not equal to zero?
Note we didn't log an error message before this pull request, but should we now take the opportunity to add one?
I'm referring to Line 105.

I added the requested code.

Thanks.  Instead of just "flush", shouldn't we "call LIS_flush"?

I added calls to the LIS_flush subroutine.
(I will add that that LIS_flush is unnecessary in Fortran 2003, which now has the intrinsic library function 'flush'.  But this is not the time to remove LIS_flush from the LIS code.)

Code looks good and runs fine on Discover.  If Jim's testing also looks good, then we can approve.


Remove bullet points from section descriptions.

Some of the section description blocks accidentally got laid out as bullet points, making them hard to see.
(You can replace all of this text with your description.)
Before creating your pull request, please check your content against these quality criteria:

Did you consider search engine optimization (SEO) when you chose the title in the metadata section and the H1 heading (i.e. the displayed title that starts with a single #)?
For new articles, did you add it to the table of contents?
Did you update the "ms.date" metadata for new or significantly updated articles?
Are technical terms and concepts introduced and explained, and are acronyms spelled out on first mention?
Should this page be linked to from other pages or Microsoft web sites?

For more information about creating content for docs.microsoft.com, see the contributor guide at https://docs.microsoft.com/contribute/.

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

#sign-off


Add option in cmd+.. to explicitly drop-cache in gocode

Sometimes, gocode cash get stuck and an explicit drop-cache call solves the issue.
Better than opening a terminal and call gocode drop-cache, the option in GoSublime command palette would be handy.

I've been able to fix this by running go clean on the package where the problem is showing up (ie. this gets rid of compiled files in he pkg directory) and then rebuilding whatever app you are working on


Swipe to close the drawer

@ofekashery Yep, drawer was recently reimplemented, and investigating best approach to implement gestures.

I want to be able to close it by swipe (right to left)

Sure. Definitely doable via library such as hammerjs.
http://hammerjs.github.io/recognizer-swipe/

Any update on this feature?  Thanks!


About the visualization

Thank you for your perfect work. I have a problem about the visualization as following,
Traceback (most recent call last):
File "demo.py", line 106, in
main(option)
File "demo.py", line 58, in main
sample_rate=sample_rate, is_norm_dct=opt.is_norm_dct, is_norm=opt.is_norm )
TypeError: init() got an unexpected keyword argument 'is_norm_dct'
In order to deal with it , I just changed 57 lines in demo.py to test_dataset = H36motion(path_to_data=opt.data_dir, actions=act, input_n=input_n, output_n=output_n, split=1, sample_rate=sample_rate, dct_n=dct_n)
It still has problem as following:
Traceback (most recent call last):
File "demo.py", line 106, in
main(option)
File "demo.py", line 74, in main
for i, (inputs, targets, all_seq, one_hot) in enumerate(test_data[act]):
ValueError: not enough values to unpack (expected 4, got 3)
So could you please help me to deal with the problem? Thank you very much.

Thank you.
I have update the demo.py file. It should be alright now.
Cheers
Wei

Thank you.
I have updated the demo.py file. It should be alright now.
Cheers
Wei

It works！ Thank you so much!


appmotion-gateway-php-apache release 1.2

What do these changes do?
Updates to latest appmotion-gateway-php-apache 1.2 release
@matusdrobuliak66

let's check in master before releasing to staging/production
feel free to merge this PR when you are ready.

Related issue/s
Related PR/s
Checklist

[ ] I tested and it works

I will take over and do it tomorrow, thanks! :+1:


Fix README typo

Coverage remained the same at 86.553% when pulling e7316bdeac589a131ed1a21b64326521cfca9563 on steevn:patch-1 into bd5f52ab27ef83372ce920462b329bc03f49988e on airbnb:master.


prevent tdf import from infinite loop on corrupt data

tdf went into infinite loop when a corrupt frame was in the data
same method is also used to check for the adequate buffer size, so i just added a message check that throws an exception when corrupt data is found

When the data file is corrupt as i described above.


not really an issue with the Mirror or the Modules...

more of a question... Apologies in advance... Having a brain fart day...
Is there an easy way to update modules without having to recode it to retain the settings I was using???
I had another question, but for the life of me, I cannot remember what it was at the moment. So, I guess I'll ask it when I figure out what it was.
Not sure if this was the question I had in mind, but it is one I've been wanting to ask...
would someone be willing to help me incorporate Watson into the Mirror?
I've tried the MMM=STT , biut it's only Speech to text. I found a code that incorporates that, and also a slew of other skills, like TTS, Voice recognition, Facial recognition, Personality Learning, and a lot more AI skills I am wanting to get working, that I can't seem to get with Alexa, Cortana, Siri, or Google Assistant.

Please refer to http://forum.magicmirror.builders for support and troubleshooting.
I'm closing this issue for now. If you feel this issue should remain open, please let me know.


Consider multilingual

Maintain text multilingual
user provides language (e.g. en-us) and library fetches exact or partial match (e.g. en-us > en* > default); e.g. fetch request for (de-at will result in default language)
ids and textual-type can stay as is (as not exposed to UI)
linkedin (original source) might already provide translations into major languages (avoid self translating)

hello @AlexanderStromer , thank you for this feature request, it is a great one. I will look into this. but I think the best way to handle this would be that user imports what he needs, by himself.
for instance,
import industriesInGerman from 'industries/de';
import industriesInFrench from 'industries/fr';

This way, bundlers such as webpack will be able to bundle in only what is needed, because of the way dynamic imports works

@AlexanderStromer  I have looked into google cloud translation api, We can make use of it, to run batch process, and perform translations, then create pull requests here

The project node-i18n-iso-countries is doing something similar, contrary to the import statements above. I however prefer the import statements you suggested
node-i18n-iso-countries required me to do

import * as i18nIsoCountries from "i18n-iso-countries";
i18nIsoCountries.registerLocale(require("i18n-iso-countries/langs/en.json"));
var countryDictionary = i18nIsoCountries.getNames("en");

which I perceived not as straight forward and also not described on npm

yea, it is not that straight forward

I created a pull request #31 related to this.

multilingual support now available. thanks to @mastepanoski


Add diagnostics_disabled event to whitelist.

Summary
Add diagnostics_disabled event to whitelist.
Ticket Link
https://mattermost.atlassian.net/browse/MM-22185

Please ignore the failed CI check - this has passed the CI (but showing as failed due to a CircleCI bug), so is good to merge once QA review is done.


Fix name allocation (sensor.yr)

Description:
The monitored condition precipitation was named Condition in the frontend with an unit of mm. As the slug doesn't reflected the actual condition.
Related issue (if applicable): fixes YR.no sensor inconsistency
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: yr
    monitored_conditions:
      - temperature
      - symbol
      - precipitation
      - windSpeed
      - pressure

Hmmm, that's sort of a breaking change.


UTF-8 is an invalid value for content-encoding

UploadTask sets the ContentEncoding property of the blob to UTF-8 if it is not given a value. This causes issues when the blob is retrieved with HTTP, because that value is returned in the Content-Encoding header. However, Content-Encoding does not recognize UTF-8 as a valid value, see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding. The default value should be empty.

Actually the issue is the following line
HttpHeaders = new BlobHttpHeaders { ContentType = contentType, ContentEncoding = input.Compress ? "gzip" : encoding.WebName },
I guess, if compress is not used, the content encoding should be empty. This should fix the issues with clients trying to request uncompressed blob from blob storage.

Or is this repository still maintained?


[FEAT] Tab close button fade

I just added the code below to make tab close button fade in when hovering over the button:
.tabbrowser-tab:not([pinned]) .tab-close-button {
display: -moz-box !important;
opacity: 0;
visibility: collapse !important;
transition: all 0.2s ease-in !important;
}
.tabbrowser-tab:not([pinned]):hover .tab-close-button {
opacity: 0.5;
visibility: visible !important;
transition: all 0.2s ease-in !important;
}
.tabbrowser-tab:not([pinned]) .tab-close-button:hover {
opacity: 1.0;
transition: opacity 0.2s ease-in !important;
}
i think it blends more natively to what Safari do.
If you could add this to the css :)

Hi, Is there any way you can make the "Close tab" button on left?
Thank you

@examrange You can import the custom css from custom/lhsclose.css to the theme.css file

@Faruolo2 Thanks for the suggestion, have added the show only on hover with a few tweaks


responseType is set but not used

Description:
responseType that’s set during OAuth2Swift initialization is not used.
The OAuth provider I’m using returns token as id_token. Here I set the token during initialization of OAuth2Swift:
let oauth = OAuth2Swift(consumerKey: "xxxx-xxxx-xxxx-xxxx", consumerSecret: "", authorizeUrl: "https://example.com/oauth2/authorize", accessTokenUrl: "https://example.com/oauth2/token", responseType: "id_token")
OAuthSwift doesn’t recognize the token, although it can be successfully extracted using Postman or similar software.
The problem was found near line 95 in OAuth2Swift.swift:
if let accessToken = responseParameters["access_token"]
Instead of using responseType as dictionary key, the statement always uses access_token for extracting the token.
The correct code would be:
if let accessToken = responseParameters[this.responseType]
OAuth Provider? (Twitter, Github, ..):
Private OAuth provider
OAuth Version:
Version 2
OS (Please fill the version) :
iOS 11.4
Installation method:
CocoaPods
Library version:
v1.2.0 (Swift 4.0)
Xcode version:
9.4.1 (Swift 4.1)

The issue is no longer relevant.


Increment version for communication releases

Increment package version after release of Azure.Communication.CallAutomation

/check-enforcer override


Added signing related tests

Issue: AAH-1599
TODO

[x] Test badge as an extra tests to (also it will be included in the signing test suite):

[x] Collections list
[x] Namespace collection list
[x] Collection detail versions

[x] Test Signature download on collection detail
[x] Test Sync signed only on remote collection edit
[x] Test (and probably update) the described configuration here: https://galaxyng.netlify.app/config/options/

[x] Requires first AAH-1622

[x] Set up CI backend signing service

On hold because:

[x] Feature flags are changing https://github.com/ansible/ansible-hub-ui/pull/2211
[x] Additional work on the UI for uploading signature https://github.com/ansible/ansible-hub-ui/pull/2231

[x] If #2068 merged and galaxykit gets an upload multiple versions support (https://github.com/ansible/galaxykit/pull/44) then this PR could include those tests too.
[x] Wait for https://github.com/ansible/galaxykit/pull/45 so we can make sure that the staging collections can be removed safely too.

The certification upload tests are not done yet, but left the setup for them there, so it is easier to start working on it next time (I might wanna look into this in this last week, I just didn't wanted to leave a big chunk of tests hanging in the air unfinished)


ImageFileUpload Error?

Hi,
I cannot upload images after the Last Update. It gives the following error.
The file you are trying to upload is not an image error. I tried FileUploadEditor, it didn't.
[ImageUploadEditor(AllowNonImage =false,  FilenameFormat = "Image/{0}_{2}", DisplayFileName = true)]

I have added the System.Drawing.Common library.
"Could not load file or assembly 'System.Drawing.Common, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)"


Containerize your microservice using Docker

Feature: Containerize Microservice Using Docker
As a developer,
I want to containerize my microservice using Docker,
So that I can ensure consistency across different environments and simplify deployment.
Scenario: Build Docker image for the microservice
Given I have a Dockerfile in the root directory of my microservice
When I run the command "docker build -t my-microservice ."
Then a Docker image named "my-microservice" should be created
Scenario: Run the Docker container locally
Given I have a Docker image named "my-microservice"
When I run the command "docker run -d -p 8080:80 my-microservice"
Then a Docker container should be running
And the microservice should be accessible at "http://localhost:8080"
Scenario: Push Docker image to a Docker registry
Given I have a Docker image named "my-microservice"
And I am logged into my Docker registry
When I run the command "docker push my-registry/my-microservice"
Then the Docker image should be pushed to "my-registry/my-microservice"
Scenario: Deploy Docker container to a cloud environment
Given I have a Docker image named "my-microservice" in my Docker registry
When I deploy the Docker container using my cloud provider's deployment service
Then the microservice should be running in the cloud environment
And it should be accessible via the cloud provider's URL


Example program

Hi - I just setup xmind-sdk-python under anaconda with Python 3.7.3 and I am trying to run run the example program that came with the install:
w = xmind.load("test.xmind") # load an existing file or create a new workbook if nothing is found
s1=w.getPrimarySheet() # get the first sheet
s1.setTitle("first sheet") # set its title
r1=s1.getRootTopic() # get the root topic of this sheet
r1.setTitle("we don't care of this sheet") # set its title
s2=w.createSheet() # create a new sheet
s2.setTitle("second sheet")
r2=s2.getRootTopic()
r2.setTitle("root node")
etc.
On teh line s2.setTitle("second sheet") I get an error ' AttributeError: 'str' object has no attribute 'decode''
Would anyone have an idea what's wrong here?

Hi @jcherw2 thank you for reaching us out and trying to use the library we spend time on!
Here is the another project where we try to use the library
https://github.com/andrii-z4i/xmind-telegram/blob/master/cmp_command_processor/src/controllers/implementations/SheetCommandsProcessor.py
Please take a look and let me know if you still have questions.

Hi Andrii:
Thanks for the example. I now get the error message
(ck_dev1) I:\OneDrive\Project\Python\XMind> python test3.py
Traceback (most recent call last):
File "test3.py", line 9, in
from cmp_command_processor.src.controllers.interfaces.Base
mport BaseCommandProcessor
ModuleNotFoundError: No module named 'cmp_command_processor'
Obviously I need to install something from the telegram github, but I could
not work out what.
I am using win7 anaconda install and created a virtual environment as
described on your git hub.
I hope this reply email is ok to bring up the following ((if not let me
know and I'll delete it from github):
I am looking into your project for options to port some teamware for
Knowledge Management that was originally developed standalone
(Linux/Apached/SQL/Perl)  for the petroleum industry (see article attached).
This system is pretty much a mind map with one nifty trick (which I have
not seen elsewhere - let me know if I have this wrong) is that it uses a
shared database of root nodes (common knowledge) to build the mind map and
documentation entered via derived nodes (from root nodes)  gets tagged and
is accessible and exchangeable via multiple mindmaps (for different projet
teams or indivifuals).
I would like to port this system to Xmind/Python/SQL? combination and
adapted for general purpose? . Are you by chance interested in this? As a
free lancer or it could also be an open source project.
Joost
Joost C. Herweijer
Au +61 (0)403 113610
Travelsim: +61 (0)4 85800122
Mobile NL +31 (0)6 41175435
Skype  jcherw
207 Hender Road
PO Box 967
Mount Barker SA 5251
Australia
On Tue, Apr 30, 2019 at 5:29 PM Andrii Kozin<EMAIL_ADDRESS>wrote:

Hi @jcherw2 https://github.com/jcherw2 thank you for reaching us out
and trying to use the library we spend time on!
Here is the another project where we try to use the library
https://github.com/andrii-z4i/xmind-telegram/blob/master/cmp_command_processor/src/controllers/implementations/SheetCommandsProcessor.py
Please take a look and let me know if you still have questions.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/andrii-z4i/xmind-sdk-python/issues/65#issuecomment-487853562,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIWIVEXFJIN6HCXFNFAMTMDPS735DANCNFSM4HJIZ4TA
.

--
Joost C. Herweijer
Au +61 (0)403 113610
Travelsim: +61 (0)4 85800122
Mobile NL +31 (0)6 41175435
Skype  jcherw
207 Hender Road
PO Box 967
Mount Barker SA 5251
Australia

Hi Joost,
There is a couple of hints in the project itself (xmind-telegram):

we have .travis.yml file which shows what kind of steps you have to perform to be able to run the project;
most interesting tests are in tests\command_processor\SheetCommandsProcessorTests.py and tests\command_processor\TopicCommandsProcessorTests.py.

So, if you a) use python3 and b) install all required packages then you will be able to run python -m unittest discover -p *Tests.py -s tests command which will run all tests.
p.s. if you want more information then please accept my request in skype and we can continue discussion there.
best regards,
Andrii Kozin


Edge case: jumping to character at the end of a line (before a )

Edit: I just installe the plugin a couple of minutes ago and I was playing with the motions and options while reading the README. Right now I have just read the section Jumping to the last character on a line. Should I close this?
Using the default keymaps and given the following file:

Pressing sa works more or less as expected. The UI is bit misleading, thought, since it is showing the labels next to the a's (because <cr> denotes the end of a line I guess).

Then, pressing <cr> messes up all of the labels and it's imposible to any of the other results by using the labels displayed before pressing <cr>.

Edit: I just installe the plugin a couple of minutes ago and I was playing with the motions and options while reading the README. Right now I have just read the section Jumping to the last character on a line. Should I close this?

Yes, exactly. <cr> means "jump to the next match" by default. General advice: the issue tracker is not a chat room, next time (in any repo on GitHub) please at least read the docs first, instead of raising an issue after fooling around for "a couple of minutes". (A mild excuse could have been being a former Lightspeed user - <cr> indeed represents \n there.) That said, thanks for trying out the plugin, and have fun with Leap!


Regular expressions in find/replace not working

Preflight Checklist

[x ] I agree to follow the Code of Conduct that this project adheres to.
[x ] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
Repeating the example at https://www.diagrams.net/doc/faq/find-shapes
Several shapes have the inventory tag, and should be found by the search.
They are found as expected when "inventory" is used.
Problem: When a regular expression is used as per the example, it sometimes finds the first occurrence, then throws an error: ea is null
/inv also finds the shape with the label "In stock" (once), which has no tags, and then throws the same error.
Web app.diagrams.net ver. 18.0.8, Firefox browser
Process video:

Diagram file:

Reproduced in FF 100.0.2 (64-bit) with 18.0.8 and in Chrome incognito.
In Chrome Incognito the error is shown like this:

File:
inventory.zip

Thanks for the report. This will be fixed in the next release.


Core Developer: required input type

As a Core Developer I want common code for requiring input types so that I can have validation that enforces that a given input type is required.
Feature: required input type
  As a Core Developer
  I want common code for requiring input types
  So that I can have validation that enforces that a given input type is required.

  Scenario: An input is required
    Given that we may require a Content Creator to enter data into a given input field
    When form-wide validation is triggered
    Then input types which are required should cause an error when they are devoid of data.

[ ] required input type / input is required

r2s: required to save
r2p: required to publish
single input
r2s

overwrites validation

would look for value before running any existing input plugin validation
value true? now run existing validation

triggered by blue/change/whatevs the validation trigger is

r2p

not triggered if empty
remove errors if becomes empty

generally

empty fields only trigger r2s validation
field becomes empty and has an error and not r2s, remove error

just another check on the field if emptied

server side

this needs to work server side too

required save settings

true = save
1 = publish
2 = save
publish = publish (crazy, I know)
save = save (mind-blown)

to do

[ ] add required to input & label for required elements
[ ] create input plugin test for required save settings options
[ ] client required to save func
[ ] client required to publish func
[ ] server required to save func
[ ] server required to publish func

This was completed a few sprints ago


Error: Invalid problemMatcher reference: $esbuild-watch

Cannot really contribute anything: local repo does not start debugging. Here's the video:
https://github.com/user-attachments/assets/06320ed9-976c-4196-9c85-86e43591df93

Can you try installing this extension and see if it fixes the issue https://marketplace.visualstudio.com/items?itemName=connor4312.esbuild-problem-matchers

woo-hoo! that helped, no more error, and a new VSCode window opens successfully. Thanks! I would never guess to fix this with an extension.
If this extension is required for contributing, perhaps it makes sense to add a note in readme.md (that's where I looked up the setup instructions).
Thanks again.

Done! https://github.com/saoudrizwan/claude-dev/commit/43e30d3f7671686fef0927e816321fb4b4464141


Thrift support

I think it would be quite interesting to have the option to serve responses as thrift over http.
This isn't something that I feel is very important, but would be nice to have.

An update on this issue: we'll probably not have a separate interface for Thrift I/O.
This is because we would need to unpack incoming Thrift data anyway to get it into our internal format. And to ship it to clients we would need to convert it from our internal format.
We'll likely switch to a different format that we can use for efficient serialization and unserialization as well as (indexed) storage. Thrift, MessagePack and all the others are very good for serialization and unserialization, but are not ideal for working with schema-free data and quickly navigating inside.
The format we require needs to be compatible to JSON in the sense of that it must be able to handle all valid JSON data and that we can also use it for processing incoming JSON, and it must not require a schema for data. We looked around a bit for such format, and could not find one that is really helps us.

... therefore you created your own - no need to be modest! See VelocyPack :+1:

@CoDEmanX : yes, but it's not yet fully integrated into ArangoDB. Once that's done, I will likely become unmodest.


Sync eng/common directory with azure-sdk-tools for PR 7821

Sync eng/common directory with azure-sdk-tools for PR https://github.com/Azure/azure-sdk-tools/pull/7821  See eng/common workflow

/azp run cpp - core - ci

/check-enforcer override


The system cannot find the file specified error when running DITA-OT

When running DITA-OT on site, the following error was raised:
The system cannot find the file specified

Can you check what happens if you replace the dita entry in the list below with dita.exe or dita.bat?
This is in this list, on line 764 of parser.py:
dita_command = [
            "dita",
            "-i",
            "./target/dita/index.ditamap",
            "-f",
            "html5",
            "-o",
            "./target/html",
        ]

Yes, dita.bat works on the target network.  I'll manually fix the name on each new release.

I can easily do a simple if statement to change the name when we're on Windows - shall I do that?

yes please :-D

Fixed in #440. Haven't tested on Windows - but it should work - let me know how it goes.


[Mobile] UI Updates on Phase 1 Answering (S.1.6)

Issue:
UI updates to more closely match Figma
Resolution:
Update relevant screen per comments on https://www.figma.com/file/PadzU8GqyhFLCjIt7rQkpE/RightOn-Apps?node-id=11957%3A373842&t=SGeD0ipYgjvbSbpc-0

Outstanding Issues (2023-01-09):

Can we adjust the scoring icon so that it more closely matches the figma? Currently shows as flat blue but figma shows it with a gradient.

I'm seeing some close spacing between the timer bar and the card in Android:

Are you seeing this in iOS? If so, could we provide more space?

@Alexandra-Kushnirsky


Resource action plugins

I would like to create a plugin that adds an action to the resource-popup menu for specified kind(s) of resources - for example if I want to add some special processing for a ConfigMap. My plugin should be able to display visual components (for example a modal dialog) to prompt for input from the user - and it should have access to the state of the selected resource (and preferably all other resources)

Closed this in favor of https://github.com/kubeshop/monokle/issues/177


Publish ABI-only Gradle API

We have a new apiStubElements configuration exposing ABI stubs of each project.

For Kotlin, we use ABI stubs generated by the jvm-abi-gen compiler plugin.
For Java we use our own ExtractJavaAbi task that uses the same infrastructure we use for @CompileClasspath normalization.

We have configured the compileClasspath of each project to prefer the stubbed classes if available.
Context
This is part of publishing the Gradle APIs.
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

Current problems:
/Users/lptr/Workspace/gradle/gradle-yello/platforms/software/dependency-management/src/main/java/org/gradle/api/internal/artifacts/configurations/DefaultConfigurationContainer.java:434: error: cannot access AbstractDomainObjectCreatingProvider
    public class NamedDomainObjectCreatingProvider<I extends Configuration> extends AbstractDomainObjectCreatingProvider<I> {
                                                                                ^
  bad class file: /Users/lptr/Workspace/gradle/gradle-yello/subprojects/core/build/generated/java-abi/org/gradle/api/internal/DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.class
    bad RuntimeInvisibleParameterAnnotations attribute: AbstractDomainObjectCreatingProvider(String,Class<I>,Action<? super I>)
    Please remove or make sure it appears in the correct subdirectory of the classpath.
  where I,T are type-variables:
    I extends T declared in class AbstractDomainObjectCreatingProvider
    T extends Object declared in class DefaultNamedDomainObjectCollection

It seems that our Java ABI extraction messes up something about annotations, but it's unclear what exactly.

The weird thing is that I see RuntimeVisibleParameterAnnotations pop up in decompiled code, but no mention of any RuntimeInvisibleParameterAnnotations...
Here's for example the class file cited above: https://gist.github.com/lptr/4608147187631d158f99af0cd8a025be
  public org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider(java.lang.String, java.lang.Class<I>, org.gradle.api.Action<? super I>);
    descriptor: (Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection;Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
         0: new           #10                 // class java/lang/Error
         3: dup
         4: invokespecial #13                 // Method java/lang/Error."<init>":()V
         7: athrow
    Signature: #8                           // (Ljava/lang/String;Ljava/lang/Class<TI;>;Lorg/gradle/api/Action<-TI;>;)V
    RuntimeVisibleParameterAnnotations:
      parameter 0:
      parameter 1:
      parameter 2:
        0: #14()
          javax.annotation.Nullable
      parameter 3:

Maybe those empty parameter 0 etc. entries are the problem?

Here's how it looks like in the non-extracted class file: https://gist.github.com/lptr/33eb9eef8e4c59bfa7e20ab8d62c504f
  public org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider(java.lang.String, java.lang.Class<I>, org.gradle.api.Action<? super I>);
    descriptor: (Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection;Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
         0: aload_0
         1: aload_1
         2: putfield      #7                  // Field this$0:Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection;
         5: aload_0
         6: aload_1
         7: aload_2
         8: aload_3
         9: invokespecial #11                 // Method org/gradle/api/internal/DefaultNamedDomainObjectCollection$AbstractNamedDomainObjectProvider."<init>":(Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection;Ljava/lang/String;Ljava/lang/Class;)V
        12: aload_0
        13: iconst_0
        14: putfield      #1                  // Field removedBeforeRealized:Z
        17: aload_0
        18: invokestatic  #17                 // Method org/gradle/internal/ImmutableActionSet.empty:()Lorg/gradle/internal/ImmutableActionSet;
        21: aload_1
        22: invokevirtual #23                 // Method org/gradle/api/internal/DefaultNamedDomainObjectCollection.getEventRegister:()Lorg/gradle/api/internal/collections/CollectionEventRegister;
        25: invokeinterface #29,  1           // InterfaceMethod org/gradle/api/internal/collections/CollectionEventRegister.getAddActions:()Lorg/gradle/internal/ImmutableActionSet;
        30: invokevirtual #34                 // Method org/gradle/internal/ImmutableActionSet.mergeFrom:(Lorg/gradle/internal/ImmutableActionSet;)Lorg/gradle/internal/ImmutableActionSet;
        33: putfield      #38                 // Field onCreate:Lorg/gradle/internal/ImmutableActionSet;
        36: aload         4
        38: ifnull        47
        41: aload_0
        42: aload         4
        44: invokevirtual #42                 // Method configure:(Lorg/gradle/api/Action;)V
        47: return
      LineNumberTable:
        line 935: 0
        line 936: 5
        line 933: 12
        line 937: 17
        line 939: 36
        line 940: 41
        line 942: 47
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      48     0  this   Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider;
            0      48     1 this$0   Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection;
            0      48     2  name   Ljava/lang/String;
            0      48     3  type   Ljava/lang/Class;
            0      48     4 configureAction   Lorg/gradle/api/Action;
      LocalVariableTypeTable:
        Start  Length  Slot  Name   Signature
            0      48     0  this   Lorg/gradle/api/internal/DefaultNamedDomainObjectCollection<TT;>.AbstractDomainObjectCreatingProvider<TI;>;
            0      48     3  type   Ljava/lang/Class<TI;>;
            0      48     4 configureAction   Lorg/gradle/api/Action<-TI;>;
      StackMapTable: number_of_entries = 1
        frame_type = 255 /* full_frame */
          offset_delta = 47
          locals = [ class org/gradle/api/internal/DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider, class org/gradle/api/internal/DefaultNamedDomainObjectCollection, class java/lang/String, class java/lang/Class, class org/gradle/api/Action ]
          stack = []
    MethodParameters:
      Name                           Flags
      this$0                         final mandated
      name
      type
      configureAction
    Signature: #223                         // (Ljava/lang/String;Ljava/lang/Class<TI;>;Lorg/gradle/api/Action<-TI;>;)V
    RuntimeVisibleParameterAnnotations:
      parameter 0:
      parameter 1:
      parameter 2:
        0: #225()
          javax.annotation.Nullable

So there is no parameter 3: there (though we have the other two empty ones...)

I think I found why we have an extra entry in the parameter list in the generated code. It might be an ASM bug:
https://gitlab.ow2.org/asm/asm/-/blob/master/asm/src/main/java/org/objectweb/asm/MethodWriter.java#L691-713
  @Override
  public AnnotationVisitor visitParameterAnnotation(
      final int parameter, final String annotationDescriptor, final boolean visible) {
    if (visible) {
      if (lastRuntimeVisibleParameterAnnotations == null) {
        lastRuntimeVisibleParameterAnnotations =
            new AnnotationWriter[Type.getArgumentCount(descriptor)];
      }
      return lastRuntimeVisibleParameterAnnotations[parameter] =
          AnnotationWriter.create(
              symbolTable, annotationDescriptor, lastRuntimeVisibleParameterAnnotations[parameter]);
    } else {
      if (lastRuntimeInvisibleParameterAnnotations == null) {
        lastRuntimeInvisibleParameterAnnotations =
            new AnnotationWriter[Type.getArgumentCount(descriptor)];
      }
      return lastRuntimeInvisibleParameterAnnotations[parameter] =
          AnnotationWriter.create(
              symbolTable,
              annotationDescriptor,
              lastRuntimeInvisibleParameterAnnotations[parameter]);
    }
  }

Here lastRuntimeVisibleParameterAnnotations is initialized to have as many entries as the method has parameters. But for non-static inner-class constructors it seems that the first parameter is omitted from this list normally, but ASM does not account for that. (Nor can it, since it uses the method descriptor to do the counting.) This results in one extra entry in the list.

So the method descriptor is not fit to determine the number of annotatable parameters, because it has 4 of those:
(LOuter;Ljava/lang/String;Ljava/lang/Class;Ljava/util/function/Consumer;)V

However, the MethodWriter also receives the method's signature, which contains only the correct three parameters:
(Ljava/lang/String;Ljava/lang/Class<TI;>;Ljava/util/function/Consumer<-TI;>;)V

However, it also contains generic arguments, and thus cannot be passed to Type. getArgumentCount() directly. :(

The problem with ASM will be handled and merged via:

https://github.com/gradle/gradle/issues/31416
https://github.com/gradle/gradle/pull/31417

Another problem was found with ASM that will be fixed via:

https://github.com/gradle/gradle/issues/31436
https://github.com/gradle/gradle/pull/31437

I also found an issue where the public DefaultDirectoryVar type extended the private AbstractFileVar causing the Kotlin compiler to complain:

> Task :core-serialization-codecs:compileKotlin FAILED
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
    class org.gradle.api.internal.file.DefaultFilePropertyFactory.DefaultDirectoryVar, unresolved supertypes: org.gradle.api.internal.file.DefaultFilePropertyFactory$AbstractFileVar
    class org.gradle.api.internal.file.DefaultFilePropertyFactory.DefaultRegularFileVar, unresolved supertypes: org.gradle.api.internal.file.DefaultFilePropertyFactory$AbstractFileVar

Making AbstractFileVar package-private solved this issue and now running gradle public-api:jarGradleApi succeeds when the aforementioned fixes are applied; see https://ge.gradle.org/s/inbf7dkps66tq.
Once the #31437 is merged today, I'll bump the wrapper to the published nightly, and then this PR should be good to go.

Some more troubles:

[ ] Since we are now compiling against the ABI stubs, IntelliJ will show those stubs when looking up references from one project to another. This makes navigating the code annoying and we should fix it.

[ ] Unit tests are also compiled against the published API now. This is not such a big issue right now, and it even unearthed some Groovy unit tests referencing private inner classes (which Groovy makes work, but we still shouldn't rely on). However, going forward we plan to remove package-private etc. members from the published API, yet unit tests should be able to access these. Thus they shouldn't be compiled against the published API, but instead against the implementation only; at least for the project itself.

[ ] Project health incorrectly reports that :base-services doesn't need a few of its dependencies now:
Execution failed for task ':base-services:projectHealth'.
> /Users/lptr/Workspace/gradle/gradle-yello/platforms/core-runtime/base-services/build.gradle.kts
  Unused dependencies which should be removed:
    api(project(":file-temp"))
    api(project(":hashing"))
    api(project(":stdlib-java-extensions"))

One way to work around these issues would be to stop compiling against the extracted ABIs, and just collect them for publishing. That would allow us to move forward, but would remove the dogfooding aspect, which led to the discovery of a few problems with the extractor already.

@bot-gradle test QF please.

@bot-gradle test QF please.

I've triggered the following builds:

Quick Feedback (Trigger) (Check)

Build Scan

The following builds have failed:

Quick Feedback (Trigger) (Check)

Build Scan

The following builds have passed:

Quick Feedback (Trigger) (Check)

Build Scan


Revise the MRet and SRet instructions so that instead of computing whether or not we should throw an exception for them during input transform we determine that in the Commit stage

0bf83b6


LAPACK and BLAS Support

Hi,
I am thinking on adding support for certain libraries to setup-fortran, especially LAPACK and BLAS. Do you think setup-fortran is the right place for this?

While I see the appeal I wonder about scope/complexity creep. Maybe best limited to BLAS/LAPACK if we pursue this?
One question is which versions, presumably not the unoptimized reference. For Intel there is MKL. openBLAS seems like the typical choice otherwise and is available on APT, homebrew, mingw. However I think optimized blas/lapack are already built into macOS in the Accelerate framework.
There are also questions of GPU support. GitHub just opened private beta for hosted GPU runners https://github.com/github/roadmap/issues/505 not to mention self-hosting. I guess we would detect platform and pick from cublas, rocblas, etc but I don't have any sense of the difficulty/overhead of installation, and there are also e.g. CLBlast.. I am out of my depth here, maybe others can weigh in.

I created a fork that also installs mkl libraries for ubuntu and macos.
https://github.com/ssciwr/setup-fortran
Will also open a PR so that it may get merged with this action.

@iulusoy I took a quick look at your fork. I like the idea, but I wonder if worth the effort. If we do this, I think it should be generic and support arbitrary components from Base or HPC kit, rather than separate inputs for each component like install_mkl. For instance we have a request to setup MPI too #21.
Maybe something like intel_components, which could accept a delimited list of the name segments following intel.oneapi.<platform>. e.g. mkl.devel,mpi,dnnl, and translate this into the full component names (retrievable from the installer with --list-components). However I am not sure component names are consistent across all versions. The action would also need to maintain a mapping of which are in base/hpc kit.
Or even more generic, maybe booleans like
- uses: fortran-lang/setup-fortran@v1
   id: setup-fortran
   with:
      compiler: ...
      version: ...
      math: true
      mpi: true

...where math installs mkl for intel and some other blas/lapack for other toolchains, and similar for mpi.
This could get pretty complicated and I want to avoid inconsistent/adhoc solutions if possible. I'm tempted to say if someone needs mkl/mpi/etc, better off just writing a custom workflow. Maybe @awvwgk has thoughts

Thank you for your feedback @wpbonelli. True, it would be nice to have something more generic.
I set it up just for mkl because I just needed those libraries, and tried to generalize for as many versions on macOS as possible. Since the code I am working with is not tested on windows, I skipped that.
It would be fairly easy to create a general action for mkl and mpi just on linux without introducing too much complexity in the code.

A modernized reference BLAS/LAPACK just went into stdlib — perhaps we could add a separate option to install the stdlib


Selecting Wrong Video Height

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like that [x])
Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.03.15. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.03.15

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
C:\Youtube-DL>youtube-dl -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v']
[debug] Encodings: locale cp1254, fs mbcs, out cp857, pref cp1254
[debug] youtube-dl version 2017.03.15
[debug] Python version 3.4.4 - Windows-10-10.0.14393
[debug] exe versions: ffmpeg N-83882-g58f0bbc, ffprobe N-83882-g58f0bbc
[debug] Proxy map: {}
Usage: youtube-dl [OPTIONS] URL [URL...]

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.

youtube-dl --list-formats https://www.youtube.com/watch?v=hHKJ5eE7I1k
C:\Youtube-DL>youtube-dl --list-formats https://www.youtube.com/watch?v=hHKJ5eE7I1k
[youtube] hHKJ5eE7I1k: Downloading webpage
[youtube] hHKJ5eE7I1k: Downloading video info webpage
[youtube] hHKJ5eE7I1k: Extracting video information
[youtube] hHKJ5eE7I1k: Downloading MPD manifest
[info] Available formats for hHKJ5eE7I1k:
format code  extension  resolution note
249          webm       audio only DASH audio   58k , opus @ 50k, 1.10MiB
250          webm       audio only DASH audio   84k , opus @ 70k, 1.54MiB
140          m4a        audio only DASH audio  129k , m4a_dash container, mp4a.40.2@128k (44100Hz), 2.87MiB
171          webm       audio only DASH audio  141k , vorbis@128k, 2.57MiB
251          webm       audio only DASH audio  167k , opus @160k, 3.03MiB
160          mp4        256x144    DASH video  111k , avc1.4d400c, 15fps, video only, 2.39MiB
278          webm       256x144    144p  169k , webm container, vp9, 30fps, video only, 2.12MiB
133          mp4        426x240    DASH video  252k , avc1.4d4015, 30fps, video only, 5.45MiB
242          webm       426x240    240p  299k , vp9, 30fps, video only, 4.55MiB
243          webm       640x360    360p  511k , vp9, 30fps, video only, 8.46MiB
134          mp4        640x360    DASH video  612k , avc1.4d401e, 30fps, video only, 9.88MiB
244          webm       854x480    480p  926k , vp9, 30fps, video only, 15.59MiB
135          mp4        854x480    DASH video 1126k , avc1.4d401f, 30fps, video only, 19.55MiB
247          webm       1280x720   720p 1803k , vp9, 30fps, video only, 31.41MiB
136          mp4        1280x720   DASH video 2241k , avc1.4d401f, 30fps, video only, 38.40MiB
248          webm       1920x1080  1080p 3213k , vp9, 30fps, video only, 55.07MiB
137          mp4        1920x1080  DASH video 4202k , avc1.640028, 30fps, video only, 70.66MiB
264          mp4        2560x1440  DASH video 9974k , avc1.640032, 30fps, video only, 161.22MiB
271          webm       2560x1440  1440p 10152k , vp9, 30fps, video only, 175.80MiB
313          webm       3840x2160  2160p 21647k , vp9, 30fps, video only, 378.08MiB
266          mp4        3840x2160  DASH video 22233k , avc1.640033, 30fps, video only, 374.81MiB
138          mp4        3840x2160  DASH video 25128k , avc1.640033, 30fps, video only, 414.82MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
43           webm       640x360    medium , vp8.0, vorbis@128k
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)

I want to select 1080pvideo(mp4)+bestaudio(m4a)
youtube-dl -f "[ext=mp4][height<=1080]+bestaudio[ext=m4a]"   https://www.youtube.com/watch?v=hHKJ5eE7I1k
But it is selecting f22 (720p)
C:\Youtube-DL>youtube-dl -f "[ext=mp4][height<=1080]+bestaudio[ext=m4a]"   https://www.youtube.com/watch?v=hHKJ5eE7I1k
[youtube] hHKJ5eE7I1k: Downloading webpage
[youtube] hHKJ5eE7I1k: Downloading video info webpage
[youtube] hHKJ5eE7I1k: Extracting video information
[youtube] hHKJ5eE7I1k: Downloading MPD manifest
[download] Resuming download at byte 148480
[download] Destination: Panasonic LUMIX GH4 'Light of the Yucatan' in 4K by Bryan Harvey-hHKJ5eE7I1k.f22.mp4
[download]   1.6% of 41.23MiB at 351.64KiB/s ETA 01:58
ERROR: Interrupted by user

This code working with this video; https://www.youtube.com/watch?v=hHKJ5eE7I1k
-f "bestvideo[ext=mp4][height<=1080]+bestaudio[ext=m4a]"
But not work with; https://www.youtube.com/watch?v=tU3Bgo5qJZE
It is selecting format code 133 not 134
C:\Youtube-DL>youtube-dl --list-formats https://www.youtube.com/watch?v=tU3Bgo5qJZE
[youtube] tU3Bgo5qJZE: Downloading webpage
[youtube] tU3Bgo5qJZE: Downloading video info webpage
[youtube] tU3Bgo5qJZE: Extracting video information
[youtube] tU3Bgo5qJZE: Downloading MPD manifest
[info] Available formats for tU3Bgo5qJZE:
format code  extension  resolution note
249          webm       audio only DASH audio   51k , opus @ 50k, 1010.34KiB
250          webm       audio only DASH audio   61k , opus @ 70k, 1.17MiB
171          webm       audio only DASH audio  109k , vorbis@128k, 2.02MiB
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k (44100Hz), 2.48MiB
251          webm       audio only DASH audio  143k , opus @160k, 2.72MiB
278          webm       256x140    144p   97k , webm container, vp9, 15fps, video only, 865.40KiB
160          mp4        256x140    DASH video  129k , avc1.4d400c, 15fps, video only, 1.08MiB
242          webm       426x234    240p  135k , vp9, 30fps, video only, 1.13MiB
243          webm       640x350    360p  221k , vp9, 30fps, video only, 1.94MiB
134          mp4        640x350    DASH video  282k , avc1.4d401e, 30fps, video only, 2.84MiB
133          mp4        426x234    DASH video  302k , avc1.4d4015, 30fps, video only, 2.43MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x176    small , mp4v.20.3, mp4a.40.2
18           mp4        640x350    medium , avc1.42001E, mp4a.40.2@ 96k
43           webm       640x360    medium , vp8.0, vorbis@128k (best)

How I can select bestvideo Equal or less than 1080p , file format mp4, fps Equal or less than 30 fps

-f "bestvideo[ext=mp4][height<=1080]+bestaudio[ext=m4a]/best[ext=mp4][height<=1080]".

Did you try with this video? It is not work.
youtube-dl -f "bestvideo[ext=mp4][height<=1080]+bestaudio[ext=m4a]/best[ext=mp4][height<=1080]" https://www.youtube.com/watch?v=tU3Bgo5qJZE


The Dark Mode - Color

TASK COMPLETE!

The completed version of the current dark mode is as follows:

Dark Mode

Added all color set
Before & After preview

Light Mode

Adjust all the warning color level
And, was initially defined as 30 as the standard warning color, and now it is unified to 60
You can also check more information below ↓

Before

After

⤷ Here's the currently file in Figma

BTW, also needs to add shadows for dark theme, so another new issue is opened #147, I will handle this at next time.

TASK COMPLETE!
 Before  After
Resolutions at the last meeting, we needed "special treatment" for the solid button (named the Regular Button) in dark theme, replacing it from Grayscale 0 (#0F1B26) to 100 ( #E5F2FF), when it's on the Regular Button. As a reminder, the text seen on a solid button will be a whiter color rather than a darker color.
As a reminder, please remember to include this "special treatment" when you develop this part and deal with regular button. Thanks!
⤷ Here's the currently file in Figma

Confirmed. This task will be taken over by developers to implement.

We have some customization issues for dark theme mainly caused by execution order. In short: we cannot get the current theme config on component constructor phase, which makes the following implementation difficult:

Customizing button color for dark theme.
Changing code highlight palette for dark theme.

Code theme change issue has been resolved by implementing a mutation observer.
Key changes:

Extract a theme object utility for theme change controlling (see https://github.com/Padax/w-components/blob/master/packages/w-components/util/Theme.js).
Bind current theme name on <head> as an attribute.
Implement a MutationObserver for <head> theme attribute change.
Trigger Code theme stylesheet switch on this theme attribute changed.

!!

GENIUS!!

But w-code highlight in reference page is broken. Check it by visiting https://padax.github.io/w-components/ and click 元件.

According to @nizniz187  report, there're still some style details about this dark mode that need to be reviewed later, I comment here first and open this issue #158 .


Fix project config

Codecov Report

Merging #269 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #269   +/-   ##
=======================================
  Coverage   90.58%   90.58%
=======================================
  Files          18       18
  Lines        1126     1126
=======================================
  Hits         1020     1020
  Misses        106      106

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 6472d60...4de2185. Read the comment docs.


Map integration

When we eventually want to include a map, does anyone know a good angular friendly way? The mvp-design was using https://github.com/tombatossals/angular-leaflet-directive, but it wasn't really updated for a year. I didn't find anything else / better either though.

The leaflet-directive seems good, it's mentioned here: https://github.com/gianarb/awesome-angularjs
Potential mapping goals:

per group: all stores for overview. click on the store, go to the store page
on the store page: where is the store exactly?
public: locations of all groups. could be the start page for unregistered users. click on a group joins group

What do you think?

angular-ui has a fork of the leaflet directive: https://github.com/angular-ui/ui-leaflet
It's under active development, I would give it a try.


⚠ Minecraft has degraded performance

In 9b2b657, Minecraft (https://www.minecraft.net) experienced degraded performance:

HTTP code: 200
Response time: 1313 ms

Resolved: Minecraft performance has improved in 633eae4.