Add getStickerSet and StickerSet

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

Project coverage is 100.00%. Comparing base (f61801f) to head (67eb772).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##              master       #51   +/-   ##
===========================================
  Coverage     100.00%   100.00%
- Complexity      1143      1153   +10
===========================================
  Files            244       246    +2
  Lines           4178      4204   +26
===========================================
+ Hits            4178      4204   +26

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


Cythonizing sklearn/_isotonic.pyx failed

Hello everybody,
I'm new to GitHub, so please excuse me if I've forgotten any of the usual information.
I'm following the EM_MV example (https://github.com/ngoix/EMMV_benchmarks). Since these methods use the one_class_data, I first wanted to install the OCRF.
I was able to run all the commands of the installation instructions without any problems - except for the last one: python setup.py install
Here I got the following error:

Cython is installed with the latest version:
(OCRF_env) Gerrits-Air:OCRF gerritschumann$ pip install --upgrade Cython
Result:  Requirement already up-to-date: Cython in /Users/gerritschumann/anaconda3/envs/OCRF_env/lib/python2.7/site-packages (0.29.13)
To my knowledge, no other Cython versions are installed:
(OCRF_env) Gerrits-Air:OCRF gerritschumann$ python -c "import cython; print(cython.__version__)"
Result:  0.29.13
If relevant: I already had Python 3.6.9 installed on my Macbook. Due to the OCRF installation, I now have Python 2.7. as environment.
If there is no quick fix for the problem, is there any way to reconstruct the output of one_class_data so that I can play through the EM_MV example?
It would really help me a lot! Many Thanks in advance!

solved: https://stackoverflow.com/questions/58082428/cythonizing-sklearn-isotonic-pyx-failed


weboob: 1.5 -> 2.0

Motivation for this change
Update weboob.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions (Fedora)

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

/cc @Mic92 @volth @worldofpeace

Result of nixpkgs-review pr 84659 1

1 package failed to build:
- kmymoney

2 packages built:
- python37Packages.weboob
- python38Packages.weboob

Result of nixpkgs-review pr 84659 1

3 packages built:
- kmymoney
- python37Packages.weboob
- python38Packages.weboob


Lucia

added visual range based on age
speed function is calculated based on the visual range and weight which adds a negative penalty
gender is removed for now
agents are divided into two classes with different colors based on age
radius of looking around is now set to be the visual range

Speed will be fixed


Publish to npm for module loaders

It would be convenient to have holderjs at npm for loaders like browserify.

+1

This is now done. Holder can be downloaded with npm install holderjs. It is Browserify compatible.


为什么要将多轮交互的样本拆分来训练？

感谢作者开源ToolBench代码和数据。通常大家对多轮对话样本的训练会将assistant内容调整loss weight=1，其他诸如system、user等内容调整loss weight=0的方式来训练对话样本。像请教一下为什么在Toolbench上要将多轮交互的样本拆分来训练？
例如这里的代码Taget是每个样本的最后一轮assistant的内容：https://github.com/OpenBMB/ToolBench/blob/master/toolbench/train/train.py#L126
在数据toollama_G123_dfs_train.json中有很多相同instruction，同一条解决路径只是处于不同step的样本。如下：
Step 1: I need to create a meme for my family reunion. Can you generate a Sponge Bob meme with the text 'Family love' on it? Additionally, I would like to generate a Pet Pet meme GIF using a family photo as the input image.
...
Step 10: I need to create a meme for my family reunion. Can you generate a Sponge Bob meme with the text 'Family love' on it? Additionally, I would like to generate a Pet Pet meme GIF using a family photo as the input image.
这个是为了shuffle同一个conversation的不同Step样本来防止模型过度拟合最后进入模型的样本吗？

您好，感谢提出问题～
我们对样本拆开进行训练，主要是因为DFS算法造出来的数据特性，因为算法中有回退和结点扩张步骤，每一轮的对话的历史对话可能发生改变，以G3中3_ChatGPT_DFS_woFilter_w2.json数据的第二和第三轮对话为例：
      [
        {
          "role": "system",
          "content": "You are AutoGPT, you can use many tools(functions) to do the following task.\nFirst I will give you the task description, and your task start.\nAt each step, you need to give your thought to analyze the status now and what to do next, with a function call to actually excute your step.\nAfter the call, you will get the call result, and you are now in a new state.\nThen you will analyze your status now, then decide what to do next...\nAfter many (Thought-call) pairs, you finally perform the task, then you can give your finial answer.\nRemember: \n1.the state change is irreversible, you can't go back to one of the former state, if you want to restart the task, say \"I give up and restart\".\n2.All the thought is short, at most in 5 sentence.\n3.You can do more then one trys, so if your plan is to continusly try some conditions, you can do one of the conditions per try.\nLet's Begin!\nTask description: You should use functions to help handle the real time user querys. Remember:\n1.ALWAYS call \"Finish\" function at the end of the task. And the final answer should contain enough information to show to the user,If you can't handle the task, or you find that function calls always fail(the function is not valid now), use function Finish->give_up_and_restart.\n2.Do not use origin tool names, use only subfunctions' names.\nYou have access of the following tools:\n1.investors_exchange_iex_trading: The IEX API is a is a free, web-based API supplying IEX quoting and trading data.\n2.the_cocktail_db: Cocktail recipes with high-quality images stored on AWS S3 for fast accessibility. Easy to use!Category: Food\n3.web_search: Billions of webpages, images and news with a single API call.  Visit us at: usearch.com\n4.live_sports_odds: Odds data API for NFL, NBA, MLB, EPL, AFL and loads more, from US, UK, EU and Aussie bookmakers. Get started for free!\n"
        },
        {
          "role": "user",
          "content": "\nI'm planning a family vacation to a beach destination. Can you recommend some refreshing cocktails to enjoy by the beach? Also, provide me with the historical open and close prices for Qualcomm's stock. Furthermore, suggest some sports activities that can be enjoyed on the beach.\nBegin!\n"
        },
        {
          "role": "assistant",
          "content": null,
          "function_call": {
            "name": "list_of_cocktails_for_the_cocktail_db",
            "arguments": "{}"
          }
        },
        {
          "role": "function",
          "name": "list_of_cocktails_for_the_cocktail_db",
          "content": "{\"error\": \"\", \"response\": \"[{\\\"id\\\":\\\"1\\\",\\\"title\\\":\\\"Nutella and cognac coffee cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/1.jpg\\\"},{\\\"id\\\":\\\"2\\\",\\\"title\\\":\\\"Easy rhubarb cordial\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/2.jpg\\\"},{\\\"id\\\":\\\"3\\\",\\\"title\\\":\\\"Bottled chocolate orange negroni\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/3.jpg\\\"},{\\\"id\\\":\\\"4\\\",\\\"title\\\":\\\"Pickled bramble martini\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/4.jpg\\\"},{\\\"id\\\":\\\"5\\\",\\\"title\\\":\\\"Toasted marshmallow hot-buttered rum\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/5.jpg\\\"},{\\\"id\\\":\\\"6\\\",\\\"title\\\":\\\"Sangria\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/6.jpg\\\"},{\\\"id\\\":\\\"7\\\",\\\"title\\\":\\\"Umibozu yuzu cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/cocta..."
        },
        {
          "role": "user",
          "content": "This is not the first time you try this task, all previous trails failed.\nBefore you generate my thought for this state, I will first show you your previous actions for this state, and then you must generate actions that is different from all of them. Here are some previous actions candidates:\n[\n  {\n    \"name\": \"detailed_cocktail_recipe_by_id_for_the_cocktail_db\",\n    \"arguments\": \"{\\n  \\\"is_id\\\": \\\"6\\\"\\n}\",\n    \"function_output\": \"{\\\"error\\\": \\\"request invalid, data error. status_code=500\\\", \\\"response\\\": \\\"\\\"}\",\n    \"mento-carlo-action-value\": 0.0\n  }\n]\nagain, your former observation: {\"error\": \"\", \"response\": \"[{\\\"id\\\":\\\"1\\\",\\\"title\\\":\\\"Nutella and cognac coffee cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/1.jpg\\\"},{\\\"id\\\":\\\"2\\\",\\\"title\\\":\\\"Easy rhubarb cordial\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/2.jpg\\\"},{\\\"id\\\":\\\"3\\\",\\\"title\\\":\\\"Bottled chocolate orange negroni\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/3.jpg\\\"},{\\\"id\\\":\\\"4\\\",\\\"title\\\":\\\"Pickled bramble martini\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/4.jpg\\\"},{\\\"id\\\":\\\"5\\\",\\\"title\\\":\\\"Toasted marshmallow hot-buttered rum\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/5.jpg\\\"},{\\\"id\\\":\\\"6\\\",\\\"title\\\":\\\"Sangria\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/6.jpg\\\"},{\\\"id\\\":\\\"7\\\",\\\"title\\\":\\\"Umibozu yuzu cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/cocta...\n\nRemember you are now in the intermediate state of a trail, you will first analyze the now state and previous action candidates, then make actions that is different from all the previous.",
          "valid": false
        },
        {
          "role": "assistant",
          "content": "Based on the previous action, it seems that the attempt to retrieve the detailed recipe for cocktail ID 6 failed. Since the previous attempt was unsuccessful, I will try a different approach this time.\n\nThought:\n1. I will use the \"list_of_cocktails_for_the_cocktail_db\" function to get a list of cocktails available.\n2. From the list, I will select a cocktail to recommend for enjoying by the beach.\n3. Next, I will use the \"ohlc_for_investors_exchange_iex_trading\" function to retrieve the historical open and close prices for Qualcomm's stock.\n4. Finally, I will use the \"v4_sports_for_live_sports_odds\" function to suggest sports activities that can be enjoyed on the beach.\n\nActions:\n1. Call the \"list_of_cocktails_for_the_cocktail_db\" function.\n2. Call the \"ohlc_for_investors_exchange_iex_trading\" function with symbol \"QCOM\".\n3. Call the \"v4_sports_for_live_sports_odds\" function.\n\n",
          "function_call": {
            "name": "list_of_cocktails_for_the_cocktail_db",
            "arguments": "{}"
          }
        }
      ],
      [
        {
          "role": "system",
          "content": "You are AutoGPT, you can use many tools(functions) to do the following task.\nFirst I will give you the task description, and your task start.\nAt each step, you need to give your thought to analyze the status now and what to do next, with a function call to actually excute your step.\nAfter the call, you will get the call result, and you are now in a new state.\nThen you will analyze your status now, then decide what to do next...\nAfter many (Thought-call) pairs, you finally perform the task, then you can give your finial answer.\nRemember: \n1.the state change is irreversible, you can't go back to one of the former state, if you want to restart the task, say \"I give up and restart\".\n2.All the thought is short, at most in 5 sentence.\n3.You can do more then one trys, so if your plan is to continusly try some conditions, you can do one of the conditions per try.\nLet's Begin!\nTask description: You should use functions to help handle the real time user querys. Remember:\n1.ALWAYS call \"Finish\" function at the end of the task. And the final answer should contain enough information to show to the user,If you can't handle the task, or you find that function calls always fail(the function is not valid now), use function Finish->give_up_and_restart.\n2.Do not use origin tool names, use only subfunctions' names.\nYou have access of the following tools:\n1.investors_exchange_iex_trading: The IEX API is a is a free, web-based API supplying IEX quoting and trading data.\n2.the_cocktail_db: Cocktail recipes with high-quality images stored on AWS S3 for fast accessibility. Easy to use!Category: Food\n3.web_search: Billions of webpages, images and news with a single API call.  Visit us at: usearch.com\n4.live_sports_odds: Odds data API for NFL, NBA, MLB, EPL, AFL and loads more, from US, UK, EU and Aussie bookmakers. Get started for free!\n"
        },
        {
          "role": "user",
          "content": "\nI'm planning a family vacation to a beach destination. Can you recommend some refreshing cocktails to enjoy by the beach? Also, provide me with the historical open and close prices for Qualcomm's stock. Furthermore, suggest some sports activities that can be enjoyed on the beach.\nBegin!\n"
        },
        {
          "role": "assistant",
          "content": null,
          "function_call": {
            "name": "list_of_cocktails_for_the_cocktail_db",
            "arguments": "{}"
          }
        },
        {
          "role": "function",
          "name": "list_of_cocktails_for_the_cocktail_db",
          "content": "{\"error\": \"\", \"response\": \"[{\\\"id\\\":\\\"1\\\",\\\"title\\\":\\\"Nutella and cognac coffee cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/1.jpg\\\"},{\\\"id\\\":\\\"2\\\",\\\"title\\\":\\\"Easy rhubarb cordial\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/2.jpg\\\"},{\\\"id\\\":\\\"3\\\",\\\"title\\\":\\\"Bottled chocolate orange negroni\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/3.jpg\\\"},{\\\"id\\\":\\\"4\\\",\\\"title\\\":\\\"Pickled bramble martini\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/4.jpg\\\"},{\\\"id\\\":\\\"5\\\",\\\"title\\\":\\\"Toasted marshmallow hot-buttered rum\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/5.jpg\\\"},{\\\"id\\\":\\\"6\\\",\\\"title\\\":\\\"Sangria\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/6.jpg\\\"},{\\\"id\\\":\\\"7\\\",\\\"title\\\":\\\"Umibozu yuzu cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/cocta..."
        },
        {
          "role": "assistant",
          "content": "Based on the previous action, it seems that the attempt to retrieve the detailed recipe for cocktail ID 6 failed. Since the previous attempt was unsuccessful, I will try a different approach this time.\n\nThought:\n1. I will use the \"list_of_cocktails_for_the_cocktail_db\" function to get a list of cocktails available.\n2. From the list, I will select a cocktail to recommend for enjoying by the beach.\n3. Next, I will use the \"ohlc_for_investors_exchange_iex_trading\" function to retrieve the historical open and close prices for Qualcomm's stock.\n4. Finally, I will use the \"v4_sports_for_live_sports_odds\" function to suggest sports activities that can be enjoyed on the beach.\n\nActions:\n1. Call the \"list_of_cocktails_for_the_cocktail_db\" function.\n2. Call the \"ohlc_for_investors_exchange_iex_trading\" function with symbol \"QCOM\".\n3. Call the \"v4_sports_for_live_sports_odds\" function.\n\n",
          "function_call": {
            "name": "list_of_cocktails_for_the_cocktail_db",
            "arguments": "{}"
          }
        },
        {
          "role": "function",
          "name": "list_of_cocktails_for_the_cocktail_db",
          "content": "{\"error\": \"\", \"response\": \"[{\\\"id\\\":\\\"1\\\",\\\"title\\\":\\\"Nutella and cognac coffee cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/1.jpg\\\"},{\\\"id\\\":\\\"2\\\",\\\"title\\\":\\\"Easy rhubarb cordial\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/2.jpg\\\"},{\\\"id\\\":\\\"3\\\",\\\"title\\\":\\\"Bottled chocolate orange negroni\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/3.jpg\\\"},{\\\"id\\\":\\\"4\\\",\\\"title\\\":\\\"Pickled bramble martini\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/4.jpg\\\"},{\\\"id\\\":\\\"5\\\",\\\"title\\\":\\\"Toasted marshmallow hot-buttered rum\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/5.jpg\\\"},{\\\"id\\\":\\\"6\\\",\\\"title\\\":\\\"Sangria\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/6.jpg\\\"},{\\\"id\\\":\\\"7\\\",\\\"title\\\":\\\"Umibozu yuzu cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/cocta..."
        },
        {
          "role": "user",
          "content": "This is not the first time you try this task, all previous trails failed.\nBefore you generate my thought for this state, I will first show you your previous actions for this state, and then you must generate actions that is different from all of them. Here are some previous actions candidates:\n[\n  {\n    \"name\": \"ohlc_for_investors_exchange_iex_trading\",\n    \"arguments\": \"{\\n  \\\"symbol\\\": \\\"QCOM\\\"\\n}\",\n    \"function_output\": \"{\\\"error\\\": \\\"\\\", \\\"response\\\": \\\"An API key is required to access this data and no key was provided\\\"}\",\n    \"mento-carlo-action-value\": 0.0\n  }\n]\nagain, your former observation: {\"error\": \"\", \"response\": \"[{\\\"id\\\":\\\"1\\\",\\\"title\\\":\\\"Nutella and cognac coffee cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/1.jpg\\\"},{\\\"id\\\":\\\"2\\\",\\\"title\\\":\\\"Easy rhubarb cordial\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/2.jpg\\\"},{\\\"id\\\":\\\"3\\\",\\\"title\\\":\\\"Bottled chocolate orange negroni\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/3.jpg\\\"},{\\\"id\\\":\\\"4\\\",\\\"title\\\":\\\"Pickled bramble martini\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/4.jpg\\\"},{\\\"id\\\":\\\"5\\\",\\\"title\\\":\\\"Toasted marshmallow hot-buttered rum\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/5.jpg\\\"},{\\\"id\\\":\\\"6\\\",\\\"title\\\":\\\"Sangria\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/coctails_api/6.jpg\\\"},{\\\"id\\\":\\\"7\\\",\\\"title\\\":\\\"Umibozu yuzu cocktail\\\",\\\"difficulty\\\":\\\"Easy\\\",\\\"image\\\":\\\"https://apipics.s3.amazonaws.com/cocta...\n\nRemember you are now in the intermediate state of a trail, you will first analyze the now state and previous action candidates, then make actions that is different from all the previous.",
          "valid": false
        },
        {
          "role": "assistant",
          "content": "Based on the analysis of the current state and the previous action, which failed due to the lack of an API key, I will formulate a new plan to recommend refreshing cocktails, retrieve historical stock prices for Qualcomm, and suggest beach sports activities.\n\nThought:\n1. I will use the \"list_of_cocktails_for_the_cocktail_db\" function to get a list of cocktails available.\n2. From the list, I will select a cocktail to recommend for enjoying by the beach.\n3. Next, I will use the \"Finish\" function to provide the recommendation and move on to the next step.\n4. Then, I will use the \"ohlc_for_investors_exchange_iex_trading\" function to retrieve the historical open and close prices for Qualcomm's stock.\n5. Finally, I will use the \"v4_sports_for_live_sports_odds\" function to suggest sports activities that can be enjoyed on the beach.\n\nActions:\n1. Call the \"list_of_cocktails_for_the_cocktail_db\" function.\n2. Select a cocktail recommendation and call the \"Finish\" function with the final answer.\n3. Call the \"ohlc_for_investors_exchange_iex_trading\" function with the symbol \"QCOM\".\n4. Call the \"v4_sports_for_live_sports_odds\" function.",
          "function_call": {
            "name": "list_of_cocktails_for_the_cocktail_db",
            "arguments": "{}"
          }
        }
      ],

示例中上一轮和下一轮的历史对话结构发生改变，所以为了简化数据处理和代码迁移，我们将数据样本拆开进行训练；
是的，我们会对所有数据所有step进行shuffle


standard pricing script inaccurately calculates prices for multi-pod leases

reported by marcau745#1023 (Discord)

The fix to the pricing script has been released and is available in the akash/provider helm chart version starting 4.3.4
$ helm repo update akash

$ helm search repo akash/provider
NAME              CHART VERSION    APP VERSION    DESCRIPTION
akash/provider    4.3.4            0.2.1          Installs an Akash provider (required)

Direct link to the fixed script:
https://raw.githubusercontent.com/akash-network/helm-charts/provider-4.3.4/charts/akash-provider/scripts/price_script_generic.sh
The docs have been updated https://github.com/akash-network/docs/pull/252/files


Change SLAAC to IPv6SLAAC as per bios enum

The "method" attribute of the bios table had the below values:
"IPv6Static", "IPv6DHCP", "SLAAC"
There is a recent change in pldm that changes "SLAAC" to "IPv6SLAAC".
This commit has changes with respect to the above change.
Fixes: https://jazz07.rchland.ibm.com:13443/jazz/web/projects/CSSD#action=com.ibm.team.workitem.viewWorkItem&id=449841
Change-Id: I028aff8c8e54210b3b06b1282e79691310009a45

Tested by?

Done

@manojkiraneda and @geissonator Can you please check the dependency added in this commit - and add your views if this is safe to get in?


Feature Request - Hour View

It would be great to be able to show a hourly view of the calendar. This would be helpful for showing what times during the day are  available/booked. Google Calendar call it "Day" and "Week" views.  An example would be something like this:

Thanks! You've done great work on this. Been waiting for a calendar panel for a long time!

Hi, and thanks for the kind words! ❤
There's already a feature request for the Day view you mention, so if it's ok with you, let's track the request for the Week view separately in this issue?
I think something like this would fit well in the plugin 👍


[GEARPUMP-254] fix gearpump on Yarn

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the commit message is formatted like:
[GEARPUMP-<Jira issue #>] Meaningful description of pull request
[x] Make sure tests pass via sbt clean test.
[x] Make sure old documentation affected by the pull request has been updated and new documentation added for new functionality.

UT failed

Current coverage is 70.79% (diff: 100%)

Merging #128 into master will increase coverage by 0.41%

@@             master       #128   diff @@
==========================================
  Files           186        186
  Lines          5988       5988
  Methods        5469       5469
  Messages          0          0
  Branches        517        517
==========================================
+ Hits           4214       4239    +25
+ Misses         1774       1749    -25
  Partials          0          0

Powered by Codecov. Last update 2783559...4e14131

+1 LGTM


How to interpret LIME result in regression?

Hello everyone,
In the notebook: https://marcotcr.github.io/lime/tutorials/Using%2Blime%2Bfor%2Bregression.html
How should I interpret the result (in cell number 12)?
For instance, take the most important feature '6.99 < LSTAT <= 11.43'. Does it mean that, because LSTAT is between 6.99 and 11.43 so it makes the predicted value towards higher direction a value of 1.76?
Thanks

Yes, it makes the predicted value towards the right higher by 1.76, as compared to what it would be on aveage for other values of this feature (since it is discretized).
For regression, it probably makes more sense not to discretize, I should not have used discretization in the tutorial. With no discretization, there is a caveat that LIME scales the data, so the coefficients in the explanations are w.r.t. scaled data.


Improve toast messages

We need to improve the toast messages!

Good suggestion bro, the issue has been solved and merged 👍


GpxLongitude handles +180 incorrectly

In the GPX schema, longitudeType's upper-bound is 180, exclusive.
GpxLongitude, however, allows values with +180.
This mismatch makes it possible, under normal circumstances, to produce values that are invalid for GPX.
Legal options:

Keep allowing +180 in GpxLongitude, and convert it to -180 only when writing XML
Reject +180 in the GpxLongitude constructor; convert +180 to -180 when converting from NTS
Treat +180 and -180 as the same value
Convert +180 to -180, silently, in the GpxLongitude constructor

Keep allowing +180 in GpxLongitude, and convert it to -180 only when writing XML

This feels like the way to go.  Perhaps a GpxWriterSettings flag could be added that allows technically violating the schema and skipping this step.


Cannot load checkpoint from Git-LFS

Hi :)
I am able to run train_turtlebot_lidar.py successfully, but when I try to run the evaluation "eval_turtlebot.py", I get the following errors:
Traceback (most recent call last):
File "/home/neural_clbf/evaluation/eval_turtlebot.py", line 44, in <module>     plot_turtlebot()
File "/home/neural_clbf/evaluation/eval_turtlebot.py", line 28, in plot_turtlebot     neural_controller = NeuralCLBFController.load_from_checkpoint(
File "/home/usr/miniconda3/envs/neural_clbf/lib/python3.9/site-packages/pytorch_lightning/core/saving.py", line 135, in load_from_checkpoint     checkpoint = pl_load(checkpoint_path, map_location=lambda storage, loc: storage)
File "/home/usr/miniconda3/envs/neural_clbf/lib/python3.9/site-packages/pytorch_lightning/utilities/cloud_io.py", line 33, in load     return torch.load(f, map_location=map_location)
File "/home/usr/miniconda3/envs/neural_clbf/lib/python3.9/site-packages/torch/serialization.py", line 608, in load     return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/home/usr/miniconda3/envs/neural_clbf/lib/python3.9/site-packages/torch/serialization.py", line 777, in _legacy_load     magic_number = pickle_module.load(f, **pickle_load_args) _pickle.UnpicklingError: invalid load key, 'v'.
I tried to download the checkpoint file manually from Git LFS using this post, but the quota for LFS seems to have reached its' limit and I was not able to download the file.
As a temporary workaround, I tried to load the checkpoint created when running train_turtlebot_lidar.py but the operation fails on loading the checkpoint:
Traceback (most recent call last):
File "/home/neural_clbf/evaluation/eval_turtlebot.py", line 45, in <module>     eval_turtlebot()
File "/home/neural_clbf/evaluation/eval_turtlebot.py", line 16, in eval_turtlebot     neural_controller = NeuralCLBFController.load_from_checkpoint(
File "/home/usr/miniconda3/envs/neural_clbf/lib/python3.9/site-packages/pytorch_lightning/core/saving.py", line 157, in load_from_checkpoint     model = cls._load_model_state(checkpoint, strict=strict, **kwargs)
File "/home/usr/miniconda3/envs/neural_clbf/lib/python3.9/site-packages/pytorch_lightning/core/saving.py", line 199, in _load_model_state     model = cls(**_cls_kwargs)
TypeError: __init__() missing 1 required positional argument: 'scenarios'
Is this expected (and I'm the idiot) or is this a bug?

This is a bug. Actually, it's laziness/cheapness on my part. We used LFS when we were actively training new examples (and it was just us using the code) so we could get away with the free LFS quota. I don't think LFS is the right choice for a public-facing project, since there would be too much demand on our quota, so I've switched the (now pretty stable) models over to regular git file storage and removed LFS. I'll update the documentation to reflect this, but could you please re-try cloning the repo (delete the folder and re-clone) and let me know if it works? Thanks!

Hi @dawsonc I'm running into the same issue. The saved models from the review folder are still in ckpt format and produce the same error as @MarvinHarms, both when trying to do train_linear_satellite.py directly (pickle error) and the GIT LFS storage quota exceeded when trying to extract the git LFS file

@stonkens I think these are two different bugs (ckpt is independent of LFS/git, it's just the PyTorch Lightning save format). LFS should be disabled for this repository. I can clone from scratch with no LFS problems on my laptop. Can you share your LFS error here and open a separate issue for the pickle error?

I was able to reproduce both the LFS bug and the pickle error. Turns out they WERE related after all :upside_down_face: --- when I migrated from LFS to normal files a while ago (to keep up with the # of people trying to download the models), it seems like the migration wasn't fully complete and so the saved models were corrupted. I re-did the migration, fixed both of these issues, and there should be a PR coming shortly that fixes this :)

This should be resolved as of PR #16, but please re-open if the issue persists and I'll be happy to help.


Library Section is added

@smv1999 I added some Java books (under dropdown menu) under Library section. But no worry Books on Java, Python, C, C++ and blogs,courses are coming. I will add those. This is just for review. After this PR got merged successfully. I will add those.
and also add a form, by which others can request anything that they want.
previously created Issue: #231
Thank you @smv1999

Looks good to me!! Could you review it again @smv1999

@smv1999 which one ? I mean alignment of which ?

@smv1999 which one ? I mean alignment of which ?

Alignment of images inside the grid in README.md.


Suggestion: Remove credential in post-command hook

The docker login would store credentials as clear text in /var/lib/buildkite-agent/.docker/config.json file. I think it is a good security practice to clean up this file once the command hook finishes. Thoughts? cc @toolmantim

Hi @runlevel5! This is kind of already done in the Elastic CI Stack which uses a per-job Docker config directory and cleans it up in a pre-exit hook.
We could definitely add something similar to this plug-in for non-elastic ci stack use cases, though I think pre-exit would be preferable to post-command so that the artifact hooks have a chance to use these credentials if needed.


Readme Fixes

I fixed a few typos and grammatical errors in the readme file.

Thank you for taking the time to help us improve the documentation, thank GitHub connecting people around the world.
This is my first open source project, sorry for my poor english, I hope we can have more exchanges.


Add branch names to valid grammar

This allows you get the details of an individual branch.

Thanks! Is there a reason for allowing 2 slashes?

No probs, it's a really nice DSL to use :)
We use slashes for branch-name separators, but I guess ideally it should really accept any (valid) characters?


fixing python_requires in buildInfo

Add python_requires info to buildInfo
This is a draft, only adding modules

Missing dependencies information
Pending to understand about the "Build" status affecting python-requires or not
This depends on a fix merged to release/2.0, but not yet released.

Close https://github.com/conan-io/conan-extensions/issues/73

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: czoido:x: memshardedYou have signed the CLA already but the status is still pending? Let us recheck it.


Disabling SPUD persistence on dynamically spawned level instances

Hi! Big time SPUD fan here, it has served us very well during development of our game, and we've yet to encounter significant issues.
We're implementing a procedural part of our game, using dynamic level streaming (a classic dungeon generator). Essentially we clone level instances to form a tiling dungeon, I believe it's pretty standard stuff.
The level streaming is performed using this method:
ULevelStreamingDynamic::FLoadLevelInstanceParams params(GetWorld(), data->Level.GetLongPackageName(), transform);
params.bLoadAsTempPackage = true;
params.bAllowReuseExitingLevelStreaming = true;
params.bInitiallyVisible = true;

bool success = false;
ULevelStreamingDynamic* level = ULevelStreamingDynamic::LoadLevelInstance(params, success);

The issue that arises is that each cloned instance receives a unique name (akin to LV_Tile_Shortcut_Staircase_NSE_LevelInstance_250. As a result, the following is immediately shown in the Output Log:
LogSpudSubsystem: Verbose: Level shown: LV_Tile_Shortcut_Staircase_NSE_LevelInstance_250
LogSpudState: Skipping restore level LV_Tile_Shortcut_Staircase_NSE_LevelInstance_250, no data (this may be fine)

However, the level, and all its actors, is definitely persisted upon de-spawning. De-spawning is done with:
level->SetIsRequestingUnloadAndRemoval(true);

I imagine that it will never be able to use the persisted data, because the level is dynamic. This makes me worry about save file bloat, and also causes unnecessary stutters when creating tiles for the dungeon.

My question is whether or not it's possible to exclude these sorts of dynamically spawned levels from the persistence system. There are some parts of the ULevelStreamingDynamic system that I feel could be used to identify them, such as bLoadAsTempPackage, OptionalLevelNameOverride, and OptionalLevelStreamingClass -- but I'm not sure where to start.
Before I dig into the SPUD logic to try to jam these in there myself, I thought I'd ask to see if this type of behaviour is already supported, or if there is a logical place to implement it.
Thanks in advance (and thanks for a great plugin)!

Hi, excluding entire levels from the save/load sequence isn't something I'd considered before.
If you were to do this, you'd have to identify the levels to exclude solely from the ULevel class, since that's all we have to work with in practice. SPUD only sees levels once they're loaded / just before unloading, which is a level below the ULevelStreamingDynamic system (that merely organises everything, it just becomes a ULevel at the end of the day). See the calls to USpudSubsystem::StoreLevel and USpudSubsystem::RestoreLevel. Sadly I don't think there's that much to go on, barring perhaps a LevelName wildcard exclusion match or something.

Thank you, Steve! What I ended up doing was create an actor component USpudLevelDataComponent, which I could attach to my AWorldSettings. I added a field bPersistInstances to the component, and some simple additions in SpudSubSystem to skip level instances from being serialised if that property is false in the world settings of the current world. I suppose I could refine the idea to specify behaviour on a per-instance level, but for now it's fine to just skip them all.
Thanks for the pointers in the right direction! I'll close the issue.


Compress deploy settings removing extra files

this deploy file glob setting is removing the bootstrap.min.css used on the change log page as well as any other file with the .min filename.
We should rethink this setting and modify it to be more exact.

Just remove it? It's can't be adding that much time to the deploy upload.

Ehh, I think just making it more specific, like css queries should be fine.
It slows down the compression quite a bet since it would double the file
count.

Double? I just counted the number of .min in bb-econ and it was only around
20 files. I'm just thinking that it might be safer to just add the 20 extra
files rather than worry about getting the correct expression.
On Mon, Feb 23, 2015 at 9:34 AM, steveoh<EMAIL_ADDRESS>wrote:

Ehh, I think just making it more specific, like css queries should be fine.
It slows down the compression quite a bet since it would double the file
count.
—
Reply to this email directly or view it on GitHub
https://github.com/agrc/AGRCJavaScriptProjectBoilerPlate/issues/102#issuecomment-75577913
.

--
Scott Davis
Utah AGRC http://gis.utah.gov/developer/
<EMAIL_ADDRESS>@ScottAGRC https://twitter.com/ScottAGRC

maybe i was thinking of uncompessed


[BUG] System.ComponentModel.Win32Exception: Not enough quota is available to process this command.

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
I have no clue what this even means, but if it helps, I went into my System Tray and saw the bloxstrap icon and right clicked it and it popped up with this error, and I realized I didn't even have Roblox open when I did this.
Here is the log file it highlighted in my explorer:

Bloxstrap_20231012T122246Z.log
This thing also popped up before the latest bloxstrap update, but I decided to not report it because I thought someone else would have gotten it already, but it seems to still be happening even after the latest update, so maybe no one has.  It's also very likely ZCanary contributes to the issue, but I don't know.

Oh, I've actually seen this issue before. It's some weirid bug where the application doesn't properly close and instead somehow screws up something with memory. I was never able to get a proper log file for it, so this is nice.
Does this happen every single time you use it?

No, from what I recall this doesn't happen often, which would explain why it only occurred to me twice.

Oh, right.
Also thank you for the extra details, but I don't need those as I already have a rough idea on why this happens. Has nothing to do with Roblox, it's purely my bad code. Though, actually fixing it is gonna be tough since it could be happening anywhere when it tries to clean up, especially when it happens extremely rarely.

Alright.
Also I apologize, going the little extra mile is a habit of mine.
I wish you luck on fixing the bug. It doesn't stop Bloxstrap from working properly luckily.

Assumed to be fixed


Error eks-ssm-content.json JSON not well formed

What happened:
Following instructions for collecting EKS logs using SSM agent:
$ aws ssm create-document --name "EKSLogCollector" --document-type "Command" --content https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/log-collector-script/linux/eks-ssm-content.json

An error occurred (InvalidDocumentContent) when calling the CreateDocument operation: JSON not well-formed. at Line: 1, Column: 6

What you expected to happen:
Command to succeed
Anything else we need to know?:
Same as #716
Environment:

AWS Region: me-south-1
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): "eks.3"
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.21
Release information (run cat /etc/eks/release on a node):

BASE_AMI_ID="ami-0f2eb599f16eb7ac7"
BUILD_TIME="Wed Nov 17 23:55:27 UTC 2021"
BUILD_KERNEL="5.4.156-83.273.amzn2.x86_64"
ARCH="x86_64"

Also same as #725

I was able to reproduce this, and have reopened the original issue. Please track progress there.


Return with "no success" when no options are given

If the user gave us no options then we used to just raise a ValueError (due to initial_pos being out of range). In most - if not all - cases it would be more favorable to act the same way as if the selection has been aborted, so that's what we're doing now.

👍  I like this improvement


How do you set Options ?

I've seen some options can be set like 'icon, badge, vibrate etc', but i cant find any way of adding them to the sender. It uses part the serviceworker and part the php...where do you set them ?

Can you exactly tell use your scenario.
I am using it in php and service worker file

And this is service worker code

self.addEventListener('push', function (event) {
    if (!(self.Notification && self.Notification.permission === 'granted')) {
        return;
    }
    const sendNotification = body => {

        const content = body.split('@');
        return self.registration.showNotification(content[0], {
            body: content[1],
            icon: content[2],
            data: {
                click_url: content[3]
            },
            tag: Date.now()
        });
    };

    if (event.data) {
        const message = event.data.text();
        event.waitUntil(sendNotification(message));
    }
});

I hope you will get it and it will solve your problem

Yeah i was having problems figuring out how to send stuff from php to the worker. Eventually i figured it out. All work fine besides the 'sound' variable. That doesn't work for some reason. I tried everything i could think of. But its a small price to pay.
I did something similar, send everything in the payload then split them up to the options:
<?
$content = array(
	'title' => 'New comment',
	'body' => 'You have a new comment.',
	'icon' => $imagePath.'chat.jpg',
	'badge' => $imagePath.'badge.png',
	'image' => $imagePath.'banner.png',
	'sound' => $soundPath.'notification-sound.mp3',
	'vibrate' => [200, 100, 200, 100, 200, 100, 200],
	'data' => [
		'priority'=>'high',
		'url' => 'https://xxxxx/'
	],
	'actions' => [
		[
		'action' => json_encode(['action'=>'open_url', 'action_url' => 'https://xxxxx/']),
		'title' => 'Open',
		]
	],
	'tag' => 'notify',
	'renotify' => true
);
$pay_load=json_encode($content);
....
$webPush->sendNotification(
    $subscription,
    $pay_load
);
.....

let info = JSON.parse(data);
return self.registration.showNotification( notificationTitle, {
	icon: info.icon,
	badge: info.badge,
	vibrate: info.vibrate,
	image: info.image,
	sound: info.sound,
	tag: info.tag,
	renotify: true,
	data: info.data,
	actions: info.actions,
	body: info.body
});

Thanks for taking the time to answer.

What kind of error are you getting?

Nothing, no error...there is just no sound playing. Both on PC and android. Tried local path, and also http type location of the file. Maybe because it's an .mp3? I dont know. But i am getting similar notifications on my PC from other places and they do have sound.

I think you should open another issue with the sound topic what do you think?

Yeah yeah, dont worry about it. Thank for the help  :)


GMAIL: Messages missing a valid Message-ID

Someone help me please, it's been months without emails.
And I have posted on the discussion board, a week without any response here:
https://github.com/plausible/analytics/discussions/4421
Followed this gist: https://gist.github.com/ruslandoga/c94ce526231fb77930132aaeda3fc3c9.

Executed: Application.get_env :plausible, Plausible.Mailer

Result: [adapter: Bamboo.Mua]

Sending email via
{:ok, _delivered_email} =
  Plausible.Mailer.deliver_now(
    Bamboo.Email.new_email(
      # pick one of your own mailboxes
      to<EMAIL_ADDRESS>      from: PlausibleWeb.Email.mailer_email_from(),
      html_body: "test",
      text_body: "test",
    )
  )

Result:** (MatchError) no match of right hand side value: {:error, %Mua.SMTPError{code: 550, lines: ["550-5.7.1 [<IP_ADDRESS>] Messages missing a valid Message-ID header are not\r\n", "550-5.7.1 accepted. For more information, go to\r\n", "550-5.7.1  https://support.google.com/mail/?p=RfcMessageNonCompliant and review\r\n", "550 5.7.1 RFC 5322 specifications. d9443c01a7336-200bbbcb176si51237545ad.431 - gsmtp\r\n"]}}
(stdlib 5.2) erl_eval.erl:498: :erl_eval.expr/6
iex:1: (file)

Shortened docker compose file:

docker-compose.yml
services:
  plausible:
    env_file:
      - plausible-conf.env
    image: 'ghcr.io/plausible/community-edition:v2.1.1'
    command: 'sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"'
    environment:
      DATABASE_URL: 'postgres://postgres:$SERVICE_PASSWORD_POSTGRES@plausible_db/plausible'
      BASE_URL: $SERVICE_FQDN_PLAUSIBLE
      SECRET_KEY_BASE: $SERVICE_BASE64_64_PLAUSIBLE
      TOTP_VAULT_KEY: $SERVICE_BASE64_TOTP
      COOLIFY_CONTAINER_NAME: plausible-ekoc4og
    depends_on:
      - plausible_db
      - plausible_events_db
    networks:
      ekoc4og: null
    labels:
      - coolify.managed=true
      - traefik.enable=true
    restart: unless-stopped
    container_name: plausible-ekoc4og
  plausible_db:
    image: 'postgres:14-alpine'
    volumes:
      - 'ekoc4og_db-data:/var/lib/postgresql/data'
    environment:
      POSTGRES_DB: plausible
      POSTGRES_PASSWORD: $SERVICE_PASSWORD_POSTGRES
      COOLIFY_CONTAINER_NAME: plausible_db-ekoc4og
    networks:
      ekoc4og: null
    labels:
      - coolify.managed=true
    restart: unless-stopped
    container_name: plausible_db-ekoc4og
  plausible_events_db:
    image: 'clickhouse/clickhouse-server:<IP_ADDRESS>-alpine'
    volumes:
      -
        type: volume
        source: ekoc4og_event-data
        target: /var/lib/clickhouse
      -
        type: bind
        source: ./clickhouse/clickhouse-config.xml
        target: /etc/clickhouse-server/config.d/logging.xml
        read_only: true
      -
        type: bind
        source: ./clickhouse/clickhouse-user-config.xml
        target: /etc/clickhouse-server/users.d/logging.xml
        read_only: true
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    networks:
      ekoc4og: null
    labels:
      - coolify.managed=true
    restart: unless-stopped
    container_name: plausible_events_db-ekoc4og
    environment:
      COOLIFY_CONTAINER_NAME: plausible_events_db-ekoc4og
volumes:
  ekoc4og_db-data:
    name: ekoc4og_db-data
  ekoc4og_event-data:
    name: ekoc4og_event-data
networks:
  ekoc4og:
    name: ekoc4og
    external: true
configs: {  }
secrets: {  }

Here is the content of the .env file I used:

.env
ADMIN_USER_EMAIL=<REDACTED>
ADMIN_USER_NAME=<REDACTED>
ADMIN_USER_PWD=<REDACTED>

CRON_ENABLED=true

DISABLE_REGISTRATION=invite_only

MAXMIND_EDITION=GeoLite2-City
MAXMIND_LICENSE_KEY=<REDACTED>

SELFHOST=true

SENTRY_DSN=<REDACTED>

SERVICE_BASE64_TOTP=<REDACTED>
SERVICE_FQDN_PLAUSIBLE=<REDACTED>
SERVICE_PASSWORD_POSTGRES=<REDACTED>

MAILER_ADAPTER=Bamboo.Mua
MAILER_EMAIL=<REDACTED>
MAILER_NAME=<REDACTED>
SMTP_HOST=smtp.resend.com / smtp.gmail.com
SMTP_HOST_SSL_ENABLED=true
SMTP_PORT=587
SMTP_PWD="<REDACTED>"
SMTP_SECURITY=tls
SMTP_USERNAME=resend / <REDACTED>@CUSTOM_DOMAIN

binding() on iex: []
Printing all env via ash on plausible container:

export
docker compose exec plausible ash
/app $ export
export ADMIN_USER_EMAIL='<REDACTED>'
export ADMIN_USER_NAME='<REDACTED>'
export ADMIN_USER_PWD='<REDACTED>'
export BASE_URL='<REDACTED>'
export BUILD_METADATA='{"tags":["ghcr.io/plausible/community-edition:v2.1.1",ghcr.io/plausible/community-edition:v2.1,ghcr.io/plausible/community-edition:v2,"ghcr.io/plausible/community-edition:latest"],"labels":{"org.opencontainers.image.created":"2024-06-06T09:38:56.952Z","org.opencontainers.image.description":"Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.","org.opencontainers.image.licenses":"AGPL-3.0","org.opencontainers.image.revision":"b096057eef28f25f8223cb625dfd3303ffce521a","org.opencontainers.image.source":"https://github.com/plausible/analytics","org.opencontainers.image.title":"analytics","org.opencontainers.image.url":"https://github.com/plausible/analytics","org.opencontainers.image.version":"v2.1.1"},"annotations":["manifest:org.opencontainers.image.created=2024-06-06T09:38:56.952Z",manifest:org.opencontainers.image.description=Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.,manifest:org.opencontainers.image.licenses=AGPL-3.0,manifest:org.opencontainers.image.revision=b096057eef28f25f8223cb625dfd3303ffce521a,manifest:org.opencontainers.image.source=https://github.com/plausible/analytics,manifest:org.opencontainers.image.title=analytics,manifest:org.opencontainers.image.url=https://github.com/plausible/analytics,"manifest:org.opencontainers.image.version=v2.1.1"]}'
export COOLIFY_CONTAINER_NAME='plausible-ekoc4og'
export CRON_ENABLED='true'
export DATABASE_URL='<REDACTED>'
export DISABLE_REGISTRATION='invite_only'
export HOME='/home/plausible'
export HOSTNAME='3998bc52315d'
export LANG='C.UTF-8'
export LISTEN_IP='<IP_ADDRESS>'
export MAILER_ADAPTER='Bamboo.Mua'
export MAILER_EMAIL='<REDACTED>'
export MAILER_NAME='<REDACTED>'
export MAXMIND_EDITION='GeoLite2-City'
export MAXMIND_LICENSE_KEY='<REDACTED>'
export MIX_ENV='ce'
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
export PWD='/app'
export SECRET_KEY_BASE='<REDACTED>'
export SELFHOST='true'
export SENTRY_DSN='<REDACTED>'
export SERVICE_BASE64_64_PLAUSIBLE='<REDACTED>'
export SERVICE_BASE64_TOTP='<REDACTED>'
export SERVICE_FQDN_PLAUSIBLE='<REDACTED>'
export SERVICE_PASSWORD_POSTGRES='<REDACTED>'
export SHLVL='1'
export SMTP_HOST='smtp.resend.com'
export SMTP_HOST_SSL_ENABLED='true'
export SMTP_PORT='587'
export SMTP_PWD='<REDACTED>'
export SMTP_SECURITY='tls'
export SMTP_USERNAME='resend'
export TERM='xterm'
export TOTP_VAULT_KEY='<REDACTED>'

👋 @stoutZero
Apologies for the delay in responding on the discussion forum. I’ve been on vacation and will be back later this week. I’ll make sure to reply as soon as I return.

To further clarify, I'm actually okay not having any email capabilities, I checked my plausible daily.
Sometimes multiple time a day.
It became a bit of a problem when I'd like to invite another person to have access, a week later they still haven't got access.
So, if invite via email is impossible / difficult to debug, maybe something in bin/, like bin/plausible?
Something like: docker compose exec plausible bin/plausible invite would be great.
Thanks for replying 😄

Yeah, found out why it can't send email.
Wrong keys in the env file.
It's supposed to be:

SMTP_HOST_ADDR instead of SMTP_ADDR
SMTP_HOST_PORT instead of SMTP_PORT
SMTP_USER_NAME instead of SMTP_USERNAME
SMTP_USER_PWD instead of SMTP_PWD

I was using env keys from a previous installation, the keys might have changed.
And this really shouldn't be in issues. Sorry about that.


Bug on Raspberry Pi3 with YF-S201C #firstbugreport

Hello AaronKow,
I've tested your code on my Raspberry Pi3 and the program starts without any problems (init with 0).
When water starts flowing, the sensor starts reading the pulses, but there is the bug. It reads not correct (current liquid flowing ca 718000 ml/sec; flow rate ca 43100 L/min)
if water stops, it still reads the 718000 ml/sec.
If I unplug the signal wire, it still "reads" current liquid flowing (around 718000 ml/sec).
Can you help me fixing it?
Greetings and thank you :)

Hi @Scanbot90,
Thanks for trying out the code.
I refer to my previous project. It seems I missed out the usleep(100).
Can you try see it works out. Make sure the pins connected are correct as well.

But where did you missed it? :)

Hi AaronKow,
still the same problem.
It doesn't return back to 0 (current liquid flowing)
Does it work with your hardware?

Yep, I do tried with the experiment project before. You can have a look in the video.
Can, you try debug through the hardware?
You after you compile the code with pin 17. Instead of connect to pin 17, try to connect your signal to GND. If you did it right, you should get 0, (because you grounded your signal).

Make sure you connect the wires correctly with respect to the colors:

Btw, you mentioned you connect to pin 17, is it a 3.3v power?

Hello again,
I mean GPIO 17 (pin 11).
I think there is a problem with the interrupt handler.
When I start your programm on GPIO 17, all values are init with 0.
When the sensor get the first pulse (water flows), the program give me wrong values (allways around 718000 ml/sec).
When I stop water flowing, the program still reads values. Then I unpluged the signal wire to see if there is a problem with the sensor, but the program still read values. And then i stop your program with pressing
Greetings

Hi,
If that case, a bit hard for to test things out because I don't have any Raspberry with me right now ...
Btw, I can't confirm if this code doesn't work for other devices. For the time being. if you have an Arduino, you can use the source code, here.


Get-GSDriveFileList limits pagesize to 100

Get-GSDriveFileList limits pagesize to 100 even when higher limits are specified.  Also, documentation indicates a default pagesize of 1,000 but 100 is actually used.
Pagesizes lower than 100 are honored.

PSVersion: 5.1.17134.407
PSEdition: Desktop
OS: Windows 10 Version 1803, Build 17134.472
PSGSuite: 2.26.0

Hey @WJurecki - I think this may be more of a bug with either the Drive .NET SDK or the API documentation. I'll update to the latest SDK version with the next release and sanity check the code in case something is reverting there.

Latest Drive .NET SDK and same issue. Confirmed that there's nothing in the code that's hard setting it @ 100 as well.

Confirmed that the .NET SDK documentation also reflects a maximum of 1000: https://developers.google.com/resources/api-libraries/documentation/drive/v3/csharp/latest/classGoogle_1_1Apis_1_1Drive_1_1v3_1_1FilesResource_1_1ListRequest.html#adca04399178ff49134b8a8e3c4537847

Going to see about opening up an issue with Google on it, just finding the appropriate spot.
It doesn't appear to be an issue when going through the REST API via the API Explorer; downloaded JSON results confirms 1000 files per page:

I have tried this again with version 2.27.0 and find that there is a relationship between the number of -Fields requested and the actual -PageSize used, as seen here:

That is pretty strange! Thanks for investigating, @WJurecki!


⚠ Spryr has degraded performance

In 21ee439, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 4490 ms

Resolved: Spryr performance has improved in af68c4a after 9 minutes.


Target "yarpl" links to target "Boost::filesystem" but the target was not   found.

Hi All,
we tried to build an old version of rsocket-cpp for mcrouter support but we found an issue during the CMAKE generation phase.
Expected Behavior
We expect the successfull generation via cmake command
Actual Behavior
The cmake generation fails.
Steps to Reproduce
We execute this command to generate via cmake the config:
&& tar xfz /tmp/rsocket-cpp-$RSOCKET_CPP_VERSION.tar.gz -C /tmp/ \
&& mkdir -p /tmp/rsocket-cpp-$RSOCKET_CPP_VERSION/_build/ \
&& cd /tmp/rsocket-cpp-$RSOCKET_CPP_VERSION/_build/ \
&& export CXXFLAGS="$CXXFLAGS -fPIC" \
&& cmake3 -Wno-dev .. \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_INCLUDE_PATH="/usr/local/include" \
-DCMAKE_LIBRARY_PATH="/usr/local/lib:/usr/local/lib64:/usr/lib64:/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/"  \
-DCMAKE_PREFIX_PATH="/usr/local/include" \
-DBUILD_BENCHMARKS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DCMAKE_BUILD_TYPE=DEBUG \
-DBOOST_ROOT="/usr/local" \
-DBoost_NO_BOOST_CMAKE=ON \

The generation result is:
-- Found folly: /usr/local
-- Configuring done
CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::context" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::filesystem" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::program_options" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::regex" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::system" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::thread" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::context" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::filesystem" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::program_options" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::regex" but the target was not found.
  Perhaps a find_package() call is missing for an IMPORTED target, or an
  ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::system" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::thread" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::context" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::filesystem" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::program_options" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::regex" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::system" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:201 (add_library):
  Target "ReactiveSocket" links to target "Boost::thread" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::context" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::filesystem" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::program_options" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::regex" but the target was not found.
  Perhaps a find_package() call is missing for an IMPORTED target, or an
  ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::system" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

CMake Error at yarpl/CMakeLists.txt:67 (add_library):
  Target "yarpl" links to target "Boost::thread" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BOOST_ROOT
    Boost_NO_BOOST_CMAKE

CMake Generate step failed.  Build files cannot be regenerated correctly.

Possible Solution
N/A
Your Environment

RSocket version(s) used: 2<IP_ADDRESS>
OS and version (eg uname -a): centos 7.9

Just wondering if you found a fix for this problem, as I'm having the same issue?


Add download to export command

Fixes #139
The export command currently only creates a .csv in the data directory of the project folder. This update allows the export command to copy a .csv file into the user's home directory and updates tests.

LGTM

lgtm


Update basePath at request time.

Handle nested apps (see issue #40) by updating the basePath when the apiDoc is requested.

Coverage remained the same at 100.0% when pulling 0087312c4d596e670b3e85993ee832fb6168eba0 on willist:update-base-path-on-request into 7e6b7ed24f6904fbf9de4958ace2892c4779c97f on kogosoftwarellc:master.

Looks like tests are failing.  Can you take a look?

Coverage remained the same at 100.0% when pulling e7eed8d4fb7f5e85b42db0a51df7b88dd5a39f83 on willist:update-base-path-on-request into 7e6b7ed24f6904fbf9de4958ace2892c4779c97f on kogosoftwarellc:master.

It looks like I missed some unstaged changes in the first commit.  Tests are now passing on 4.x and 5.x.  I'll need to dig into the 0.10 and 0.12 failures though.

also, I'm surprised that this isn't working already.  See https://github.com/kogosoftwarellc/express-openapi/blob/master/index.js#L223

Okay, it looks like there were two separate issues in my project.

The parent app was an instance of Router instead of Application.  Router does not appear to have a mountpath, which is why I wasn't seeing any modification to the basePath.
I have several nested applications above express-openapi.  I am serving the api doc at /api/nested/v1/api-docs, where each level of that path is a separate application.  Even when I resolve the first issue by switching from Router to Application, my basePath is /nested/v1 instead of /api/nested/v1 due to limitations of mountpath.

This PR resolves both issues, but is missing unit tests that accurately reflect those issues.  I'll add those in the morning and update this PR.  I'll also look into and fix issues with 0.10 and 0.12.
I've also updated #40 to better explain item 2 above.

This PR resolves both issues, but is missing unit tests that accurately reflect those issues. I'll add those in the morning and update this PR. I'll also look into and fix issues with 0.10 and 0.12.

Thanks!  Looking forward to merging this.

I added test cases and fixed the failures on 0.10 and 0.12.

Coverage remained the same at 100.0% when pulling fbe44dee28731cd5dbb5190d9e84ae5591a42f1e on willist:update-base-path-on-request into 7e6b7ed24f6904fbf9de4958ace2892c4779c97f on kogosoftwarellc:master.


test: refactor tests for getFieldData()

Description

refactor tests for getFieldData()

Ref #6308
Checklist:

[x] Securely signed commits
[] Component(s) with PHPDoc blocks, only if necessary or adds value
[] Unit testing, with >80% coverage
[] User guide updated
[x] Conforms to style guide

This does not change anything, just add tests for the current behavior.
I'm merging.


tutorial: difference between this library and ppl

for a novice, what is the conceptual difference
is the task here similar to the task in ppl
does this library rely on a thread pool

Sorry for the delay in replying.
I'll try and answer your questions as best I can, but I'm not an expert in PPL so please forgive me any inaccuracies.
This library is built on top of the Coroutines TS and uses coroutines as the fundamental building-block for implementing continuations, rather than callbacks. This allows you to write asynchronous code more simply without need to break up your functions into callbacks for each synchronously executing part.
PPL tasks represent computations that are executed in parallel on a thread-pool. You typically construct a PPL task with a callback/lambda that you want executed on the thread-pool and it will get scheduled. You can then attach a continuation for that task using .then().
The cppcoro task has some conceptual similarities at a high level but has a few differences.
Namely, you create a cppcoro task by calling a coroutine function, the body of which defines the state-machine for executing the operations within a task. A cppcoro::task is not automatically executed on the thread-pool, it will start executing on whatever thread co_awaits the task.
cppcoro can in theory be used without a thread-pool, although many of the low-level async operations require a scheduler of some sort to schedule resumption of coroutines when operations complete. The io_service class can be used to implement a thread-pool, however I also plan to add a thread-pool to cppcoro as well.

Thank you. Great library!


The NIL->SET, NIL->VECTOR examples are wrong

Since I cannot edit the Wiki page and I cannot make a PR here is a patch:
wiki.patch.txt

Fixed, thanks


Japanese texts are output in an ASCII format

It is usually desirable to output Japanese texts as they are (i.e. human-readable).
This can be realized by setting ensure_ascii=False to json.dump.

This issue has been resolved by pull request #21.


Add photos of planets in folder images/planet-photos

I found photos on NASA's API for each planet for the planet pages.  These can be backup for whatever else we decide on using.

Since these pictures are to be a backup, we can leave it in the branch for now.


MSID: 90316 Version: 1 DOI: 2<IP_ADDRESS>7147

"msas": "Biochemistry and Chemical Biology", "Microbiology and Infectious Disease"
"msid": "90316"
"preprintDoi": "10.1101/2<IP_ADDRESS>7147"
"Reviewed Preprint posted": "2023-11-13"
"Sent for peer review": "2023-09-08"
"Posted to bioRxiv": "2023-07-20" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>7147v2/")
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=90316)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/90316/v1)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>7147)
[x] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/90316/v1/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/90316)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/90316

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/90316

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/90316/v1/90316-v1.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/90316)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

elocations missing from references


Make sure subdomain works with localhost in API Gateway

We have a user currently facing an issue due to the fact, we don't support subdomain for localhost

https://github.com/golemcloud/golem/issues/460

As the aforementioned user, solving this isn't a big deal for me. I mentioned this in discord here:
https://discord.com/channels/1134448700572319785/1134448701260169249/1234981436172537967
A bit more context -- I have my app setup with two APIs, segregated because they [will] have very different security policies. 'traderapi' and 'adminapi'. Then I also am setting things up with 'environments' so that I can deploy 'test', 'staging', 'production', etc but also so I can run an integration test script with a randomly-generated environment. So the APIs should be hosted at something like environment.traderapi.host
I have an integration script that should ideally work both locally and in CI, which starts up the golem cloud docker, deploys my app with a randomly generated environment, and then calls the API endpoints to run tests. I initially thought I could do environment.traderapi.localhost because it seemed that environment.traderapi.localhost was resolving to localhost without any special local configuration, so it would work nicely. However, it turned out that this mapping from *.localhost -> localhost is a peculiarity to curl. curl http://environment.traderapi.localhost/ works to localhost, but ping environment.traderapi.localhost doesn't.
So far I have come up with a workaround where I am running dnsmasq locally to map *.dev to localhost, and I am deploying to environment.traderapi.dev -- however I haven't figured out yet how to make that work with running the integration test script in CI.
I suppose if we did support subdomains on localhost host in golem, then I could do my integration tests with curl, but that seems kind of ugly, because this *.localhost -> localhost mapping is just a 'feature' of curl it turns out, which isn't something that feels right to rely on.

Thanks Sameer for the detailed response to the ticket, and we are closing this. As you can see with #460, we are making subdomains optional and moving this ticket to closed


Modeling climate change | MIT Computational Thinking Spring 2021 | Lecture 25

Video Link: Lecture 25
Pluto notebook: Notebook
MARGO's Github: Source code
Timestamps:
0:00 - Pleasantry exchange
0:41 - Introduction to MARGO
1:24 - Henri on the motivation behind MARGO
3:00 - How to interact with the climate model
5:16 - Emission mitigation and carbon dioxide removal to minimize climate suffering
9:30 - Mitigation, Removal, Geo-engineering
9:50 - Adaptation: Henri explaining the equations
17:20 - Mitigating emissions
20:15 - Cost & damages
22:30 - Henri on net cost & net benefit
24:20 - Picking up the slack carbon dioxide removal
26:22 - Alan on climate model incorporating economic variables
27:10 - David on Solving inverse problems
28:40 - Modeling with JuMP
33:05 - Example of JuMP (Unconstrained optimization)
43:20 - Constrained optimization
47:55 - MARGO source code with JuMP
51:15 - MARGO's automated optimization
54:20 - Henri on how optimal policy depends on the model's assumptions
56:45 - Wrap up (advice for interested CS students)

@logankilpatrick is this the right amount of details?

Yes! This is great. You could even do with slightly less detail

Added the timestamps, thank you again!


[DISCUSS][RFC] Static Destruction Order Problem

A crash occurs when exiting the process when at least one vulkan device has been constructed. This appears to be due to the way static destruction order interacts with library unloading order on Windows (a similar issue appeared previously with NNVM).
The core of the previous issue, and seemingly the same issue here, is that when using static destructors in libraries, it is easy to run into a situation where one library is calling into another after the other has been unloaded. I suspect in this case, the vulkan library is unloaded before TVM's static destructors are invoked, leading to a crash when trying to destroy vulkan devices.
The crash occurs here, on the call to vkDestroyDevice:
https://github.com/dmlc/tvm/blob/master/src/runtime/vulkan/vulkan_device_api.cc#L16
We can check that this is due to the destruction/library unload order by forcing this destructor to be called before any libraries are unloaded, by calling it at the end of main(). This requires a small modification to the destructor so that it won't fail when called twice:
VulkanWorkspace::~VulkanWorkspace() {
  for (VulkanContext& ctx : context_) {
    vkDestroyDevice(ctx.device, nullptr);
  }
  if (instance_ != nullptr) {
    vkDestroyInstance(instance_, nullptr);
    instance_ = nullptr;
  }
}

and then making the following call at the end of main()
  TVMContext vulkan_ctx{ (DLDeviceType)kDLVulkan, 0 };
  tvm::runtime::DeviceAPI::Get(vulkan_ctx)->~DeviceAPI();

stops the issue from occurring entirely.
However, this is quite a hacky solution, and doing this from python is even more cumbersome, especially if the process doesn't exit cleanly.
Is there a better way of handling this cleanup that can prevent these issues?
More generally, there may be a wider issue of relying on lifetimes of static variables that keeps manifesting in this kind of issue. Is there a better way of handling library-wide lifetimes that could prevent this as the project grows? The most direct solution I can think of is requiring library clients to call a cleanup function when they are done with the library, eg TVMDestroy (for C++ this could have a RAII wrapper that is constructed in main()). This is more onerous, but would guarantee that the cleanup code is always run before any libraries have been unloaded in the course of shutting down the process. It could also be used to allow other libraries like NNVM and TOPI to register their own cleanup functions with TVM, and TVM can ensure that their cleanup happens first.
I'd be interested to hear any thoughts on how this specific issue can be resolved easily, and more generally this type of destructor/library unload issue in the future.

Unfortunately, static destruction order problem does occur in certain cases. There are several ways to alleviate this problem

For resources that we can control, always obtain a shared_ptr of a global singleton you dependent on(so destruction happens after that).
I do agree that having an eager destructor could help in certain cases, as long as the destructor itself is idempotent (if it is called twice the second time have no effect).  Let us say this function is called TVMFinalize. In cases when this function is not called, the destructor will still be called automatically.

Having thought about this some more, I think that an eager destructor is necessary to resolve this issue. The issue is not just destruction order across statics in the project (although it is important to have a robust way of dealing with this), the issue is that, on windows at least, some libraries may be unloaded before others have their static destructors invoked, and AFAIK we cannot control this ordering.
Fundamentally, when any static destructor runs from a library, we cannot know what other libraries have already been unloaded by the OS (and that includes libraries like the vuklan API lib), so making calls across library boundaries in static destructors is potentially unsafe.
The only way I can think of resolving this is with an eager destructor because we know no libraries have been unloaded when it is called.
Definitely agree it should be idempotent.
I'm not sure it should be called automatically if the app doesn't call it - this is likely to trigger exactly this kind of hard to debug problem, and if the process is being torn down anyway the OS will handle the cleanup.

if the eager destructor is not called automatically, the default destructor of these singleton object will get called, and will hopefully exit correctly given. I do agree that having an exit hook that calls into finalize is nice(although in certain cases this creates an additional burden on the user).
For drivers like CUDA, we can simply catch the error code saying the driver has been unloaded and ignore them during destruction time. But that really depends on how robust the driver is

Ah - I wasn't specific before but the error raised when calling vkDestroyDevice is an access violation, not a catchable exception. This was because the vuklan API library had been unloaded by the OS before TVM's static destructors were called.
This means that any cross library function calls in static destructors can potentially cause an un-catchable error, and I'm not sure there is a safe way to determine if a library you depend on has been unloaded when the static destructor runs.
As far as I can see the only way to prevent this is to require an eager destructor for any destructor that may make cross-library calls (which could be as subtle as releasing a reference to a registered shared_ptr) in static destructors.

I think it makes sense to have eager idempotent destructor. But we do also want to be compatible with cases when TVMFinalize is not called, as it works for some cases depending on how good the driver is.
So a good middle ground could be support TVMFinalize and encourage a user to use it in runtime, while still support the old use case

I don't think that will work as a solution; since we cannot be sure (AFAIK) when a static destructor is running whether any other DLL has been unloaded from the process' address space then making cross library calls is undefined behaviour.
It so happens that this works on linux, but this is implementation dependant.
This goes for any cross library calls - in this case it is tvm->vulkan but before it was tvm->nnvm via callback.
If we implement the destructor being automatically called, then this will cause an error on windows whenever the process exits and TVMFinalize has not been called. This could easily occur when, for example a python program exits with an error. I think the correct approach would be to just let the OS clean up if the program does not. See this post:
https://blogs.msdn.microsoft.com/oldnewthing/20120105-00/?p=8683/
I will have another look later to see if there is a way that we can enforce a certain order of unloading DLLs at process exit, but as far as I know this is not possible. Even if it is possible, it is likely to be Windows specific, so it won't guarantee that other non-linux and non-windows platforms will function correctly.

Summary of the current status of static destructors:

The external FUNCTOR registration problem has been resolved as we move to register function pointer instead of std::function
We have decided to not destruct most of the resources(function pointers) in the singletons, to avoid destruction order problem
We have not resolved the order dependencies of DeviceAPI, the current recommendation is always de-allocate array in functions instead of keeping a global reference. For these with global reference, never destruct them.

Given there are not too many further actionable items, we will close this thread for now.


Enable windows auth in tests via web.config.

@davidfowl @muratg @victorhurdugaci
Victor, this is one of the last blockers for the x-plat tests.

Hi @Tratcher, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

:shipit:

:shipit:


Try to figure out why Carmen Prelude fails to convert

It fails for both tja2bin and tja2fumen, so this might be an issue on TakoTako's end? It may also be a chart error. Needs investigation!

Conversions fails due to the presence of STYLE:Single and STYLE:Double metadata, which is P1/P2-specific metadata.

Duplicate of #6.

Even after implementing support for multiplayer charts, this song still fails for my converter. There were likely multiple issues with the chart present at once.

The issue here was incredibly simple: The TJA author wrote #START 2P instead of #START P2,


CI: Switch macos aarch64 to nightly

We will be promoting aarch64-apple-darwin to tier 1 soon via https://github.com/rust-lang/rust/pull/128592. This updates our CI so that aarch64-apple-darwin runs the full test suite on nightly to keep this in-line with tier-1 support.
This also removes the x86_64 stable macos job and replaces it with aarch64, mainly because aarch64 runs much faster, and presumably x86_64 support will go away some day.

@bors r+

:pushpin: Commit afe0b2de7aa9f2be3eecdc841d82d93470831c59 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit afe0b2de7aa9f2be3eecdc841d82d93470831c59 with merge ec05ed9f9cf03f516f469611d3fde7573300d187...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing ec05ed9f9cf03f516f469611d3fde7573300d187 to master...


Support to add programmatic (script) actions to toolbar buttons

From<EMAIL_ADDRESS>on 2010-08-01T09:00:50Z
I'd like to add a few simple command line capabilities to Spyder without needing to modify the code. If I had toolbar I could attach python scripts which execute in shells with context aware env variables, I could do a lot of customization with minimal coding.
For example, I'd like to use bazaar to manage a project. I'd like to be able to commit a project file from inside spyder. If I had a hot button that could execute a python script running in a new shell, I could easily add this. If the shell started with environmental variables that described the currently open file, its path, etc, I could write a simple python script to call bazaar with the project I'm working and and commit the current file.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=259

From ccordoba12 on 2011-04-15T07:57:23Z
Labels: -Type-Defect Type-Enhancement

From pierre.raybaut on 2012-03-18T14:06:12Z
Labels: -Type-Enhancement Type-Enh

From ccordoba12 on 2011-10-07T13:38:48Z
Labels: Cat-SpyderGUI

From ccordoba12 on 2015-01-06T07:59:53Z
Solving the third-party plugins issue is really high on my todo list for 2.4 :-) I think the easiest way would be to make "spyderplugins" a namespace package.

From contrebasse on 2015-01-06T07:51:20Z
Just a thought, but a plugin can relatively easily add toolbar buttons. But to be efective, we would need 2 things:

a way to easily install plugins for any user
a simple example of a basic plugin adding a toolbar button

From ccordoba12 on 2015-01-03T07:41:20Z
Summary: Support to add programmatic (script) actions to toolbar buttons  <span class="oldvalue"> (was: Support for triggering simple command line level actions with information from inside spyder from toolbar buttons) </span>

From ccordoba12 on 2015-01-07T07:09:58Z
That's for pip installations to work. For users we would need a special dir in ~/.spyder2 (spyderplugins too?)
My main idea is this:

Create an (approved) index of third party plugins in a json file attached to a repo in github. The info for each plugin would be: Name, author, version, description and url of a zip file with its contents.

Make Spyder read that file at startup (of course, it'd need to be online for that).

With that info we'd build a Qt dialog that would let users to select and install their plugins of choice.

How's that sound?

From contrebasse on 2015-01-07T06:14:40Z
How would a user add his plugin to this namespace package ? It looks like it would need admin rights.

From<EMAIL_ADDRESS>on 2015-01-12T10:18:00Z
I am very interested in this development, specially now that CondaPackages has been merged :p.
Why don't we use the PyPi infrastructure that already exists? We can have the packages installed via pip, and decide on a convention for the package names... (like django...)  like 'splugin-conda' (splugin_conda).
When I start working on the Projects manager, there should be something like create a Spyder Plugin, and a basic skeleton for the current version of spyder should be built, including all necessary information so that uploading to pip is easy! then with Binstar we can have a channel that is Spyder-plugins, that we should ship by default.

From ccordoba12 on 2015-01-08T09:07:55Z
Agreed with your points too: letting users select their installation location and using "userplugins" as a dir in ~/.spyder2

From contrebasse on 2015-01-08T04:53:57Z
Didn't know about namespace packages, this looks great ! I'm fine with your 3 steps, but it should be possible to install from a local package (by selecting a zip file) or from an untrusted source (by entering an url).
I think a plugin in the user directory should overwrite any plugin in the global directory with the same name, so maybe having a different name like ~/.spyder2/userplugins would be better for managing such conflicts.

From ccordoba12 on 2015-01-12T10:36:24Z
Both ways should be possible, i.e. using pip/conda or Spyder. There are two reasons for that:

I think the main idea is not force scientists (our main target) to go through the pains of the Python packaging system (i.e. create a setup.py, decide between distutils or setuptools, etc, etc). Even creating a conda recipe and package is not trivial :-) Instead they can just create a zip file with p_foo.py and widgets/foogui.py and that's it!

To let users install in their home directory, in case they don't use conda :-)

From<EMAIL_ADDRESS>on 2015-01-12T10:18:00Z
I am very interested in this development, specially now that CondaPackages has been merged :p.
Why don't we use the PyPi infrastructure that already exists? We can have the packages installed via pip, and decide on a convention for the package names... (like django...)  like 'splugin-conda' (splugin_conda).
When I start working on the Projects manager, there should be something like create a Spyder Plugin, and a basic skeleton for the current version of spyder should be built, including all necessary information so that uploading to pip is easy! then with Binstar we can have a channel that is Spyder-plugins, that we should ship by default.

Have been thinking about this lately, now with the works on projects I think we could really minimize the friction of the packaging system by including a Spyder pulgin template that already handled the creation of a setup.py and needed stuff.

There is something in https://github.com/spyder-ide/spyder.example but I don't know how up-to-date it is. Also there should be one example for a widget plugin (like pylint), one for a menu plugin (like autopep8), and one for a toolbarplugin (which could be merged with the previous one because they are very similar).

We need to have a more standard way of adding things to the menus. We should add groups to menus so that users can add a menu to a group and keep things more organized, otherwise multiple plugins will start polluting menus

Agreed!


"Unique" field attribute & "Safe" sails' migrate option

I'm not sure if it's a bug. My sails config in package.json is:
"sails": "~0.12.0-rc3",
"sails-mongo": "^0.11.5"

So, this version of sails contains waterline version 0.10.28.
There are two cases:
1- To set the migrate:"safe" inside the models.js in project's config folder
2- To enter number "1"/enter-key at the beginning of the sails app load & run
In both above cases, the unique attribute inside the models is ignored. (for example having a model User, and running this command: User.create({username:"repeated'})...)
If it's a bug, just help us to resolve it. If it's a normal thing for the sails project, please document it somewhere.
Thanks

Ok, my summary from testing development & production next to different migrate options.
It seems if the db initially is made by the sails in "safe" migrate mode, the unique fields are ignored.
So the solution I found:
Initially run the app in "drop" or "alter" migrate mode, then start to use "safe" migrate mode.

Correct– migrations are not run on production, which essentially forces migrate: safe.  They should be done using a different tool.  Perhaps unique indexes could be created when using the create migration strategy.