Change workflow to mamba

Change workflow to mamba. Equivalent of zppy's https://github.com/E3SM-Project/zppy/pull/429 & https://github.com/E3SM-Project/zppy/pull/428, or zstash's https://github.com/E3SM-Project/zstash/pull/271

Closes #642

Remaining instance of pip (excluding those in reference to piping output):
.github/workflows/build_workflow.yml:95:          python -m pip install .
.gitignore:35:pip-log.txt
.gitignore:36:pip-delete-this-directory.txt
analysis_data_preprocess/obs_data.yml:75:  - pip=19.1=py27_0
analysis_data_preprocess/obs_data.yml:99:  - pip:
conda-env/ci.yml:12:  - pip
conda-env/dev.yml:10:  - pip=22.3.1
conda-env/docs.yml:10:  - pip
conda-env/prod.yml:10:  - pip=22.3.1
docs/source/dev_guide/adding-new-diags-sets.rst:456:``pip install .`` **as explained in the "Putting It All Together And Running On Cori At NERSC" section.**
docs/source/dev_guide/adding-new-diags-sets.rst:700:        pip install .
docs/source/dev_guide/testing.rst:11:        pip install . # Install your changes
docs/source/dev_guide/testing.rst:80:        pip install . # Install your changes
docs/source/install.rst:167:Instead, the developer will ``pip install .`` to build ``e3sm-diags`` with changes (see step 6 below).
docs/source/install.rst:252:        pip install .
tests/integration/test_diags.py:17:# pip install /global/homes/f/<username>/e3sm_diags/

The checks won't run, any insights? @forsyth2 @tomvothecoder @forsyth2

@chengzhuzhang I'm running into issues with the checks on all the mamba PRs.  Am I missing a new requirement on E3SM Diags?
For reference:
zstash is having issues with sphinx-multiversion on https://github.com/E3SM-Project/zstash/pull/271:
  Looking for: ['pip=22.2.2', 'python=3.9.13', 'six=1.16.0', 'globus-sdk=3.2.1', 'fair-research-login=0.2.0', 'black=22.8.0', 'flake8=5.0.4', 'flake8-isort=4.2.0', 'mypy=0.982', 'pre-commit=2.20.0', 'tbump=6.9.0', "jinja2[version='<3.1']", 'sphinx=5.2.3', 'sphinx_rtd_theme=1.0.0', 'sphinx-multiversion=0.2.4', 'docutils=0.16']

  Could not solve for environment specs
  The following package could not be installed
  └─ sphinx-multiversion 0.2.4**  does not exist (perhaps a typo or a missing channel).

Error: The process '/usr/share/miniconda3/condabin/mamba' failed with exit code 1

And I thought zppy's PR was fine, but I'm seeing a syntax error on https://github.com/E3SM-Project/zppy/actions/runs/5273105403/workflow (after https://github.com/E3SM-Project/zppy/pull/429 merged), even though the syntax looks fine.
Check failure on line 66 in .github/workflows/build_workflow.yml

GitHub Actions
/ .github/workflows/build_workflow.yml
Invalid workflow file
You have an error in your yaml syntax on line 66

And I thought zppy's PR was fine

Ah, I just made https://github.com/E3SM-Project/zppy/pull/434, and now zppy has the same sphinx-multiversion error as zstash.

@forsyth2 and @chengzhuzhang, I think the sphinx-multiversion problem is the same as in zppy and zstash, namely that you can't use the flag use-only-tar-bz2: true.  At this point, conda-forge creates only .conda package files as far as I know, not .tar.bz2 files.  And I believe the issue with not being able to cache conda packages that are .conda files has been fixed so the comment about caching only working with this flag is out of date.
Besides that one flag, I think E3SM_Diags is in better shape than zppy and zstash because it is already using a conda environment to build the docs (not just to test the package).  That seems to have been the other major problem for zppy and probably for zstash, too.

There's at least 1 other problem: someone's editor is putting tab characters into the workflow yaml files, which is making CI not run.

Tests seem to be failing for reasons that may not have to do with this PR:
Error: -16 09:55:28,102 [ERROR]: e3sm_diags_driver.py(run_diag:296) >> Error in e3sm_diags.driver.lat_lon_driver
Traceback (most recent call last):
  File "/home/runner/work/e3sm_diags/e3sm_diags/e3sm_diags/driver/lat_lon_driver.py", line 134, in run_diag
    land_frac = test_data.get_climo_variable("LANDFRAC", season)
  File "/home/runner/work/e3sm_diags/e3sm_diags/e3sm_diags/driver/utils/dataset.py", line 160, in get_climo_variable
    filename = self.get_test_filename_climo(season)
  File "/home/runner/work/e3sm_diags/e3sm_diags/e3sm_diags/driver/utils/dataset.py", line 273, in get_test_filename_climo
    return self._get_climo_filename(path, data_name, season)
  File "/home/runner/work/e3sm_diags/e3sm_diags/e3sm_diags/driver/utils/dataset.py", line 300, in _get_climo_filename
    fnm = self._find_climo_file(path, data_name, season)
  File "/home/runner/work/e3sm_diags/e3sm_diags/e3sm_diags/driver/utils/dataset.py", line 318, in _find_climo_file
    dir_files = sorted(os.listdir(path_name))
FileNotFoundError: [Errno 2] No such file or directory: ''
...

@xylar thank you so much for troubleshooting and made the CI/CD tests running again...I will take over to look at the failed tests.

The trackback include errors with module 'numpy' has no attribute 'float'. from cdms2, which I recall that we have fixed. This led me to think that the new workflow introduced old version of packages in ci. I will perhaps leave this PR for next release candidates.
  File "/usr/share/miniconda/envs/e3sm_diags_ci/lib/python3.10/site-packages/cdms2/variable.py", line 74, in __init__
    self._numericType_ = numpy.float
  File "/usr/share/miniconda/envs/e3sm_diags_ci/lib/python3.10/site-packages/numpy/__init__.py", line 305, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'cfloat'?

Ah, I had missed how many different yaml files there are. By the way, this should be fixed:
https://github.com/E3SM-Project/e3sm_diags/blob/main/.github/workflows/build_workflow.yml#L74
It should be ci.yml not dev.yml and I think that threw me off.

I think, in contrast to dev.yml which is too strict:
https://github.com/E3SM-Project/e3sm_diags/blob/main/conda-env/ci.yml
is too loose and need to pin versions that are used in production.  To be honest, I think you all would be best off with a single yaml file for everything so that there aren't so many places to have to constrain dependencies.  It also makes things quite confusing on conda-forge when I don't quite know which yaml file to trust here.

I believe you need the latest versions of most cdat packages and earlier version are too old to work.  So those need to be constrained much like they are in E3SM-Unified:
https://github.com/E3SM-Project/e3sm-unified/blob/main/recipes/e3sm-unified/meta.yaml#L57-L68
(This range also captures several non-CDAT packages, which you can ignore).
It's quite important to have a sense for which packages need to be constrained (i.e. e3sm_diags won't work with earlier or later versions) and which are being over-constrained (e3sm_diags works with a broad range of versions).  This is a tedious part of the package management process but it is also a giant headache when it isn't done right and things like failing tests result from it.

I will try increasing constraints on packages in ci.yml tomorrow (and then relaxing others in dev.yml) to get to a better match between these two.

@xylar All PRs for the 2.9.0rc are in, except for this one.  I have a PR to patch what I missed here:
https://github.com/conda-forge/cdms2-feedstock/pull/85
You are noticing that here because you were previously testing with numpy <= 1.20 but you now are getting the latest version where these are no longer available.  So there's nothing wrong with the testing, it's a problem with cdms2 itself.

I successfully fixed cdms2 but there are remaining issues in genutil: https://github.com/conda-forge/genutil-feedstock/pull/25

Once I finished fixing cdsm2 and genutil, it turns out that e3sm_diags also has some numpy.int references that need to be fixed.  I have the commit here for testing but I think it's better to keep it in a separate PR, #694.

We can target the exact build number while we wait for answers (see below) though I think something like this is a recipe for more problems (if not now, then down the road).

@mahf708, Fortunately, it doesn't seem like the problem was with picking up the desired build after all, but rather that a lot less had been fixed than I thought.  I agree that pinning a particular build is a crutch we could use if we need to but fortunately it doesn't seem to have been needed in this case.

@forsyth2 and @chengzhuzhang, this seems to work but please merge #694 first and then this one only after a rebase to remove the redundant commit.
Please also see the new issue https://github.com/E3SM-Project/e3sm_diags/issues/695

To be honest, I think you all would be best off with a single yaml file for everything so that there aren't so many places to have to constrain dependencies. It also makes things quite confusing on conda-forge when I don't quite know which yaml file to trust here.

Originally the GH Actions build for this repo was using conda to build the environment. As we all know, conda takes a long time to resolve environments (especially those with a lot of dependencies). Certain tasks in the build only require a minimal number of dependencies (e.g,. building docs), so build time would be wasted reproducing this single large environment per task. This is why I setup individual yml files early on.
However, we recently switched to mamba and have caching setup (I think). I don't think build time is a major issue anymore. I am working on PR #696 which addresses simplification of the conda env yml files.
Also the e3sm_diags integration tests take like 10-20 minutes anyways so I don't think build time is big deal if we can handle that wait 🤣


Bug observed of FIFO buffer size, need to test to confirm

g_depth - 1 shall be
Double send (on 0 to g_depth - 1)

Minor chance of first admin packet not getting recongised

same bug(Minor chance of first admin packet not getting recongised) observed on 0 to g_depth

maybe all of those weird stuff due to timing constraint failing?

kind of proves a bit

LOL Also this

duplicate send only observed on g_depth

currently mitigated via small FIFO buffer, might show up some time in future :(, low-priority atm

FIFO needs two process to access various clock domains


configuration: bump allow list to include ACM

Signed-off-by: Lucas Servén Marín<EMAIL_ADDRESS>

👍🏽


Performance improvements

Hi @bitkeks,
A bug report agains my app prompted me to upgrade this project to a newer version (thank you for adding support for V9 Options!). While upgrading, I have noticed that I have quite a few performance improvements in a separate branch that I have never made a PR for. Checking it, I saw that the changes are still relevant, so I took the liberty of opening a PR. I hope you find it useful.
The changes solve the performance issues I have encountered when running Grafolean NetFlow bot (which uses this package) on a very busy network. I have used PyFlame to generate flame charts, then analysed the parts where the app seemed to spend most time in. The last version of this branch all but removed the bottleneck. Unfortunately, this was happening over a year ago, and I no longer have access to the testing system so I was unable to test these improvements again. However looking at the code I believe the effect should still be the same.
I am certain that the code could be nicer and that even further optimizations could be achieved, so please see this PR as a set of ideas. Feel free to steal whatever you find valuable and disregard the rest. :)
Kind regards,
Anze

Great work! Thank you very much! I have applied some additional comments and extended the list of IP fields.
If you have the time to test tag v0.11.2 that would be wonderful. It contains your fixes :)


Using arrow keys to move selection

It'd be really intuitive to have arrow hotkeys to move selected objects around.

This functionality is almost done in 4e2793f866c7a06ead04bc687e2842150dab8fce


[Bug] useLocalStore does not work when store is defined in separate function

Hi,
I followed these docs: https://mobx-react.netlify.com/recipes-context
Store created with useLocalStore and then passed in via react context ignores updates by called methods defined in store.
It does work, when store is created in the same component where it is used though. Also, I could make this work by directly assigning new value on store "counter", without inc() method.
So it looks like, somehow methods defined in store do not update it in that one particular case.
Reproduced here: https://codesandbox.io/s/inspiring-fermi-ssmmt
(I might be missing something, since it is relatively new to me, but I followed docs examples quite closely...)
Versions:
 "react": "16.8.4"
 "react-dom": "16.8.4",
 "mobx": "^5.9.4",
 "mobx-react": "6.0.2"

After digging a bit more, I think I found the cause.
If store is defined using "useLocalStore" but not as inline function, then its methods can't access store variables using store object captured in closure. Probably it can be accessed that way only when store object is already wrapped in useLocalStore? So this doesn't work:
export function createStore() {   const store = {     counter: 0,     inc(): {         store.counter++;     }   }   return store } ... const store = useLocalStore(createStore)
It has to be accessed using "this", so this works:
export function createStore() {   const store = {     counter: 0,     inc(): {         this.counter++;     }   }   return store } ... const store = useLocalStore(createStore)
As for now, docs say otherwise, so I'm not really sure whether it's a feature or a bug...

Probably it can be accessed that way only when store object is already wrapped in useLocalStore?

Yes, because store returned from useLocalStore is an observable copy of a store returned from createStore. The inc() therefore increments original non-observable store objects, which isn't the one observed by the component.
cc @FredyC

Ah, interesting, so I guess it will be a bad pattern to declare store like that. Alternatively this has to be used if an external definition of store is desired, but there are some Typescript issues. I think ultimately I would go the way of custom hooks that only declare store. I will update documentation later.

Closing over here, as the behavior is as expected and this should be documented differently


Pull Request from Xingjia and Jare

Prof Rowe, could you please merger this with your repository? It contains the images and csv file that Xingjia and I came up with.


Improve inter-channel message passing

Message processing involves passing messages between several channels (e.g., DrasylChannel <-> DrasylServerChannel, <-> DatagramChannel). Currently, messages are passed to the other channel via fireChannelRead/write(andFlush) calls, often resulting in a scheduled task to the target channel's event loop per message.
We can reduce the scheduling overhead by using something like an inbound and outbound channel buffers, where we place all messages to, followed by a scheduled tasks that process the buffer's content.
This change will reduce the number of schedules to one if multiple messages are read or written in a run.

@KevinRoebert thoughts on this?

FYI: Inbound Buffer has been added to DrasylChannel via https://github.com/drasyl/drasyl/pull/644


The Explorer font weight is too thin

The Explorer font weight is too thin
You can compare Fleet
Can the explorer font be customized

I wonder if you're commenting on the workbench font family/size or just the colors?

I wonder if you're commenting on the workbench font family/size or just the colors?

fontFamily

\duplicate #519


[prettier-plugin-sql] prefix option names to prevent name collisions

Hi @JounQin
Apologize for bothering 😂.
Some of the option names of prettier-plugin-embed (formatter, language, database) are very common words, especially in language formatting tools like prettier. It seems prettier doesn't have namespaces for different plugins with same option names defined (correct me if I'm wrong). So if a user use this plugin with other plugins, there might be a high risk of name collisions. We were wondering if you would change them to prefixed ones like sqlFormatter, sqlLanguage, sqlDatabase (or unify the latter two into sqlDialect) to mitigate the risk.
Thanks.

Use overrides instead.

I know overrides but it is file based overriding. However prettier-plugin-embed aims to support formatting  embedded templates of different languages in the same file.

I think that should be supported via embed plugin, instead of reversed.

I've already implemented an identifier based overriding in my plugin, ugly but working, because prettier doesn't support object type option value for plugins, so I have to use JSON.stringify or an absolute path of a config file.
It is ok if this is not planned. Just want to check if there's a plan

Yes, I'm also using JSON.stringify hack in the sql plugin.
See also https://github.com/un-ts/prettier/issues/233#issuecomment-1803331128
By the way, I'm using jsox instead of standard JSON because it's much user friendly.

Thanks for the sharing. I'll definitely check this.


feat: animated background 🎉

Animated background trigerred when playing music.

Great addition, would be great if this can be added as an option without affecting the core UI 🙌


Use Default DNS Resolver when Creating a New HttpClient

Fixes #22618
Updates NettyAsyncHttpClientBuilder to use the default DNS resolver when an HttpClient instance is being created without an initial underlying Netty HTTP client. This resolves an issue where the first request made in an application has a much higher completion time (>10s) compared to subsequent requests (generally in ms).

@alzimmermsft Hello Alan, this is causing my application to be unable to connect to the azure keyvault (who's behind a corporate proxy). Before your fix, the http client resolver was null, and later in the same class initialized with an NoopAddressResolver. Because of this fix, this is not happening anymore.
In other words, this code that was executed before the fix is not anymore :)
if (resolver == null) {
                    nettyHttpClient.resolver(NoopAddressResolverGroup.INSTANCE);
                }

Is this a regression, or is there something else I should be doing? Thanks !


Set psalm level to one

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues
-

I think psalm level 2 is ok. Level 1 requires more work resources

Very often highest pslam level help found problems and bugs in code.

Very often highest pslam level help found problems and bugs in code.

level 2 is enough for that

Level 2 is alright for the start. Could be lowered but that's optional.


Flow deprecation info into search service

Package deprecation info needs to flow into search service.
Required for phase 2 of package deprecation PMUI and more advanced search filtering.

Likely not needed for MVP.

removing out of the Epic, since it covers only the MVP.

Once this is fixed, we'd appreciate a heads up so we can fix the NuGet.Client side experience: https://github.com/NuGet/Home/issues/8719

This is a blocker for https://github.com/NuGet/Home/issues/8058.

@joelverhagen @loic-sharma
Is this on any roadmap as of now?
This would really help improve the performance of PM UI browse scenarios.

Nope, not scheduled right now. Let's talk offline with @skofman1 about when this could happen w.r.t. to our other commitments.

@nkolev92, since this is needed for an e2e experience (client perf improvement) we need to align priorities & schedules between the teams. i.e., how high is NuGet/Home#8058 on the client team backlog? Right now I see it marked as P3. We can discuss further offline.

Sounds good. I think the first target would be: https://github.com/NuGet/Home/issues/10865.
I've started a discussion to prioritize that issue from a client perspective.
I'll tag you in the chat for reference.
Thanks @joelverhagen @skofman1!


Error when changing config

[16:22:46] [Server thread/CRITICAL]: ErrorException: "yaml_parse(): reading error encountered during parsing: invalid leading UTF-8 octet (line 1, column 1)" (EXCEPTION) in "src/pocketmine/utils/Config" at line 155
[16:22:46] [Server thread/DEBUG]: #0 (): pocketmine\error_handler(integer 2, string yaml_parse(): reading error encountered during parsing: invalid leading UTF-8 octet (line 1, column 1), string phar://C:/Users/gaget/Desktop/PocketMine-MP/PocketMine-MP.phar/src/pocketmine/utils/Config.php, integer 155, array Array())
[16:22:46] [Server thread/DEBUG]: #1 src/pocketmine/utils/Config(155): yaml_parse(string #   _______                       __        __    __..#  /       \                     /  |      /  |  /  |..#  $$$$$$$  |  ______   _______  $$ |   __ $$ |  $$ |  ..#  $$ |$$ | /      \ /       \ $$ |  /  |$$ |  $$ | /      ..#  $$    $$<  $$$$$$  |$$$$$$$  |$$ |/$$/ $$ |  $$ |/$$$$$$  |..#  $$$$$$$  | /    $$ |$$ |  $$ |$$   $$<  $$ |  $$ |$$ |  $$ |..#  $$ |  $$ |/$$$$$$$ |$$ |  $$ |$$$$$$  \ $$ _$$ |$$ |$$ |..#  $$ |  $$ |$$    $$ |$$ |  $$ |$$ | $$  |$$    $$/ $$    $$/..#  $$/   $$/  $$$$$$$/ $$/   $$/ $$/   $$/  $$$$$$/  $$$$$$$/..#                                                    $$ |..#  The easy prison rankup plugin for PocketMine-MP   $$ |..#                                                    $$/....unleash-the-rankupdoesgroups: true..  # If you set this to false RankUpDoesGroups won't be loaded...  # This means that you can't set it as your groupmanager...  # It is highly recommended not to change this..preferred-economy: "rankup\economy\PocketMoney"..  # Set your preferred economy..  # rankup\economy\Economy and rankup\economy\PocketMoney are available by default..  # Set to false for autoloading (only offcially supported economys will autoload)...preferred-groupmanager: "rankup\permission\RankUpDoesGroups"..  # Set your preferred group manager..  # rankup\permission\RankUpDoesGroups and rankup\permission\PurePerms are available...  # RankUpDoesGroups is a super barebones alternative for users who don't use PurePerms....ranks: # Define all your ranks here..  A: 0..  B: 1500..  C: 3500..  D: 6700..  E: 14000..  F: 26000..  G: 36444..  H: 50000..  I: 63000..  J: 74000..  K: 83333..  L: 95555..  M: 105323..  "N": 115000..  O: 125000..  P: 135000..  Q: 142000..  R: 153000..  S: 164000..  T: 179000..  U: 186000..  V: 199000..  W: 210000..  X: 225000..  "Y": 239000..  Z: 250000..lang:..  ranked-up-paid: ".0..bYou Have Successfully Been .6Ranked Up .bTo.e %s"..  ranked-up-free: ".0..bYou Have Successfully Been .6Ranked Up .bTo.e %s"..  group-add-error-paid: ".0..cFailed To RankUp. Refunded Price."..  group-add-error-free: ".0..cFailed To RankUp.  Rename your current config to config.old and start the server. Once loaded stop it again. Make changes to the new config to suit your needs.

JackMD, this is not working. Am I supposed to change file extension?

Whats not working?

It keeps displaying the same error message. The plugin still breaks.

Wait a minute I will check for myself

Alright

Everything is working fine for me

Could you show me a screenshot of the config? Like the rankup folder?

@GageGamesHD remove your current RankUp folder from plugins directory and restart the server.

Afterwards set it in the same way as done in the config

Done

Ok rankup works.
Now when I use the config that you used in a past open issue https://github.com/Falkirks/RankUp/issues/43, it gives me an error.

Are you using the same without any changes?

and what error you get?

Yes

Ill paste error

[16:18:35] [Server thread/INFO]: Enabling RankUp v0.4.0
[16:18:35] [Server thread/CRITICAL]: ErrorException: "yaml_parse(): reading error encountered during parsing: invalid leading UTF-8 octet (line 1, column 1)" (EXCEPTION) in "src/pocketmine/utils/Config" at line 155
[16:18:35] [Server thread/DEBUG]: #0 (): pocketmine\error_handler(integer 2, string yaml_parse(): reading error encountered during parsing: invalid leading UTF-8 octet (line 1, column 1), string phar://C:/Users/gaget/Desktop/PocketMine-MP/PocketMine-MP.phar/src/pocketmine/utils/Config.php, integer 155, array Array())
[16:18:35] [Server thread/DEBUG]: #1 src/pocketmine/utils/Config(155): yaml_parse(string #   _______                       __        __    __..#  /       \                     /  |      /  |  /  |..#  $$$$$$$  |  ______   _______  $$ |   __ $$ |  $$ |  ..#  $$ |$$ | /      \ /       \ $$ |  /  |$$ |  $$ | /      ..#  $$    $$<  $$$$$$  |$$$$$$$  |$$ |/$$/ $$ |  $$ |/$$$$$$  |..#  $$$$$$$  | /    $$ |$$ |  $$ |$$   $$<  $$ |  $$ |$$ |  $$ |..#  $$ |  $$ |/$$$$$$$ |$$ |  $$ |$$$$$$  \ $$ _$$ |$$ |$$ |..#  $$ |  $$ |$$    $$ |$$ |  $$ |$$ | $$  |$$    $$/ $$    $$/..#  $$/   $$/  $$$$$$$/ $$/   $$/ $$/   $$/  $$$$$$/  $$$$$$$/..#                                                    $$ |..#  The easy prison rankup plugin for PocketMine-MP   $$ |..#                                                    $$/....unleash-the-rankupdoesgroups: true..  # If you set this to false RankUpDoesGroups won't be loaded...  # This means that you can't set it as your groupmanager...  # It is highly recommended not to change this..preferred-economy: "rankup\economy\PocketMoney"..  # Set your preferred economy..  # rankup\economy\Economy and rankup\economy\PocketMoney are available by default..  # Set to false for autoloading (only offcially supported economys will autoload)...preferred-groupmanager: "rankup\permission\RankUpDoesGroups"..  # Set your preferred group manager..  # rankup\permission\RankUpDoesGroups and rankup\permission\PurePerms are available...  # RankUpDoesGroups is a super barebones alternative for users who don't use PurePerms....ranks: # Define all your ranks here..  A: 0..  B: 60000..  C: 225000..  D: 750000..  E: 1005000..  F: 1305000..  G: 1505000..  H: 1705000..  I: 1900000..  J: 2090000..  K: 2200000..  L: 2500000..  M: 2750000..  "N": 3100000..  O: 3500000..  P: 4000000..  Q: 4500000..  R: 5000000..  S: 5500000..  T: 6000000..  U: 6500000..  V: 7000000..  W: 7500000..  X: 8000000..  "Y": 9000000..  Z: 10000000..lang:..  ranked-up-paid: ".0..bYou Have Successfully Been .6Ranked Up .bTo.e %s"..  ranked-up-free: ".0..bYou Have Successfully Been .6Ranked Up .bTo.e %s"..  group-add-error-paid: ".0..cFailed To RankUp. Refunded Price."..  group-add-error-free: ".0..cFailed To RankUp. Try Again Later."..  need-more-money-1: ".0..cLooks Like You Don't Have Enough Money."..  need-more-money-2: ".0..eYou Need.a %s .eTo .6RankUP."..  missing-economy: ".0..cCan't Purchase Now."..  have-max-rank: ".0..cYou Have The Maximum Rank."..  command-permission-error: ".0..cYou Don't Have Permission To .6RankUp.")
[16:18:35] [Server thread/DEBUG]: #2 src/pocketmine/utils/Config(86): pocketmine\utils\Config->load(string C:\Users\gaget\Desktop\PocketMine-MP\plugins\RankUp/config.yml, integer -1, array Array())
[16:18:35] [Server thread/DEBUG]: #3 src/pocketmine/plugin/PluginBase(264): pocketmine\utils\Config->__construct(string C:\Users\gaget\Desktop\PocketMine-MP\plugins\RankUp/config.yml)
[16:18:35] [Server thread/DEBUG]: #4 src/pocketmine/plugin/PluginBase(244): pocketmine\plugin\PluginBase->reloadConfig()
[16:18:35] [Server thread/DEBUG]: #5 RankUp.phar/src/rankup/RankUp(37): pocketmine\plugin\PluginBase->getConfig()
[16:18:35] [Server thread/DEBUG]: #6 src/pocketmine/plugin/PluginBase(90): rankup\RankUp->onEnable()
[16:18:35] [Server thread/DEBUG]: #7 src/pocketmine/plugin/PharPluginLoader(122): pocketmine\plugin\PluginBase->setEnabled(boolean 1)
[16:18:35] [Server thread/DEBUG]: #8 src/pocketmine/plugin/PluginManager(573): pocketmine\plugin\PharPluginLoader->enablePlugin(rankup\RankUp object)
[16:18:35] [Server thread/DEBUG]: #9 src/pocketmine/Server(1919): pocketmine\plugin\PluginManager->enablePlugin(rankup\RankUp object)
[16:18:35] [Server thread/DEBUG]: #10 src/pocketmine/Server(1905): pocketmine\Server->enablePlugin(rankup\RankUp object)
[16:18:35] [Server thread/DEBUG]: #11 src/pocketmine/Server(1988): pocketmine\Server->enablePlugins(integer 1)
[16:18:35] [Server thread/DEBUG]: #12 src/pocketmine/command/defaults/ReloadCommand(49): pocketmine\Server->reload()
[16:18:35] [Server thread/DEBUG]: #13 src/pocketmine/command/SimpleCommandMap(258): pocketmine\command\defaults\ReloadCommand->execute(pocketmine\command\ConsoleCommandSender object, string reload, array Array())
[16:18:35] [Server thread/DEBUG]: #14 src/pocketmine/Server(1946): pocketmine\command\SimpleCommandMap->dispatch(pocketmine\command\ConsoleCommandSender object, string reload)
[16:18:35] [Server thread/DEBUG]: #15 src/pocketmine/Server(1931): pocketmine\Server->dispatchCommand(pocketmine\command\ConsoleCommandSender object, string reload)
[16:18:35] [Server thread/DEBUG]: #16 src/pocketmine/Server(2492): pocketmine\Server->checkConsole()
[16:18:35] [Server thread/DEBUG]: #17 src/pocketmine/Server(2243): pocketmine\Server->tick()
[16:18:35] [Server thread/DEBUG]: #18 src/pocketmine/Server(2119): pocketmine\Server->tickProcessor()
[16:18:35] [Server thread/DEBUG]: #19 src/pocketmine/Server(1701): pocketmine\Server->start()
[16:18:35] [Server thread/DEBUG]: #20 src/pocketmine/PocketMine(305): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string C:\Users\gaget\Desktop\PocketMine-MP, string C:\Users\gaget\Desktop\PocketMine-MP\plugins)
[16:18:35] [Server thread/DEBUG]: #21 C:/Users/gaget/Desktop/PocketMine-MP/PocketMine-MP.phar(1): require(string phar://C:/Users/gaget/Desktop/PocketMine-MP/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
[16:18:35] [Server thread/INFO]: Disabling RankUp v0.4.0

Ok

Did you edit the groups.yml?

@GageGamesHD are you copying the Raw paste data or the one above it?

Raw paste data

I used the exact same one everything works fine. And using notepad is the cause

What should I use?

Use either notepad++, sublime text, or any other php editor. notepad is not made for php.

Now repaste it?

yea

I think it worked. No error message but it says loaded 4 ranks. Let me see if it worked or not.

No the config is changed but it just has the default ranks and settings

Oh one sec

Yeah your config and groups are pasted in but it loads the default config and groups

not for me

Are you sure you are saving the config? CTRL + S?

Oh I had the wrong config. I had it set to rankupdoesperms to the wrong plugin. Thank you so much for helping me! Have a great day!

Okay great

That was the only thing stopping me from fixing my server! I really appreciate for helping me for how long this took!


Null Safety

I was trying to use the following
flutter_sequence_animation: "^4.0.0-nullsafety"
however it fails - seems the update is not published.
Do you plan to publish ?

I am also still waiting for the null-safety. When are you going to publish it?

This project seems to be dead. Time to move on to something else

It's published now

Thanks a ton

Possible to remove the latest from "PreRelease"?


[BUG] The TKN amount overlaps the withdraw button when there are many digits

Describe the bug
The TKN amount overlaps the withdraw button when there are many digits
To Reproduce

Use wallet - 0x6d1005c19c5074003ca139af2a94a9aab565dacb
Go to portfolio
Withdraw all SHIBGF tokens
Look at the pending withdrawal

Expected behavior
The number is displayed without overlapping with the button
Screenshots

@Yanivshechter1 how do you suggest we address this, design wise?

Let's use abbreviation M for numbers with over 7 digits and when mouse hovering show the full number


Suggestion: Remove "master" branch

Just a small suggestion; remove the master branch and keep the gh-pages as default. That way no need to keep them synced as everything goes direct to being published on Github pages. :)

Master isnt needed? I didnt know that. So GH-Pages will still push content based on the CNAME file?

@rocketpastsix So just did a bit more digging and looks like yours is a "User Page" and therefore builds from the master branch. In which case the gh-pages branch is the one you don't need. Also see docs on CNAME adding.


Error executing command run: SSL connect error

I've recently started checking out D and I've been trying to build using dub so it handles the dependencies but I often get the error: "Error executing command run: SSL connect error on handle 23E0048" when I'm trying out different dependencies. My machine is Windows 8.1 and dub is version 0.9.22 (DUB version 0.9.22, built on Sep 22 2014). I haven't played with this long enough to know if it's always on the same dependencies or if just randomly happens.
Part of what it shows when I use "dub -v" is:
Fetching temple 0.7.3 (getting selected version)...
Acquiring package zip file
Found download URL: 'http://code.dlang.org/packages/temple/0.7.3.zip'
Package temple not found for registry at http://code.dlang.org/: SSL connect error on handle 2570048
Full exception: std.net.curl.CurlException@std\net\curl.d(3504): SSL connect error on handle 2460048
My dependencies section looks like:
"dependencies": {
"vibe-d": "~>0.7.19",
"temple": "~>0.7.3",
},
Dub got vibe.d a week ago and built my project just fine, but it can't get temple today. I tried other dependencies a couple weeks ago in a different project and same SSL error. On a different day I did get dependencies but I don't remember if they were ones I previously couldn't get.
I searched for SSL here and didn't see anything about this. Any ideas? Does this use an external curl.exe by any chance? Maybe mine's bad.

Hm, DUB uses libcurl internally (not the command line version), but I'd suspect that the error lies somewhere else (maybe an issue with the installed root certificates?). It's a bit unfortunate that the error message doesn't include the error code, though. So it could still be worth to try the command line version of curl with the same URL to see if it throws the same error and possibly outputs more information.

Here's actually the entire exception:
Full exception: std.net.curl.CurlException@std\net\curl.d(3504): SSL connect eror on handle 2400048
0x004C01B2 in pure @safe bool std.exception.enforceEx!(std.net.curl.CurlException).enforceEx!(bool).enforceEx(bool, lazy immutable(char)[], immutable(char)[], uint) at C:\D\dmd2\windows\bin\..\..\src\phobos\std\exception.d(527)
0x004F85FA in void std.net.curl.Curl._check(int)0x0045008B in void dub.internal.utils.download(immutable(char)[], immutable(char)[]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\internal\utils.d(118)
0x00450198 in void dub.internal.utils.download(dub.internal.vibecompat.inet.url.URL, dub.internal.vibecompat.inet.path.Path) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\internal\utils.d(130)
0x0041FF6A in void dub.packagesupplier.RegistryPackageSupplier.retrievePackage(dub.internal.vibecompat.inet.path.Path, immutable(char)[], dub.dependency.Dependency, bool) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\packagesupplier.d(135)
0x00413750 in dub.package_.Package dub.dub.Dub.fetch(immutable(char)[], const(dub.dependency.Dependency), dub.project.PlacementLocation, dub.dub.FetchOptions, immutable(char)[]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\dub.d(473)
0x004120C7 in void dub.dub.Dub.upgrade(dub.dub.UpgradeOptions).int __foreachbody10(ref immutable(char)[], ref dub.dependency.Dependency) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\dub.d(265)
0x004CE98D in _aaApply20x00411BD0 in void dub.dub.Dub.upgrade(dub.dub.UpgradeOptions) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\dub.d(269)
0x004361A2 in void std.stdio.File.LockingTextWriter.put!(char).put(char) at C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1567)
0x004CCD33 in void std.stdio.File.flush()
0x0046A827 in nothrow void dub.internal.vibecompat.core.log.log!().log(dub.internal.vibecompat.core.log.LogLevel, immutable(char)[]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\internal\vibecompat\core\log.d(80)
0x0046A87C in nothrow void dub.internal.vibecompat.core.log.logDiagnostic!().logDiagnostic(immutable(char)[]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\internal\vibecompat\core\log.d(41)
0x0040445F in void dub.commandline.PackageBuildCommand.setupPackage(dub.dub.Dub, immutable(char)[]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\commandline.d(403)
0x00404B6D in int dub.commandline.GenerateCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\commandline.d(515)
0x004051B3 in int dub.commandline.BuildCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\commandline.d(583)
0x0040532B in int dub.commandline.RunCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\commandline.d(611)
0x004036C8 in int dub.commandline.runDubCommandLine(immutable(char)[][]) at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\dub\commandline.d(197)
0x00402106 in _Dmain at C:\Users\build\AppData\Roaming\dub-ci-workspace\current\dub\source\app.d(16)
0x004C9E80 in void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll().void __lambda1()
0x004C9E53 in void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()
0x004C9D6B in _d_run_main
0x004028AC in main
0x00517BC5 in mainCRTStartup
0x7721919F in BaseThreadInitThunk
0x779EB5AF in RtlInitializeExceptionChain
0x779EB57A in RtlInitializeExceptionChain


Please include the compact view as a standard feature of Windows.

What's the Problem?
I am currently working with 3DCG software. The number of image files to be output is lightly over 1000. And to manage the scenes, I use a large number of directories to separate the classification.
The standard Windows Explorer has a feature called Compact View, which allows you to narrow the width between lines. This is a very useful feature for people who manage a large number of files because it allows more items to be displayed on the screen.
However, this feature is not available in Files. Due to the large width between lines and the small number of items that can be displayed at a time, unnecessary scrolling occurs, which is so troubling that I cannot use it as my main explorer.
Solution/Idea
Provide an option to narrow the width between lines.
(Compact view function of windows)
Alternatives
Please provide an option to narrow the line spacing.
Priorities

Capability
Priority

This proposal will allow developers to accomplish W
Must

This proposal will allow end users to accomplish X
Should

This proposal will allow developers to accomplish Y
Could

This proposal will allow end users to accomplish Z
Won't

Files Version
<IP_ADDRESS>
Windows Version
Windows 11 Insider Preview 22543.1000 (rs_prerelease)
Comments

Tracked in #1940


Difficulty with parametric Associatives

This was reported in https://github.com/jonathanstowe/JSON-Class/issues/3
It  seems that a class such as:
use JSON::Unmarshal;

class C {
	has Str %.bla{subset :: of Str where any("ble", "blob")}
};

unmarshal( ｢{"bla": {"ble": "bli"}}｣, C);

Gives rise to:
No appropriate parametric role variant available for 'Associative'
  in sub _unmarshal at /home/jonathan/.rakudobrew/moar-nom/install/share/perl6/site/sources/BD58585C8BB103CC821AB89EFD8D30DA4FB8FDF9 (JSON::Unmarshal) line 127
  in block  at /home/jonathan/.rakudobrew/moar-nom/install/share/perl6/site/sources/BD58585C8BB103CC821AB89EFD8D30DA4FB8FDF9 (JSON::Unmarshal) line 108
  in sub _unmarshal at /home/jonathan/.rakudobrew/moar-nom/install/share/perl6/site/sources/BD58585C8BB103CC821AB89EFD8D30DA4FB8FDF9 (JSON::Unmarshal) line 92
  in sub unmarshal at /home/jonathan/.rakudobrew/moar-nom/install/share/perl6/site/sources/BD58585C8BB103CC821AB89EFD8D30DA4FB8FDF9 (JSON::Unmarshal) line 157
  in block <unit> at jc line 7

I will investigate and try and fix.

https://github.com/rakudo/rakudo/pull/1048 will fix

The rakudo patch was applied and fixed this.
Have PRd a test for this behaviour


TSC Agenda 2022/07/05

TSC Meeting Details
Date/time: 2022-07-05 @ 8am Pacific (Timezone Converter)
Location: Discord tac-tsc voice channel

Request from dg211 to add new feature labels:
feature/cloth
feature/destruction
From Royal - Are there any other feature tags that would make sense overall?


How to modularize a single resource under single project?

Saw this project while learning AWS Lamda and it's perfect timing! Correct me if I'm wrong but Spring Cloud Function is designed to do single function.  If this is the case then it may get really annoying really fast.  For example, I want to create a project called UserFunction that has CRUD operation powered by Spring Data.  So, do I really need to create 4 different project to support User CRUD operation?  I can easily imagine to have 20~30 projects to maintain 10 REST API point.  Trying to deploy that to dev, staging, prod can be a bit nightmarish..in my opinion.  Please correct me if I'm completely wrong! Like to know how others would use this library.

Thanks for the response! I think I may try monolithic pattern w/ LAZY autowire.  This way the cold start up should be relatively fast and only load up the beans that's needed to process the request.  I think that's better than trying to manage 20~40 lambda projects, 80~100 AWS API endpoints (with 3 env dev/staging/prod)


Fix the issue of fire-base new version at time of set-up the project in local machine.

We are getting issue after running "npm i " and "npm run start" command as firebase has updated new version.

@Abhishek-kumar09  I want to work on this issue.


Reverted back to ADD the manageiq sources

The are reason I think we should use ADD for local builds is the promise around being able to deliver unmerged patches OOTB, developers can edit the Dockerfile but they usually don't.
Signed-off-by: Barak Azulay<EMAIL_ADDRESS>

@bdunne @fbladilo @Fryguy

@bazulay Why would you want to build containers to deliver unmerged patches?  Who would they be delivered to?
I see more disadvantages than advantages to this approach.

I thought @bdunne laid out the rationale pretty well here: https://github.com/ManageIQ/manageiq/pull/8452#discussion_r63218701

I thought @bdunne laid out the rationale pretty well here: #8452 (comment)

@Fryguy @bdunne in regard to what was discussed on #8452:

@fbladilo The nice thing about using the tarball (especially for the external repos) is that it does not include the .git directory, so it will save us some space.
Also nice is that you don't need to remember to do a fresh clone of the source before building to avoid including things like your own local config settings or log files (oops) in the image that you intend to push to docker hub.

To save space there's the .dockerignore file which allows you to blacklist what you don't want to push, .git was already there (so it's weird that you're mentioning it, it may require investigation), but it makes sense to add logs and config as well to avoid pushing sensible files.
.dockerignore is mentioned in the first page of the Dockerfile manual.

My understanding of the use cases, and please correct me if I'm missing something, is:

The majority of builds will be automated branch builds on docker hub (no user involved once #8132 is resolved)

Indeed building on dockerhub is preferable, which means that the comments about dangling files should be of minor interest (but as explained above .dockerignore handles that).
I am missing the point of this argument that should be in favor or curling the sources.

Very rarely developers will try to build the container with locally modified files to troubleshoot a container build issue, in which case, uncommenting the ADD and commenting the RUN probably isn't a big inconvenience.

The same could be for the curl command: it can be uncommented easily (in case you're really concerned of pushing private files by mistake), and the ADD command works perfectly fine on dockerhub  because it is the best practice and it is used consistently across all other projects (just to mention one OpenShift where they're using COPY which is similar to ADD)
I don't know on what basis it is claimed that "very rarely developers will try to build the container with locally modified files". Docker images were invented indeed for this purpose: allow developers to make builds out of their work and get the exact same results that later will be delivered in production.
Anyway, even if developers were making builds rarely (which is not the case), why should we prefer a solution that is preventing this use-case instead of another (ADD) that covers it all?
All and all I only see disadvantages in using RUN curl, and no benefits over ADD.

@bazulay can you update the .dockerignore file with logs and config? @Fryguy @bdunne is there anything else that you think should be excluded? Maybe tmp and vendor/assets/bower_components?

@simon3z  Good point
@Fryguy @bdunne  what files do you think needs to be removed from the config directory ?
about the log directory than everything in it should be omitted on build

@Fryguy @bdunne
can you please reply on the questions in previous comment ?

@bazulay Anything that is not checked in should probably not be included.  This applies to the entire repo, not just the config directory.  That's why I am advocating for the clean checkout rather than ADD.

@bdunne
while I understand your approach may be considered cleaner, it actually goes against the standard developer use case, and if we want developers to use it, than we should take a different approach that ease up developer's life.
Downstream is a different story.
Thanks for your response.

@bazulay This PR doesn't update the build documentation for a tag build.  If this change were to be merged, we would need clear steps to make a tag build since it would no longer be a single command.

@bazulay @Fryguy @bdunne @simaishi @fbladilo I think we should default to the automated build, and leave the commented code for developer use case.

@bazulay @Fryguy @bdunne @simaishi @fbladilo I think we should default to the automated build, and leave the commented code for developer use case.

@chessbyte as explained in the previous comment, ADD (what this patch introduces) works both for automated build and developer use case and on top of that is also the best practice.
On the contrary what you have now on the code is (ironically) almost more developer oriented: for the fear of pushing unwanted files (which in automated builds in impossible).

@simon3z @bazulay @Fryguy @bdunne @simaishi @fbladilo let's discuss f2f at ManageIQ Summit next week, as there seems to be controversy on this PR.  I would like to let both sides discuss pros/cons to better understand why everyone agrees on making builds easier, but disagree on the content of this PR.

@bdunne @Fryguy
I updated also the README file, please review.

:+1: I think we're good now.

@bazulay @fbladilo @Fryguy @bdunne is there a BZ for this?

@chessbyte  No


Face Swap error - uncaughtException: Error: Unexpected server response: 403

the code that reproduces this issue or a replay of the bug
const client = new Midjourney({
ServerId: process.env.SERVER_ID,
ChannelId: process.env.CHANNEL_ID,
SalaiToken: process.env.SALAI_TOKEN,
Debug: true,
HuggingFaceToken: process.env.HUGGINGFACE_TOKEN,
});
await client.Connect();
const source = "https://cdn.discordapp.com/attachments/1107965981839605792/1129362418775113789/3829c5d7-3e7e-473c-9c7b-b858e3ec97bc.jpeg";
const target = "https://cdn.discordapp.com/attachments/1108587422389899304/1129321837042602016/guapitu006_a_girls_face_with_david_bowies_thunderbolt_71ee5899-bd45-4fc4-8c9d-92f19ddb0a03.png";
const info = await client.FaceSwap(target, source);
Describe the bug
Describe the bug
When executing the method FaceSwap, it returns the following message
error - node_modules/ws/lib/websocket.js (896:6) @ abortHandshake
error - uncaughtException: Error: Unexpected server response: 403
at ClientRequest.eval (webpack-internal:///(sc_server)/./node_modules/ws/lib/websocket.js:706:13)
at ClientRequest.emit (node:events:511:28)
at HTTPParser.parserOnIncomingClient (node:_http_client:693:27)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)
at TLSSocket.socketOnData (node:_http_client:535:22)
at TLSSocket.emit (node:events:511:28)
at addChunk (node:internal/streams/readable:332:12)
at readableAddChunk (node:internal/streams/readable:305:9)
at Readable.push (node:internal/streams/readable:242:10)
at TLSWrap.onStreamRead (node:internal/stream_base_commons:190:23)
at TLSWrap.callbackTrampoline (node:internal/async_hooks:130:17)
null
Expected behavior
It should return the uri inside an object
Screenshots
If applicable, add screenshots to help explain your problem.
error log
error - node_modules/ws/lib/websocket.js (896:6) @ abortHandshake
error - uncaughtException: Error: Unexpected server response: 403
at ClientRequest.eval (webpack-internal:///(sc_server)/./node_modules/ws/lib/websocket.js:706:13)
at ClientRequest.emit (node:events:511:28)
at HTTPParser.parserOnIncomingClient (node:_http_client:693:27)
at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)
at TLSSocket.socketOnData (node:_http_client:535:22)
at TLSSocket.emit (node:events:511:28)
at addChunk (node:internal/streams/readable:332:12)
at readableAddChunk (node:internal/streams/readable:305:9)
at Readable.push (node:internal/streams/readable:242:10)
at TLSWrap.onStreamRead (node:internal/stream_base_commons:190:23)
at TLSWrap.callbackTrampoline (node:internal/async_hooks:130:17)

any change?


requestAnimationFrame ($$rAF) backend

Would be nice to optionally support a requestAnimationFrame backend. requestAnimationFrame has the advantage of being lighter on resource usage on out of focus tabs at the cost of longer timeout.
I can give it a try implementing that but i am really an angular novice.
See:
https://github.com/angular/angular.js/issues/6148#issuecomment-37900337

I've given it a stab but it's not working properly, the function is called too often and hang the tab:
https://github.com/xrmx/angular-poller/tree/raf


Class cast exception during improper exception handling of Zuul Filter

Bug Report
spring-cloud-netflix-zuul-2.0.0-RELEASE
org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter tests for the type of the throwable cause, but then casts a different object and fails.  This screen snapshot show the code in error:

and a debugging snapshot showing a test where the cast is about to fail.

Duplicate of #3033


Updates specific to Jurnal Kawistara

[ ] Create page
[ ] Orange area (or whatever alternative is decided upon)
[ ] Add papers
[ ] Share on socmed

Paper is under review


make filename an owned type

I'm finding is a bit hard to use this library when I need to parse more than a single zip given a single &'static str value. This library seems to work great but only the the case were you have a hard coded filename. As soon as you try to read input from a user interface you run into lifetime errors. not being able to create a &'static str from owned String types.
This would go away if filename were and owned type. Though I could be missing something. If it is possible today can you share some examples were collecting a list of paths of even a single path from user input is possible?

There's no actual explicit 'static lifetime, but likely an implicit one due to being placed on the heap (Arc/Box). Heck, even my own example for the read::fs module puts it on the heap.
So given that, and the fact that the whole point of read::fs is to be parallel, making it an owned string is really the only option I can see as well. I could use a Cow, but to make that work, we'd have to make the caller pass a pre-constructed Cow and decide whether it be borrowed or owned. That doesn't feel like a good API design to me.
I'll get this done when I next go to work on this crate. 👍

There's no actual explicit 'static lifetime, but likely an implicit one due to being placed on the heap (Arc/Box). Heck, even my own example for the read::fs module puts it on the heap.
So given that, and the fact that the whole point of read::fs is to be parallel, making it an owned string is really the only option I can see as well. I could use a Cow, but to make that work, we'd have to make the caller pass a pre-constructed Cow and decide whether it be borrowed or owned. That doesn't feel like a good API design to me.
I'll get this done when I next go to work on this crate. 👍

Thanks. For what it’s worth it’s less the lifetime constraints of this crate that it is the async ecosystem.
Following the example code functions like tokio::spawn require static lifetimes
https://github.com/Majored/rs-async-zip/blob/eae278980fd1663533653035eb18ede865beda97/examples/fs_parallel_extract.rs#L24

Thanks. For what it’s worth it’s less the lifetime constraints of this crate that it is the async ecosystem.
Following the example code functions like tokio::spawn require static lifetimes
https://github.com/Majored/rs-async-zip/blob/eae278980fd1663533653035eb18ede865beda97/examples/fs_parallel_extract.rs#L24

Actually, coming back to this, I'm going to make it an owned string as you suggest.
No point in adding the complexity with Cow & two different constructors for the sake of a single allocation.


docs: add user-defined flavour example for turning off dynamic linking

See #534 and https://ghc.haskell.org/trac/ghc/ticket/10536
Turns out most of the content I was thinking of was already explained, so I just kept it simple.
cc @snowleopard @izgzhen

@alpmestan Thank you! Merged.


Add DevOps KVM node stat service - [closed]

In GitLab by @wknet123 on Sep 18, 2018, 04:17
Merges dev-dashboard-api -> dev

In GitLab by @wknet123 on Nov 13, 2019, 11:22
The test coverage for backend is   , check  consolse log

In GitLab by @wknet123 on Nov 13, 2019, 11:22
closed


Correction of ascending node crossing time  (ANX time)

It has came into our attention that some of Sentinel-1 data has noticeable error in ANX time, which can cause incorrect computation of burst ID. More details about the issue can be found in #117.
This PR is to fix the issue by calculating the ANX time from orbit data. The screenshot below is the RTC outputs (VV polarization) before and after the ANX time correction.

Figure 1. Before the correction
.

Figure 2. After the correction
Information about the test dataset above:
On and around Grenada (North of Venezuela)
S1B_IW_SLC__1SDV_20211014T095918_20211014T095945_029130_0379DF_B302.zip
S1B_OPER_AUX_POEORB_OPOD_20211103T112606_V20211013T225942_20211015T005942.EOF

@seongsujeong would you be able to pull in the unit test from here? https://github.com/opera-adt/s1-reader/pull/120/files#diff-9eb0a8ba9a467c950451e7fe6228094f7511aff2d0fe6a423c0471d7c8b3de3f (i'll close that PR now)

Sorry for the delay. The updates in the ANX time detection has discovered some cases where the ANX time is one T_orb behind of what it should be (i.e. ANX time in the previous orbit). There were 12k - 13k frames per year, and S1A seems to have more cases than S1B.
The existing code in s1_burst_id.py below seems to take of such cases already (nice work @scottstanie ), but I'm testing the new code in this PR to make sure.
https://github.com/opera-adt/s1-reader/blob/ed16185338c879b59518ca26936751a1baffd621/src/s1reader/s1_burst_id.py#L90-L98

@hfattahi  @scottstanie  @gshiroma @vbrancat Opening the discussion here for more open discussion.
There is an edge case that current PR about the ascending node crossing (ANX) time causes an unexpected result.
This issue took place about 50 times over ~7000 tested SAFE frames whose [sensing time - ANX time] (i.e. azimuthAnxTime) is longer than the orbit period (T_orb, ~98 .7minutes).
Below are the information about the example cases:
SAFE: S1A_IW_SLC__1SDV_20200102T111719_20200102T111747_030620_038227_9FE9
ORBIT: S1A_OPER_AUX_POEORB_OPOD_20210316T184157_V20200101T225942_20200103T005942.EOF
Symptom:
The reader before this PR gives correct burst IDs which was confirmed by the comparison between the ESA burst map.
In contrast, the current fix in this PR ended up with incorrect burst IDs. For example, one of the bursts t099_210499_iw1 in the SAFE frame above has resulted in t098_208351_iw1 with this PR. Below is the full list of burst IDs from the main branch, and from this PR
from main branch (in agreement with burst map):

t099_210499_iw1, t099_210500_iw1, t099_210501_iw1, t099_210502_iw1, t099_210503_iw1, t099_210504_iw1, t099_210505_iw1, t099_210506_iw1, t099_210507_iw1, t099_210498_iw2, t099_210499_iw2, t099_210500_iw2, t099_210501_iw2, t099_210502_iw2, t099_210503_iw2, t099_210504_iw2, t099_210505_iw2, t099_210506_iw2, t099_210507_iw2, t099_210498_iw3, t099_210499_iw3, t099_210500_iw3, t099_210501_iw3, t099_210502_iw3, t099_210503_iw3, t099_210504_iw3, t099_210505_iw3, t099_210506_iw3

from this PR (NOT in agreement with burst map):

t098_208351_iw1, t098_208352_iw1, t098_208353_iw1, t098_208354_iw1, t098_208355_iw1, t098_208356_iw1, t098_208357_iw1, t098_208358_iw1, t098_208359_iw1, t098_208350_iw2, t098_208351_iw2, t098_208352_iw2, t098_208353_iw2, t098_208354_iw2, t098_208355_iw2, t098_208356_iw2, t098_208357_iw2, t098_208358_iw2, t098_208359_iw2, t098_208350_iw3, t098_208351_iw3, t098_208352_iw3, t098_208353_iw3, t098_208354_iw3, t098_208355_iw3, t098_208356_iw3, t098_208357_iw3, t098_208358_iw3

Cause:
manifest.safe of the SAFE frame tells that the start / stop relative orbit of the frame is 98 and 99 respectively. The absolute orbit in the manifest was 30620 and 30621respectively.
However, in fact, the frame did not have any burst from track 98.

Big red box with empty filling is the coverage of the SAFE frame above. All bursts in the frame had track number `99`.
The smaller Red box right below the SAFE frame was the last burst in track 98 Its burst ID is shown in the right panel in the screenshot.
Red solid line in the below of those boxes is equator.
The code s1_burst_id.py already have the correction implemented for this case here, but the correction will be activated only if the azimuthAnxTime is longer than T_orb. This PR detects 2-3 ANX events before sensing time, calculates the crossing times, and pick the one closest one (but no later than) the sensing time. Therefore the ANX time is always less than T_orb.
To summarize in terms of the correction routine in s1_burst_id.py:

Making use of ANX time close to the sensing time was not able to exploit the correction logic implemented in s1_burst_id.py, so it resulted in incorrect calculations in both track numbers and ESA burst ID
The relative start / end relative track numbers are different. This causes the burst ID calculation to assume that ANX crossing has taken place in the data.
Incorrect track number was caused by choosing incorrect track number which is extracted from manifest. Having longer azimuthAnxTime than T_orb would have resulted in choosing the end relative orbit number, which is correct.
Incorrect ESA burst ID was caused because the calculation assumes ANX crossing in the data, (due to 2.) it subtracts T_orb. This causes incorrect computation result for ESA burst ID.

Solution in plan:

I think the logic in s1_burst_id.py is very robust, based on what we have seen when we were using annotation ANX time. This function was intensively tested when we’ve been using it for long time. Therefore I’m not so keen into changing the logics in the existing code.
Therefore I would like to change the logic of choosing the orbit ANX time as being close to the annotation ANX time. Currently we are choosing the orbit ANX time closest to the sensing time (i.e. current implementation in the PR).

@scottstanie The unit test for the ANX time computation is implemented into test_orbit.py. CircleCI as well as local pytest were successful.
Any suggestion about the code is appreciated. Thank you :)

@scottstanie Can you check if @gshiroma is a member of this organization isce-framework? I see his approval in this PR, but the check mask looks gray rather than green.


Console lines not ordered correctly on completed jobs

We have some jobs with quite a few console l entries. But when I open a completed job, the lines seem to be more or less randomly mingled together, and not be in cronological order.
We use the Sql storage, and it seems that the order we see comes from the GetRangeFromSet query, which has no ordering specified. If I run that sql manually, I get the same random ordering, probably based on however the Sql server decided to store the rows.
Is it possible to sort the lines before outputting them to the dashboard?

We're running Hangfire.SqlServer 1.6.24, and it looks like they have changed that query in the later versions to sort correctly, so I will look into if we can upgrade.
Still, it might be useful to sort explicitly, if the GetRangeFromSet contract does not ensure sorting.


As a Project Manager, I would like the effective version of the haddock documentation to be posted to the web site so that users can easily refer to it.

This could be implemented using travis integration.

Using the git-pages feature of git hub, I can store the pages to the gh-pages branch of the repository and they will be automatically hosted at github.io.

Closed upon approval of pull request


Issue#75 Write an ADR (008) about naming convention

Name: dev-rel-docs/adr/008-naming-convention.md
Start point: dev-rel-docs/Naming-Conventions/NAMING-RESOURCES.md at main · ai-cfia/dev-rel-docs (github.com)

I took the information we obtained at the starting point and added a naming convention for the database. Maybe we can add something about GitHub issue and pull request?

I think it can be a good idea to add:

GitHub issue
GitHub pull request
Python script
Azure model
Azure engine

lgtm

@ThomasCardin expecting a bit more input on this ADR as you need to develop additional naming conventions also for our IaC.

@JolanThomassin this PR is merged with one unresolved comment.

(I apparently had pending requests that were not submitted before it is merged)


Table Font / Alignment

Is there a way to set table font size and alignment to an entire table?  Similar to conditional formatting below....just no conditions.
New-TableCondition:  -Name 'HostName' -ComparisonType string -Operator like -Value "*" -Alignment center -FontSize 16 -Row

You can use New-TableContent. It's described in this article: https://evotec.xyz/working-with-html-in-powershell-just-got-better/
However, the speed impact to format entire table would be huge because what it does it goes thru every single field/column and changes it and this will impact generation speed for big tables. For small stuff doable.
I think I need to fix it in a more general way (like I have for Email), but first need to fix a bug: https://github.com/EvotecIT/PSWriteHTML/issues/118
But general approach would be to set style for whole table rather than going row by row, field by field (unless you want that).

Style for the whole table is what i was looking for, but conditional works too!
Great module...Thanks


Missing translation ( Ubersicht )

Describe the bug
@naltatis  Have noticed that "Ubersicht" translation in sessions is missing, looks like all the languages.

Steps to reproduce

Configuration details
-

Log details
-

What type of operating system are you running?
Linux
Nightly build

[X] I have verified that the issue is reproducible with the latest nightly build

Version
No response

Thanks for spotting.


Switch to createContext

Replace react-redux bindings with 16.3 context API and uninstall react-redux

Either something is very right or very right. react-redux was replaced with createContext and an HOC (2KB) with similar API

[x] performance is holding
[x] considerably smaller bundle size (74KB was react-redux, 13KB min)


update to 1.30.1

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Corrected SQ+ to open source

Hey Ari, can you send me the link to the source code?

https://bitbucket.org/ariell/marinedb


feat: get branch name without calling git

Getting the branch name previously required calling git branch --show-current.
This PR addresses that by parsing .git/HEAD directly. Further testing is required to observe how this new change behaves when the user is in a detached HEAD. I'll report back!
EDIT: Detached HEAD successfully shows the entire commit hash, I'll limit it to the first 7 characters.
EDIT 2: Done :smile:

Good evening and thank you very much for contributing to archimede! I am happy to test the changes! Could you please explain why it is better to obtain the current branch by .git/HEAD rather than git branch --show-current: is it because it address corner cases (like detached HEAD, for instance, that I had not considered) or perhaps to avoid calls to exec.Command?

or perhaps to avoid calls to exec.Command?

This. I don't know how fast Go is at calling external commands, but I presume it can't be faster than reading a file.

Upon further research, it appears that there is a Go implementation of Git which we can use to the do all the heavy lifting for us, eliminating the need for exec.Command. What do you think?

Upon further research, it appears that there is a Go implementation of Git which we can use to the do all the heavy lifting for us, eliminating the need for exec.Command. What do you think?

I am having a look and it seems that it should address quite well the cases that are present in the current code: in particular this should fetch the reference that HEAD is pointing to.  Another use case could be to directly report whether we are in a git repo here without having to again invoke exec.Command (though I have not found the corresponding bit in the go-git yet).

This. I don't know how fast Go is at calling external commands, but I presume it can't be faster than reading a file.

In reference to the above I have tested the difference between both branches with hyperfine, with the following results:
# your new branch
Benchmark 1: archimede
  Time (mean ± σ):      98.2 ms ±   1.2 ms    [User: 43.5 ms, System: 50.5 ms]
  Range (min … max):    96.2 ms … 101.8 ms    29 runs

# the current master branch
Benchmark 1: archimede
  Time (mean ± σ):     130.5 ms ±   1.4 ms    [User: 57.1 ms, System: 64.2 ms]
  Range (min … max):   128.4 ms … 134.0 ms    22 runs

so avoiding calls to exec.Command does indeed improve execution time. Probably using a native solution for isGitStatus should bring this down even further.

I forgot about the refs!
So should we walk the directories of ref:, component by component, and only report back the last element (the branch name) if it really exists?

I forgot about the refs!

In what context would it be useful to check .git/refs, for the cases at hand?

with our own implementation, go-git's (high-level) or git2go's (low-level).

I would approach this step by step: namely the current solution (your branch) already offers good performance enhancement (with the trick of reading the .git/HEAD), we could go ahead and merge this already and then with ease look into which one between go-gitandgit2go` makes the whole experience smoother.
Any equivalent trick to circumvent exec.Command("sh", "-c", "git rev-parse --is-inside-work-tree 2>/dev/null").Output()? Would in this case checking for the mere existence of the .git folder suffice (though this is more or less what git rev-parse does, namely looking for commit id of the current head and if not existing throwing an error)?

we could go ahead and merge this already and then with ease look into which one between go-git and git2go makes the whole experience smoother.

Sure, as you like!

Would in this case checking for the mere existence of the .git folder suffice

This won't suffice. git rev-parse --is-inside-work-tree 2>/dev/null may also fail in cases where the repository was initiated with the --bare option.

Unfortunately, I can't go get github.com/libgit2/git2go/v33 because it results in:
error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0"

My libgit2 version is 1:1.4.2, so that's why. (I'm going to have to wait until they bump libgit2)
I see no mentions of the libgit2 version being used by go-git. Ugh!.

I will have a look at git2go myself too, these days, to see how it can help. To summarise what we discussed so far the problems we need to address to approve the PR are:

check if we are in a git repository at all in the first place
correctly parse branch name from any location within the working directory (even sub-folders)
correctly address the case of bare repository

ideally avoiding calls to exec.Command, rather either using high-level libraries (go-git, git2go) or by looking up .git folders and files.
status quo

the master branch uses exec.Command, works for 1. and 2. but fails for 3.
the proposed PR addresses 2. but fails in sub-folders.

Thanks for the recap.
One thing to note about bare repositories, is that they don't contain a workspace, only the repository. So we can safely fail in that case.

I had a look at possible alternatives (in particular git2go) but could not find any intuitive API that addresses 1. and 2. in a clean way. I will continue investigate to see perhaps how (and if) this is done in other more famous repositories that parse the git status for high level projects.


Metadata API validation: validate root roles dictionary content

Spec says this about root roles:

A role for each of "root", "snapshot", "timestamp", and "targets" MUST be specified in the key list. The role of "mirror" is OPTIONAL.

The reference to "key list" seems like a mistake (maybe referring to  an earlier design?) but the intent seems clear: the roles dictionary is allowed to contain either the roles for ["root", "snapshot", "timestamp", "targets"] or the roles for ["root", "snapshot", "timestamp", "targets", "mirror"] (and I suppose we are not going to implement mirror for now)). Other roles are not valid and not having the first four roles is not valid.
It makes sense to validate this in Root construction/deserialization.
Maybe it also makes sense to validate in serialization but I think documenting that roles dict is not intended to be modified goes a long way.

These seem to be the steps:

validate roles dictionary keys in Root.__init__(): keys should be ["root", "snapshot", "timestamp", "targets"]
update failing tests (at leasts test_metadata_serialization valid_roots dataset makes assumptions about this)
add a test for wrong roles

maybe also consider

roles could be annotated as Mapping instead of Dict (this prevents nothing but informs users the dict should not be modified)

you don't suggest doing that API change in this issue right?

I don't: only reason to discuss these here is just in case they would make the validation obsolete... That doesn't seem likely so let's just forget it for now.


Define the scope of the goal

QSBR (quiescent-state-based reclamation)? general-purpose?
Which data structures? linked lists? hash tables? radix trees? etc?
nested read-side critical sections?

At the beginning, let's stick to QSBR linked lists. (It is still hard for me. . .)

Use crossbeam for epoch-based reclamation.
Implement singly-linked list, first.
Use corssbeam's support for epoch "guard".


Add action to expand/collapse all nodes in call hierarchy

Testing #81658
As I'm drilling through the nodes, it would be handy to have a toggle for expanding/collapsing all nodes, or at least the ones I'm active on to save several clicks. The screenshot below took me 7 clicks.

Hm, that's hard because each time a node is expanded we need to check with the language service what calls/callers are used. Additionally, there can be loop: 'foo' calls 'bar' calls 'foo'.  Technically, this is similar to the explorer and I don't believe we have smart magic there.

closing because expand all isn't possible. collapse all should be available as standard tree command


Merge identical DataModelHandler files for lock-common and lighting-common

Problem
lock-common and lighting-common have identical DataModelHandler.cpp files.
Summary of Changes
Merge the two files.
This does not merge in the efr32 or nrfconnect or esp32 bits, though all of those share this same code, pretty much....
Maybe the merged file should go somewhere under src/app?  Not clear to me .....
fixes https://github.com/project-chip/connectedhomeip/issues/2642

Problem
lock-common and lighting-common have identical DataModelHandler.cpp files.
Summary of Changes
Merge the two files.
This does not merge in the efr32 or nrfconnect or esp32 bits, though all of those share this same code, pretty much....
Maybe the merged file should go somewhere under src/app? Not clear to me .....

Probably. Ideally source files would be listed in exactly one build file. We can get into trouble if there are cycles, though, so it may not be easy in this case.

Ideally source files would be listed in exactly one build file.

@mspang Right, the problem with the various src/app stuff, and DataModelHandler.cpp, is that they include generated headers, which are different per-app.
Presumably there is some way to list those files in one place and have the build for an app include that centralized list?  That might be good.


details doesn't appear when used on a custom component menu item within DropdownMenu

Describe the bug
details doesn't appear when used on a custom component menu item within DropdownMenu
To Reproduce
Steps to reproduce the behavior:

Go to the DropdownMenu Zeroheight documentation
Scroll down to the "DropdownMenu with components in place of menu items" interactive code example
Within the MENU_ITEMS const array, add the following details property to the last object in the array:
details: "Details test!",

Expected behavior
"Details test!" should display in small light grey text below the last menu item (a grey Tag component) in the example, but nothing shows up.
Screenshots
See the last row

Additional context
Instead of doing this in teh Zeroheight code examples, you can test it in the code for the Default (or other DropdownMenu-related) story in Storybook. I also tested this there, and details still does not appear when used in conjunction with any component used in place of a menu item. However, count and sdsIcon do render properly.

[ ] When this bug is fixed, please update the relevant part of the DropdownMenu's Zeroheight documentation (the section called "DropdownMenu with components in place of menu items") by adding details: "Details", to the last object in the MENU_ITEMS array, and updating the last couple bullet points of the corresponding documentation so that details is included as optional metadata and not mentioned as a bug. Thanks! ❣

Not a bug, as designed


Refactor DCC configs to a file instead of secrets

Is your feature request related to a problem? Please describe.
For non-sensitive app configurations, such as data models and schematic options, it would be easier to put these in a config file instead of storing them in a string as a secret.
Describe the solution you'd like
Create a csv file that users can see on github and edit with a PR. It will contain all DCC-specific configurations used in the multitenant app.
How important is this feature? Select from the options below:
• 🌗 Medium - can do work without it; but it's important (e.g. to save time or for convenience)
When will use cases depending on this become relevant? Select from the options below:
• Short-term - 2-4 weeks

This is done, use dcc_config.csv in the beta-schematic-rest-api branch


modify code: src/brpc/ssl_options.h annotation ciper to cipher

fix #911

thanks for the corrections~


AMBARI-24919 external Namenode HA (benyoka)

What changes were proposed in this pull request?

Refactored Namenode HA validation to be part of the topology validation chain.
Changed Namenode HA validation to accept the following setup:

There are zero namenodes
All namenode rpc addresses point to an external fqdn.

The setup above indicates that namenodes are intentionally omitted and HDFS client points to external namenodes

How was this patch tested?

Tested namenode HA installation manually with external namenodes, also with missing namenode
Wrote unit tests for Namenode HA validation and blueprint configuration processing.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/4576/
Test PASSed.


Raspberry Pi 4B + ROS1 Melodic： Navigation Error

ISSUE TEMPLATE ver. 0.4.0

Which TurtleBot3 platform do you use?

[X] Burger
[ ] Waffle
[ ] Waffle Pi

Which ROS is working with TurtleBot3?

[ ] ROS 1 Kinetic Kame
[X] ROS 1 Melodic Morenia
[ ] ROS 1 Noetic Ninjemys
[ ] ROS 2 Dashing Diademata
[ ] ROS 2 Eloquent Elusor
[ ] ROS 2 Foxy Fitzroy
[ ] etc (Please specify your ROS Version here)

Which SBC(Single Board Computer) is working on TurtleBot3?

[ ] Intel Joule 570x
[ ] Raspberry Pi 3B+
[X] Raspberry Pi 4
[ ] etc (Please specify your SBC here)

Which OS you installed on SBC?

[ ] Raspbian distributed by ROBOTIS
[ ] Ubuntu MATE (16.04/18.04/20.04)
[ ] Ubuntu preinstalled server (18.04/20.04)
[X] Raspberry Pi 4B (2GB or 4GB) ROS1 Melodic image(Raspberry Pi OS based)

Which OS you installed on Remote PC?

[ ] Ubuntu 16.04 LTS (Xenial Xerus)
[X] Ubuntu 18.04 LTS (Bionic Beaver)
[ ] Ubuntu 20.04 LTS (Focal Fossa)
[ ] Windows 10
[ ] MAC OS X (Specify version)
[ ] etc (Please specify your OS here)

Specify the software and firmware version(Can be found from Bringup messages)

Software version: [x.x.x]
Firmware version: [1.2.2]

Specify the commands or instructions to reproduce the issue.
following the ROBOTIS TurtleBot3 e-Manual

[Remote PC]
　$ roscore
[TB3]
　$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
[Remote PC]
　$ roslaunch turtlebot3_slam turtlebot3_slam.launch
[Remote PC]
　$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
I create a map of the room by moving TB3 with the teleop command.
[Remote PC]
　$ rosrun map_server map_saver -f ~/map

　When I finish mapping the room, I terminate the Gmapping and teleop nodes, and move TB3 to the room's reference position by hand.
[Remote PC]
　roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
I use 2D Pose Estimate from Rviz to give the initial position of TB3, and then use 2D Nav Goal to set the navigation goal.

Copy and Paste the error messages on terminal.

When I launch the navigation node, the following error messages on the terminal.
・[ WARN] [1626940000.681850009]: global_costmap: Parameter "plugins" not provided, loading pre-Hydro parameters
　・[ WARN] [1626940001.125957975]: local_costmap: Parameter "plugins" not provided, loading pre-Hydro parameter

Please describe the issue in detail.

At the stage of starting the Navigation node, it is displayed without any problem on Rviz, as shown in the image below.

However, when the goal is given by 2D Nav Goal and TB3 starts moving, the Global Costmap is not updated and TB3's behavior becomes strange.
The image shown below captures the Costmap shifting in three steps from left to right.

Also, this is the ROS1 Melodic image for Raspberry Pi 4B, which has recently been distributed on e-manual.

I think it may be a Melodic-specific problem, because the Kinetic version of TB3 worked fine in the same procedure and under the same actual environment.
I have already tried the following measures.
・Press the reset button on the OpenCR1.0
・Reinstall the ROS package including TB3 package

Hi @toukairinn9999
Thanks for reporting the issue.
I've just tested with the image and looks like the image needs to be updated since it is created in 2019.
According to our test, the Ubuntu 18.04 works very well with RPi4 so we'll create a new Ubuntu 18.04 based TB3 recovery image and upload it in a few days.
Thanks!

Hi @toukairinn9999
My team is currently testing a RPi4 Melodic recovery image.
Once the test is completed, the image will be released via TurtleBot3 eManual.
I'm expecting it to be released by tomorrow at the latest.
Thank you.

We have assembled a TF team to address TurtleBot3 issues and are actively working on resolutions. Please note that we do not support EOL (End-of-Life) ROS versions; our support currently extends to Noetic and Humble versions. We kindly ask that you try again with the latest version. If the same issue arises, please feel free to resubmit it, and we will address it promptly.


HTTP/2 RFC compliance for stream state involving "Priority Only Streams"

Expected behavior
https://tools.ietf.org/html/rfc7540#section-5.1.1

The first use of a new stream identifier implicitly closes all
streams in the "idle" state that might have been initiated by that
peer with a lower-valued stream identifier.

Streams which are in IDLE but have had frames exchanged (e.g. PRIORITY frames) should be transitioned to CLOSED when a frame with a numerically higher stream ID is used (for the respective endpoint).
Care must be taken into how these "priority only streams" (stream which only have PRIORITY frames exchanged) are treated with respect to the dependency tree. We should have some capacity to retain CLOSED streams in the dependency tree to accommodate cases like "priority only streams". Note we previously did retain CLOSED streams in the priority tree but this was removed in https://github.com/netty/netty/commit/d580245afc77f11e4b82a7f3320f5619b555c2ec.
At one point there was a desire to use the SETTINGS frame to inform the heuristic algorithm to discard "priority only streams" in closed from the dependency tree. However it is not clear this is beneficial and if not the Http2Connection$Endpoint#maxStreams related APIs should be revisited.
Actual behavior
We leave "priority only streams" in idle even if numerically higher stream IDs are in use. This is not RFC compliant and may lead to an inconsistent view in stream state with our peers.
Steps to reproduce
N/A
Minimal yet complete reproducer code (or URL to code)
N/A
Netty version
[4.1.0, 4.1.7-SNAPSHOT]
JVM version (e.g. java -version)
N/A
OS version (e.g. uname -a)
N/A

@nmittler - FYI. IIRC we have discussed this in the past, but it fell off my radar for a while. I want to make sure I track it here so it isn't lost. We should address this for the 4.1.8 release.

A case such as the following should result in an error (stream ID 3 is closed when the headers are sent)
1. Client [Priority, id: 3] -> Server
2. Client [Headers, id: 5] -> Server
3. Client [Headers, id: 3] -> Server

@Scottmitch sgtm.  Did you have a PR for this that you were working on?

@nmittler - I haven't started yet no, but I can fit it into my schedule in the next couple weeks ... unless you are volunteering to do it sooner :)

@Scottmitch the general approach sgtm. I suspect we'll need to add information to the nodes to speed up the processing (e.g. option 2).

Hi @Scottmitch ,
I just find this interesting issue and want to provide my opinion related to this!
I had some similar issue recently and had seen discussion about this at some http2 implementation.
related issue https://github.com/h2o/h2o/pull/1136
In https://tools.ietf.org/html/rfc7540#section-5.1.1 that there is another paragraph said

The identifier of a newly established stream MUST be numerically greater than all streams that the initiating endpoint has opened or reserved. This governs streams that are opened using a HEADERS frame and streams that are reserved using PUSH_PROMISE. An endpoint that receives an unexpected stream identifier MUST respond with a connection error of type PROTOCOL_ERROR

So I preferred the conclusion priority frame won't increase that minimum stream id
And it will result with
Priority[id = 3] => Header[id = 1] (Accept)
Header[id = 3] => Header[id = 1] (Not accept)

@chhsiao90 - Can you use the same format as in https://github.com/netty/netty/issues/6206#issuecomment-272024705 so it is clear the order of frames and which endpoint is sending/receiving?

@chhsiao90 - The issue you reference seems to be unrelated.

PRIORITY frames can be sent for idle streams, and shouldn't affect the
number of open streams.

This issue is not about accounting for the number of open streams. I believe we already do this correctly.

Not doing so resulted in the server closing the connection with a
PROTOCOL_ERROR when a PRIORITY frame for stream id 3 was followed by
a HEADER frame for stream id 1.

We don't have this issue.

@Scottmitch ,
I start netty http2-server from example and run h2spec with https://github.com/summerwind/h2spec/pull/67
And got the result
6.3. PRIORITY
  × Sends a PRIORITY frame for an idle stream, then send a HEADER frame for a lower stream id
    - The endpoint MUST respond to the HEADER request with no connection error.
        Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: STREAM_CLOSED)

The example with format
1. Client [Priority, id: 3] -> Server
2. Client [Headers, id: 1] -> Server

That h2spec expected it's a passed case, but it seems that netty would failed the test.
My idea is that DefaultHttp2ConnectionDecoder increase stream id accidentally.
Or maybe my comment that is unrelated to this issue!
I just seen Priority Only Streams in issue title, and thought that it's related to.

@chhsiao90 - Interesting. This actually seems like it violates the RFC. I commented on the PR to discuss in more detail.

That the rfc seems not defined it very clearly, different people would have different explanation. :)


NodeNext module resolver thinks we're importing a module, while Node requires a CommonJS file

🔎 Search Terms
module resolver nodenext node16 commonjs module dual package error require import
Here are some similar issues:

https://github.com/microsoft/TypeScript/issues/50762
https://github.com/microsoft/TypeScript/issues/55221

🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about module resolution

⏯ Playground Link
https://github.com/jthemphill/ts-cjs-repro
💻 Code
The "lib" package in my repo is modeled after the popular project https://github.com/yjs/yjs. Like yjs, lib uses Rollup to build CJS and ESM versions of the package, then uses TypeScript to emit a declaration file.
Its package.json has a conditional export:
"exports": {
  ".": {
    "types": "./dist/src/index.d.ts",
    "import": "./dist/index.mjs",
    "require": "./dist/index.cjs"
  }
},

This enables the package to be either imported or required, whether from ESM or CJS files.
The app package represents my project, which I am trying to move from {"module": "commonjs"} to the more correct {"module": "node16"}. Its index.ts file is two lines:
import * as dual from "lib";
console.log(dual.dualCjsMjs);

You can reproduce the problem with
cd packages/app
pnpm install && pnpm build

🙁 Actual behavior
node app/dist/index.js will run the code successfully. But TypeScript claims that the code will crash:
ts-cjs-repro/packages/app % pnpm build

> app@ build /Users/jhemphill/oss/ts-cjs-repro/packages/app
> tsc

index.ts:1:23 - error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("lib")' call instead.
  To convert this file to an ECMAScript module, change its file extension to '.mts', or add the field `"type": "module"` to '/Users/jhemphill/oss/ts-cjs-repro/packages/app/package.json'.

1 import * as dual from "lib";
                        ~~~~~

Found 1 error in index.ts:1

🙂 Expected behavior
TypeScript should not report an error here. Node is correctly importing index.cjs, and this file really does contain the values described in index.d.ts.
Additional information about the issue
I would like to migrate my team's project from the commonjs resolver to the more correct node16 resolver, but it is hard to sell teammates on this migration if the "more correct" resolver leads to a bunch of false positives until we also complete an ESM migration😕
I understand why the module resolver thinks that index.d.ts describes a module file, as the nearest package.json contains a "type": "module" field. This doesn't help me migrate my project, though.

I understand why the module resolver thinks that index.d.ts describes a module file, as the nearest package.json contains a "type": "module" field. This doesn't help me migrate my project, though.

It is how it's designed though and for good reasons. Your package.json#exports shape is not correct - the fact that it's modeled after a popular yjs package doesn't move the needle, that's not correct. Conceptually, if you ship 2 runtime files then you should also ship 2 type declaration files. This way your types can model your runtime semantics correctly. It's not a surprise stuff doesn't work as you expect if you try to "make a shortcut" by shipping a single declaration file.

Yeah, yjs isn't doing this correctly. See e.g. https://arethetypeswrong.github.io/?p=y-websocket%402.0.4

Thank you for the swift response! I am an application developer rather than a library author, and your response seems tailored to a library author. For what it's worth, I had already posted an issue to yjs's repo, and hopefully I represented your point of view well there. While I work on TS projects, I will help to push culture and build tools towards TypeScript's model of correctness.
But I am simply working on an application which uses libraries. If I change my compilerOptions from {"module": "commonjs"} to {"module": "node16"}, then TypeScript throws a false positive error at me every time I use a library with a 👺 warning. There are many, very popular, libraries with 👺 or 🎭 warnings, and the TypeScript errors do not accurately describe how Node will run. I believe TypeScript should accurately represent how Node will run, at least when TypeScript is using a node16 or nodenext resolver.

This is a "garbage in, garbage out" situation. TypeScript can only accurately represent how Node will run if the packages give TypeScript accurate information about how they're configured.

Hi, I'm the author of Yjs, and several other open source projects that expose
typescript declaration files.
This whole topic is news to me. I can't keep up with the typescript development.  I believe your decision is too restrictive. Please keep in mind that it breaks a huge part of the typescript ecosystem.
CJS and MJS are different languages. I understand why they need to be declared
as such.
Can you please clarify why it is necessary to provide duplicate typescript
declaration files. Don't just tell me that I'm wrong. Please give me a reasonable answer that I can work with.
In my case, the declaration files for my mjs and cjs bundles are identical. Why does typescript need yet another declaration file?  Is it just so they have a different extension name? It's not like typescript types supports cjs-only features. There is no d.cts language.

This is a "garbage in, garbage out" situation

You have all the information you need to deduct that the declaration file refers to a commonjs module.
I care about bundle size, so I would prefer not to duplicate the declaration files.

https://www.typescriptlang.org/docs/handbook/modules/guides/choosing-compiler-options.html#notes-on-dual-emit-solutions covers some of this.
The problem is that, in a single compilation, you could have two inbound module resolutions (one CJS and one ESM) land at the same .d.ts file, at which point outbound resolutions from that file differ in their resolution mode too, which means that the same type at the same source location could refer to two completely separate unrelated entities. This isn't even architecturally supported, but if it were, it would lead to some extremely bad developer experiences: while it can be the case that your module presents identical shapes in CJS and ESM, this isn't necessarily true of its dependencies, and if anything ever goes wrong here (which it will) then you could end up with errors that basically say "Type Foo (from line 13 in bar.d.ts) is not assignable to Type Foo (from line 13 in bar.d.ts)".

To expand on the Ryan's last note - the structure of your runtime code creates a so-called dual package hazard. It might not be apparent immediately but types are prone to it too. Even though TypeScript is a structural type system at heart it supports some nominal typing.
If your library exposes some class then:
const { Cls } = require('lib')

const foo = new Cls()

if (foo instanceof (await import('lib')).Cls) {
  // this won't ever be true with your setup
}

You need to consider the same situation at the type level. This is essentially what "Type Foo (from line 13 in bar.d.ts) is not assignable to Type Foo (from line 13 in bar.d.ts)" means once you start considering classes with private members (compared nominally). Or unique symbols instantiated in both "copies" of your library.

Thanks for both of your explanations.
So it's mostly about the file-names in error descriptions. Personally, I find this acceptable. You could still publish your recommendations to avoid this scenario. But I understand your point.
I imagine that almost all projects emit identical declaration files for cjs and mjs files. So I hoped there would be a better solution than duplicating declarations. Maybe I should remove the cjs bundle altogether.
If typescript declarations support nominal typings, then it makes sense to have duplicative declaration files.


NIT Validator

This PR includes validations like
-The municipality code
-The date of birth in the NIT
-The check digit

After making sure that str matched the regular expression, I would recommend you use array destructuring to get all the pieces of the NIT in a more verbose and structured way (e.g. municipality, birthdate, correlative, verifier). This would help to avoid code such as Number(str.substring(12, 15) and instead have a more descriptive one like Number(correlative). You can also have a look at how it was implemented on isDUI function here.
For a better reference please have a look at the NIT structure attached below (source: listasal.info)

Then please:

Remove isHyphenIndex function.
Remove the word "Valid" from boolean functions e.g. isValidDate, isValidMunicipalityCode.
Fix types using primitives instead of wrapper objects when possible. Number to number

Thanks for your effort and time supporting this project. -JP

Hello, thank you for the observations, I have made most of them, I just let the isHyphenIndex now name isHyphen, because of both checkDigitOldFormat and checkDigit are single responsibility about calculating the validator digit with their own formula, but they need to know about if a character is a hyphen I separate that concern about check if a character is a hyphen looking to improve the cohesion between those functions instead of coupling that functionality inside a calculator function.
Maybe a better approach it just passes only the numbers to the calculator function, Idk what do you think? I've updated the code with the other observations. Thank you

@all-contributors please add @alepaz for tests and code


version and history updated

Coverage remained the same at 94.691% when pulling 3b63d5c07824dbdfe1fc73e203dde7a6df95398f on release/2.3.1 into 7875604b796596063fe1963c95862b2a908f7b67 on master.


bug in gdocHtmlLib

the program creates a CSS attribute for each cell with background colour: no colour!

appears that table cells have no class  _tblcell