text:
Citation

How would you like the work to be cited? Thank you so much and thank you for doing such wonderful work! It was a delight to read and use :))

We'll put up and arxiv version sometime once we get another ablation experiment finished I want to include. Fingers crossed I don't get lazy and never do it like what happened for GPT-2...
For now:
@article{radford2021learning,
title={Learning Transferable Visual Models From Natural Language Supervision},
author={Radford, Alec and Kim, Jong Wook and Hallacy, Chris and Ramesh, Aditya and Goh, Gabriel and Agarwal, Sandhini, and Sastry, Girish and Askell, Amanda and Mishkin, Pamela and Clark, Jack and Krueger, Gretchen and Sutskever, Ilya},
year={2021}
}

Now that we have arxiv submission, the citation can be:
@article{radford2021clip,
  title={Learning Transferable Visual Models From Natural Language Supervision},
  author={Alec Radford and Jong Wook Kim and Chris Hallacy and Aditya Ramesh and Gabriel Goh and Sandhini Agarwal and Girish Sastry and Amanda Askell and Pamela Mishkin and Jack Clark and Gretchen Krueger and Ilya Sutskever},
  journal={arXiv preprint arXiv:2103.00020},
  year={2021}
}

authors: Newmu jongwook minakhan01

repo: openai/CLIP


text:
TypeError: 0 is not JSON serializable

I'm using the gym API in R running the example_agent.R file.
When I use the CartPole-v0 environment this works fine, but then I try the "FrozenLake-v0"  I get an error:  Error: API did not return json when I run
for (i in 1:episode_count) {   ob <- env_reset(client, instance_id)   for (i in 1:max_steps) {     action <- env_action_space_sample(client, instance_id)     results <- env_step(client, instance_id, action, render = TRUE)     if (results[["done"]]) break   } }
and in my WinPython Command Prompt (Python 3.6.0.1Qt5) I get the following error:
TypeError: 0 is not JSON serializable
Hope, someone can help :)

The error arises from calling env_reset on the client when the "FrozenLake-v0" environment is specified.
The same error occurs when I run the Julia client for the "FrozenLake-v0" environment and the following Python code results in the same error. This makes me think that this is something with either the gym API or the gym package. I'll keep exploring.
    remote_base = 'http://127.0.0.1:5000'
    client = Client(remote_base)

    # Create environment
    # env_id = 'CartPole-v0'
    env_id = 'FrozenLake-v0'
    instance_id = client.env_create(env_id)

    # Check properties
    all_envs = client.env_list_all()
    action_info = client.env_action_space_info(instance_id)
    obs_info = client.env_observation_space_info(instance_id)

    # Run a single step
    client.env_monitor_start(instance_id, directory='tmp', force=True)
    init_obs = client.env_reset(instance_id)

The issues arises because Gym returns an observation that is a Numpy type instead of a native Python type. When Flask attempts to jsonify a Numpy type, a TypeError arises. See these StackOverflow question and answers for more details on the problem and solution:

http://stackoverflow.com/questions/11942364/typeerror-integer-is-not-json-serializable-when-serializing-json-in-python
http://stackoverflow.com/questions/9452775/converting-numpy-dtypes-to-native-python-types.

To solve this problem for the Gym API, I recommend adding observation = observation.item() to the Flask route for env_reset (original code found here: https://github.com/openai/gym-http-api/blob/master/gym_http_server.py#L213):
@app.route('/v1/envs/<instance_id>/reset/', methods=['POST'])
def env_reset(instance_id):
    """
    Reset the state of the environment and return an initial
    observation.

    Parameters:
        - instance_id: a short identifier (such as '3c657dbc')
        for the environment instance
    Returns:
        - observation: the initial observation of the space
    """
    observation = envs.reset(instance_id)
    observation = observation.item()
    return jsonify(observation = observation)

@catherio Any thoughts? Again, I can make a pull request with the code change (and appropriate unit tests and documentation changes) if approved!

@paulhendricks  I'd be very grateful if you could submit a pull request! I'm not using this codebase directly myself anymore, so am very appreciative of contributions from folks in the community who are invested in its development.

Assuming this is resolved via the pull request

Thank you so much. It works now 👍

source: gharchive/issue

authors: catherio markdumke paulhendricks

repo: openai/gym-http-api

license: MIT

license_type: permissive

license_source: github-api


text:
problems with parameter setting

We try to run your project, but we are not sure about what 'dataset' in pipelines is exactly.
I set the parameters under the instructions in pipelines like this:
python imitate_mj.py
--mode ga
--env Humanoid-v1
--data log_humanoid_1.h5
--limit_trajs 160
--data_subsamp_freq 20
--favor_zero_expert_reward 0
--min_total_sa 50000
--max_iter 1501
--reward_include_time 0
--reward_lr .01
-log {out}
where is my fault?
Thank you very much.

I think you could refer to https://github.com/openai/baselines/tree/master/baselines/gail

authors: Xinyu-Shi umichyp

repo: openai/imitation


text:
Fixing typo in parameters usage

Very tiny fix ;-)

Thank you!

source: gharchive/pull-request

authors: ggdupont ted-at-openai

repo: openai/openai-cookbook


text:
New Fine-Tuning Job API Endpoints missing

The new Fine-Tuning Job functionality announced overnight is not currently included in the OpenAI OpenAPI specification.
Can the new /fine_tuning/jobs endpoints and methods please be added to the OpenAPI specification?
Docs:

https://platform.openai.com/docs/guides/fine-tuning/use-a-fine-tuned-model
https://platform.openai.com/docs/api-reference/fine-tuning/create

The functionality has been added to the Python SDK and also the node SDK but I can't find anywhere where it's been added to the OpenAPI spec.
Thank you

This is fixed via #77, thanks for flagging!

repo: openai/openai-openapi


text:
openai.Model.list() is invalid

Confirm this is an issue with the Python library and not an underlying OpenAI API

[X] This is an issue with the Python library

Describe the bug
After the version update, openai.Model.list() is invalid, now how do I see which models the API can call?
To Reproduce
above
Code snippets
No response
OS
linux
Python version
3.9
Library version
1.13.3

Please migrate to v1.

authors: caishuo-C rattrayalex

repo: openai/openai-python

license: mit

license_source: bigquery


text:
Add test for tl.reduction and add missing reductions to docs

tl.reduction is currently tested indirectly through the existing reduction operators, but it's good to have a direct test for the function itself.

Can we actually call this tl.reduce instead of tl.reduction ?

repo: openai/triton


text:
[Backend] Allow dot operand pipelining in more circumstances.

[Backend] Allow dot operand pipelining in more circumstances.
PR #3472 partially rolled back PR #3415 due to internal test failures.  This PR
rolls forward the change as much as we currently can, allowing most but not
all relevant loads to be pipelined.
There is still a TritonGPU -> LLVM codegen bug in Triton that we have not been
able to fix, but now we catch it with asserts, PR #3549.
PR chain

👉 #3561 👈 YOU ARE HERE

Thank you!


text:
OSError: [Errno 13] Permission denied:

Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/Library/Python/2.7/site-packages/pip/req.py", line 1435, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/Library/Python/2.7/site-packages/pip/req.py", line 671, in install
self.move_wheel_files(self.source_dir, root=root)
File "/Library/Python/2.7/site-packages/pip/req.py", line 901, in move_wheel_files
pycompile=self.pycompile,
File "/Library/Python/2.7/site-packages/pip/wheel.py", line 215, in move_wheel_files
clobber(source, lib_dir, True)
File "/Library/Python/2.7/site-packages/pip/wheel.py", line 205, in clobber
os.makedirs(destdir)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/autobahn'

go sudo

repo: openai/universe


text:
fix to allow docker swarm download image automatically

Hello,
Please see the feature request for more details.
https://github.com/openanalytics/containerproxy/issues/52
Thanks,
Robin

Thank you very much for this contribution! This is now part of ShinyProxy 3.0.0 which we are releasing today.
See https://github.com/openanalytics/containerproxy/commit/e6de16534ef6a29c20526a2178ecb47680c327bf
I also listed you as contributor on our release notes: https://shinyproxy.io/downloads/

authors: LEDfan ziyunxiao

repo: openanalytics/shinyproxy


text:
Feature/nim 17797 dynamic values grid post button url

Description

The author of this pull request failed to include a description or DELETE this line.
Overview of Changes

N/A
Type of Change

N/A
Test Details

N/A
Additional Notes

N/A

You did it @swethavemuri-anthem!
Thank you for signing the Anthem Opensource Software CLA.

authors: openanthem-admin swethavemuri-anthem

repo: openanthem/nimbus-core


text:
Optional[datetime] field with value null/None gets isoparse'd

I have a field in my generated model like this:
timestamp: Union[Unset, datetime.datetime] = UNSET
My API returns {"timestamp": null}, which then gets deserialized as None, and ends up in the else clause of this generated code:
        if isinstance(_timestamp, Unset):
            timestamp = UNSET
        else:
            timestamp = isoparse(_timestamp)

.. when then ends up raising in dateutil's isoparser.py.
I'm using 0.10.1 and saw https://github.com/openapi-generators/openapi-python-client/issues/381 and https://github.com/openapi-generators/openapi-python-client/pull/420 - wondering if datetime.datetime wasn't fixed with that issue or if I'm doing something wrong?

If the type of the generated model is Union[Unset, datetime.datetime] then I’m guessing the schema doesn’t have nullable set. In which case, null is an invalid value for the server to be returning according to the schema.
See https://github.com/openapi-generators/openapi-python-client/discussions/385 for more info on the required vs nullable difference in spec.
If your schema does have nullable: true in it then it sounds like a generation bug, as the type should be Union[Unset, datetime.datetime, None] (if not required) or Optional[datetime.datetime] (if required).

thanks for the quick response!
yeah, I was indeed missing nullable fields :) adding it changed the parameter from Union[Unset, datetime.datetime] to Optional[datetime.datetime]. Unfortunately that also caused an additional problem - ironically enough it seems the parameter is no longer optional when instantiating the model class.
for example, in the generated from_dict method, the line changed from:
timestamp = d.pop("timestamp", UNSET)

to
timestamp = d.pop("timestamp")

and similarly, a timestamp argument now needs to be specified if instantiating via the constructor.

Sounds like now it thinks the parameter is in the required list. Did you happen to add it there when you added nullable?

Just to be a little more clear, I believe you have a schema that looks something like this (depending on where it's defined). The property being nullable and also required means that it has to be set, but could be set to null. If you remove it from required then it could be null, but could also be omitted (leading to UNSET).
"AModel": {
    "required": [
         "timestamp"
    ],
    "type": "object",
        "properties": {
            "timestamp": {
                "type": "string",
                "format": "date-time",
                "nullable": true
            }
        }
}

thanks @dbanty, that was the problem. I'm using pydantic/fastapi, and adding = pydantic.Field(..., nullable=True) to the field somehow ended up making it required in the openapi output. appreciate the help!

authors: cfal dbanty


text:
枚举类型名称为数字时生成的ts有bug.

简单看了一下,貌似有全number时候的判断,但是没起效的样子

这里我修改了一下, 效果如下

如果修复好了，可以提一个pr，我合并一下，数字枚举我修了2次了，竟然还有问题😭

数字枚举的代码在这里 https://github.com/openapi-ui/openapi-ts-request/blob/main/src/generator/serviceGenarator.ts#L1071

这么快....你这是随时在线的么, 我没那么热心的其实. 这次是失业在家带娃太久了....心血来潮...提了一下...明后天吧有时间我研究一下

如果修复好了，可以提一个pr，我合并一下，数字枚举我修了2次了，竟然还有问题😭

这么快....你这是随时在线的么, 我没那么热心的其实. 这次是失业在家带娃太久了....心血来潮...提了一下...明后天吧有时间我研究一下

如果修复好了，可以提一个pr，我合并一下，数字枚举我修了2次了，竟然还有问题😭

现在这年头，估计都卷得很，只有更卷才能有份工作，太难了

大佬，请问有时间针对你的问题提个pr吗？

这个应该是负数没有处理到吧

authors: EPZ1016 lezzhao rookie-luochao

repo: openapi-ui/openapi-ts-request


text:
Configuring and Learning to Use openaps Tools, General Formatting

The bulk of this PR is in the "Configuring and Learning to Use openaps Tools" section. This is where we have been spending most of our time bringing new folks up to speed, so I thought it warranted a thorough makeover. It sits somewhere in between simply installing the openaps tools and actually building useful reports, aliases, and loops—more of an answer to the question “what the hell do use and report even do?” than to “what reports do I need?" I tried to take a conversational approach, similar to what actually happens when we're providing help on gitter or in person. I'd eventually like to take a similar approach to the preceding setup sections, explaining a bit more about what each step is doing.
I have also harmonized some of the formatting, moving towards a standardized use of markdown header levels in lieu of numbered lists and bolds with breaks. Not everything is fixed, but it's getting there.
Props to @danamlewis for all the review and comments on this one.
Also, because they were the latest guinea pigs, it would be great for @eszcloud and @msrcgm to take a look and see if walkthrough makes sense. To see it in GitBook form prior to merge, try https://channemann.gitbooks.io/openaps-docs/content/docs/Using-openaps-Tools/using.html

Also added @danamlewis's changes to the README (from https://github.com/openaps/docs/pull/7)

This is awesome. Thanks for all the great work @channemann, including pulling in my readme from #7.
+1/signoff by me for merging
@bewest, can you also give eyeballs/approve? or @scottleibrand, whoever gets online to review first.

Also pulled in @danamlewis's https://github.com/openaps/docs/pull/5/, listing watchdog as optional during setup.

Edits and diff look good, as does the resulting book.  Further edits can be a new PR, so merging this now.

authors: channemann danamlewis scottleibrand

repo: openaps/docs


text:
Basal tuning and ratio estimation

Per the discussion in #58 and many preceding and subsequent discussions in various fora, it would be very useful to implement an algorithm to provide suggestions for tuning a user's current basal schedule, insulin sensitivity factor (ISF), insulin to carb (IC) ratio, and duration of insulin action (DIA).
To do so, we could use the OpenAPS automatic sensitivity detection algorithm to calculate, for each 5m data point, how much BG deltas deviated from what would’ve been predicted based on net insulin activity (relative to current schedule basals) and the user's current ratios.
For each carb entry, we can determine the sum of subsequent positive deviations (above a threshold used to detect when carbs are absorbing, perhaps 0.5 mg/dL/min).  This can then be directly compared to the carb estimate to get a carb sensitivity factor (CSF, units of mg/dL per g), which can be combined with estimated ISF (units of mg/dL per U) to get IC ratio (units of g per U).  (Note: while it would appear that this relies on correct carb counting, it actually does not.  If the user's carb counts are biased high or low, the resulting ratios will essentially correct for that, resulting in what you might call perceived-carb ratios.)
To calculate ISF/DIA and tune basal schedules, we need to first exclude any data between carb announcement and 15-30 minute after the last carb absorption is detected.  We can then bucket the remaining data points according to whether their insulin activity is dominated by boluses / high-temps or by basal insulin.  The former can be used to calculate ISF, and the latter to tune basal schedules.  We can initially assume that ISF is constant, and then come back and fine-tune based on time of day or day-to-day variation, assuming we have sufficient data, after we’ve tuned basal schedules and DIA.
To calculate ISF, we need to take the subset of data with no carb absorption whose insulin activity is bolus / high-temp dominated as described above, and perform a parameter estimation function to solve for ISF.  One simple (but maybe not ideal) method to do so would be to perform a simple goal seek algorithm, recalculating the deviations for each new ISF to find the ISF that converges on a median or mean deviation (for this subset of data) of zero.
To determine the best DIA, we want to select the one that minimizes the sum (or perhaps the RMS?) of all the deviations, in order to choose the insulin curve that best fits the actual observed insulin activity profile over time.  This parameter could be estimated from the same subset of data used to estimate ISF, using simple goal seek or more sophisticated parameter estimation methods.
To tune basal schedules, we can use the data points whose insulin activity is dominated by basal insulin (where net IOB is small), bucket the data by time of day, and look at the BG deviations for the timeframe ~90m later.  (So for a 12am-2am basal, the deviations of interest would be for 1:30am-3:30am.)  To determine how far off the schedule basal is for each time bucket, we can divide the previously-estimated ISF (mg/dL per U) by the median deviation (units of mg/dL per hour) to get a basal offset in U/hr.

Redirecting/extending this idea: We can do this real-time (i.e. dynamic tuning) and not just as a one-off.

Do the auto-sensitivity calculation, but also do a version of it on an hour by hour basis, so we can compare the same hour (i.e. 2-3am) across multiple days.
Knowing per the original description @scottleibrand outlined above that we need to exclude periods of carb activity, this will allow us to get more time frames without carb activity.
We can average a certain number of days (3+ ideal) for the same hour block to come up with a dynamic recommendation of what the basal needs likely are for that hour.
We should use a combination of auto-sensitivity for 24 hours (perhaps 50%) and the time-block-series-analysis (the other 50%, in proportion to the number of days available for the time series) to determine the baseline basal. Note that if the time series analysis cannot be performed (i.e. if a person ALWAYS eats lunch at noon and every day has carb activity from noon to 2pm), we may want to consider reverting to either a) 100% 24-hr-calculated auto sensitivity adjustment to preset pump basal rates (as it is done now) or b) 50% 24-hr-calculated auto sensitivity plus 50% weighted average of the preceding and following time blocks (in this example, an average of the 11am-noon and 2pm-3pm averages calculated).

Per @bewest showing recently how to append, we should be able to add small files to make it easier to do this longer time series. We may be able to do something like create a basal file where OpenAPS can write the basal rates by hour to this file, and then pull from this file (and any calculations adjusting these rates will update the file) for then calculating the needed temp basal rates at that time based on BG changes. If it can't read from the file (i.e. offline mode), it'll revert to the pump-programmed basal rates as it does now. (Thing to think about, though, will be what the adjusted calculated rates do in terms of calculating netIOB, if anything?)
Per @tc2013 and @sulka, this should help us improve basal adjustments for people with widely varying sensitivity and basal needs over the course of the day, whether it's an adjustment on a per-day basis (i.e. sick day, bad pump site day), or a weekly basis (i.e. growth/hormone spurt/change).
This can also be a tool that can be run before people start looping, as a way to look at suggestions for adjusting their existing basal rates as part of the open loop/before looping process, since it'll just require to read the data and that is already being done at the beginning of the loop build process.

Prep data:

Download historical treatments and glucose data from Nightscout.

Use json tool to merge all new pumphistory and glucose data to the end of the long-running historical treatments and glucose data files.

Tune basals:

Divide each day’s data according to the user’s pre-preprogrammed (or previously auto-adjusted) basal schedules.

Select data points ~90m later where net IOB is small, and therefore insulin activity is dominated by basal insulin, and exclude any data between carb announcement and 15-30 minute after the last carb absorption is detected.

Look back as many days as are required to get sufficient data to run the autosens algorithm, and/or combine scheduled basal blocks with adjacent ones.

Run the autosens algorithm for each basal in the schedule, and output the resulting adjusted basal schedule.

Periodically repeat the basal tuning algorithm starting with the adjusted basal schedules (and any new BG and pump data) until the resulting adjustments converge.

Calculate CSF

Identify whether each carb entry was fully absorbed before the next carbs were ingested (use AMA COB calculation algorithm, with a minimum assumed carb absorption rate of something like 3 mg/dL/5m).  Combine stacked carbs into a single meal entry at the time of the first carbs in the series.

Identify the time at which the last carb absorption is detected for each meal entry.

For each meal entry, determine the sum of subsequent positive deviations (above a threshold used to detect when carbs are absorbing, perhaps 0.5 mg/dL/min) between the time of first carb ingestion and the tie of last carb absportion.

Compare that total BG impact with the carb estimate to calculate carb sensitivity factor for that meal.  Combine CSFs for all meals in the timeframe of interest to calculate the average/median CSF for that timeframe.

When sufficient data is available, determine whether CSF varies by time of day (more than it varies day to day) by calculating it separately for each ISF and IC ratio schedule timeframe.

Output the resulting calculated CSF schedule.

Calculate ISF & DIA

Exclude data between carb announcement and 15-30 minute after the last carb absorption is detected.

Select remaining data points where net IOB is large relative to schedule basal, and therefore insulin activity is dominated by basal insulin.

Perform a parameter estimation function to solve for ISF. One simple (but maybe not ideal) method to do so would be to perform a simple goal seek algorithm, recalculating the deviations for each new ISF to find the ISF that converges on a median or mean deviation (for this subset of data) of zero.

Perform a similar parameter estimation to solve for DIA, by minimizing the sum (or perhaps the RMS?) of all the deviations, in order to choose the insulin curve that best fits the actual observed insulin activity profile over time.

When sufficient data is available, determine whether ISF varies by time of day (more than it varies day to day) by calculating it separately for each ISF and IC ratio schedule timeframe.

Output the resulting adjusted ISF schedule.

Calculate IC ratio

Combine calculated CSF (units of mg/dL per g) with calculated ISF (units of mg/dL per U) to get IC ratio (units of g per U).

Output the calculated IC ratio schedule.

Figured out how to use jq to merge multiple time series json files together and append new data to long-running json file: https://github.com/scottleibrand/openaps-sh/commit/bc7db9f5ece77040646ab6d65fba0b31ce9056fa

To download historical and glucose data from Nightscout:
openaps device add ns-glucose-7d process 'bash -c "curl -m 30 -s \"$NIGHTSCOUT_HOST/api/v1/entries/sgv.json?find\[date\]\[\$gte\]=0\&count=2016\""'
openaps report add cgm/ns-glucose-7d.json text ns-glucose-7d shell
openaps invoke cgm/ns-glucose-7d.json

This mongo map/reduce script from @sulkaharo might be a good way to handle the processing instead of trying to do it all locally on the edison https://gist.github.com/sulkaharo/18d4b06c1288a0b14da48e7a5cd46d87

I used to have a program.  I am looking for source that would take medtronic csv's and generate this.  But this is an example of the binning of data into time periods where the influence is dominated by liver/basal insulin.  The units are delta mmol/L(so it's aggregate first derivative/rate of change during those time periods.  sorry about the scale)

One note I had observed is that to get enough data to build a day can be a challenge.  There are actions that can enhance this too, and a system that indicates what has been fulfilled in the last time period could help.  However, the following observation helped too.  Once one find the rough doses for basal, the changes are often global and not localized to that time period.  So that lets one use night times when you are fasting as an indicator of potential changes needed.

(For anyone following this issue, 99, you may also want to keep an eye on 261 (https://github.com/openaps/oref0/issues/261#issuecomment-269412654) which is where we are working on iterative autotuning using some of the framework described here, but may ultimately achieve both one-off basal tuning and/or more iterative ongoing tuning adjustments.

Is there anything left to do here?  Or does #261 resolve this?

#261 covers 99 (this one) - closed, anyone who wants to track tuning should track #261.

authors: beached danamlewis jasoncalabrese scottleibrand


text:
Fix xpath for logout button

Fix xpath for logout button in the resource file.

Code checked in - https://gerrit.openbmc-project.xyz/#/c/11169/

repo: openbmc/openbmc-test-automation


text:
Inventory diff file line numbers occasionally incorrect

When running systest inventory, I noticed that the line numbers are occasionally incorrect in the difference file.  The difference file lists the differences found between the initial inventory snapshot and the final snapshot.

Python difflib is reporting differences where Linux diff does not.     So we'll call Linux diff instead

https://gerrit.openbmc-project.xyz/7087


text:
Убрал орфографическую ошибку в слове директива. Поменял пример с файлом secrets.

Убрал орфографическую ошибку в слове директива. Поменял пример с файлом secrets.
Может будет удобнее мои такие патчи с  принимать не пул реквестом а по почте c git send-email или вообще в телеграмм c git format-patch ?

Убрал орфографическую ошибку в слове директива. Поменял пример с файлом secrets. Может будет удобнее мои такие патчи с принимать не пул реквестом а по почте c git send-email или вообще в телеграмм c git format-patch ?

Мне лично без разницы. Если удобней через git format-patch, можно просто в телеге слать.

license: ISC


text:
Compiling Solution

while i was compiling the openbullet solution
i got this error :

Severity
Code
Description
Project
File
Line
Suppression State

Warning

Found conflicts between different versions of "System.Net.Http" that could not be resolved.  These reference conflicts are listed in the build log when log verbosity is set to detailed.
OpenBullet

Pull my tree instead. Devs refuse to fix

Or just use my compiled bins

Its just a warning fuck it :kappa:

It's just a warning, leave it.

authors: Choempie ReDDOOne kernelzeroday openbullet

repo: openbullet/openbullet


text:
Docs for POST /admin-ng/adopter/statistics/registration are broken

The REST docs for storing adopter information is broken

It's probably just missing REST annotations.
Test it at https://develop.opencast.org/docs.html?path=/admin-ng/adopter/statistics#saveregistrationform-2

New (but still broken) endpoint:
https://develop.opencast.org/docs.html?path=/admin-ng/adopter#saveregistrationform-2

repo: opencast/opencast


text:
Changed asset mime type  length from 64 to 255

Your pull request should…

[x] have a concise title
[x] close  Issue 2215
[x] be against the correct branch
[x] include migration scripts and documentation, if appropriate
[x] pass automated tests
[x] have a clean commit history
[x] have proper commit messages (title and body) for all commits

Hi @npmali ,per [the docs] (https://docs.opencast.org/develop/developer/#development-process#acceptance-criteria-for-patches-in-different-versions) this needs to go into develop since its modifying db tables.

I removed the patch from the 8 to 9 sql after merging this.

authors: gregorydlogan npmali


text:
Otel collector plugin

This PR adds a plugin for the OpenTelemetry Collector. Specifically, it adds an exporter for the collector that exports OTel traces that are server/client to APIClarity in the Telemetry format. The plugin dir includes build of a docker image of the otel collector with the addition of the APIClarity exporter plugin.

How will release happen? what is being built and what the user need to build? What the Dockerfile is for?
The Dockerfile builds the OpenTelemetry collector with the repo's APIClarity exporter included. The OTel collector plugins are golang packages. The Dockerfile pulls a recent OTel collector config and adds in the APIClarity exporter, rebuilding everything to additionally include the exporter (and everything else already included in the default OTel collector).
Eventually the apiclarityexporter package should be available on (the public Go package list)[https://pkg.go.dev/] because I would like to contribute the exporter to the main OTel collector repo. When it is added there, the APIClarity exporter would be generally available and you would not need to build your own version; you could simply configure the default version.
The container and the apiclarityexporter package are the only build artefacts.

Should this be part of Helm installation/configuration?
No, I don't believe so. The plugin would only be configured in the OTel collector's configuration. An example of that config is here: https://github.com/openclarity/apiclarity/blob/otel-collector-plugin/plugins/otel-collector/configs/otel-collector-config.yaml.

Should trace sampling manager be integrated into the otel exporter?
Yes, maybe? Sampling is already handled by the tracing infrastructure, both at the SDK level where tracing is generated and within the OTel collector itself by selecting different traces. It might be confusing to the user if the exporter also subsampled, but the config for that sampling was outside of the OTel configuration. Then again, maybe not?

what are the "replaces" commits in the readme?
Does this refer to the instructions on building the OTel collector at the bottom? These are used to build the OTel collector using the APIClarity exporter plugin package. Since there is no public version of the package yet, it has to be built locally using the local package. The replacement for the APIClarity api package is due to the crazy build packages of APIClarity itself.

Should be added to the main readme of APIClarity?
I'm happy to add it as one of the example source integrations, which is where it would be relevant.

The container and the apiclarityexporter package are the only build artefacts.

So, do you want/need to the container image during the release flow as we are doing to all other containers?

Eventually the apiclarityexporter package should be available on (the public Go package list)[https://pkg.go.dev/]

How it will become public? Once it will be pushed to master and tagged we can remove all the replaces in the readme?

The container and the apiclarityexporter package are the only build artefacts.

So, do you want/need to the container image during the release flow as we are doing to all other containers?

I think releasing the docker container makes sense along with the normal release flow so it should be added to the release action. Do you want me to do that?

Eventually the apiclarityexporter package should be available on (the public Go package list)[https://pkg.go.dev/]

How it will become public? Once it will be pushed to master and tagged we can remove all the replaces in the readme?

Yes, I think so.

The container and the apiclarityexporter package are the only build artefacts.

So, do you want/need to the container image during the release flow as we are doing to all other containers?

I think releasing the docker container makes sense along with the normal release flow so it should be added to the release action. Do you want me to do that?

Eventually the apiclarityexporter package should be available on (the public Go package list)[https://pkg.go.dev/]

How it will become public? Once it will be pushed to master and tagged we can remove all the replaces in the readme?

Yes, I think so.

The container and the apiclarityexporter package are the only build artefacts.

So, do you want/need to the container image during the release flow as we are doing to all other containers?

I think releasing the docker container makes sense along with the normal release flow so it should be added to the release action. Do you want me to do that?

Yes please, it should be added to docker.yaml and release.yaml workflow

Eventually the apiclarityexporter package should be available on (the public Go package list)[https://pkg.go.dev/]

How it will become public? Once it will be pushed to master and tagged we can remove all the replaces in the readme?

Yes, I think so.

OK, understand, so once it will be pushed and tagged we can check if that works and update the docs to remove the replace stuff.

The container and the apiclarityexporter package are the only build artefacts.

So, do you want/need to the container image during the release flow as we are doing to all other containers?

I think releasing the docker container makes sense along with the normal release flow so it should be added to the release action. Do you want me to do that?

Yes please, it should be added to docker.yaml and release.yaml workflow

The last commit finally does this; however, I cannot really test it myself. :(

Eventually the apiclarityexporter package should be available on (the public Go package list)[https://pkg.go.dev/]

How it will become public? Once it will be pushed to master and tagged we can remove all the replaces in the readme?

Yes, I think so.

OK, understand, so once it will be pushed and tagged we can check if that works and update the docs to remove the replace stuff.

The last commit finally does this; however, I cannot really test it myself. :(

Best way to check it is to fork the project to your local account, then you can test any action with any condition (you can run the build action on any push to your side-branch for example)

The last commit finally does this; however, I cannot really test it myself. :(

Best way to check it is to fork the project to your local account, then you can test any action with any condition (you can run the build action on any push to your side-branch for example)

Ok, I've checked the docker workflow, but the release workflow is stuck for the same reason as the above CI/build problem. :(

The last commit finally does this; however, I cannot really test it myself. :(

Best way to check it is to fork the project to your local account, then you can test any action with any condition (you can run the build action on any push to your side-branch for example)

Ok, I've checked the docker workflow, but the release workflow is stuck for the same reason as the above CI/build problem. :(

Saw the problem, not sure why it is running lint on non relevant code, did you tried to run it locally?
Can you maybe try to remove the use of make -C ... and do
cd plugins/otel-collector/apiclarityexporter && ../../../bin/golangci-lint run

The last commit finally does this; however, I cannot really test it myself. :(

Best way to check it is to fork the project to your local account, then you can test any action with any condition (you can run the build action on any push to your side-branch for example)

Ok, I've checked the docker workflow, but the release workflow is stuck for the same reason as the above CI/build problem. :(

Saw the problem, not sure why it is running lint on non relevant code, did you tried to run it locally? Can you maybe try to remove the use of make -C ... and do
cd plugins/otel-collector/apiclarityexporter && ../../../bin/golangci-lint run

Indeed. I have tried so many things. :)
At the moment it passes b/c I specifically include the broken package that doesn't pass typecheck. I did align the Makefiles so they should all be the same now.
Let me know if ignoring the one package for now is fine or not. I really have tried everything that I could think of (local run, changing the package version, etc.).

The last commit finally does this; however, I cannot really test it myself. :(

Best way to check it is to fork the project to your local account, then you can test any action with any condition (you can run the build action on any push to your side-branch for example)

I have verified this in a fork in my own repo here: Forked Actions
Note the Release action only fails to publish Helm, which I specifically didn't authorize b/c I naturally didn't want to publish it. :)

Let me know if ignoring the one package for now is fine or not

It's fine by me

5. I'm happy to add it as one of the example source integrations, which is where it would be relevant.

We are missing that one and we probably can ship it

authors: FrimIdan jeff-trianglecm jnapper7

repo: openclarity/apiclarity


text:
Move data loader from predict_pv_yield

Should this be moved into this repo?
https://github.com/openclimatefix/predict_pv_yield/blob/master/predict_pv_yield/data/dataloader.py

Yeah, and I think the dataloader from SatFlow too

authors: jacobbieker peterdudfield


text:
Daily subscription not exiting cleanly

From the logs:
Running babel-node ./cron/daily/charge_subscriptions.js
...
Starting to charge subscriptions
16 subscriptions pending charges. Charging 16 subscriptions right now. dryRun: false
...
Writing the output to a CSV file
Sending email report
Unhandled rejection TypeError: A value undefined was yielded that could not be treated as a promise
    See http://goo.gl/MqrFmX
From coroutine:
    at Promise.coroutine (/app/node_modules/bluebird/js/release/generators.js:190:17)
    at _run (/app/cron/daily/charge_subscriptions.js:41:34)
    at run (/app/cron/daily/charge_subscriptions.js:34:15)
    at run (/app/cron/daily/charge_subscriptions.js:190:11)
    at Generator.next (<anonymous>)
    at Generator.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)
    at PromiseSpawn._promiseFulfilled (/app/node_modules/bluebird/js/release/generators.js:97:49)
    at /app/node_modules/bluebird/js/release/generators.js:197:15
    at _entryPoint (/app/cron/daily/charge_subscriptions.js:221:22)
    at entryPoint (/app/cron/daily/charge_subscriptions.js:204:22)
    at Object.entryPoint (/app/cron/daily/charge_subscriptions.js:198:1)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Module._compile (/app/node_modules/pirates/lib/index.js:83:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Object.newLoader [as .js] (/app/node_modules/pirates/lib/index.js:88:7)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at Object.<anonymous> (/app/node_modules/@babel/node/lib/_babel-node.js:234:23)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at PromiseSpawn._continue (/app/node_modules/bluebird/js/release/generators.js:159:21)
    at PromiseSpawn._promiseFulfilled (/app/node_modules/bluebird/js/release/generators.js:99:10)
    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:564:26)
    at Promise._settlePromise0 (/app/node_modules/bluebird/js/release/promise.js:604:10)
    at Promise._settlePromises (/app/node_modules/bluebird/js/release/promise.js:683:18)
    at Promise._fulfill (/app/node_modules/bluebird/js/release/promise.js:628:18)
    at PromiseArray._resolve (/app/node_modules/bluebird/js/release/promise_array.js:125:19)
    at PromiseArray._promiseFulfilled (/app/node_modules/bluebird/js/release/promise_array.js:143:14)
    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:564:26)
    at Promise._settlePromise0 (/app/node_modules/bluebird/js/release/promise.js:604:10)
    at Promise._settlePromises (/app/node_modules/bluebird/js/release/promise.js:683:18)
    at Async._drainQueue (/app/node_modules/bluebird/js/release/async.js:138:16)
    at Async._drainQueues (/app/node_modules/bluebird/js/release/async.js:148:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/app/node_modules/bluebird/js/release/async.js:17:14)
    at runCallback (timers.js:696:18)
    at tryOnImmediate (timers.js:667:5)
    at processImmediate (timers.js:649:5)

Not reproducible anymore.

repo: opencollective/opencollective


text:
Introduce a "Reveal" action on password fields

Part of https://github.com/opencollective/opencollective/issues/6337
See https://dev.to/detoner777/show-hide-password-on-toggle-in-react-hooks-1lph on how to achieve that
Steps:

[ ] Extract password input to a new PasswordInput component
[ ] Update all references (in Sign in, User Security and Reset password) to make sure they all use the same component
[ ] Introduce the "Reveal" feature, using an icon from https://styled-icons.dev/?s=eye

@ShreyaPrasad1209 Sure :+1:

Hi @ShreyaPrasad1209, do you still want to look at this one?

@Betree I did some analysis and it seems like creating a different component (namely PasswordInput) for Reveal action is not possible because it will update the state of existing StyledInputs and this key is dependent on these specific files like UserSecurity.js. So this Reveal feature can be added inside these files and not as a separate component.

@Betree I did some analysis and it seems like creating a different component (namely PasswordInput) for Reveal action is not possible because it will update the state of existing StyledInputs and this key's value is dependent on specific files like UserSecurity.js, reset-password.js etc.

Doesn't sound like a blocker, we could still pass the key prop to this new component right?

@Betree I did some analysis and it seems like creating a different component (namely PasswordInput) for Reveal action is not possible because it will update the state of existing StyledInputs and this key's value is dependent on specific files like UserSecurity.js, reset-password.js etc.

Doesn't sound like a blocker, we could still pass the key prop to this new component right?

Right, but they're also updating each other's state. I'll need to look into the implementation.

This would be amazing!!

authors: Betree ShreyaPrasad1209 shannondwray


text:
Inline Sign-in modal unusable with 2FA

Describe the bug
When trying to authenticate with the inline sign in (e.g. on http://localhost:3000/apex/expenses/new) with 2FA enabled, the 2FA modal appears below the Sign-In one, which makes it unusable.
To Reproduce
Steps to reproduce the behavior:

Go to https://staging.opencollective.com/apex/expenses/new unauthenticated
Sign-in with an account that has 2FA enabled
See issue

Expected behavior
2FA should either appear in the same modal, or the 2FA modal should appear above sign-in.
Screenshots

This was resolved in the recent work @hdiniz did on 2FA


text:
Add unit testing for HasRecvClientErrorWithStatus.

    Add unit test for IgnoreDetails.

      * (M) chk/chk.go
      * (M) chk/chk_test.go
        - Fix implementation of IgnoreDetails to ensure that it allows
          details received from the server to be ignored rather than
          solely from the client.
        - Add unit test.

    Ignore details when chk.AllowUnimplemented() is specified.

      * (M) chk/chk.go
        - when chk.AllowUnimplemented() is specified, details of the error
          (which hasn't been explcitly implemented) are still checked -
          change the implementation to explicitly not require details to
          match in these cases.
      * (M) chk/chk_test.go
        - Add unit testing for HasRecvErrorWithStatus.

@deep-gajjar5 @sthesayi Could you PTAL/approve here please?

repo: openconfig/gribigo


text:
example code to integrate grpctunnel

Hi,
please include examples to show how to migrate current gRPC client and server to grpcTunnel, e.g., in client, current code dials to server IP address and in server, it listens for the connection request, some sample code segments would really help.
Thanks
David

From @gcsl :
Repositories with example code.
github.com/openconfig/grpctunnel
github.com/openconfig/gnmi
gNMI server - embedded tunnel client used as an additional TCP listener

https://github.com/openconfig/gnmi/blob/master/testing/fake/gnmi/agent.go#L90

gNMI collector
Embedded tunnel server

https://github.com/openconfig/gnmi/blob/master/cmd/gnmi_collector/gnmi_collector.go#L138

A custom dialer over a tunnel

https://github.com/openconfig/gnmi/blob/master/cmd/gnmi_collector/gnmi_collector.go#L334
https://github.com/openconfig/gnmi/blob/master/client/gnmi/client.go#L88

repo: openconfig/grpctunnel


text:
Remove duplicate steps in the postsubmit

The steps removed from the post submit are redundant due to the github actions that run before a PR can be merged. Now that there is a presubmit the overall flow is as follows:

Lint + Build + Test are run automatically on any new PR
If all checks pass then a manual review from repo owner is required
Presubmit (integration test using ondatra coming soon) is required by an a repo owner commenting /gcbrun on the PR (after code review)
The postsubmit (builds VM images) is triggered automatically on merge

Pull Request Test Coverage Report for Build 3101834948

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 57.608%

Totals

Change from base Build 3101341356:
0.0%

Covered Lines:
2302

Relevant Lines:
3996

💛  - Coveralls

authors: alexmasi coveralls

repo: openconfig/kne


text:
Fix duplicate "id" values in JSON schema

The "id" values in JSON schema files must be unique, per RFC draft 8.3.1:

A schema MAY (and likely will) have multiple URIs, but there is no way for a URI to identify more than one schema.

and recent gojsonschema fails when handling such inputs (fairly nontransparently, it silently fails to resolve $ref references to absolute URIs and reports something like

Reference defs.json#/definitions/mapStringString must be canonical

.  This is visible in make test.)
In particular, the https://opencontainers.org/schema/image/descriptor/annotations id value had three definitions.  To resolve this:

Leave the definition in image-index-schema.json; although using the /descriptor subnamespace for the "manifests" array is a bit surprising, the /image/ part clearly belongs to image-index-schema.json.
Rename the id definition in content-descriptor.json, to use the generic "blob descriptor" namespace.
Remove the definition in defs-descriptor.json; that seems to be an "utility" schema file describing common structures, but it's better for users to reference schema fragments by purpose than by common structure (so that we can let the structure diverge in the future if necessary).

Finally, changing the content-descriptor.json "id" value changes the resolved absolute value of the reference to defs-descriptor.json, so add another namespace to be handled by fsLoaderFactory.
(As in #739, all I want to do is make the validation work, or, well, not fail. I am expressing no opinion on JSON schema or its use in this project.)

LGTM.

authors: cyphar mtrmac

repo: opencontainers/image-spec


text:
Add version number to release files generated

Repro:

https://github.com/opencontainers/runtime-spec/releases
Click on the HTML or PDF versions of the runtime spec
Check your downloads folder

RESULT:

File name is oci-runtime-spec

EXPECT:

File names is oci-runtime-spec-v1.0.0-rc1

Tagging @vbatts.  It looks like this is already working in the image-spec repo so hopefully this might be a quick fix.

I don't think image-spec did this in source code level, so maybe it's just a release issue, or do you think we should contain version number in files created by make docs?

@hqhq I'm not sure if this is done in automated code for the release or if this is done manually as part of the release process, but for people who consume the HTML or PDF formats of spec, it is useful to have the version indicated in the filename.

(I'm not able to set Milestone, but I recommend this be set to Milestone=1.0.0 or Milestone=1.0.0-rc2)

@RobDolinMS ideally it'll include the version in the doc as well as the file name. I think i just forgot a release step there on the 1.0.0-rc1 docs

I fixed the filenames for the most recent release.

Thanks @vbatts.  Looks like this is now fixed for the latest release at: https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc1

authors: RobDolinMS hqhq vbatts

repo: opencontainers/runtime-spec


text:
Placeholder for Windows configuration and a few clean up items.

Adding a placeholder for the Windows Configuration.

I would rather wait until we have a better idea of the separation between "generic" and OS specific before then the first commit of config-windows can have some content.

Fair enough - we should have some draft content in the next week or two.

authors: philips taylorb-microsoft

repo: opencontainers/specs


text:
Interopérabilité avec coronadatascraper

Sur le site https://coronadatascraper.com/ le mapping des données pour la France n'est pas correct. Le problème semble connu, cf. https://github.com/lazd/coronadatascraper/issues/102. En attente de leur retour pour améliorer.

Bon du coup, si je comprends bien, il n'y a rien que l'on peut faire de notre côté. Je ferme le ticket.
@claustres N'hésites pas à le rouvrir si tu as des actions concrètes à nous proposer :wink:

Je propose de le laisser ouvert tant que ça ne fonctonne pas car si en l'état on ne peut pas grand chose, lorsqu'ils auront fait évoluer leur architecture il faudra certainement reprendre le scrapper.

Dans ce cas, je te propose de la rouvrir quand on pourra vraiment faire qqchose de notre côté :+1:
Merci d'avance :wink:

Juste pour information ils l'ont directement fixé eux-mêmes suite à mes recommandations donc ça fonctionne maintenant.

authors: Binnette claustres


text:
Is it possible to extend a track backward in time and combine tracklets?

Hi,
I am uploading track annotations that were generated using an off-the-shelf tracker. Since these are weak labels, there are some errors.
I would like to know if there is a way to do the following:

Connect two different tracklets (initially with different IDs) into one full track (with shared ID)
Extend a track backward in time (e.g. I have a track starting from frame 5 and ending in frame 10. However, the object being tracked started appearing in frame 3 but they were not detected by my off-the-shelf algorithm. I would like to extend the track back to frame 3).

Thank you.

Sorry, I saw the merge function just now. Thanks.

repo: opencv/cvat


text:
Update for zoneinfo 2022b

Update to reflect timezone offset change to Europe/Stockholm in recent zoneinfo file. Arguably, it may be better to just remove this test, I would also be open to that.

We may want to hold off on merging this until all the JVM vendors catch up.

repo: opencypher/openCypher


text:
Detect a single object on screen and display an alarm

The idea would be for the user to select an object in question, such as a motorcycle, and every time the system detects that object, it would display an alarm warning that there is that object on the screen!

Hi, I gave you some inputs here: https://github.com/opendatacam/opendatacam/issues/141

authors: linuxfxdevil tdurand

repo: opendatacam/opendatacam


text:
added unit test for project

Closes: https://issues.redhat.com/browse/RHOAIENG-2157
Description
added test for frontend/src/api/k8s/projects.ts

How Has This Been Tested?
npm run test

Test Impact
jest coverage:

Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[ ] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change (find relevant UX in the SMEs section).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

/lgtm
/approve

repo: opendatahub-io/odh-dashboard


text:
Request runtime permission

Inherit Launcher from the new BaseLauncherActivity that requests external storage permission
Modify TableDisplayActivity to request location permission and disable/enable My Location feature on Map View depending on permission

Depends on https://github.com/opendatakit/androidcommon/pull/16 (to build) and https://github.com/opendatakit/services/pull/39 (to run on Android M+)

runtests

repo: opendatakit/tables


text:
League Evaluation Metric

Added this issue as suggested by @PaParaZz1.

[x] I have marked all applicable categories:

[ ] exception-raising bug
[ ] RL algorithm bug
[ ] system worker bug
[ ] system utils bug
[ ] code design/refactor
[ ] documentation request
[x] new feature request

[x] I have visited the readme and doc
[x] I have searched through the issue tracker and pr tracker
[x] I have mentioned version numbers, operating system and environment, where applicable: N/A

TrueSkill is a ranking metric developed by Microsoft for game matchmaking. Unlike ELO which just measures one agent's strength, TrueSkill can measure both strength and stability. Each player starts with mu=25.000 and sigma=8.333. Former one (mu) measures strength and the latter one (sigma) measures stability. After receiving payoffs of one matching, mu and sigma will be updated accordingly from the TrueSkill API. Final agent's score can be defined as mu - 3 * sigma to take both strength and stability into consideration.
Currently this metric is missing in the league demo. It would be better to add it.

TrueSkill demo result in tensorboard

This issue has been solved in PR #22.

repo: opendilab/DI-engine


text:
Grok debugger & painless lab

It would be very useful to include on kibana the grok debugger. It is included only on kibana x-pack version.
https://www.elastic.co/guide/en/kibana/current/xpack-grokdebugger.html
Grok expressions are used very often ingesting logs:
https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html
There are some third party apps like this one, but it's very comfortable to have it on a kibana tab.
https://grokdebug.herokuapp.com/
Another good option could be to include as well a tester for painless scripting:
https://www.elastic.co/guide/en/kibana/current/painlesslab.html

This is another grok debugger site:
https://grokconstructor.appspot.com/

repo: opendistro-for-elasticsearch/community


text:
simple install - results in crashing cluster

Describe the bug
A clear and concise description of what the bug is.
To Reproduce

Install with helm chart - using these values:

   global:
     clusterName: graylog
   kibana:
     ingress:
       enabled: true
       annotations:
         cert-manager.io/cluster-issuer: letsencrypt
       hosts:
       - kibana.ops.bw7.io
       tls:
       - secretName: opendistro-es-tls
         hosts:
         - kibana.ops.example.io
   elasticsearch:
     master:
       replicas: 1
       persistence:
         enabled: true
         storageClass: gp2
       javaOpts: "-Xms16g -Xmx16g"
     data:
       enabled: true
       javaOpts: "-Xms16g -Xmx16g"
       replicas: 2
       persistence:
         enabled: true
         storageClass: gp2
         size: 10Gi

See error

Master stops on CrashLoop
Using opendistro-es Helm chart v1.13.1
Relevant information
master log - last relevant section:
 lasticsearch [2021-03-16T13:17:01,007][WARN ][o.e.g.DanglingIndicesState] [opendistro-es-master-0] gateway.auto_import_dangling_indices is disabled, dangling indices will not be automatically detected or imported and must be managed manually
 lasticsearch [2021-03-16T13:17:01,116][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,220][INFO ][c.a.o.e.p.h.c.PerformanceAnalyzerConfigAction] [opendistro-es-master-0] PerformanceAnalyzer Enabled: false
 lasticsearch [2021-03-16T13:17:01,327][INFO ][o.e.n.Node               ] [opendistro-es-master-0] initialized
 lasticsearch [2021-03-16T13:17:01,327][INFO ][o.e.n.Node               ] [opendistro-es-master-0] starting ...
 lasticsearch [2021-03-16T13:17:01,342][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.data] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the n
 lasticsearch [2021-03-16T13:17:01,342][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.ingest] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,342][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,342][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,344][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,447][INFO ][o.e.t.TransportService   ] [opendistro-es-master-0] publish_address {100.116.0.2:9300}, bound_addresses {0.0.0.0:9300}
 lasticsearch [2021-03-16T13:17:01,447][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.data] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the n
 lasticsearch [2021-03-16T13:17:01,447][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.ingest] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,447][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,449][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.data] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the n
 lasticsearch [2021-03-16T13:17:01,449][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.ingest] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,449][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,449][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,504][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,605][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.data] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the n
 lasticsearch [2021-03-16T13:17:01,605][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.ingest] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,605][DEPRECATION][o.e.d.c.s.Settings       ] [opendistro-es-master-0] [node.master] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the
 lasticsearch [2021-03-16T13:17:01,618][INFO ][o.e.b.BootstrapChecks    ] [opendistro-es-master-0] bound or publishing to a non-loopback address, enforcing bootstrap checks
 lasticsearch [2021-03-16T13:17:01,620][INFO ][o.e.c.c.Coordinator      ] [opendistro-es-master-0] cluster UUID [GPR9Ify1TGatgzCRThR5gA]
 lasticsearch [2021-03-16T13:17:01,838][INFO ][o.e.c.s.MasterService    ] [opendistro-es-master-0] elected-as-master ([1] nodes joined)[{opendistro-es-master-0}{8y0V94BlQj-FKTKxtRNEIA}{-1yYk5j0Rp6xxgk-Umc8-g}{100.116.0.2}{100.116.0.2:9300}{mr} el
 lasticsearch [2021-03-16T13:17:01,890][INFO ][o.e.c.s.ClusterApplierService] [opendistro-es-master-0] master node changed {previous [], current [{opendistro-es-master-0}{8y0V94BlQj-FKTKxtRNEIA}{-1yYk5j0Rp6xxgk-Umc8-g}{100.116.0.2}{100.116.0.2:93
 lasticsearch [2021-03-16T13:17:01,901][WARN ][c.a.o.e.p.c.s.h.ConfigOverridesClusterSettingHandler] [opendistro-es-master-0] Config override setting update called with empty string. Ignoring.
 lasticsearch [2021-03-16T13:17:01,997][INFO ][o.e.g.GatewayService     ] [opendistro-es-master-0] recovered [3] indices into cluster_state
 lasticsearch [2021-03-16T13:17:02,138][INFO ][o.e.h.AbstractHttpServerTransport] [opendistro-es-master-0] publish_address {100.116.0.2:9200}, bound_addresses {0.0.0.0:9200}
 lasticsearch [2021-03-16T13:17:02,138][INFO ][o.e.n.Node               ] [opendistro-es-master-0] started
 lasticsearch [2021-03-16T13:17:02,139][INFO ][c.a.o.s.OpenDistroSecurityPlugin] [opendistro-es-master-0] Node started
 lasticsearch [2021-03-16T13:17:02,139][INFO ][c.a.o.s.c.ConfigurationRepository] [opendistro-es-master-0] Will attempt to create index .opendistro_security and default configs if they are absent
 lasticsearch [2021-03-16T13:17:02,139][INFO ][c.a.o.s.c.ConfigurationRepository] [opendistro-es-master-0] Background init thread started. Install default config?: true
 lasticsearch [2021-03-16T13:17:02,140][INFO ][c.a.o.s.OpenDistroSecurityPlugin] [opendistro-es-master-0] 0 Open Distro Security modules loaded so far: []
 lasticsearch [2021-03-16T13:17:02,159][INFO ][c.a.o.s.c.ConfigurationRepository] [opendistro-es-master-0] Index .opendistro_security already exists
 lasticsearch [2021-03-16T13:17:02,159][INFO ][c.a.o.s.s.ConfigHelper   ] [opendistro-es-master-0] Will update 'audit' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/audit.yml and populate it with empty doc if file missi
 lasticsearch [2021-03-16T13:17:02,972][INFO ][o.e.c.s.MasterService    ] [opendistro-es-master-0] node-join[{opendistro-es-data-1}{lF-bnEzsQFWjf8QLmbPO8A}{SDrMuaUjSR6zIEL4k5XVdg}{100.108.0.4}{100.108.0.4:9300}{dr} join existing leader], term: 29
 lasticsearch [2021-03-16T13:17:03,148][INFO ][o.e.c.s.ClusterApplierService] [opendistro-es-master-0] added {{opendistro-es-data-1}{lF-bnEzsQFWjf8QLmbPO8A}{SDrMuaUjSR6zIEL4k5XVdg}{100.108.0.4}{100.108.0.4:9300}{dr}}, term: 29, version: 209, reas
 lasticsearch [2021-03-16T13:17:03,171][INFO ][o.e.c.s.MasterService    ] [opendistro-es-master-0] node-join[{opendistro-es-client-8596d47c88-bzwsr}{r2s_GSq8REWnsnydZO5ZgQ}{BirKq1cxRD-ySbIxJvX1Gg}{100.116.0.1}{100.116.0.1:9300}{ir} join existing
 lasticsearch [2021-03-16T13:17:03,309][INFO ][o.e.c.s.ClusterApplierService] [opendistro-es-master-0] added {{opendistro-es-client-8596d47c88-bzwsr}{r2s_GSq8REWnsnydZO5ZgQ}{BirKq1cxRD-ySbIxJvX1Gg}{100.116.0.1}{100.116.0.1:9300}{ir}}, term: 29, v
 lasticsearch stream closed

If I enter master pod while its still running and try to nc 127.0.0.1 9200 -v - it says connected.
If I do: curl http://127.0.0.1:9200/_cat/health
I get "empty reply from server".

It ended up maybe being a resource issue of sorts? I upped nodes to 2xlarge and wiped everything and now works fine. I also removed another elasticsearch cluster - running in same namespace (that might be conflicting). Don't know what exactly fixed it though :(


text:
Encountered an error while processing subscription stream

While setting up a dev environment for Open Distro, one of my nodes has substantial log spam of the following:
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: 12:16:15.689 [grpc-default-executor-21] ERROR com.amazon.opendistro.elasticsearch.performanceanalyzer.rca.net.SubscribeResponseHandler - Encountered an error while processing subscription stream
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: io.grpc.StatusRuntimeException: UNKNOWN
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.Status.asRuntimeException(Status.java:533) ~[grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:447) [grpc-stub-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) [grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) [grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) [grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:700) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) [grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) [grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) [grpc-api-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:399) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:510) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:66) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:630) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$700(ClientCallImpl.java:518) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:692) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:681) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) [grpc-core-1.25.0.jar:1.25.0]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
Sep 24 12:16:15 masternode1 performance-analyzer-agent-cli[26382]: #011at java.lang.Thread.run(Thread.java:832) [?:?]

My current environment consists of 5 data nodes and 1 master node. The master node emits the above error 10's of times per minute. The data nodes emit a smaller message, at a similar rate:
Sep 24 06:29:21 datanode3 performance-analyzer-agent-cli[14936]: INFO: Single batch             : No bind variables have been provided with a single statement batch execution. This may be due to accidental API misuse
Sep 24 06:29:21 datanode3 performance-analyzer-agent-cli[14936]: Sep 24, 2020 6:29:21 AM org.jooq.tools.JooqLogger info
Sep 24 06:29:21 datanode3 performance-analyzer-agent-cli[14936]: INFO: Single batch             : No bind variables have been provided with a single statement batch execution. This may be due to accidental API misuse
Sep 24 06:29:22 datanode3 performance-analyzer-agent-cli[14936]: 06:29:22.785 [pool-6-thread-1] ERROR com.amazon.opendistro.elasticsearch.performanceanalyzer.net.NetServer - Subscribe request received before handler is set.
Sep 24 06:29:22 datanode3 performance-analyzer-agent-cli[14936]: 06:29:22.785 [pool-6-thread-1] ERROR com.amazon.opendistro.elasticsearch.performanceanalyzer.net.NetServer - Subscribe request received before handler is set.
Sep 24 06:29:22 datanode3 performance-analyzer-agent-cli[14936]: 06:29:22.786 [pool-6-thread-1] ERROR com.amazon.opendistro.elasticsearch.performanceanalyzer.net.NetServer - Subscribe request received before handler is set.

This very well may be a configuration error or something I did wrong, but as the error messages are unhelpful, and there are zero helpful results on Google or in the Issues that I can find, this is still a valid error to me, as these error messages can be improved. This may be related to #39

Thanks for reporting. We will look into this  issue. Possibly related to https://github.com/opendistro-for-elasticsearch/performance-analyzer-rca/issues/363

@advanced4 Can you please check if the issue is resolved in the latest version of ODFE?

@advanced4 Can you please check if the issue is resolved in the latest version of ODFE?

@ktkrg Yes, this appears to have been resolved, I don't see these messages on master or data nodes. Thanks!

@ktkrg Yes, this appears to have been resolved, I don't see these messages on master or data nodes. Thanks!

I still have these exceptions on opendistroforelasticsearch-1.12.0-1.noarch
io.grpc.StatusRuntimeException: UNKNOWN
	at io.grpc.Status.asRuntimeException(Status.java:533) ~[grpc-api-1.28.0.jar:1.28.0]
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:449) [grpc-stub-1.28.0.jar:1.28.0]
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:426) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.ClientCallImpl.access$500(ClientCallImpl.java:66) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:689) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$900(ClientCallImpl.java:577) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:751) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:740) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [grpc-core-1.28.0.jar:1.28.0]
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) [grpc-core-1.28.0.jar:1.28.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
	at java.lang.Thread.run(Thread.java:832) [?:?]

On a an eligeble master node I see these errors that  might be related

I'm also seeing these errors on 1.12.0

Hello,
I'm seeing these errors on last version too (1.13.2)

Some info? Seeing that on latest version as well.

authors: TheMeier advanced4 gferrette ktkrg sendkb sitler87 tmashos


text:
CAS-481: wait for message bus

On k8s, even before even attempting to start mayastor we should make
sure that the nats service is ready.

bors merge

repo: openebs/Mayastor


text:
feat: add video duration to video playback events

Description
This PR adds video duration to video playback events

Thanks for the pull request, @Ian2012! Please note that it may take us up to several weeks or months to complete a review and merge your PR.
Feel free to add as much of the following information to the ticket as you can:

supporting documentation
Open edX discussion forum threads
timeline information ("this must be merged by XX date", and why that is)
partner information ("this is a course on edx.org")
any other information that can help Product understand the context for the PR

All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here.
Please let us know once your PR is ready for our review and all tests are green.

Can you split out different sets of changes into different PRs to make them easier to review?

@Ian2012 🎉 Your pull request was merged!  Please take a moment  to answer a two question survey so we can improve your experience in the future.

authors: Ian2012 bmtcril openedx-webhooks

repo: openedx/aspects-dbt


text:
Handling data redundancy for legacy data with the event bus

How to we handle the case when services want to use the event bus for data redundancy across services, but there is legacy data that predates the existence of the event?
It's unclear if this ticket would result in any tooling, or just documentation to acknowledge and provide some guidance around this potentially common situation.
It is possible that each situation will need its own way to copy the old data (API, export/import, etc.) that doesn't conflict with the ongoing events, or the events could be rerun from a certain time.
How we handle db timestamps for each event may come into play.

If we want to rely on the event bus as the only method of data transfer I could see "rebuilding" events from the old/existing data working safely when there is a single consumer. What happens the next time we need this same event data synced to a different service? Can we run that process again or would it risk unforeseen side effects in the first service?

@Zacharis278: Based on the issues that you are raising, I don't think re-sending all events to the event bus is the right solution, at least for the topics we have created.

There is the idea of event sourcing, where a topic becomes the source of truth of certain data and contains all history with infinite data retention (which may have PII and other implications). We decided to punt on this, but it is an option for a new topic. I'm not clear on how and if event sourcing could be introduced for a previously existing source of data, but it we could, it would require a new topic that retains all the data from the start, and could be read/-re-read by different consumers through time.
For our existing topics, I think the initial data simply needs to be loaded separately. As you noted, all consumers will be affected, so it doesn't seem like the right pattern in general. Whether or not it is a hack that could be used in certain circumstances is a separate question, but we need to think about whether this is public or private code, and who else might be affected, etc. I'd prefer not to if it can be avoided though.

Creating synthetic old events is tricky in that it will explicitly be sending events out of order, which puts the onus of figuring out ordering and idempotency on every consumer of that stream (some of which may be out of the operator's control). IMO bootstrapping new consumers with all of the existing event data s a perfect use case for the event bus, but once data is flowing manufacturing old events is fraught with peril.

@bmtcril: Can you help explain the following?

IMO bootstrapping new consumers with all of the existing event data s a perfect use case for the event bus, but once data is flowing manufacturing old events is fraught with peril.

When data on the event bus is sent to old, new, and future consumers, I'm just not clear on what perfect use case you are referring to? It feels like "once data is flowing" will always be the case, unless you mean quite literally when a topic is first getting produced to? And if so, I'm not clear on whether you are saying the event bus should be used for this and how you think this would work?

It's sounding like the best option for right now is to load data separately and its up to the particular implementation to work out a seamless transition from initially loaded data to incoming events. Luckily, I don't think this is problematic for our team's use case. As a general solution, I could see this being a bit harder to deal with if we have high frequency events that do more than just create a DB row.

@robrap our comments crossed, but I think we were saying the same things. You just did it better. :)

authors: Zacharis278 bmtcril robrap

repo: openedx/openedx-events


text:
Initial build to match prototype -- events page and other changes

Adds a hard-coded, initial events page
Removes/deactivates much of the mock API
Adds config to launch on IBM Cloud Foundry
Adds basic styling standards and runs prettier on a pre-commit hook
Updates React to v17, react-scripts to 4.0.1, and several other package updates

I also need to resolve the DCO checks -- I'll fix that.

Closing this for now -- I think it'll be easier to combine everything into one commit and then reopen the PR.

repo: openeew/openeew-dashboard


text:
Keep Smoothie's dependancies up to date

What

[x] #1078
[ ] Possibly others

Part of

#525

We have automated dependancy updates, thanks to Dependabot. closing

repo: openfoodfacts/smooth-app


text:
[Discussion] App modularization

Hi everyone,
We now have a few pending issues regarding:

The ability to have only dependencies during our developments (PR #2320)
Being able to have a non-MLKit barcode decoder for FDroid or Amazon devices (Issue #1882)
Redirect the user to the store to rate the app

Dart (and Flutter) doesn't allow us to have dynamic dependencies, like Gradle would on Android.
The only solution is to have an architecture that looks like this:

To achieve this kind of architecture, Flutter forces us to specify the name of the package for each asset we want.
That's why, we have to change the current "app" to be the common module. This will force us to provide a package for all assets we want to access. (That's what I've done in #2320, but not only)
Here is the plan:

Dismiss the current PR #2320
Create a PR that only adds package everywhere in the common module + create an app to test the architecture
Split the barcode scanner in modules: MLKit vs another "non Google" solution
Create two variants of the app

If you have any suggestion, feel free to ask!

I don't know of a better way to do this if we don't have official flutter support.
I mean we could ask if there is a maybe undocumented way or if it's on the todo list but if not I'm fine with doing it this way.

Hi @g123k!
If I understand well:

we need to build different apps for Android, because our current version uses Google packages that we cannot/we don't want to put in FDroid or Amazon stores
it's not possible to have a unique smart pubspec.yaml that - according to env variables for instance - would build either the google or the amazon version

I'm a bit puzzled because somehow we manage to override the app version from the pubspec.yaml (0.0.0+600) at build time, so perhaps we could manage to go a step further and override dependencies too. But perhaps not, perhaps we can change only few things, among which app name and version.
So let's assume points 1 and 2 above are correct.
For the moment smooth_app is our main package. And if I understand well you want to rename it as common (or just consider as the "common" package, that's not clear).
What if we said that

smooth_app is our most important package, with 95% of the code - we change almost nothing, we just get rid of the camera/scan implementation (like main(AbstractCameraScan scanner))
smooth_app_google would be the entry package for the current app, would include package smooth_app, and would have its own implementation of camera/scan for Smoothie and its own additional dependencies
smooth_app_amazon would be the entry package for the amazon app, would include package smooth_app, and would have its own implementation of camera/scan for Smoothie and its own additional dependencies

I don't know if that would work. My point here is to have a minimal impact on the existing code.
@g123k I know you're at ease with 99-file PRs like #2320, I'm not a big fan of that (I prefer 99 Luftballons, but that's another story).
So basically, @g123k could you test if we could have

new package smooth_app_android that uses slightly modified "smooth_app" but with an ad-hoc implementation of camera/scan (like now)
new package smooth_app_amazon that uses slightly modified "smooth_app" but with an ad-hoc implementation of camera/scan (build on ZXing or whatever, I didn't follow that problem)
therefore different dependencies for smooth_app_android and smooth_app_amazon, so that we manage to have different apps for different targets using different dependencies but with an untouched code core kept in smooth_app?

So you're right. Let's we rename the current smooth_app to common (but we can keep the same name).
Since it's not the root package anymore, we HAVE TO link all assets manually by specifying the package argument (mainly what's done in #2306
For the tests, no need actually, because I'm 100% sure (I've done it in previous projects).
We will just have to change the entrypoint from smooth_app/main.dart to smooth_app_android|amazon/main.dart

Hi @g123k!
There are some things I would like to clarify before you start.

Let's rename the current smooth_app to common (but we can keep the same name)

=> Please do keep the same name. That was the only important point of my previous comment. We need it to keep the code history (at least I do).

Since it's not the root package anymore, we HAVE TO link all assets manually by specifying the package argument (mainly what's done in https://github.com/openfoodfacts/smooth-app/pull/2306

Very surprising indeed. That would entail that if I use a pub.dev package that uses its own assets, I would have to rename those package asset files? Obviously some misunderstanding: we need to clarify this. Especially when https://github.com/openfoodfacts/smooth-app/pull/2306 has nothing to do with it.
In short, as a test, you would just have to

create a new package smooth_fdroid
in its main.dart, call smooth_app/main.dart
and that's supposed to work, with 0 change on smooth_app, right?

The next step would be

to create an abstract class in smooth_app, something like that:

abstract class AbstractScanner {
  void helloWorld();
}

to extend that class in smooth_fdroid, something like that:

class FdroidScanner extends AbstractScanner {
  @override
  void helloWorld() => print('hi this is Fdroid here');
}

to pass an instance of FdroidScanner as a parameter to smooth_app/main.dart

to start the FDroid app and find hi this is Fdroid here in the logs.

If you download a depency from pub.dev and this dependency have some assets, you have to specify the package entry.
Otherwise Flutter won't know which file to take

and that's supposed to work, with 0 change on smooth_app, right?
No, because of the package thing

@g123k I have to test that. Sounds very strange. I'll keep you posted by tomorrow.

If you want to better understand why, just decompile an Android APK and you will thus understand that package question

@g123k We're probably not talking about the same thing.
If I use a package that I find in pub.dev, and if this package contains assets, I do not have to change that package assets, do I?
Like for https://github.com/flutter/packages/tree/main/third_party/packages/cupertino_icons/assets - I don't think you ever changed the path to an icon:

Probably the source of our misunderstanding is what we want to do in the old package and the new packages.
The way I see things, the old stays as is with its assets. And the new packages just call the old package with an additional parameter (like a class that implements the scan), but that's all they do. In particular, they don't play with assets, they're calling a package that happens to have its own assets.
Still in my tests.

Let me rephrase everything. Let's say we have:

A base app
A dependency (cupertino_icons for example)

When in your base app, you say Image.asset(path), it automatically implied package = base_app
=> Current behavior, everything works well (but the package could be provided - actually done by Flutter itself)
Now, Cupertino_icons have its own font asset, but let's say it's an image. If I say Image.asset(path) => 404, because the asset is in a subfolder called cupertino_icons and NOT in the base app.
So if I sum up, in the code (wherever you are), if you want to access an asset that is defined outside the main app, you have to specify the package.
That's what we have to do for smoothie, since the base app will now become a "dependency".

if you want to access an asset that is defined outside the main app

I never will.
I will just call a black box - a.k.a. dependency. A black box that uses its own assets.
The main app is never going to access directly the dependency assets.
What you imply is that a dependency does not have the same access to its own assets, depending on whether the dependency is a dependency to another package or is independent. That's possible, but that would be very surprising to me.
I'll continue my tests tomorrow.

@g123k My tests today:

in a first approach it looks like you may be right regarding assets. Very surprising - not the fact that you are right, this I can imagine, but that a black box like a dependency needs to be (slightly) rewritten. But if at the end this is how it works, we can manage that in a stupid PR that just adds the path to all asset calls.
what is much more problematic is the way flutter manages the translations (it's notoriously an area where flutter sucks). It looks like as the translations are computed from the current package folder where you flutter run - e.g. smooth_fdroid, all the translations need to be at the level of that folder, as there's only one generated app_localizations.dart file. That would mean that we would need to copy the app_xx.arb files for each fdroid/amazon/google project. Which definitely sucks, much more than point 1

@g123k What are your thoughts about localization?

Regarding localization, can we keep everything in a single file ?
The 160*4 files for server and the old Android app are a nightmare.

Regarding localization, can we keep everything in a single file ?

You mean, a unique file for all the flutter apps, or a unique file for all languages?

@g123k Regarding assets (again), I've just a look at pub.dev packages that contain assets (not that easy to find).
I found this guy: https://pub.dev/packages/intl_phone_field that contains flags. And this is how they access the "local" assets:
Image.asset(
  'assets/flags/${_filteredCountries[index].code.toLowerCase()}.png',
  package: 'intl_phone_field',
  width: 32,
)

Same with https://pub.dev/packages/country_pickers and https://pub.dev/packages/country_list_pick.
OK, you win :)
We'll have to check if all our asset cases (json, svg, png, ogg, pem, txt, ttf) can be dealt with with that additional package parameter.
But as I said, the localizations part looks more problematic.

I think the best solution would be to just avoid the problem as we are now in a stage where there are not many people with the same problems.
Preferably by somehow running the generation step before flutter run does it's job like its possible in JS with scripts in the counterpart to darts pubspec.yaml
The closest thing I could find is this:
https://flutterawesome.com/define-and-use-scripts-from-your-pubspec-yaml-file/amp/
For this to work we would still need a command which generates the translations files without running flutter run looked for it multiple times already but haven't found one.

Also for other assets there seem to be workarounds https://stackoverflow.com/questions/54740732/how-to-add-assets-in-flutter-package-plugin-development

Moving the ./assets into ./lib/assets

or

AssetImage('assets/abc.xyz', package: 'my_developed_package');

@teolemon @g123k @M123-dev You guys realize that ALL that heavy non-sense could be prevented if we were just able to comment and uncomment the pubspec.yaml and a single dart file, right? Either manually or automatically:
  #  smooth_mlkit: ### to be commented/uncommented
  #    path: ../../../smooth_mlkit ### to be commented/uncommented
  smooth_zxing: ### to be commented/uncommented
    path: ../../../smooth_zxing ### to be commented/uncommented

In both smooth_mlkit and smooth_zxing, we create one class called ScanInterface (that possibly implements a common abstract class)
And in smooth_app's main.dart, we just call once ScanInterface:
// import 'package:smooth_mlkit/smooth_mlkit.dart'; ### to be commented/uncommented
import 'package:smooth_zxing/smooth_zxing.dart'; ### to be commented/uncommented

final ScanInterface scanInterface = ScanInterface();

Et voilà.

I think we can close this issue as it's now implemented


text:
Is the app "destroying" nutrition facts?

Hi everyone,
This is not the first time that I've noticed this behavior, but on the app, everything is OK in the nutrition facts:

However, when I go to the website, the array is empty.
Is-it a problem on the website or on the app?
An example product: https://fr.openfoodfacts.org/produit/80931331/xtreme-fraise-mentos
(The issue is on the iOS prod app)

https://github.com/openfoodfacts/openfoodfacts-server/issues/7991

@teolemon @g123k Could be the bug that I'm apparently the only one interested in: knowing if we see the server data or the locally modified data.
"Normal users" have no way to know that. In dev mode, you may see pending background tasks that are failing again and again. cf. https://openfoodfacts.sentry.io/issues/3861304996/?notification_uuid=AJPWoSEploh0qKW6&project=5376745&referrer=weekly_report
Last week we had 2.5K errors like that: "invalid user/password". And we keep retrying...

authors: g123k monsieurtanuki teolemon


text:
Merge the 2 distinct "Like this app?" widgets into only one

What

We have a couple of "Like this app?" widgets, with different wordings/UI.
For consistency and maintenance reasons, we would be better off with only one.
I have a preference for the "carousel" version, with 3 possible answers (and a better UI)

Screenshot/Mockup/Before-After

The first time we log-in (successfully) (login_page.dart)
Random access in carousel (smooth_product_carousel.dart)

Hey! Can I work on this issue?

Hey! Can I work on this issue?

@Smit56R Sure!
Basically the idea is to have a dialog (screenshot 1) that somehow looks like screenshot 2.
Easy step 1: a dialog with 3 vertical buttons with the same labels and actions as screenshot 2.
Please send a screenshot before actually sending a PR.

Okay, I will do that.

I'm not sure this is a nice idea to merge things, as here, yes, they do the same thing, but that's not the expected behavior.
The one on the carousel is a returning message VS a one-time message for the one in the login.

@g123k I sort of agree with you, the "merge" wording is not correct, the goal is not a unique widget used in both cases.
My point was to use the same labels and the same 3 possible choices - which is not the case currently.
That's why I suggested a dialog with 3 vertical buttons for a quick fix.
Do we agree on that, or do you consider that the "ask me later" choice is not relevant when logging in?

@g123k @monsieurtanuki While you decide, I have altered the SmoothAlertDialog to have a parameter for delayAction which renders the dialogue in the proposed UI is provided as an argument. It switches to a three-row layout or  two-row layout according to the screen size.

Here is the code snippet for SmoothAlertDialog:
class SmoothAlertDialog extends StatelessWidget {
  const SmoothAlertDialog({
    this.title,
    required this.body,
    this.positiveAction,
    this.negativeAction,
    this.delayAction,
    this.actionsAxis,
    this.actionsOrder,
    this.close = false,
    this.margin,
    this.contentPadding,
  })  : assert(
          body is! LayoutBuilder,
          "LayoutBuilder isn't supported with Dialogs",
        ),
        assert(
          delayAction == null ||
              (positiveAction != null || negativeAction != null),
          "Delay action isn't supported without positive action and negative action",
        );

  final String? title;
  final bool close;
  final Widget body;
  final SmoothActionButton? positiveAction;
  final SmoothActionButton? negativeAction;
  final SmoothActionButton? delayAction;
  final Axis? actionsAxis;
  final SmoothButtonsBarOrder? actionsOrder;
  final EdgeInsets? margin;
  final EdgeInsetsDirectional? contentPadding;

  /// Default value [_defaultInsetPadding] in dialog.dart
  static const EdgeInsets defaultMargin = EdgeInsets.symmetric(
    horizontal: 40.0,
    vertical: 24.0,
  );

  static const EdgeInsetsDirectional _smallContentPadding =
      EdgeInsetsDirectional.only(
    start: SMALL_SPACE,
    top: MEDIUM_SPACE,
    end: SMALL_SPACE,
    bottom: SMALL_SPACE,
  );

  static const EdgeInsetsDirectional _contentPadding =
      EdgeInsetsDirectional.only(
    start: 22.0,
    top: VERY_LARGE_SPACE,
    end: 22.0,
    bottom: 22.0,
  );

  @override
  Widget build(BuildContext context) {
    final Widget content = _buildContent(context);
    final EdgeInsetsDirectional padding =
        contentPadding ?? defaultContentPadding(context);

    return AlertDialog(
      scrollable: false,
      elevation: 4.0,
      insetPadding: margin ?? defaultMargin,
      contentPadding: EdgeInsets.zero,
      shape: const RoundedRectangleBorder(borderRadius: ROUNDED_BORDER_RADIUS),
      content: ClipRRect(
        borderRadius: ROUNDED_BORDER_RADIUS,
        child: Scrollbar(
          child: SingleChildScrollView(
            child: Padding(
              padding: padding,
              child: Column(
                children: <Widget>[
                  content,
                  if (hasActions) _buildBottomBar(padding),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }

  Padding _buildBottomBar(EdgeInsetsDirectional padding) {
    final bool singleButton = (positiveAction != null &&
            negativeAction == null &&
            delayAction == null) ||
        (negativeAction != null &&
            positiveAction == null &&
            delayAction == null) ||
        (delayAction != null &&
            positiveAction == null &&
            negativeAction == null);

    return Padding(
      padding: EdgeInsetsDirectional.only(
        top: padding.bottom,
        start: (actionsAxis == Axis.horizontal || singleButton)
            ? SMALL_SPACE
            : 0.0,
        end: positiveAction != null &&
                negativeAction != null &&
                delayAction != null
            ? 0.0
            : SMALL_SPACE,
      ),
      child: SmoothActionButtonsBar(
        positiveAction: positiveAction,
        negativeAction: negativeAction,
        delayAction: delayAction,
        axis: actionsAxis,
        order: actionsOrder,
      ),
    );
  }

  bool get hasActions =>
      positiveAction != null || negativeAction != null || delayAction != null;

  Widget _buildContent(final BuildContext context) => DefaultTextStyle.merge(
        style: const TextStyle(height: 1.5),
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            if (title != null) _SmoothDialogTitle(label: title!, close: close),
            body,
          ],
        ),
      );

  static EdgeInsetsDirectional defaultContentPadding(BuildContext context) {
    return (context.isSmallDevice() ? _smallContentPadding : _contentPadding);
  }
}

Is this how you want it to work?

@monsieurtanuki Okay. I will do it that way.

@monsieurtanuki  I have completed the code. I just need clarification on a few things.

How should I handle the reverse logic in the function _buildActions() inside smooth_alert_dialog.dart when all three buttons are provided?
Do you want me to use the flat button for neutral and negative actions or do you want me to give them borders?

@Smit56R Please put the neutral button between positive and negative, and display neutral identical to the current negative button display.