requirements.txt using latest package of markyp-bootstrap4 causes Action to fail

Hello! I first wanted to say thanks for creating this GitHub Action, this has helped out immensely in the project that I'm part of.
System

OS Version: Linux
Python Version: 3.3.10

Issue
I noticed that recently (After June 28, 2023) this Action started to error out in my GitHub Action workflow. This was the error that got produced:
 Traceback (most recent call last):
  File "/home/runner/work/_actions/rempelj/nunit-html-action/2d0208d2a33a892c5cfe770925cae8ecee96084d/main.py", line 5, in <module>
    from markyp_bootstrap4.alerts import alert
  File "/usr/local/lib/python3.8/dist-packages/markyp_bootstrap4/__init__.py", line 7, in <module>
    from markyp_html import link, script
  File "/usr/local/lib/python3.8/dist-packages/markyp_html/__init__.py", line 8, in <module>
    from markyp.elements import Element, ElementSequence, StandaloneElement, StringElement
  File "/usr/local/lib/python3.8/dist-packages/markyp/elements.py", line 28, in <module>
    class BaseElement(IElement):
  File "/usr/local/lib/python3.8/dist-packages/markyp/elements.py", line 72, in BaseElement
    def get_element_children(self) -> Optional[Sequence[ElementType | None]]:
TypeError: unsupported operand type(s) for |: '_GenericAlias' and 'NoneType'

I tried to replicate this error on my local Linux machine (since this action was ran under Linux) and I was able to confirm that this error is occurring because of an updated package dependency that markyp_bootstrap4 pulls in. That dependency is:
markyp-0.2307.0

If we were to go to an older version of that dependency, say, markyp-0.2306.1, the script will once again work as intended.
Proposed Solution
If we changed the requirements.txt in this repository to have a pinned package for all of the dependencies markyp-bootstrap4 uses, this will solve this issue. So instead of just having markyp-bootstrap4 in the requirements.txt, something like this will do the trick:
markyp==0.2306.1
markyp-bootstrap4==0.2210.1
markyp-html==0.2306.2

Hey! Thanks very much for reporting this issue.
I couldn't reproduce your issue. Do you have repro steps or a workflow file I can look at?
I added your suggestion anyways, plus pinned the python version, in this PR: #2
Let me know if that helps!

Hello @rjtngit ! Thanks for replying to my issue as well as adding said suggestion to your open PR!
The workflow I use is in a private repository, but I can share some of the details of it here. Essentially, we run a unit test suite in a separate job and using the outputs of that job, we funnel it into a second job. I have confirmed that we do get valid inputs from our first job.

Python Version: 3.10.6
OS Version: ubuntu-20.04 LTS

Below is a pruned copy of said workflow file that contains the relevant information:
name: Run Unity Unit Tests

on:
  pull_request: # new changes to PRs to master when changes are made to the assets folder
    types:
      - synchronize
      - opened
      - reopened
    branches:
      - master
    paths:
      - 'Assets/**'

jobs:

result_parser:
    name: Generate Unit Test Report
    needs: unit_tester
    runs-on: ubuntu-20.04
    steps:
      - name: Download Temp Artifact
        id: download
        uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # Pinned to v3.0.1
        with:
          name: ${{ needs.unit_tester.outputs.temp_artifact_name }}
          path: ${{ github.workspace }}
      - name: Create PlayMode HTML Results
        uses: rempelj/nunit-html-action@2d0208d2a33a892c5cfe770925cae8ecee96084d # Pinned to v1.0.1
        with:
          inputXMLPath: ${{ steps.download.outputs.download-path }}/playmode-results.xml
          outputHtmlPath: ${{ steps.download.outputs.download-path }}/playmode-results.html
      - name: Create EditMode HTML Results
        uses: rempelj/nunit-html-action@2d0208d2a33a892c5cfe770925cae8ecee96084d # Pinned to v1.0.1
        with:
          inputXMLPath: ${{ steps.download.outputs.download-path }}/editmode-results.xml
          outputHtmlPath: ${{ steps.download.outputs.download-path }}/editmode-results.html
      - name: Delete Temp Artifact
        if: always()
        uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af # Pinned to v2
        with:
          name: ${{ needs.unit_tester.outputs.temp_artifact_name }}
      - name: Upload Final Artifact
        if: always()
        uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # Pinned to tag v3.1.1
        with:
          name: ${{ needs.unit_tester.outputs.final_artifact_name }}
          path: ${{ steps.download.outputs.download-path }}
          retention-days: 14

As for reproducing it on my local end, this is what I did:

Python Version: 3.8.10
OS Version: Ubuntu 20.04.3 LTS

Created a new python venv using python -m venv NUnut and sourced it
Copied the script down to my local machine
Grabbed some NUnit unit test results
Installed pre-reqs using requirements.txt that was in repository to my virtual environment (going to call it requirements_old.txt)
Ran script using the NUnit test files

Below is a step by step of the above steps
$ python -m venv NUnit

$ source ./NUnit/bin/activate

$ python -m pip list
Package       Version
------------- -------
pip           20.0.2
pkg-resources 0.0.0
setuptools    44.0.0

$ cat requirements_old.txt
markyp-bootstrap4

$ python -m pip install -r requirements_old.txt
Collecting markyp-bootstrap4
  Using cached markyp_bootstrap4-0.2210.1-py3-none-any.whl (39 kB)
Collecting markyp>=0.1910
  Using cached markyp-0.2307.0-py3-none-any.whl (11 kB)
Collecting markyp-html>=0.1910
  Using cached markyp_html-0.2306.2-py3-none-any.whl (12 kB)
Installing collected packages: markyp, markyp-html, markyp-bootstrap4
Successfully installed markyp-0.2307.0 markyp-bootstrap4-0.2210.1 markyp-html-0.2306.2

$ python -m pip freeze
markyp==0.2307.0
markyp-bootstrap4==0.2210.1
markyp-html==0.2306.2

$ python ./convert_nunit_xml_html.py editmode-results.xml
Traceback (most recent call last):
  File "./convert_nunit_xml_html.py", line 5, in <module>
    from markyp_bootstrap4.alerts import alert
  File "/home/mattyshiro14/.python_venvs/NUnit/lib/python3.8/site-packages/markyp_bootstrap4/__init__.py", line 7, in <module>
    from markyp_html import link, script
  File "/home/mattyshiro14/.python_venvs/NUnit/lib/python3.8/site-packages/markyp_html/__init__.py", line 8, in <module>
    from markyp.elements import Element, ElementSequence, StandaloneElement, StringElement
  File "/home/mattyshiro14/.python_venvs/NUnit/lib/python3.8/site-packages/markyp/elements.py", line 28, in <module>
    class BaseElement(IElement):
  File "/home/mattyshiro14/.python_venvs/NUnit/lib/python3.8/site-packages/markyp/elements.py", line 72, in BaseElement
    def get_element_children(self) -> Optional[Sequence[ElementType | None]]:
TypeError: unsupported operand type(s) for |: '_GenericAlias' and 'NoneType'

Thanks. I'll look into it.
In the meantime, could you check if the fix-deps branch works in your github action?
rjtngit/nunit-html-action@fix-deps
Side note, in this branch you might need to change the permissions of the output folder:
  - name: Make output directory writable
    shell: bash
    run: sudo chmod a+w ${{ steps.download.outputs.download-path }}

No worries! I just went ahead and tried out that new branch you linked, rjtngit/nunit-html-action@fix-deps and that resolved the dependency issue.

Released in v1.0.2


Can't install ... lots of deprecation warnings and Railtie won't initiate.

rake spree_store_credits:install
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "admin/configurations/index",
:name => "converted_admin_configurations_menu_862806931",
:insert_after => "[data-hook='admin_configurations_menu'], #admin_configurations_menu[data-hook]",
:text => "<%= configurations_menu_item(I18n.t('store_credits'), admin_store_credits_url, I18n.t('manage_store_credits')) %>",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_admin_configurations_menu_862806931' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "admin/users/index",
:name => "converted_admin_users_index_row_actions_600144620",
:insert_after => "[data-hook='admin_users_index_row_actions'], #admin_users_index_row_actions[data-hook]",
:text => "
<%= link_to_with_icon('add', t('add_store_credit'), new_admin_user_store_credit_url(user)) %>
",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_admin_users_index_row_actions_600144620' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "checkout/_payment",
:name => "converted_checkout_payment_step_254851375",
:insert_after => "[data-hook='checkout_payment_step'], #checkout_payment_step[data-hook]",
:partial => "checkout/store_credits",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_checkout_payment_step_254851375' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "users/show",
:name => "converted_account_my_orders_997232899",
:insert_after => "[data-hook='account_my_orders'], #account_my_orders[data-hook]",
:partial => "users/store_credits",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_account_my_orders_997232899' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "shared/_order_details",
:name => "converted_order_details_adjustments_288741310",
:insert_after => "[data-hook='order_details_adjustments'], #order_details_adjustments[data-hook]",
:text => "
<% if @order.store_credits.present? &&<EMAIL_ADDRESS>%>

<%= check_box :order, :remove_store_credits %> <%= label :order, :remove_store_credits %>

<% end %>
",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_order_details_adjustments_288741310' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "admin/configurations/index",
:name => "converted_admin_configurations_menu_703427707",
:insert_after => "[data-hook='admin_configurations_menu'], #admin_configurations_menu[data-hook]",
:text => "<%= configurations_menu_item(I18n.t('captcha.captcha_settings'), admin_captcha_settings_path, I18n.t('captcha.manage_keys')) %>",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_admin_configurations_menu_703427707' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "products/show",
:name => "converted_product_description_785196905",
:insert_after => "[data-hook='product_description'], #product_description[data-hook]",
:text => "

<%= link_to(t('email_to_friend.send_to_friend'), email_to_friend_url('product', @product)) %>
",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_product_description_785196905' is being declared too early.
[DEPRECATION] insert_after hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "admin/configurations/index",
:name => "converted_admin_configurations_menu_785495051",
:insert_after => "[data-hook='admin_configurations_menu'], #admin_configurations_menu[data-hook]",
:text => "<%= configurations_menu_item(I18n.t('affiliate_settings'), admin_affiliate_settings_path, I18n.t('manage_affiliate_settings')) %>",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_admin_configurations_menu_785495051' is being declared too early.
[DEPRECATION] insert_before hook method is deprecated, replace hook call with:
Deface::Override.new(:virtual_path => "users/show",
:name => "converted_account_my_orders_705209304",
:insert_before => "[data-hook='account_my_orders'], #account_my_orders[data-hook]",
:partial => "users/affiliate",
:disabled => false)
[WARNING] Deface railtie has not initialized yet, override 'converted_account_my_orders_705209304' is being declared too early.
rake aborted!
Don't know how to build task 'spree_store_credits:install'

I'm having the same problem. How did you fix it?

I used these in my gemfile instead
gem 'spree_store_credits',  :git => 'git://github.com/spree/spree_store_credits.git'
gem 'spree_email_to_friend', :git => 'git://github.com/spree/spree_email_to_friend.git', :ref => 'aa68252f46eebe63243ea417b69f1bc1cb149d10'
gem 'spree_affiliate'
and I installed each of the preceding gems on their own before installing spree_affiliate.


[CT-3044] Add documentation of meta as supported attribute of Metric nodes

We should update the meta documentation page to note that meta is also a supported field of Metrics

Closing in favor of https://github.com/dbt-labs/docs.getdbt.com/issues/3957


Evil Mode Support

Check for existing issues

[X] Completed

Is your feature request related to a problem?
Having support of Vim key binding is great! But why just stop at Vim? Current Zed lacks the support of leader key as the main activation of commands. cmd+shift+p is great, but a single space key is much faster.
Describe the solution you'd like
I would love to see Zed build flexibility around key-mapping so it can support Evil mode (Vim + Emacs) in the future, such that communities can build pre-config key biddings. There are two main advantage:

Having space as leader are more productive (may be a bit more opinionated). All the modern Vim & Emacs derivatives support leader key. For example, Neovim, Helix, Doom, Spacemacs all use space a leader key.
Get the best of the both world. I can enjoy snipe/move to any text to an existing buffer while enjoying the superior key bidding of Vim.

If applicable, add mockups / screenshots to help present your vision of the feature
No response

This is planned. In particular there is discussion of how to unify keybindings in a discoverable way. One proposal is to gate Zed specific bindings behind the space bar in normal mode similar to a leader key.
Your thinking is very similar to mine. Stay tuned.

That would be really amazing! Looking forward for that one 🙏 .
Just a suggestion, if possible: Would be great if we can navigate between editor splits using only our keyboard (even the UI elements from Zed, like file-tree). Like I do on neovim: CTRL-l goes to the right [split,window,tmux-panel], CTRL-h goes to the left [split,window,tmux-panel] and so on.

Please consider helix key bindings.

This is planned. In particular there is discussion of how to unify keybindings in a discoverable way. One proposal is to gate Zed specific bindings behind the space bar in normal mode similar to a leader key.
Your thinking is very similar to mine. Stay tuned.

Any updates on this? Loving Zed, having Evil support would let me fully move from VSCode :)

This is possible now! Following tips from https://github.com/zed-industries/community/issues/176 I added this to my keymap.json and now I can save file with space f s 🙌🏻
{
  "context": "Editor && vim_mode == normal && (vim_operator == none || vim_operator == n) && !VimWaiting",
  "bindings": {
    "space f s": "workspace::Save"
  }
}

I'm a little unsure what this bug is actually requesting, so sorry if I'm mis-understanding! In vim_mode, you still have access to all of zed's non-conflicting editor shortcuts (which is most of them because they were designed for non-modal editing), and as @idmyn points out, you can define your own keybindings for any zed actions.
I have also recently begun to merge zed's keybindings into vim mode's (for example g n lets you get at multiple cursors; which is not strictly how vim works, but much more useful). There is documentation here: https://docs.zed.dev/general/vim

@yury Helix bindings would be really fun. Tracked here: https://github.com/zed-industries/community/issues/1777
@lucastrvsn  key bindings for navigating between panes now exist (ctrl-w {h,j,k,l} in vim, cmd-k cmd-{left, up,down,right} in default zed). You can bind your own keyboard shortcuts to them too (see https://zed.dev/ref/default.json and search for ActivatePaneInDirection for how to do this).

Going to close this now, but please let me know (either here, or with other bug reports) if there are things that this bug was meant to encompass that I didn't understand.


Multiline rows have wrong colors

Rows that are multiline have the second line white instead of the correct color.

Looks like the bug is in github.com/olekukonko/tablewriter. Could be this or related issue: https://github.com/olekukonko/tablewriter/issues/90


STPOPUP SEMANTIC ISSUE

It was working fine initially.
But, when I copied my project and tried running it after pasting it in a different folder.
I got this error. Please help. URGENT
PLEASE !!

@yogesh2209 there is no delegate in STPopupController since the first version. I guess you were using a forked version of STPopup that provides delegate?


Ecosystems validation suggestions

General description of the feature

For Samsung Hub, Smart Things WIFI/HUB (Aeotec) is not equipped with Thread Radio. Suggest to use Samsung SmartThings Station for evaluation usage.
The Amazon Echo Dot is not equipped with Thread Radio. Suggest to use Amazon Echo(4th gen) for evaluation usage.

Proposed solution
No response
Alternatives
No response
Related bug
No response
SMG version
release_2.2.0-1.2
Protocol(s)
Thread
Hardware platform(s)
MG21, MG24

@hslin224
Check Silicon Labs Matter GitHub v2.3.0-1.3-beta.1 release.
Samsung Hub has been added

Hardware: Smart Things Station
Thread: Software: <IP_ADDRESS>
Wi-Fi: Software: 2.3.29-7

@lboue
Great! Do you know if there're documents for test scenarios?

@lboue Great! Do you know if there're documents for test scenarios?

You should ask SiliconLabs for that.

Good catch. I checked with the team and the hub details used for Thread testing were missed in the release notes. This has been addressed in the latest release as mentioned by @lboue : https://github.com/SiliconLabs/matter/releases/tag/v2.3.0-1.3-beta.1
Test scenarios were also shared with @hslin224 separately.
Closing the issue, please reopen if needed, thanks.


[SPARK-40796][CONNECT][BUILD] Check the generated python protos in GitHub Actions

What changes were proposed in this pull request?
Check the generated python protos in GitHub Actions
Why are the changes needed?
1, generate_protos.sh:

add an optional argument to specify the output path;
update sed -i '' commands to make it works on both MacOS and Linux;

2, dev/check-codegen-python.py:

can run it locally to check whether the generated files are out of sync;
add it to CI to detect inconsistent protos;

3, python lint

after install mypy-protobuf, need to fix lint in python/pyspark/sql/connect/plan.py

Does this PR introduce any user-facing change?
No
How was this patch tested?
manually tests and CI

I manually modify expressions_pb2.py and then this check failed https://github.com/zhengruifeng/spark/actions/runs/3249624241/jobs/5332272955

installing mypy-protobuf doesn't change the versions of mypy,mypy-extensions,pytest-mypy-plugins, but it changes the behaviors:
(spark_test) ➜  spark git:(master) ✗ pip list | grep -i mypy
mypy                          0.920
mypy-extensions               0.4.3
pytest-mypy-plugins           1.9.3
(spark_test) ➜  spark git:(master) ✗ ./dev/lint-python
starting python compilation test...
python compilation succeeded.

starting black test...
black checks passed.

starting flake8 test...
flake8 checks passed.

starting mypy annotations test...
annotations failed mypy checks:
python/pyspark/pandas/frame.py:6371: error: unused "type: ignore" comment
python/pyspark/pandas/frame.py:6428: error: unused "type: ignore" comment
python/pyspark/pandas/frame.py:6430: error: unused "type: ignore" comment
python/pyspark/pandas/resample.py:104: error: unused "type: ignore" comment
python/pyspark/pandas/resample.py:137: error: unused "type: ignore" comment
Found 5 errors in 2 files (checked 366 source files)
1

(spark_test) ➜  spark git:(master) ✗ pip install mypy-protobuf
Collecting mypy-protobuf
  Using cached mypy_protobuf-3.3.0-py3-none-any.whl (16 kB)
Collecting types-protobuf>=3.19.12
  Using cached types_protobuf-3.20.4-py3-none-any.whl (60 kB)
Requirement already satisfied: protobuf>=3.19.4 in /Users/ruifeng.zheng/.dev/miniconda3/envs/spark_test/lib/python3.10/site-packages (from mypy-protobuf) (4.21.6)
Installing collected packages: types-protobuf, mypy-protobuf
Successfully installed mypy-protobuf-3.3.0 types-protobuf-3.20.4
(spark_test) ➜  spark git:(master) ✗ ./dev/lint-python
starting python compilation test...
python compilation succeeded.

starting black test...
black checks passed.

starting flake8 test...
flake8 checks passed.

starting mypy annotations test...
annotations failed mypy checks:
python/pyspark/pandas/frame.py:6371: error: unused "type: ignore" comment
python/pyspark/pandas/frame.py:6428: error: unused "type: ignore" comment
python/pyspark/pandas/frame.py:6430: error: unused "type: ignore" comment
python/pyspark/pandas/resample.py:104: error: unused "type: ignore" comment
python/pyspark/pandas/resample.py:137: error: unused "type: ignore" comment
python/pyspark/sql/connect/plan.py:325: error: "AggregateFunction" has no attribute "function"  [attr-defined]
python/pyspark/sql/connect/plan.py:327: error: "AggregateFunction" has no attribute "function"  [attr-defined]
python/pyspark/sql/connect/plan.py:329: error: "AggregateFunction" has no attribute "function"  [attr-defined]
python/pyspark/sql/connect/plan.py:338: error: "Aggregate" has no attribute "measures"  [attr-defined]
python/pyspark/sql/connect/plan.py:342: error: "Type[Aggregate]" has no attribute "GroupingSet"  [attr-defined]
python/pyspark/sql/connect/plan.py:344: error: "Aggregate" has no attribute "grouping_sets"  [attr-defined]
python/pyspark/sql/connect/plan.py:385: error: "Join" has no attribute "on"  [attr-defined]
Found 12 errors in 3 files (checked 366 source files)
1
(spark_test) ➜  spark git:(master) pip list | grep -i mypy
mypy                          0.920
mypy-extensions               0.4.3
mypy-protobuf                 3.3.0
pytest-mypy-plugins           1.9.3

protos in existing master are out of sync, and are successfully detected by this PR:
Start checking the generated codes in pyspark-connect.
RUN: /__w/spark/spark/connector/connect/dev/generate_protos.sh /tmp/tmpme0gkjlx
Different files: ['commands_pb2.py', 'commands_pb2.pyi']
Generated files for pyspark-connect are out of sync! Please run ./connector/connect/dev/generate_protos.sh
Error: Process completed with exit code 255.

So I think it's ready

cc @HyukjinKwon @amaliujia @grundprinzip  please take another look

Let me merge it first to make sure connect protos are in sync

merged into master


Vnodes is not working on Safari

Hello,
Vnodes is not working on Safari Mac or Mobile:

Can you fix it ?
Regards

Thank you for reporting, unfortunately I don't have the mac hardware to fix the problem for now so it may take a while to solve.

It looks like something with your demo...

With Chrome

With Safari on MacOS Bigsur
As you can see only some problem with edges alignmemts.
In all case, If you want, I can give you access to a remote MacOS hardware  to fix  any issue on these platform.
Contact me in private and I send you details.
on iOS is not working.   Edges are not connected to ports/nodes  and gestures  are not supported (for zoom for example).
Not sure that touch event works. To handle drag and drop  it will be necesary to handle tap, long tap and something more.

Regards

It works now with Safari !  It was port styles and markup issues...
Now we need to get it working on iOS Safari but for this I'll some help from your side.

I've test it on Android and displaying is ok but touch events are not working such zoom or drag

I can try and fix android, iOS I don't have the tools, how did you fix the port styles / markup issues? maybe a PR for that, cheers

About style, I believe tat was just mistake from my side as port shape must me square / circle.
It looks that with your demo, Safari doesn't render well various diagram on the same page.
About iOS/Mac  I can send you access to remote MacOs with all tools to fix. Including iOS simulator. So you can link Safari with simulator to get debug info you needs.

Okay, I am not sure when I'll be available but feel free to ping me -<EMAIL_ADDRESS>I'll be fixing the android touch events meanwhile.

okay, just fixed drag on mobile, also enabled controls for zoom on mobile devices as a workaround since pinch zoom can be tricky to add

Closing this as PR has been merged


Update to fix responsive chart size in IE11 when parent container has…

… padding as percentage
When the chart is responsive to the parent container, the calculations for padding assumes that the figure is in pixels so that 20% is taken to be 20 (pixels), which results in the chart exceeding the parent container.
Issue may be seen in IE11 here:
https://jsfiddle.net/digits/e8g4ux20/

Codeclimate seems to lie :) Click on 'Details' and all appears fine

Does this issue happen only on IE11? It doesn't look to be specific to the browser used to me, so I think a better name for the commit message and PR title would not include "IE11" in the text

Strangely it does seem to only happen in IE11. Was fine in Firefox as uses computed value and think it was fine in Chrome and Edge.

Perhaps you could add a helper function to cut down on code duplication:
function calculatePadding(padding, parentDimension) {
	if (padding.indexOf('%') > -1) {
		return parentDimension / parseInt(padding, 10);
	} else {
		return parseInt(padding, 10);
	}
}

@andi-b do you plan on updating this PR?

@benmccann Sorry, just need to find some time to figure out how to add a test case as this is new to me. I'll hopefully find some time this week.

codeclimate complaining about an existing function - should this be ignored?

The code climate stuff about an existing function can be ignored.

I think the calculation of padding in % is wrong, it just divides the size by the padding in percent.
Instead line 502 in src/core/core.helpers.js should read:
return padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10);
I have a padding of 2% of the surrounding div, IE (Edge) returns just that value and the old code would return half the width as padding, thus the canvas would have 0 width.

And in the test you use 10% as padding. In this case, and only this case, the old code would return a correct result. Maybe use something like 5% as the test case.

@chtheis you are right, I'm surprised that nobody noticed that error in this PR.


Use pytest-backend-plugin to test against SaaS and on-prem

In https://github.com/exasol/ai-lab/actions/runs/10525178182/job/29163449570 we had the following error
E           ------------------
E           from exasol.nb_connector import github, bfs_utils, cloud_storage
E           from exasol.nb_connector.connections import open_bucketfs_connection, open_pyexasol_connection
E
E           jar_local_path = github.retrieve_jar(github.Project.CLOUD_STORAGE_EXTENSION, use_local_cache=True)
E           bfs_bucket = open_bucketfs_connection(ai_lab_config)
E           bfs_path = bfs_utils.put_file(bfs_bucket, jar_local_path)
E
E           with open_pyexasol_connection(ai_lab_config) as conn:
E               cloud_storage.setup_scripts(conn, ai_lab_config.db_schema, bfs_path)
E
E           print("Could Storage Extension was initialized")
E           ------------------
E
E
E           ---------------------------------------------------------------------------
E           TypeError                                 Traceback (most recent call last)
E           Cell In[2], line 6
E                 4 jar_local_path = github.retrieve_jar(github.Project.CLOUD_STORAGE_EXTENSION, use_local_cache=True)
E                 5 bfs_bucket = open_bucketfs_connection(ai_lab_config)
E           ----> 6 bfs_path = bfs_utils.put_file(bfs_bucket, jar_local_path)
E                 8 with open_pyexasol_connection(ai_lab_config) as conn:
E                 9     cloud_storage.setup_scripts(conn, ai_lab_config.db_schema, bfs_path)
E
E           File ~/jupyterenv/lib/python3.10/site-packages/exasol/nb_connector/bfs_utils.py:24, in put_file(bucket, file_path, skip_if_exists)
E                22     raise ValueError(f"Local file doesn't exist: {file_path}")
E                23 local_name = file_path.name
E           ---> 24 if skip_if_exists and local_name in list(bucket):
E                25     _logger.info("File %s is already present in the bucketfs", local_name)
E                26 else:
E
E           TypeError: 'SaaSBucket' object is not iterable

job-logs.txt
This reason that we recognized the error that late was first, that test was disabled in the ai-lab, but also because we don't test here against saas.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."


Defining remote throws an error: Remote does not exist

Hey guys, I'm getting a "Unhandled rejection Error: Remote does not exist (git://git@github.com:reybango/jingotest.git)" message. That's the valid remote declaration from Github and it's set properly since I can push manually from my machine.
In config.yaml I defined remote as:
remote: 'git://git@github.com:reybango/jingotest.git'
and I've tried the following variations too:
remote: 'git@github.com:reybango/jingotest.git'
remote: 'https://github.com/reybango/jingotest.git'
It's probably something very simple but the docs didn't quite define how to do it. If you can give me some guidance I'd be happy to do a pull request to update the docs with it once I get this fixed.

Hi,
the remote configuration directive is the name of the remote that you have defined to your local repository with a git remote add remotename remoteaddress. Jingo cannot create a remote for you.
So, to be able to use a remote with Jingo, just add a local remote and use that name in the remote key of the config.
Hope this help!

Hey @claudioc, thanks for the reply. I understand that Jingo won't do that. When I created my Github repo (https://github.com/reybango/jingotest), I added the remote to my local machine and that's working. That was done using Github's:
'git remote add origin https://github.com/reybango/jingotest.git'
Hence why when I do a 'git push' manually, my Github repo is updated.
It's just not working via Jingo when I define the remote in the 'remote' property in config.yaml.

As I said, try using:
remote: origin

It should work then.

Yep that did it. Thanks! PR coming shortly.

Oh, it's the remote name not the URL! Perhaps that could be clearer in the documentation somehow?
I thought there was a problem with BitBucket and set up GitPrep then Gogs trying to find something that worked.

Well, the documentation actually states This is the name of the remote you want to push/pull to/from (optional). Whenever a remote is mentioned, it is mentioned that this is the name of the remote, not the URL :)


[mutable-arrays] allow state effects in jit by building in run_state

with help from @sharadmv, @yashk2810, @dougalm, and others
The basic strategy is to apply discharge_state when lowering a jaxpr with state effects to HLO, and update the dispatch path accordingly. Specifically:

in tests only for now, introduce a MutableArray data type;
teach jit to abstract it to a Ref(ShapedArray) type, register an input handler, etc;
call discharge_state in lower_sharding_computation to lower a jaxpr with refs to a jaxpr (and then to an HLO) with extra outputs, and set up aliasing;
teach the output side of the dispatch path to drop those outputs.

As an alternative to (3), we could potentially lower away the effects at a higher level, like in _pjit_lower_cached. They are similar because _pjit_lower_cached is the only (non-xmap) caller of lower_sharding_computation. I decided to do it in lower_sharding_computation mainly because that's closer to where we set up aliases, and I wanted to make mutable arrays correspond to aliased inputs/outputs on the XLA computation.

lower away the effects at a higher level, like in _pjit_lower_cached

Yes, once xmap goes away, I plan to clean this up and lift it to pjit. Right now, DCE and now this discharge happens in lower_sharding_computation. So it's good to keep all of this in 1 place and cleanup later.


Support query on VObj satisfying condition for time period

Why this change?
Provide a convenient wrapper vqpy.utils.continuing around predicates to express queries about VObjs continuously satisfying the predicate.
What does this PR include?

implementation of vqpy.utils.continuing
addition of field __static_ to VObj for storing properties not related to time
an example detecting people loitering utilizing vqpy.utils.continuing. The query filters Person objects inside the user-specified region for more than 10 seconds

User API changes
This PR supports using vqpy.utils.continuing in queries to filter objects that has property continuously satisfying some condition for some duration.
class MyQuery(vqpy.Query):
    @staticmethod
    def setting() -> vqpy.VObjConstraint:
        filter_cons = {
            "prop": vqpy.lasting(condition=func, duration=30, name="condition_name"),
        }
        select_cons = {
            "condition_name_periods": None
        }
        ...

Time periods of condition being met will be stored in VObj as a property with name of f"{name}_periods", in format of a list of tuples (start, end), where start and end are time relative to the start of video, in seconds. This property can be accessed with getv, be used in select_cons, etc.
New dependencies included
None

Please also add the query output in PR comments or descriptions

Please also add the query output in PR comments or descriptions

Query output (or property added by vqpy.utils.continuing) are documented in the docstring and also added to PR description.


Example to remove a single part of the URL path?

These instructions are a little confusing, and I cannot get my URL rewrite to do what I am requesting. I am hoping you might be able to add a simple example to remove a single part of the path as in the example below:
Initial request to my AFD custom domain:
https://www.mydomainnamehere.com/sky/a/b/whatever.html
is configured in AFD to route to my app service here:
https://myappservicenamehere.azurewebsites.net
The AFD routing is just looking for: "/sky/*"
it appears that the end result is this URL is hit:
https://myappservicenamehere.azurewebsites.net/sky/a/b/whatever.html
I need to set up a rule to remove the "/sky/" part of the URL when forwarding to my app service such that it goes to:
https://myappservicenamehere.azurewebsites.net/a/b/whatever.html
I would prefer if possible to set up a rule that always strips the first item in the path if possible using a regex. But, I could not do that, so I went with the far simpler rule:
Condition: Contains
Value: /sky/
Case transform: To lowercase
Action: URL Rewrite
Source Pattern: /sky/
Destination: /
Preserve unmatched Path: Yes
I expected this to remove the "/sky/" part of the URL path, and replace with "/", but it does nmot appear to work that way. Can you clarify this in the documentation?
This was what I really wanted to do, as it should be reusable across all of our applications:
Condition: Any
Action: URL Rewrite
Source Pattern: [^/]+/
Destination: /
Preserve unmatched Path: Yes
But it appears Regex is only available on the condition, not on the action

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

ID: 6b393c2f-c603-6287-743f-9c169673ce41
Version Independent ID: 475325a1-e953-2723-b626-80ea86a4d347
Content: Azure Front Door - URL Rewrite
Content Source: articles/frontdoor/front-door-url-rewrite.md
Service: frontdoor
GitHub Login: @duongau
Microsoft Alias: duau

@mikesierra2 We are checking this and will get back to you

@mikesierra2 Try changing your Source Pattern Match to "/sky/*"

@mikesierra2
Since we have not heard back from you 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.


Adding a loading indicator to the edit modal

What happened?
I'm trying to add a loading indicator to the edit modal submit button but running into issues. Wondering if you know how to fix this?
I added a wire:target attribute to the edit modal submit button but as you can see in the screenshot below, it's not aligned to the cancel button for some reason when the indicator is shown. Is this an issue with the view or am I adding the indicator wrong?
<x-filament::button type="submit" wire:target="editModalFormSubmitted">
    {{ $this->getEditModalSaveButtonLabel() }}
</x-filament::button>

How to reproduce the bug
Add wire:target to submit button on edit modal view.
Package Version
2.8
PHP Version
8.2
Laravel Version
11.21
Which operating systems does with happen with?
macOS
Which browsers does with happen with?
Chrome
Notes
No response

I can confirm this issue is there. I will hopefully fix this for v3.
Meanwhile you can wrap the two buttons in a div like this:
<div class="flex items-end gap-2">
...
</div>


Update profile pictures shown for members

Ideally, this should be done daily by a cron job or something similar.

@konstin or simply run the script while adding the user to the list ;)

I ran the script and it imported one avatar: 063dbfa
I would go for a manual thing, because the cron job also needs to be checked if it still works and needs also some maintenance.


[cdc-connector][sqlserver] sqlserver support use specific chunk column as a split key

Prepare a Pull Request

Fixes #2971

Motivation
sqlserver support use specific chunk column as a split key
Modifications

Modify SqlServerUtils#getSplitColumn by adding a chunkKeyColumn param
Add doc about chunk column
Add ITcase UT about using chunk coulmn

@leonardBang @GOODBOY008 PTAL

@lvyanquan Hello, please help me to address UT fail about ValuesDataSourceITCase#testMultiSplitsSingleTable.

@lvyanquan PTAL


Ranks

Hi, i would like to know if theres a way i can give more playtime a specific player?
for example:
Player1 has 8 hours of playtime but everyone else has 4 hours

As of right now, there's no way of doing that, but it can be implemented. Maybe in some near-future release.

that would be really helpful, thank you so much


ParseError { code: 141, message: {} }

So far there is no clues what went wrong inside cloudbode... :(
Can we have better error message?

In your code, do you pass anything to request.error() ?

My bad, I was using response.error(error).
Now I changed to response.error(error.message) and it works.


[Bug]:

What version of React Router are you using?
5.0.2 ("latest")
Steps to Reproduce
Create a brand new app:
npx create-react-app react-demo
Add a simple navigation and routes:
import "./App.css";

import { Link, Route, BrowserRouter as Router, Switch } from "react-router-dom";

import AboutPage from "./AboutPage";
import HomePage from "./HomePage";
import logo from "./logo.svg";

function App() {
  return (

        <Router>

                <Link to="/">Home</Link>

                <Link to="/about">About</Link>

          <Switch>
            <Route path="/about">
              <AboutPage />
            </Route>
            <Route path="/">
              <HomePage />
            </Route>
          </Switch>
        </Router>

  );
}

export default App;

On local server, everything works (npm start)
Deploy the app (I did on Ubuntu and IIS to compare)
Browse the app
Switch between Home and About (works)
When you are on the About page (/about) click the reload button in the browser
It throws a 404 error (by IIS or apache/nginx)

Expected Behavior
React should just reload the sub-routes when you click on the menu AND when you type the url directly.
Actual Behavior
Reloading a page in a sub-route like /whatever throws a 404.
Example: https://portal.levitica.ca/

You need to configure your server to serve the app's index.html for all possible URLs. I go into it a bit in the Serving Single-Page Applications from Configurable Static Servers section in this blog post.


Move to depending on the vcpkg of lua

This removes the checked in copy of lua and moves to the vcpkg version instead. Since this doesn't have native cmake support, resolving the header and library files is a little bit different.

Would be good if someone could validate this on Ubuntu as well.

Rebased to resolve merge conflicts now that https://github.com/novelrt/NovelRT/pull/27 was merged.
First commit removes the checked in lua files (./cmake and ./lib folders, as well as the corresponding .gitattribute entries).
Second commit fixes up the ./CMakeLists.txt to reference the vcpkg lua files and to fix up ./src/main.cpp to use the proper #include declarations.


Document CS8892 warning

Don't merge before https://github.com/dotnet/roslyn/pull/46832 gets merged first. (It's merged now 🎉 )

@BillWagner, Roslyn's PR got merged. This is ready for review.


Persist state between mop3 restarts

Restarting mop3 results in the pop3 client (e.g., thunderbird) seeing & downloading the "last n timeline messages" again.  Ideally, mop3 would remember which messages were already fetched (& deleted) to avoid the re-downloads and subsequent duplicates.

Currently mop3 does not keep state, so there's no place to store the last message received, and I don't want to drop random files in the system. Mac mail detects messages with IDs that it has already seen and does not redownload them, maybe moving the messages to some kind of archive would have the same affect?

Different email clients do different things.  Some dedup in name of saving the user from duplicates, some prefer to show the user exactly what's in the mailbox.  Neither is wrong.
Another result of not having state is that a client may not see all messages if too many arrived between restarts (or possibly even between fetches - if I understood the code right).  Ultimately, I don't know what your goal is for the project, but saving some state wouldn't be too difficult (and I bet people wouldn't object to it).


Update protobuf-java to 3.15.6

Updates com.google.protobuf:protobuf-java from 3.13.0 to 3.15.6.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.protobuf", artifactId = "protobuf-java" } ]

labels: library-update, semver-minor

Superseded by #409.


#38 SSL pinning draft implemetation

Let's review the general approach and discuss the details after.

Thank you. I'll start reading your code.
BTW, however, if the license of your source files is GPL, nv-websocket-client cannot accept them.

Well, I see the issue. What about I will rewrite the files in order not to be limited with GPL?

Code is copied from https://github.com/moxie0/AndroidPinning - it can't just be "rewritten".

I know that, but nobody can restrict me from creating my own code using ideas from that library?

I'm sorry for having not responded so long because I'm recently really busy...
I think that RFC 7469 (Public Key Pinning Extension for HTTP) should be read to judge whether an implementation is a natural result from the specification or a copy from another implementation. I should read the specification...

Any update here? We're using this (very elegant!) websockets library and need cert pinning

@matt-thinair Sorry, no update. Thank you for reminding me of this.

In the wild, "certificate pinning" generally refers simply to "verifying that server's certificate and/or public key signature match a fixed set of certs or public key signatures encoded into the application."
Neither the code in this PR nor most client developers implement RFC 7469 - that's a separate specification which documents a mechanism for HTTP servers to specify that a client should "remember" Subject Public Key Info via HTTP header.
@matt-thinair You can implement the typical case of "cert pinning" using the existing implementation of the library, without needing additional modifications to the library code. Use setSSLContext on the Factory to pass in a Context you've set up using your own custom TrustManager , using the method documented in https://developer.android.com/training/articles/security-ssl.html#UnknownCa to add only your own certificates to the TrustManager.


Unable to get PyPy3 to install

Description
Pypy versions appear to be missing from the setup-python action but are but show as cached tools. This is causing jobs using pypy to fail,
Area for Triage:
contains: 'Python'
addLabels: ['Area: Python']
Question, Bug, or Feature?:

Virtual environments affected

[X] macOS 10.15
[X] Ubuntu 16.04 LTS
[X] Ubuntu 18.04 LTS
[X] Ubuntu 20.04 LTS
[X] Windows Server 2016 R2
[X] Windows Server 2019

Expected behavior
The virtual environment is able to use pypy and pypy3 to complete python tests
Actual behavior
Get a failure reason:
Version pypy3.6.9 with arch x64 not found
The list of all available versions can be found here: https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

I checked the link and there are no pypy versions there. However, all the READMEs for the virtual-environments have pypy3 listed.
Repro steps
Action that failed: https://github.com/Cyb3r-Jak3/html5validator/actions/runs/283323536. Link the workflow config: https://github.com/Cyb3r-Jak3/html5validator/blob/pypy3_support/.github/workflows/main.yml
Steps to reproduce:

Setup up the python action to use either pypy or pypy3
Push the changes and the job will fail to run because it can not find the version.

I've been using these for a while, they worked an hour ago: https://github.com/pybind/pybind11/runs/1196848139?check_suite_focus=true
Wrong spelling, perhaps?
I'd love to see 7.3.2, though. ;)

Unlike normal Python, GHA can't install arbitrary versions of PyPy. It's hard to even write versions of pypy since there's 2 and now 3 (with 3.7 alpha) versions of Python mixed with the PyPy version.

@Cyb3r-Jak3 , yes, @henryiii is absolutely right.
You can't specify exact pypy version as task input. It is by design for now.
See related code: https://github.com/actions/setup-python/blob/main/src/find-python.ts#L176

Yup, I was able to get it to work now. My issue is that when I was starting, I was converting from Travis CI. That format is pypy for pypy2 and pypy3 for pypy3.
Thanks all for your help!


Update Node Version to remove Deprecation

@varunsh-coder please approve the changes!!

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (f131811) to head (333392f).
Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #186   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           15        15
=========================================
  Hits            15        15

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat: implement transformSources() w/ domain model

I'm submitting a...
[ ] Bug Fix
[x] Feature
[ ] Other (Refactoring, Added tests, Documentation, ...)

Checklist

[x] Commit Messages follow the Conventional Commits pattern

A feature commit message is prefixed "feat:"
A bugfix commit message is prefixed "fix:"

[ ] Tests for the changes have been added

Description
Introduces a domain model for Package and Entry Point. Serves as a foundation for a set of interesting ideas: what if... we could analyze an entry points import statements and dynamically create a minimal rollup configuration? What if... we further can detect what entry points depends on another entry point (within the same package) and we could create a build graph and automatically adjust the tsconfig?
BREAKING CHANGES:
Introduces a domain model for Package and Entry Point (as defined in Angular Package Format Specification Glossary). Albeit the refactoring was undertaken with care and integration tests were not changed, it may cause undesired behaviour.
Notes
Technically, this is not a feature but a refactoring. Marking it as "feat:" with "BREAKING CHANGES" for auto changelog reasons.
Does this PR introduce a breaking change?
[x] Yes
[ ] No

TODO:

[ ] add legacy esmBundleFile, umdBundleFile property to NgEntryPoint, straight away @deprecated
[ ] let tests turn green (to verify no regression)
[ ] open a new PR for "consistent flatModuleFileName" instead of legacy bundle names


Jdeps wrong path on Arch Linux

Unit test fails on an Arch Linux system:
java.io.UncheckedIOException: java.io.IOException: Cannot run program "/usr/lib/jvm/java-11-openjdk/../bin/jdeps": error=2, No such file or directory
The correct path on my system is:
$ which jdeps
/usr/lib/jvm/default/bin/jdeps

(This is a symlink, on Arch Linux you can easily change the Java version using a script)
Or the direct path:
$ /usr/lib/jvm/java-11-openjdk/bin/jdeps -version
11.0.4

JAVA_HOME is not set
jshell> System.getProperty("java.home");
$1 ==> "/usr/lib/jvm/java-11-openjdk"

It seems like the system property does not include the bin directory while the environment variable does.

Thanks for the detailed bug report.
Seems to be a jdk8 vs. jdk11 issue (also visible on my Windows machine).
For jdk8 java.home property is ../jdk-8/jre but for jdk11 it is ../jdk-11.
I'll create a fix for that in the next days...

Thank you very much for the fix, works as expected.


Make API call for Event info

I have the restaurants api working, I just need it merged into the project so I can carry on


_posts/0000-01-02-LeeGregory12d.md.

Add Lee Gregory's file

changed the name of the file

changed file name

change the name of the file

trying to name the file yet again


Not able to view dashboard using endpoint : https://demo.thingsboard.io

the app keeps loading like this as shown below when I tried to open the dashboard

the error on console shows , this is only some part , I cannot show all due to the error keeps adding up indefinitely

what happened ? I believe before this I'm using demo endpoint it works fine but now its not , is is related to the current thingsboard version which has been updated recently ?

I have the same problem with the new version of thingsboard. Using android 10 emulator, log in but it keeps loading and never starts the panel. Any solution?

I leave an image of what happens when the board doesn't work

We have our own host, I had already been using the app, everything was fine, but when they updated thingsboard.cloud the panels broke. At least for versions smaller than 12, it works on the android 12 emulator. SDK 33 as shown in the photo and flutter to the latest update. What catches my attention is that the app loads normally, the problem is only with the dashboards Thank you for your reply.

so you mean it works on android 12 emulator but not android 10 emulator right ? i believe we might need to wait for the developer because i have not tried to run the app on android 12 emulator and below . my issues is more on the whole dashboard are not able to render meanwhile yours seems like some of the components are not rendered however my issues was solved using the android 12 emulator and above .

Thank you for your help. If, on Android 12 it works, it should be an app compatibility issue. I'm going to see if the github of the thingsboard mobile app gives me any solution to the problem.


Fix regex for matching security agent packages

What does this PR do?

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


add Iter::map_option

Iter::map_option serves the same functionality as Array::map_option.

Pull Request Test Coverage Report for Build 3655
Details

5 of 5 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 82.761%

Totals

Change from base Build 3652:
0.02%

Covered Lines:
4263

Relevant Lines:
5151

💛  - Coveralls


Custom backend XCom S3

Custom XCOM to upload xcom values to the S3 bucket for the given name.
Adding ENV  AIRFLOW__CORE__XCOM_BACKEND: astronomer.providers.amazon.aws.xcom_backends.s3.S3XComBackend in the docker-compose.yaml or where the airflow is running will enable the custom XCOM for GCS.
closes #795

Attaching the screenshot

can you share a screenshot of data getting uploaded to s3 using this backend?

Added the screenshot


Stippling artifact when volume rendering unstructured data with OSPRay

Volume rendering unstructured grid data with OSPRay can result in a weird stippling artifact. See attached image.
To reproduce:

Load the attached session file
Load the data from /glade/p/cisl/vast/vapor/data/Source/UGRID/NOAA-geoflow/large
Enable the volume renderer

stippling.vs3.gz

If you increase the volume sampling rate scalar under the OSPRay parameters, it will fix the problem. This is something internal to OSPRay which we don't really have control over.

I experimented with that a little, but didn't really see any improvement. Can you suggest a value that ameliorates the problem?

20 gave me good results.

Interesting. Setting the Volume Sampling Rate Scalar (VSRS) to 20 significantly reduced the stippling, but didn't eliminate it. I next set the Samples Per Pixel (SPP) to 8. That produced a similar result. Finally, I combined them, setting VSRS to 20 and SPP to 8. That pretty much eliminated the stippling, but took several minutes to render. I think we can label this a question instead of a bug. I've attached the resulting images as well. Thanks, @StasJ
VSRS=20

SPP = 8

VSRS=20, SPP=8


ENH: convenient method to list datasets (flat) in fh5 file

it's a pain currently with .visit and .visititems -- would be good do have a function that just lists all datasets in a simple and flat manner.

Or at least all datasets that might be readable by h5io, i.e. they have a TITLE and the like.

@Eric89GXL we use something like this, taylored to our use case:
def h5_listdir(fname, max_depth=4):

    datasets = list()

    def _get_dataset(name, member):
        if isinstance(member, h5py.Dataset):
            name_ = '/'.join(name.split('/', max_depth)[:-1])
            if name_ not in datasets:
                datasets.append(name_)

    with h5py.File(fname, 'r') as fid:
        fid.visititems(_get_dataset)

    return datasets

Actually it's pretty general.

What if you had some kind of "describe_h5io_file" function that would parse through all the items readable by h5io, and just output a string description. E.g., if it's a list, say "list of X items". If it's a dict, say "dict, key=X, vals=list of X items" etc.
E.g., right now I pretty much always save things as dictionaries so that I can quickly get a semantic idea of what's inside an h5 file. It'd be nice to be able to just display all dictionary keys without reading in the data.

Sure, feel free to add such a function. It probably should just stay at the top level -- i.e., if the top-level item is a list, just say it's a list with N items. If it's a dict, say it has N keys and then list them. If it's an array, say the dtype and shape. etc.

Yeah!! Mind-sync. +1

On 03 Feb 2016, at 18:59, Chris Holdgraf<EMAIL_ADDRESS>wrote:
of

Hey all - I had an extra hour so threw something together for this. What about something like this:

friendly to a PR?

yes!!
On Mon, Dec 5, 2016 at 7:09 PM Chris Holdgraf<EMAIL_ADDRESS>wrote:

Hey all - I had an extra hour so threw something together for this. What
about something like this:
[image: image]
https://cloud.githubusercontent.com/assets/1839645/20896490/ddcb0f9a-bad2-11e6-930c-a6326d74c659.png
friendly to a PR?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/h5io/h5io/issues/4#issuecomment-264929821, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AB0fiiJAb3AwNM29LAo95ct8p-uzYom7ks5rFFNVgaJpZM4GG_ll
.

in it's current state I think it should work, though it only goes as deep as 1 level (e.g. you couldn't list out keys/values that are themselves inside of one of the 1st level objects). That OK? It could probably be done pretty easily in a subsequent PR if there'd be a use for it

Yes keep it simple. It's a good ad-hoc tool. There is still the entire HDF5
API if you want more.
On Mon, Dec 5, 2016 at 7:13 PM Chris Holdgraf<EMAIL_ADDRESS>wrote:

in it's current state I think it should work, though it only goes as deep
as 1 level (e.g. you couldn't list out keys/values that are themselves
inside of one of the 1st level objects). That OK? It could probably be done
pretty easily in a subsequent PR if there'd be a use for it
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/h5io/h5io/issues/4#issuecomment-264931051, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AB0fijN9Nt6c0Yv1qpkPzvbKIY4hXFMhks5rFFRZgaJpZM4GG_ll
.

We now have list_file_contents


Can I 'source' the config file while running?

With the Spyder IDE already running, how can I programmatically send a command to Spyder to re-source the config file?
Use case: I have written scripts to edit the config files based on which environment Spyder is running in, but the edits come in too late, when Spyder has already sourced the default spyder.ini file: I would like Spyder to source the config file while running.
Bonus question: how can I source a configuration file located in a directory other than the default .spyder-py3/config?
I adapted some code found in Spyder/start.py and Spyder/restart.py, but being new to this I didn't get very far. My idea was to save the environment's arguments, append '--new-instance' and send the command to Spyder. Would that work? My first problem is at str(sys.argv[1:]), which returns an empty list.
def reset_config():
    """
    Reset Spyder configuration file while an instance of spyder is running.
    """
    import os
    import sys
    import ast
    from inspect import getsourcefile
    from spyder.app.cli_options import get_options

    # store the environment
    env = os.environ.copy()

    # get the variables
    options, args = get_options()
    spyder_args = str(sys.argv[1:])  # can't find any spyder arguments  :-(

    if not spyder_args:
        error = "This script can only be called from within a Spyder instance"
        raise RuntimeError(error)

    # Parse variables stored as string literals in the environment.
    args = ast.literal_eval(spyder_args)

    # Enforce the --new-instance flag
    args.append('--new-instance')

    # Arrange arguments to be passed to the restarter subprocess
    args = ' '.join(args)

    # Get python excutable running this script
    python = sys.executable

    # Get the spyder base directory:
    this_folder = os.path.split(os.path.dirname(os.path.abspath(getsourcefile(lambda:0))))[0]
    spyder_folder = os.path.split(this_folder)[0]
    spyderdir = os.path.join(spyder_folder, 'spyder')
    spyder = os.path.join(spyderdir, 'app', 'start.py')

    # Build the command:
    cmd = '"{0}" "{1}" {2}'.format(python, spyder, args)

    # Restart -- Open a pipe to command cmd:
    try:
        subprocess.Popen(cmd, shell=True, env=env)
    except Exception as error:
        restarter.launch_error_message(error_type=RESTART_ERROR, error=error)

Currently what I do is ask myself which environment I'm going to work in, run a script to modify the configuration file accordingly, and then launch Spyder. And if I need to change environment, I need to close Spyder and start again. I'm hoping that the logic I describe here will allow me to have several instances of Spyder running, each with its own config file sourced at launch time from the appropriate environment.

With the Spyder IDE already running, how can I programmatically send a command to Spyder to re-source the config file?

I don't think this is possible. I mean, you can read and write to our conf file while Spyder is running, but I don't think you can load its entire contents again.
@goanpeca, what do you think?

Bonus question: how can I source a configuration file located in a directory other than the default .spyder-py3/config?

That's already supported but not exposed yet anywhere in the interface. I don't know exactly the details, but @goanpeca knows them because he implemented that change.

I don't think this is possible. I mean, you can read and write to our config file while Spyder is running, but I don't think you can load its entire contents again.

Well, you could load them, but we do not have a mechanism to propagate ALL the config once again, as this is read when some widgets are created. In theory we could "source" it and then reapply settings using all possible options keys so that we make sure things are updated.
So could be done with some changes.

That's already supported but not exposed yet anywhere in the interface. I don't know exactly the details, but @goanpeca knows them because he implemented that change.

So we could maybe add an option to make spyder use configuration on a specific folder?
spyder --config-path <some-path>

spyder --config-path <some-other-path>

If there is a config there, spyder would use that otherwise it would start from scratch?

So we could maybe add an option to make spyder use configuration on a specific folder?

The thing is this shouldn't be necessary after we revamp our Projects support to include this. So I'm kind of reluctant to do it right now.

The thing is this shouldn't be necessary after we revamp our Projects support to include this. So I'm kind of reluctant to do it right now.

I guess, but we still need something to handle multiple Spyder instances.

You're right. In that case, I agree with adding that command line option.

Thanks guys for your responsiveness! I can live without this functionality. What I'm doing right now is I run a script that copies my environment's config file to `.spyder-py3/config'  before launching Spyder. Adds one small step, it's fine.
@goanpeca,

we still need something to handle multiple Spyder instances.

You could have config files saved in each environment's root directory, changing the line
osp.join(get_home_dir(), '.spyder.ini')

to something like:
osp.join(get_env_dir(), '.spyder.ini')

assuming a function like get_env_dir() returns the path to the environment (I think it may actually be called get_user_env(), but not certain)
Or do you worry that users would be confused if they set up their preferences in one environment and find that they do not apply in another environment?

Or do you worry that users would be confused if they set up their preferences in one environment and find that they do not apply in another environment?

Hmmm interesting, but yes it could be confusing.

To reduce the possibility of confusion, I have a message in my temp file to remind me of the environment I'm in. To do that, I run a script at startup to load an environment-specific temp.py file. At the top of that file I write "This file resides in the  environment" to remind myself of the environment I'm working in. Before I install a package, I always check to make sure I'm in the right environment: Since my temp.py file is always open and visible, I find it convenient. To do that requires only small changes to the Spyder code. Example:
def make_temp_file(envname=None, filename=None):
    """
    Create a temp file for a named environment inside a subdirectory.
    If the file already exists, load it (I like to keep/edit the temp files across sessions).
    """
    from pathlib import Path  # to create a directory if needed
    from spyder.utils import encoding  # not needed, but more general
    from spyder.py3compat import to_text_string  # not needed, but more general
    from IPython import get_ipython  # to load a new instance of a file in the editor
    if not filename:
        filename = os.path.join(os.path.expanduser('~'), '.spyder-py3/temp.py')
    # if no environment is supplied, use temp.py in root directory,
    root = os.path.dirname(filename)
    # otherwise create a temp.py inside an <envname> directory
    if not envname:
        envname =''
        envdir = root
        editor_location = "It resides in the <root> environment."
    else:
        # if directory <envname> does not exist, create it:
        envdir = os.path.join(root, 'envs', envname)
        Path(envdir).mkdir(parents=True, exist_ok=True)
        editor_location = "It resides in the <"+envname+"> environment."
    tempfile = os.path.join(envdir, os.path.basename(filename))
    # if temp.py file does not exist, create it
    if not os.path.isfile(tempfile):
        # Creating temporary file
        default = ['# -*- coding: utf-8 -*-',
                    '"""', '' "Spyder Editor", '',
                    "This is a temporary script file", '',
                    editor_location, '',
                    '"""', '', '']
        text = os.linesep.join([encoding.to_unicode(qstr)
                                for qstr in default])
        encoding.write(to_text_string(text), tempfile, 'utf-8')
    # now load the new temp file
    ipython = get_ipython()
    ipython.magic(f"%edit {tempfile}")
    return None

Related thought: If you save the environment-specific config files (temp.py, spyder.ini, etc.) in a subdirectory of .spyder-py3, the settings won't get lost even if you remove the environment.  Removing an environment can occur accidentally, as I've experienced before... in conda you're supposed to do something like conda remove -n myenv, but if you get the syntax mixed up and do something like conda uninstall -n myenv (I don't remember exactly), everything gets wiped off. So by keeping config files in .spyder-py3, it offers a bit of insurance against that.

There's a command line option now to set a different config directory for Spyder: --conf-dir. That should cover this use case.
So, I'm going to close this issue.


Custom menu doesn't show in production

Ionic version:  (check one with "x")
(For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x ] 3.x
[ ] 4.x
I'm submitting a ...  (check one with "x")
[ x] bug report
[ ] feature request
Please do not submit support requests or "How to" questions here. Instead, please use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

I am in a big project in Deloitte making a library of ionic components to publish it in a private npm.
I have a custom menu and custom header created and published in npm. In other project I import those elements and header is shown but when I clicked in the menu button it doesn’t show the menu.
It only happens in production. I am running ionic cordova run android --aot to see errors without minification.
Expected behavior:

Steps to reproduce:

Related code:
The module of the npm project is this:
import { NgModule, ModuleWithProviders } from '@angular/core';
import { IonicModule } from 'ionic-angular';

import { CustomHeader } from "./components/extended/header/header";
import { CustomMenu } from "./components/extended/menu/menu";
import { MenuService } from "./components/extended/menu/menu.service";

@NgModule({
  imports: [
    IonicModule.forRoot(CustomHeader),
    IonicModule.forRoot(CustomMenu)
  ],
  exports: [
    CustomHeader,
    CustomMenu
  ],
  declarations: [
    CustomHeader,
    CustomMenu
  ],
  entryComponents: [
    CustomHeader,
    CustomMenu
  ],
  providers: [
    MenuService
  ],
})
export class ComponentsModule {

}

And the module where I imported the project:
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';

import { HomePage } from '../pages/home/home';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { ComponentsModule } from 'components';

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    ComponentsModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}

insert short code snippets here

Other information:

The error in console is this:
ERROR Error: Uncaught (in promise): TypeError: menuTypes[type] is not a constructor
TypeError: menuTypes[type] is not a constructor
    at Function.MenuController.create (main.js:47449)
    at Menu._getType (main.js:73100)
    at main.js:73122
    at new t (polyfills.js:3)
    at Menu.setOpen (main.js:73120)
    at Menu.toggle (main.js:73290)
    at MenuToggle.toggle (main.js:93544)
    at Object.handleEvent (main.js:78096)
    at Object.handleEvent (main.js:12290)
    at Object.handleEvent (main.js:13014)
    at Function.MenuController.create (main.js:47449)
    at Menu._getType (main.js:73100)
    at main.js:73122
    at new t (polyfills.js:3)
    at Menu.setOpen (main.js:73120)
    at Menu.toggle (main.js:73290)
    at MenuToggle.toggle (main.js:93544)
    at Object.handleEvent (main.js:78096)
    at Object.handleEvent (main.js:12290)
    at Object.handleEvent (main.js:13014)
    at c (polyfills.js:3)
    at new t (polyfills.js:3)
    at Menu.setOpen (main.js:73120)
    at Menu.toggle (main.js:73290)
    at MenuToggle.toggle (main.js:93544)
    at Object.handleEvent (main.js:78096)
    at Object.handleEvent (main.js:12290)
    at Object.handleEvent (main.js:13014)
    at dispatchEvent (main.js:8883)
    at main.js:9494

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
 ionic info

cli packages: (C:\Users\agarciaiglesias\AppData\Roaming\npm\node_modules)

    @ionic/cli-plugin-proxy : 1.5.2
    @ionic/cli-utils        : 1.18.0
    ionic (Ionic CLI)       : 3.18.0

global packages:

    cordova (Cordova CLI) : 7.1.0

local packages:

    @ionic/app-scripts : 1.3.12
    Cordova Platforms  : android 6.3.0
    Ionic Framework    : ionic-angular 3.9.2

System:

    Android SDK Tools : 25.2.5
    Node              : v8.5.0
    npm               : 5.3.0
    OS                : Windows 10

Environment Variables:

    ANDROID_HOME     : C:\Users\agarciaiglesias\AppData\Local\Android\Sdk
    HTTP_PROXY       : not set
    http_proxy       : not set
    HTTPS_PROXY      : not set
    https_proxy      : not set
    IONIC_HTTP_PROXY : not set
    PROXY            : http://{agarciaiglesias}:{A!varito0}@<IP_ADDRESS>:8080/
    proxy            : http://{agarciaiglesias}:{A!varito0}@<IP_ADDRESS>:8080/

Misc:

    backend : pro

I am also experiencing this issue.  I am using MeteorJS.  Everything is running in development mode, but when I use meteor run --production I receive the error Uncaught TypeError: menuTypes[type] is not a constructor at Function.MenuController.create.  I also had to remove the minify package to see the true error.
MeteorJS uses CommonJS.  Does this package need to be specially compiled to support CommonJS?
"dependencies": {
    "@angular/animations": "^5.0.3",
    "@angular/common": "^5.0.3",
    "@angular/compiler": "^5.0.3",
    "@angular/core": "^5.0.3",
    "@angular/forms": "^5.0.3",
    "@angular/http": "^5.0.3",
    "@angular/platform-browser": "^5.0.3",
    "@angular/platform-browser-dynamic": "^5.0.3",
    "@angular/router": "^5.0.3",
    "@ionic-native/contacts": "^4.3.3",
    "@ionic-native/core": "4.4.2",
    "@ionic-native/email-composer": "^4.3.3",
    "@ionic-native/sim": "^4.3.3",
    "@ionic-native/sms": "^4.3.3",
    "@ionic-native/splash-screen": "4.4.2",
    "@ionic-native/status-bar": "4.4.2",
    "@ionic/storage": "2.1.3",
    "@ngx-translate/core": "9.0.1",
    "@ngx-translate/http-loader": "^2.0.0",
    "angular2-meteor": "0.8.0",
    "babel-runtime": "^6.20.0",
    "bcrypt": "^1.0.3",
    "ionic-angular": "3.9.2",
    "ionicons": "3.0.0",
    "meteor-rxjs": "0.4.8",
    "moment": "^2.17.1",
    "ng2-responsive": "^0.8.4",
    "rxjs": "^5.4.2",
    "zone.js": "^0.8.16"
  }

This issue was moved to ionic-team/ionic-app-scripts#1329

What does meteor use to build the application?

Not exactly sure what system it uses under the hood.  I can run meteor build --directory ../build/ to bundle the app, or use meteor run --production.
I received this comment from @ardatan on a recent issue I had with another package in production mode. https://github.com/Urigo/angular-meteor/issues/1755
"they have to make a bundle for commonjs like other Angular libraries, but some libraries AGM, covalent, ionic doesn’t support commonjs(which is only import method supported by Meteor bundler), so we will use rollup to solve that problem."

Interesting. I will ask around internally what we would like to do with our build output regarding this. Reopening for now even though this is not really an issue with the Ionic Framework code, but we don't really have a better list to put this into.

In the previous version of ionic-native and current version of ionic-angular, there are commonjs bundles. However, @ionic/native doesn’t have this.

I've been on Ionic v2.3.0 for a while now and has seemed to be pretty stable.  It wasn't until I tried to update to Ionic v3.8.0 (and therefore Angular v4.x) that I started having problems with a production build.

Closing again as not an issue with Ionic Framework code per se. Please feel free to continue discussion here, though, if it is helpful.
Thanks for using Ionic!

@kensodemann Ionic doesn’t support UMD/CommonJS now while previous versions support. I recommend you to look at ngx-translate issues which they’ve solved this recently before making a final decision without understanding the issue.

@ardatan - are you talking about ionic-angular?

I mean ionic-native and ionic-angular have commonjs/umd bundles; @ionic/native doesn't have.

OK, cool. Thx for the clarification. In that case, an issue explaining why this is a problem should probably be opened against the https://github.com/ionic-team/ionic-native repo since this repo and issue list only deals with ionic-angular at this time (that may change after v4 is released, but even then @ionic/native will likely remain a separate project).

The MenuController (don't know if this is the only controller effected, or just the first one to throw an error) is part of the ionic-angular package.  So if ionic-angular has a commonjs/umd bundle, then is this error caused by something else?

Is it a transpiling issue from es6 / other?
https://stackoverflow.com/questions/10107198/javascript-not-a-constructor-exception-while-creating-objects

This seems to be the offending code snippet:
MenuController.create = function (type, menuCmp, plt) {
        return new menuTypes[type](menuCmp, plt);
    };

It is complaining about new menuTypes[type]() as it cannot find a constructor for menuTypes[type].  I am unsure what the selector type value is.

@mjwheatley , I have the error exactly at the same line that you:
MenuController.create = function (type, menuCmp, plt) {
        return new menuTypes[type](menuCmp, plt);
    };

I think that ionic is not working correctly in the library of ionic components. I think that the error may be caused by the module to export, but I dont know how to export a Ionic libreary correctly.
Someone knows?

@kensodemann other controllers don't seem to exhibit the same behavior and are working properly.  The NavController, AlertController, and ModalControllers all seem to be working fine.  Any idea what is different about the MenuController that would be causing this behavior?

@mjwheatley - I have working on this all day and I doscover this:
My component header had properties set to private, when I made the propertie public it starts to work.
Aot compilation doesn`t allow private properties if this porperties are called from template. So I change all properties in all my components to public and it works!.
I hope it may help you.

@agarciaiglesias unfortunately that did not help.  I not trying to do AOT, at least I don't think Meteor is trying to do that by default.

You can disable AOT by enviromental variable AOT=0 which can be seen in the source code;
https://github.com/Urigo/angular-meteor/blob/bf3705c22ae1dfea0be8c2fa0a56561d2c851ea8/atmosphere-packages/angular-typescript-compiler/index.js#L56

Here is my boilerplate repo that I am trying to get working: https://github.com/mjwheatley/ionic2-meteor-boilerplate
git clone https://github.com/mjwheatley/ionic2-meteor-boilerplate
meteor npm install
npm run start:prod

Go to http://localhost:3000
Open Chrome dev tools
Click on the menu hamburger at the top left.
You will see the reported error.

@ardatan I tried
AOT=0 meteor run --production
(make sure to run npm start at least once to make sure the stylesheets have been compiled)
Still did not make a difference.

I just pushed commits including updates to the angular-compilers package.
meteor run --production loads the app, but still does not fix the issue with the MenuController.
However, AOT=0 meteor run --production breaks the app with the following error:
Unhandled Promise rejection: Template parse errors:
More than one component matched on this element.
Make sure that only one component's selector can match a given element.
Conflicting components: IonicApp,AppComponent ("
<body>

  [ERROR ->]<ion-app></ion-app>

"): ng:///client/imports/app/app.component.html@14:2 ; Zone: <root> ; Task: Promise.then ; Value: Error: Template parse errors:
More than one component matched on this element.
Make sure that only one component's selector can match a given element.
Conflicting components: IonicApp,AppComponent ("
<body>

  [ERROR ->]<ion-app></ion-app>

"): ng:///client/imports/app/app.component.html@14:2
    at syntaxError (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:112454)
    at TemplateParser.parse (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:136317)
    at JitCompiler._parseTemplate (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145745)
    at JitCompiler._compileTemplate (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145720)
    at modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145622
    at Set.forEach (<anonymous>)
    at JitCompiler._compileComponents (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145622)
    at modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145492
    at ZoneDelegate.invoke (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:82879)
    at Zone.run (modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:82629) Error: Template parse errors:
More than one component matched on this element.
Make sure that only one component's selector can match a given element.
Conflicting components: IonicApp,AppComponent ("
<body>

  [ERROR ->]<ion-app></ion-app>

"): ng:///client/imports/app/app.component.html@14:2
    at syntaxError (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:112454:34)
    at TemplateParser.parse (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:136317:19)
    at JitCompiler._parseTemplate (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145745:37)
    at JitCompiler._compileTemplate (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145720:23)
    at http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145622:62
    at Set.forEach (<anonymous>)
    at JitCompiler._compileComponents (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145622:19)
    at http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:145492:19
    at ZoneDelegate.invoke (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:82879:26)
    at Zone.run (http://localhost:3000/packages/modules.js?hash=357ca52d3bad331d0a89b265113bb7081e327ea2:82629:43)

@kensodemann would love to here from you again regarding any of my comments since your last post.

@mjwheatley it’d better to continue that on angular-meteor, and could you reproduce a repository for this?

@ardatan Agreed for the angular-compilers issue, and please see my previous posts for the repository I am working with.

Error:
TypeError: menuTypes[type] is not a constructor
    at Function.MenuController.create (modules.js?hash=767c3f797ae494c89cb939bacaadc796f1a58d14:formatted:103657)
    at Menu._getType (modules.js?hash=767c3f797ae494c89cb939bacaadc796f1a58d14:formatted:123585)

Code:
MenuController.create = function(type, menuCmp, plt) {
    return new menuTypes[type](menuCmp,plt);
}

var type = 'overlay'
So menuTypes.overlay is not a constructor.
How was menuTypes.overlay registered?
MenuController.registerType = function(name, cls) {
    menuTypes[name] = cls;
};

Where name = 'overlay' and cls = MenuOverlayType
menu_controller_1.MenuController.registerType('overlay', MenuOverlayType);

menuTypes.overlay = MenuOverlayType, therefore MenuOverlayType is not a constructor.
var MenuOverlayType = function(_super) {
            __extends(MenuOverlayType, _super);
            function MenuOverlayType(menu, plt) {
                var _this = _super.call(this, plt) || this;
                var closedX, openedX;
                var width = menu.width();
                if (menu.isRightSide) {
                    // right side
                    closedX = 8 + width + 'px';
                    openedX = '0px';
                } else {
                    // left side
                    closedX = -(8 + width) + 'px';
                    openedX = '0px';
                }
                var menuAni = new animation_1.Animation(plt,menu.getMenuElement());
                menuAni.fromTo('translateX', closedX, openedX);
                _this.ani.add(menuAni);                var backdropApi = new animation_1.Animation(plt,menu.getBackdropElement());
                backdropApi.fromTo('opacity', 0.01, 0.35);
                _this.ani.add(backdropApi);
                return _this;
            }
            return MenuOverlayType;
        }(MenuType);

The offending line of code can be translated as follows:
MenuController.create = function(type, menuCmp, plt) {
    return new menuTypes[type](menuCmp,plt); // return new MenuOverlayType(menuCmp, plt);
}

Switching the device type over to iOS and type = 'reveal' produces the same error.
MenuController.create = function(type, menuCmp, plt) {
    return new menuTypes[type](menuCmp,plt); // return new MenuRevealType(menuCmp, plt);
}

What needs to happen to get new MenuOverlayType(menuCmp, plt); to not throw an error?

There is an es2015 folder in the ionic-angular package.
I found node_modules/ionic-angular/components/menu/menu-type.js this contains the following code:
class MenuOverlayType extends MenuType {
    constructor(menu, plt) {
        super(plt);
        let closedX, openedX;
        const width = menu.width();
        if (menu.isRightSide) {
            // right side
            closedX = 8 + width + 'px';
            openedX = '0px';
        }
        else {
            // left side
            closedX = -(8 + width) + 'px';
            openedX = '0px';
        }
        const menuAni = new Animation(plt, menu.getMenuElement());
        menuAni.fromTo('translateX', closedX, openedX);
        this.ani.add(menuAni);
        const backdropApi = new Animation(plt, menu.getBackdropElement());
        backdropApi.fromTo('opacity', 0.01, 0.35);
        this.ani.add(backdropApi);
    }
}
MenuController.registerType('overlay', MenuOverlayType);

@ardatan how can I get Meteor to use this version of the code? Or is this code being transpiled into what I'm seeing in the browser?

@ardatan please note new issue created on angular-meteor rep https://github.com/Urigo/angular-meteor/issues/1792

Solution:
Find all from 'ionic-angular' replace with from 'ionic-angular/es2015'
Example app.module.ts:
Before
import {IonicApp, IonicModule, IonicErrorHandler} from 'ionic-angular';

After
import {IonicApp, IonicModule, IonicErrorHandler} from 'ionic-angular/es2015';


Question in the example/.../repository_user.dart

Hi there,
May I ask a few questions,
[master branch] flutter_parse_sdk/example/lib/data/repositories/user/repository_user.dart
@override
  Future<User> createUser(
      String username, String password, String emailAddress) async {
    api.createUser(username, password, emailAddress);

    final User user = await api.createUser(username, password, emailAddress);
    if (user != null) {
      await db.createUser(username, password, emailAddress);
    }

    return user;
  }

Q: Why do api.createUser(username, password, emailAddress); twice?
[master] flutter_parse_sdk/example/lib/data/repositories/user/repository_user.dart
@override
  Future<User> currentUser() => db.currentUser();

Q2: Why not return api.currentUser(), since db.currentUser() alway null?

Hey Yang,
The first line is a mistake as it was a quick example of a repository
pattern. There is no reason to call create user twice.
The second issue I'm not so sure on. I'm away from my desk but, why would
db.currentUser always be null?
On Sat, Jun 1, 2019, 08:11 Yang JIANG<EMAIL_ADDRESS>wrote:

Hi there,
May I ask a few questions,
[master branch]
flutter_parse_sdk/example/lib/data/repositories/user/repository_user.dart
@override
Future createUser(
String username, String password, String emailAddress) async {
api.createUser(username, password, emailAddress);
final User user = await api.createUser(username, password, emailAddress);
if (user != null) {
  await db.createUser(username, password, emailAddress);
}

return user;

}
Q: Why do api.createUser(username, password, emailAddress); twice?
[master]
flutter_parse_sdk/example/lib/data/repositories/user/repository_user.dart
@override
Future currentUser() => db.currentUser();
Q2: Why not return api.currentUser(), since db.currentUser() alway null?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/phillwiggins/flutter_parse_sdk/issues/182?email_source=notifications&email_token=AB4CPXVBW7IJFI3546BB423PYIOLLA5CNFSM4HR74POKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GXCRZJQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB4CPXW4KOTA5B2YC22EQNTPYIOLLANCNFSM4HR74POA
.

Hi Phillwiggins,
Cool,, thank for the quick response to my question.
Reason of db.currentUser() is null is that the implementation returns null:
class UserProviderDB implements UserProviderContract {
  @override
  Future<User> currentUser() {
    return null;
  }
...
}

However, api.currentUser() is returning ParseUser::currentUser from  SharedPreferences
class UserProviderApi implements UserProviderContract {
  @override
  Future<PUser> currentUser() {
    return ParseUser.currentUser();
  }
...
}

I see the idea of let database involve in **Repository is seems to provide a convenient way to access data in offline (without extra network request) for whatever reason (eg: diet daily plan for a specific user).
Therefore, in the UserRepository case, we only need to handle create/destroy/save scenarios in db. More importantly, we only take action on db when api success.
For example when app want remove a user from server locally and online:
class UserRepository implements UserProviderContract {
  @override
  Future<ApiResponse> destroy(PUser user) async {
    ApiResponse response = await api.destroy(user);
    response = await db.destroy(user);
    return response;
  }
...
}

Should be:
ApiResponse response = await api.destroy(user);
if (response.success) {
    response = await db.destroy(user);
}
return response;

I just saw the sdk few days ago, please kindly correct me if I'm I get the idea wrong..

No, you are correct. That logic would be more sound.
The repository was just a quick guide to help people with an offline first
approach. There is a few bugs with it as it was added as an example. If you
free, would you be able to do a pull request? I'd appreciate the help!
On Sat, Jun 1, 2019, 10:46 Yang JIANG<EMAIL_ADDRESS>wrote:

Hi Phillwiggins,
Cool,, thank for the quick response to my question.
Reason of db.currentUser() is null is that the implementation returns
null:
class UserProviderDB implements UserProviderContract {
@override
Future currentUser() {
return null;
}
...
}
However, api.currentUser() is returning ParseUser::currentUser from
SharedPreferences
class UserProviderApi implements UserProviderContract {
@override
Future currentUser() {
return ParseUser.currentUser();
}
...
}
I see the idea of let database involve in **Repository is seems to
provide a convenient way to access data in offline (without extra network
request) for whatever reason (eg: diet daily plan for a specific user).
Therefore, in the UserRepository case, we only need to handle create/
destroy/save scenarios in db. More importantly, we only take action on
db when api success.
For example when app want remove a user from server locally and online:
class UserRepository implements UserProviderContract {
@override
Future destroy(PUser user) async {
ApiResponse response = await api.destroy(user);
response = await db.destroy(user);
return response;
}
...
}
Should be:
ApiResponse response = await api.destroy(user);if (response.success) {
response = await db.destroy(user);
}return response;
I just saw the sdk few days ago, please kindly correct me if I'm I get the
idea wrong..
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/phillwiggins/flutter_parse_sdk/issues/182?email_source=notifications&email_token=AB4CPXVV6EQYZQKMUXXBBXTPYJARBA5CNFSM4HR74POKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWW47SI#issuecomment-497930185,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB4CPXVNWQ3XMA2CVSMKCRLPYJARBANCNFSM4HR74POA
.

Thank you for the answer, Phill.
Surething, probably in the nearly future after I get more understanding of how this sdk manage Parse. I would like to re-visit this example to see what I can do. At this moment, I'm still in the stage to make everything works as I expected.


How to get all users and their out of office status.

Please, help me.
How can i get all users AD login names/Emails and their out of office statuses ?

See #284.


Update typeahead bower dependency to 0.11

While #25 added support for typeahead.js 0.11, bower install still
reported a version conflict when the parent project explicitly depended
on typeahead 0.11. This fixes that.

this looks wrong to me, because you now mark it as incompatible with 0.10 while it is still supported


Make default values clearer in the documentation

I realized this because of https://github.com/typst/typst/issues/1101
Nowhere in https://typst.app/docs/reference/text/text/#parameters--top-edge is it mentioned what the actual default is. This is fairly ubiquitous throughout the documentation. Sometimes the default is mentioned in the description, such as https://typst.app/docs/reference/layout/block/#parameters--above, but more often than not it's not.

Will add it. Wasn't originally there because I didn't want to do it manually and the infrastructure for generating it automatically wasn't there, but now it should be quite simple to autogenerate.


In project.config how do you add third party css?

In project.config how do you add third party css?
This is what I have so far but doesnt seem to add these css files:
  this.NPM_DEPENDENCIES = [
  ...this.NPM_DEPENDENCIES,
  {src: './../../src/client/resources/animate.css', inject: 'css'},
  {src: './../../src/client/resources/bootswatch.css', inject: 'css'},
  {src: './../../src/client/resources/fonts.css', inject: 'css'},
  {src: './../../src/client/resources/fontAwesome.css', inject: 'css'}
];

Please take a look at the wiki and other already resolved issues.


chore(transition): remove transition module

BREAKING CHANGE:
The transition module along with its $transition service are no longer
available. We're now using $animate service for animations and would
encourage users to do the same.

Should this be in the backlog or in 0.13.0? Given that $transition usage is gone, we might as well just delete it as a breaking change from 0.12 to 0.13.

I was thinking of merging it next major release, say 0.14, as there might be users depending on it and it's not essential to drop it now. Just want to mark it as deprecated first.

Might be worth opening a PR marking it as deprecated in the comments for the service or when users consume the service via $log.

Good idea, will do

@chrisirhc Weirdly this needs rebasing

Don't worry about this, the rebase would be easy when it comes time to do it.

I merged this in dfa4c97cb6ef7c83d88ffcfe7d31cdd851a58162, but looks like I forgot to just close this particular PR :(


[Optical Flow]Can't estimate local position by EKF2

I used optical flow without gps but local position from pixhawk board is drifting and I have checked my optical flow module ,it  works well.
I have set EKF_AID_MASK to 2 and EKF_HGT_MODE to Range sensor.
Is their any problem I did wrong? Please help me..
Thank you.

@ChristophTobler Can you comment?

Here's my flight log log
It seems local position y not controlled at all.
I control pixhawk using Mavlink command:set_position_target_local_ned and set bitmap to control it position. But it seems not work.

@timfaner Your quad is not tuned at all http://logs.px4.io/plot_app?log=ec88c1f8-c5e0-4ce1-9132-cfec02db2832#Nav-Roll-Angle. All tuning parameters are still default which is very unlikely. You have to tune the attitude controller, else your quad won't fly well.
Flow quality seems good but your distance sensor is very noisy http://logs.px4.io/plot_app?log=ec88c1f8-c5e0-4ce1-9132-cfec02db2832#Nav-Distance-Sensor. I guess it is a sonar? These don't work very well on several grounds.

@ChristophTobler Thank you for reply.
I tuned quad in past two days and quad still drifts.
I placed quad still and in QGC I found LOCAL_POSITION_NED_X, LOCAL_POSITION_NED_Y drift about 0.01m/s.
Then I found  LOCAL_POSITION_NED_vx, LOCAL_POSITION_NED_vy is negative when quad still.

However Optical_flow_integrated_x , Optical_flow_integrated_y works fine.
So how can I fix drift ? Or is there anything I do wrong?
Hope your comment.

@timfaner can you provide a log again? And maybe a video would also help.

@timfaner You did calibrate all your sensors, right?

@ChristophTobler Sorry , late for reply.
Here is a ideo.
I calibrate all sensors except PX4Flow , I just adjust its focal length to 2m .

@timfaner thanks! Could you also send the log file of that flight?

The ground you have in your flying arena is definitely not suited for optical flow as it is almost completely white and has no texture. Try again with the normal ground. To analyse it more, I would need the log file of that flight.

Here is the log.
It takes some time to find right  log.
I will try again with the normal ground tomorrow.
Thank you for advice.

Thanks. So tuning is a bit better but could still be improved. Your mag seems to correlate with your thrust http://logs.px4.io/plot_app?log=cdfea96a-c47c-445c-bc6c-4a2270acb45d#Nav-Thrust-and-Magnetic-Field. Is your mag close to some power cable? If so, you should place it somewhere else.
Your quad is in NAVIGATION_STATE_DESCEND mode which is weird. It should be in position. Can you try taking off manually and then switch to altitude and then position mode?
Another thing: Have you mounted your PX4Flow the correct way -> https://dev.px4.io/en/tutorials/optical_flow.html?

I set quad mode into offboard in order to takeoff.Yestarday  I try to taking off manually and then switch to altitude and then position mode. When switched to altitude quad just go up . Here is log.. I think I might ignore some parameters and quad can't fly normally. Can you please tell me paraments to be set and step should be flow? Thank you...

Your quad is still not tuned properly http://logs.px4.io/plot_app?log=91cba99c-45f3-4645-8c6f-56cc4403541f#Nav-Roll-Angular-Rate and you should also try dampening your autopilot differently as you have a lot of vibrations http://logs.px4.io/plot_app?log=91cba99c-45f3-4645-8c6f-56cc4403541f#Nav-Raw-Acceleration

Please reopen if still an issue


kwm does not function in recent commits

Not sure exactly what changed but I can't get kwm to work anymore in the recent commits.
When I build in dev mode I get this output
❯ ./bin/kwm
Local Daemon is now running..
DisplayID 441231620 has index 0
DisplayID 69733314 has index 1

No tiling happens, nothing gets focus. read tag returns [bsp] so kwm has started.
Going to go back though to commits to find one that works

I changed the syntax of quite a few commands. You probably have to redo parts of the kwmrc.

Yeah, I updated after the syntax change. (which reminds me, what do you think of offering warnings for unrecognized commands? or offer a syntax check command in kwmc?)
The commit that was working for me is no longer working so something must be up with my system. going for a restart.

Yeah, I updated after the syntax change. (which reminds me, what do you think of offering warnings for unrecognized commands? or offer a syntax check command in kwmc?)

I need to refactor nearly the entire project at this point. Already started this on a local branch.
The code is no longer separated properly into compilation units like I originally intended to. The interpreter is very prone to causing crashes as it does no form for input validation among other things.
In short, the codebase is a huge mess, but all of it is more or less working properly and there is a lot of features compared to the early stages.

Everything is working after a restart. Going to blame the system update I installed and forgot to reboot after.
Sorry!


the scoreboard not showing the player

hello i have this problem . player name not showing anyone know how to fix it?

set onesync right?