did not locate library pango-1.0-0

What happened?
I was using the WeasyPrint module, I had to update the docker file and include the library dependencies and was working perfectly but all of a sudden last Friday the build was failing and I can't seem to run my project locally due to the issue OSError: cannot load library 'pango-1.0-0': pango-1.0-0: cannot open shared object file: No such file or directory.  Additionally, ctypes.util.find_library() did not manage to locate a library called 'pango-1.0-0'
What should've happened instead?
It should run the project without issues, It should render the HTML templates to PDF using weasyprint
Additional details
I did not configured the project, so I don't have cookie-cutter installed locally before.

Host system configuration:

Version of cookiecutter CLI (get it with cookiecutter --version):

OS name and version: MacOS 11.4
On Linux, run
lsb_release -a 2> /dev/null || cat /etc/redhat-release 2> /dev/null || cat /etc/*-release 2> /dev/null || cat /etc/issue 2> /dev/null

On MacOs, run
sw_vers

On Windows, via CMD, run
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

# Insert here the OS name and version

Python version, run python3 -V: 3.8.9

Docker version (if using Docker), run docker --version: 3.5.2

docker-compose version (if using Docker), run docker-compose --version: 2.0.0-beta-6

...

Options selected and/or replay file:
On Linux and MacOS: cat ${HOME}/.cookiecutter_replay/cookiecutter-django.json
(Please, take care to remove sensitive information)
Again, I did not configure the project I don't have cookie-cutter installed but I'm using docker as one of the options
# Insert here the replay file content

Logs:

PostgreSQL is available
Traceback (most recent call last):
  File "manage.py", line 31, in
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "/usr/local/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.8/site-packages/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "/usr/local/lib/python3.8/site-packages/django/contrib/admin/apps.py", line 24, in ready
    self.module.autodiscover()
  File "/usr/local/lib/python3.8/site-packages/django/contrib/admin/__init__.py", line 24, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "/usr/local/lib/python3.8/site-packages/django/utils/module_loading.py", line 47, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "", line 1014, in _gcd_import
  File "", line 991, in _find_and_load
  File "", line 975, in _find_and_load_unlocked
  File "", line 671, in _load_unlocked
  File "", line 848, in exec_module
  File "", line 219, in _call_with_frames_removed
  File "/app/water_conservation_api/core/admin.py", line 16, in
    from water_conservation_api.core.services import OrganizationService
  File "/app/water_conservation_api/core/services.py", line 19, in
    from water_conservation_api.core.tasks import generate_mailer, import_water_bill_records
  File "/app/water_conservation_api/core/tasks.py", line 10, in
    from water_conservation_api.utils.helpers import generate_pdf, send_job_notification
  File "/app/water_conservation_api/utils/helpers.py", line 9, in
    from weasyprint import HTML
  File "/usr/local/lib/python3.8/site-packages/weasyprint/__init__.py", line 322, in
    from .css import preprocess_stylesheet  # noqa isort:skip
  File "/usr/local/lib/python3.8/site-packages/weasyprint/css/__init__.py", line 27, in
    from . import computed_values, counters, media_queries
  File "/usr/local/lib/python3.8/site-packages/weasyprint/css/computed_values.py", line 16, in
    from ..text.ffi import ffi, pango, units_to_double
File "/usr/local/lib/python3.8/site-packages/weasyprint/text/ffi.py", line 383, in
pango = _dlopen(
File "/usr/local/lib/python3.8/site-packages/weasyprint/text/ffi.py", line 377, in _dlopen
return ffi.dlopen(names[0])  # pragma: no cover
File "/usr/local/lib/python3.8/site-packages/cffi/api.py", line 150, in dlopen
lib, function_cache = _make_ffi_library(self, name, flags)
File "/usr/local/lib/python3.8/site-packages/cffi/api.py", line 832, in _make_ffi_library
backendlib = _load_backend_lib(backend, libname, flags)
File "/usr/local/lib/python3.8/site-packages/cffi/api.py", line 827, in _load_backend_lib
raise OSError(msg)
OSError: cannot load library 'pango-1.0-0': pango-1.0-0: cannot open shared object file: No such file or directory.  Additionally, ctypes.util.find_library() did not manage to locate a library called 'pango-1.0-0'

@aabanaag
Are you sure to install all WeasyPrint Debian dependencies on the build and run stages of the docker?
This project uses the docker multi-stage builds:
https://docs.docker.com/develop/develop-images/multistage-build/
https://doc.courtbouillon.org/weasyprint/latest/first_steps.html#debian-11
python3-pip python3-cffi python3-brotli libpango-1.0-0 libpangoft2-1.0-0

You must repeat dependencies after these two lines.
https://github.com/pydanny/cookiecutter-django/blob/master/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile#L14
https://github.com/pydanny/cookiecutter-django/blob/master/{{cookiecutter.project_slug}}/compose/local/django/Dockerfile#L41
And then rebuild everything ignoring the build cache
docker-compose -f local.yml build --no-cache

I did installed it on both build and run stages..

hmm.. is there any reason why it needs to be after those lines?

my bad, turns out I need to also add the dependencies on the docs dockerfile. Thank you


[Oracle] Sessions view: show long ops

Information about operations lasting longer than 6s is available in the oracle system view V$SESSION_LONGOPS. Documentation about it available here: https://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2092.htm#REFRN30227
Tora and TOAD display them with nice progress bars that update when you refresh the sessions view.

No nice progress bars so far. But at least we'll show long ops info (and now we can show any additional session info easily).

Please create separate ticket for fancy visualization.


Support multiple gets within single Profiler run

Sometimes one computation spans multiple calls to get.  This resets the profiler at the context manager's start/exit rather than get's start/finish.

:+1: this is pretty common with xray

@jcrist any feedback on this?

Looks good to me.


Only raise an error on invalid.

I think nodemailer-mandrill-transport should function in the near term similarly to SendGrid.
For example, SendGrid handles all SPAM, Blacklisted, rejected, etc behind the scenes. You can login to your dashboard and see these things. It's part of the service it provides.
Mandrill provides the same service on your dashboard page here: https://mandrillapp.com/settings/rejections
We should offput that effort to Mandrill and let the response continue successfully.
Only for an invalid request should the error raise.

Tho I agree with the premise here, I'd like us to follow the latest from #5

I agree with @elbuo8.

Sounds good.


Any more examples?

There are no more examples? request more examples available for testing.

This has been open for a while, I'm closing it for now. If you'd like to see any specific examples, please comment/reopen.


Add issues to a project based on milestone

The action may now be triggered when an issue is either labeled or added
to a milestone. Use the 'milestone-name' input to define the milestone
title to match. label-name and milestone-name are mutually exclusive.
Example:
This YAML is meant to be triggered whenever an issue has been milestoned.
on:
  issues:
    types: [milestoned]
jobs:
  Move_Milestoned_Issue_On_Project_Board:
    runs-on: ubuntu-latest
    steps:
    - uses<EMAIL_ADDRESS>      with:
        action-token: "${{ secrets.MY_TOKEN }}"
        project-url: "https://github.com/orgs/github/projects/1"
        column-name: "On Deck"
        milestone-name: "v1.0"
        columns-to-ignore: "In Review,Ready to deploy,Done"

Great idea with expanding the functionality to milestones as well.
The broader use-case warrants a name change for better discoverability. I'll rename the repo from actions-move-labeled-issue to something like move-labeled-or-milestoned-issue and then update some of the other information for the marketplace


CI to reject axioms

Add a CI workflow to deny code that uses axioms. In the future, when the repository has many external contributors, this is very important. We must prevent folks from importing stuff like excluded middle, funext, or declaring axioms because they feel like it.

coqchk
While the existing lint workflow does catch this to a certain extent, it is not foolproof, and it can't deal with imported axioms from the standard library.

Actually we should allow funext. Removing funext is too much trouble.

/snap/coq-prover/current/coq-platform/bin/coqchk -silent --output-context -R theories/ CoqCP $(ls **/*.vo | awk -F'/' '{split($NF, a, "."); print "CoqCP."a[1]}')

almost there

life sucks

just can't manage to strip blank lines

🙂🙂🙂🙂🙂🙂🙂🙂🙂

yes ik there's another person watching this repo but whatever

let's give it another shot

Done


How do I install this.

So this looks great!
However having never touched java not quite sure how i'm meant to install it. I assume I need to turn this into a .jar file to use in phpstorm is there a version of this allready created anywhere?
Thanks - James

Hi James,
To use plugin in IDE, just install it from jetbrains plugin repository - https://plugins.jetbrains.com/plugin/8024?pr=
From IDE: settings->plugins->browse repositories-> search "Magento2"-> install and restart

Perfect thanks - Should have thought of that.

James


MINOR: Log unexpected exceptions in Connect REST calls that generate 500s at a higher log level

The ConnectExceptionMapper was originally intended to handle ConnectException errors for some expected cases where we just want to always convert them to a certain response and the ExceptionMapper was the easiest way to do that uniformly across the API. However, in the case that it's not an expected subclass, we should log the information at the error level so the user can track down the cause of the error.
This is only an initial improvement. We should probably also add a more general ExceptionMapper to handle other exceptions we may not have caught and converted to ConnectException.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

/cc @kkonstantine @rhauch @rnpridgeon

SUCCESS
8081 tests run, 5 skipped, 0 failed.
--none--

SUCCESS
8081 tests run, 5 skipped, 0 failed.
--none--

SUCCESS
8081 tests run, 5 skipped, 0 failed.
--none--

@hachikuji @junrao super simple patch, just need another committer +1 if one of you wouldn't mind.

Haha, this ended up requiring more effort than I thought a 1-line logging improvement would. Final fix was to handle the built-in JAX-RS WebApplicationException cases, which is probably why I originally didn't expand this to all exceptions. afaict this now looks ok since we've got one passing build and others seem to fail for unrelated reasons (though I'm having a hard time telling on the jdk9 build...).
merging to trunk, thanks for the reviews everyone


[SPARK-8660][ML] Convert JavaDoc style comments inLogisticRegressionSuite.scala to regular multiline comments, to make copy-pasting R commands easier

Converted JavaDoc style comments in mllib/src/test/scala/org/apache/spark/ml/classification/LogisticRegressionSuite.scala to regular multiline comments, to make copy-pasting R commands easier.

Can one of the admins verify this patch?

Jenkins, test this please.

@Rosstin can you update the pull request title to make it more descriptive?

Merged build triggered.

Merged build started.

@rxin done, hope that's not too long

Test build #36027 has started for   PR 7096 at commit 242aedd.

Thanks - one more thing. Can you change Spark-8660 to [SPARK-8660] ?

@rxin Of course, my bad

Thanks - LGTM. We can merge this once Jenkins comes back happy.

Test build #36027 has finished for   PR 7096 at commit 242aedd.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class Hex(child: Expression)
case class Hypot(left: Expression, right: Expression)
case class Sha1(child: Expression) extends UnaryExpression with ExpectsInputTypes

Merged build finished. Test PASSed.

Thanks - merging this in master.


Replaced tag_invoke with tag_fallback_invoke for adjacent_find algorithm

Replaced tag_invoke with tag_fallback_invoke for adjacent_find algorithm as mentioned here https://github.com/STEllAR-GROUP/hpx/pull/5176#issuecomment-781142703 .

Can one of the admins verify this patch?

Could you add the corresponding changes to this file as well, please (just to keep the algorithms consistent)?

retest

@Jedi18  Thanks :)

The remaining errors are unrelated. @Jedi18 thank you again for contributing!

Thank you for merging and help with the PR!


nvr some-file does not open a file

neovim is launched with $NVIM_LISTEN_ADDRESS=/tmp/nvimsocket, but nvr is unable to attach. Neither can it attach inside a :terminal.
This cast is nvr -s ~/.profile
E: I don't show it in the cast, but NVIM_LISTEN_ADDRESS is in the environment of the :terminal. However, :echo v:servername in nvim gives a different path. This path is something like /tmp/nvimPdLmCJ/0. This path is also given by nvr --serverlist. I suspect that nvim is no longer honoring NVIM_LISTEN_ADDRESS at all.

Versions:

Nvim: v0.4.3
nvr: 2.4.0
pynvim: 0.4.0
psutil: 5.7.0
Python: 3.8.2

I found it. Nvim had crashed previously and left /tmp/nvimsocket behind, therefore would not use it.

FYI: you can use the lastest syntax: nvim --listen /tmp/your_name.


Bug: tf.estimator.Estimator.export_savedmodel does not work with pathlib.Path in py36

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary):binary
TensorFlow version (use command below): v1.4.0-rc1-11-g130a514 1.4.0
Python version: 3.6
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

Describe the problem
The function tf.estimator.Estimator.export_savedmodel does not accept a pathlib.Path object, because
tensorflow.python.util.compat.as_bytes used in tensorflow.python.estimator.export.get_timestamped_export_dir can not convert pathlib.Path to bytes.
Here the code snippet from tensorflow.python.estimator.export.get_timestamped_export_dir:
    export_dir = os.path.join(
        compat.as_bytes(export_dir_base),
        compat.as_bytes(str(export_timestamp)))

I would write a PR, but I am not sure how to solve this problem in Python2. The following works in Python3.6 (If I remember correctly it was py36, where os.path start to accept pathlib.Path):
    export_dir = compat.as_bytes(os.path.join(
        export_dir_base,
        str(export_timestamp)))

Since the name tensorflow.python.util.compat.as_bytes does not imply that the input is a path, I am not sure if that would be a better place to solve the problem.
Source code / logs
Here some pseudo code (I hope with this example the tensoflowers are able to reproduce this bug in py36):
from pathlib import Path
tf.estimator.Estimator(...).export_savedmodel(
            Path('path/to/save'),
            export_input_fn,
            as_text=True,
        )

I prefer to use tf.gfile.

If I interpret tf.gfile correct its made for file handling (i.e. a replacement for open) and not for path handling (like os.path and pathlib).
The code that causes the problem is related to py2 vs py3 with bytes and str.
So I do not know how to solve this with tf.gfile.

@boeddeker Thanks for the great description of the issue!
@davidsoergel seems to have touched some of this code, and might have thoughts on appropriate fixes.

It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging Awaiting TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Nagging TensorFlower: It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!

@drpngx This problem is still there. I only got no answer how to fix this problem. So as @tensorflowbutler alwais mention: awaiting tensorflower
One solution would be, that the following code is executable in python 3:
from tensorflow.python.util import compat
compat.as_bytes(Path('abc'))

but an argument against it is, that compat.as_bytes has nothing to do with paths.
Another solution would be to use the code that I wrote initially (i.e. swap as_bytes and join), but that would require in python3 that export_dir_base is a str.
os.path.join in python2 does not care about the input type, so there the change will not effect something.

Do you have a PR in mind you want to send?

I can open a PR, when someone says which solution.

Deferring to @sukritiramesh

Nagging Assignee @drpngx: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @drpngx: It has been 48 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @drpngx: It has been 63 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Anyway, I think it would be nice to have, but I'm not sure about using as_bytes.


fix: regresssion for '-' in version name

Fix #833.

Somehow, this PR is not applied in v0.9.9 release.

You are correct. Not sure how, but yes.

https://github.com/scikit-build/scikit-build-core/releases/tag/v0.9.10 includes it. I checked (several times ;) ).

Confirmed it works. Thanks 😉


list-ops: import/test filter function of exercise code

Currently the list-ops exercise's test case neither hides filter from Prelude nor does it import that function from the exercise code. Hence the test cases don't test the users implementation but the Prelude one's ...

Oops. Nice catch. Guess we missed it in #229 !

Thanks!

...Guess we missed it in #229 !

Yeah...I probably added a lot of new bugs rewriting the tests to use hspec. Sorry! :disappointed:


Please add promisified API for use with async/await in upcoming Node 7

F.ex use https://www.npmjs.com/package/promisify-node

My pull request adds a method of require('node-dir').promiseFiles(dir, options).
Check it out, working with package owner to make official: #40

FYI tested with Bluebird, and it works great. Can't wait for NPM release.

Good stuff :)


Show popovers for each cooking term

Similar to How to Stock, terms will be saved to localStorage/UserDefaults/DataStore (can move to IndexedDB/Core Data/Room with recent recipes if needed) and expire after 1 week to prevent data from being stale.
Steps to be done:

On startup, check if terms are stored locally.
a. If they are, check if they're expired.
b. If they are, remove the terms.
If no terms are stored or if they were deleted, get all terms via the API.
Store the terms locally and set an expiration of 1 week.
Upon opening a recipe, highlight all terms that appear on the screen and create a popover-like tool to view more information on hover/click/tap.

Heads up, this will be a long one.
As I was working on this, I realized how complicated step 4 is. In How to Stock, I was able to add popovers to predefined spots on each page. But for this app, I need to inject popovers dynamically based on the recipe information we get. In other words, we need to:

Call GET recipe.
Populate the page with the recipe response.
Search the text for all the terms.
Inject popovers where those terms are located.

To inject the popovers, I need to add a style to make the terms look hoverable and add matTooltip to show the tooltip on hover. This involves modifying the existing HTML of the page.
There were 2 ways I thought of implementing this. One was to search the entire innerHTML of the recipe component. For each match, I would inject the style and tooltip attributes around each word and modify the innerHTML. The code looked like this:
addTooltips(recipeContent: HTMLDivElement) {
    // Look for each term throughout the recipe page and convert them into tooltips
    const terms = this.termsService.getCachedTerms();
    if (this.recipe === null || terms === null) return;
    let newInnerHTML = recipeContent.innerHTML;
    console.log('Original HTML:', newInnerHTML);

    for (const term of terms) {
      console.log(`Searching for ${term.word}...`);
      // Capture all occurrences of each term, case-insensitive
      const regex = new RegExp(`\\b(${term.word})\\b`, 'gi');
      newInnerHTML = newInnerHTML.replace(
        regex,
        `<span class="term" matTooltip="${term.definition}">$1</span>`
      );
    }

    console.log('New HTML:', newInnerHTML);
    this.renderer.setProperty(recipeContent, 'innerHTML', newInnerHTML);
  }

However, there were several issues with this approach. First, this had the potential to inject popovers outside the visible text content. For example, if one of the ingredients had an image called stock-pot.jpg, the function would pick up the word "stock" and inject a popover there. But this is just the HTML to render an image from its source. This would cause the page to look off since we modified the internal HTML (aka the image wouldn't load properly). I can't search just the textContent since I would need to know where in the HTML the text is located to inject properly. Second, the popovers wouldn't appear anyway. Since Angular encapsulates CSS classes per component, the styles for the "term" class wouldn't appear unless I add a random "ngcontent-..." attribute to the span tag. I could turn off encapsulation to make the "term" class global, but this wouldn't solve the other issue where the matTooltip wouldn't load properly. This is a special input property Angular uses to load the tooltip, and wouldn't translate directly to HTML.
The other option I came up with was to look at one word at a time and use ngIf to determine if I should add the tooltip around the word. Otherwise, I would show the text normally. This way I wouldn't need to modify the innerHTML (which is not recommended anyway since that opens the door to XSS attacks) and can rely on Angular's built-in rendering mechanism. The downside is that I would need to add this logic throughout the entire HTML, which would get tedious. So I figured I would only need to add this logic to the recipe instructions and the ingredients list. I would've included the summary as well, but that's already in HTML, so I would run into the first issue again. Below is the end result:

I'm glad this works, but I'm worried about how this will translate to the mobile apps. I know at least for SwiftUI that there is a limit to the number of children a view can have, so I can't just add a bunch of Text views for each word. I'm also not sure how hard it will be to implement the tooltip functionality on iOS and Android. Tooltips are inherently more optimal for desktops since you hover over them. Although you could add a tap gesture to show a tooltip, this would need to be a custom behavior since it's not common on mobile (as far as I know). If push comes to shove, I might make the tooltips exclusive to the web app (but can still be interacted with on a mobile browser).
To compensate, I could make a separate page to show all the terms like a dictionary. That should be very simple to implement and I have space to add a tab to the app. Plus, I can continue to cache the terms as described above and implement the terms API on mobile so there's no waste in effort. I also feel like fetching the terms API on startup will help with improving the cold start times during tests so the server can be active before fetching the recipes.


is there a R wrapper on the way?

hi, boss
is there a R wrapper on the way?

Hi @amjiuzi , not yet, but I'm open for.
Everybody is invited to contribute,
Thanks


This solves issue #2406. ExcessElements

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Yes
Description
(Write your answer here.)
This program prints the excess elements in one of the array entered by the user.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)
#2406

@Aleena-Ashraf We don't accept PRs without any corresponding Issue. It is difficult for us to find your issue in tons of issues available. We can't review and merged incomplete PR's.  Closing this PR as of now.

I am sorry for this..
Will the previous code, Adjacency Matrix be accepted?
On Thu, Mar 18, 2021, 17:22 Ankit Aggarwal @.***> wrote:

Closed #3378 https://github.com/TesseractCoding/NeoAlgo/pull/3378.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TesseractCoding/NeoAlgo/pull/3378#event-4475506858,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANSTD6DMDKW6MCQ6DD5JANTTEHSOHANCNFSM4ZICXIAA
.


device selection to url

device selection to url
link to load ports for device from device list

@grizz this can be merged, still pending review/approval when you have a chance


Add test with jose library.

Codecov Report

Merging #16 (2372744) into main (32391a0) will decrease coverage by 2.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #16      +/-   ##
==========================================
- Coverage   97.10%   95.07%   -2.03%
==========================================
  Files           6        6
  Lines         345      345
  Branches       50       50
==========================================
- Hits          335      328       -7
- Misses          7       14       +7
  Partials        3        3

Impacted Files
Coverage Δ

mkkey/cli.py
89.72% <0.00%> (-4.80%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 32391a0...2372744. Read the comment docs.


Document (non-)interaction between native and synthetic events

This issue was originally reported by @srittau as facebook/react/issues/10284
Text of the original issue:
I have been trying to find out why my React event handlers were not able to prevent event handlers on document. After hours of searching and experimenting, I stumbled across issue #7094, which explains it.
Unfortunately, the documentation at https://facebook.github.io/react/docs/handling-events.html gives the impression that React events work exactly like native events, apart from wrapping them in synthetic events, and could therefore interact with them. Please document that this is not the case.
The same applies to the documentation at https://facebook.github.io/react/docs/events.html, especially the first paragraph of the overview. A short remark on this page would be helpful as well.

@bvaughn @srittau Do these updates sufficiently clarify that there is a difference between the synthetic events and the native browser events?


A problem with Gradle.

I am very sorry to trouble you. But when i used with Gradle, the unused pictures won't be deleted.
I have runned lint and lint-results.xml are in build/ouputs directory. the i run ./gradlew lint && android-resource-remover --xml build/outputs/lint-results.xml  and it build successful.
But i find the unused pictures are still in.
Is any where i used wrong? Please help me find it.Thank you very much.

sorry, my fault.


V8 Auto Nav - hasSubmenu not working

In Version 8.0.0 preview the functionality of the autonav 'hasSubmenu' Seems to be missing completely, I noticed this when creating a custom template and tested for subpages. here is my code for the template.
    if ($ni->hasSubmenu) {
        echo '
';
        echo '' . $name . '';
        echo '
'; //opens a dropdown sub-menu
    } else {
        if ($ni->level == 1){
        echo '
'; //closes a nav item
        }
        echo str_repeat('

', $ni->subDepth); //closes dropdown sub-menu(s) and their top-level nav item(s)
    }
}

It seems that the if($ni->hasSubmenu) {...} doesn't get fired at all (this is apparent in the "Extra Functionality" setup which is code i haven't altered)
This can be reproduced with multiple (including the default) themes and templates.
Thanks for any help that you can provide.

Does this mean auto nav won't display sub menu items?  I began building a 5.8 theme that had a drop down menu using auto nav so if so then it seems to be working?

@ob7 Yes, My website doesn't show any submenus :/ even with the default theme and stuff. The rest of the options work.

Can anyone else verify this?

Same problem here but I am running the version: <IP_ADDRESS>
When I echo hasSubmenu in the view.php it's empty.
When I set a static value to this variable in the called getNavItems function it's also empty.

Please mark as closed, issue was called my overlooking the option in the block options, simply enabling the option from the block allowed for the submenus to appear.
Since the controller checks the values of the block settings first it overrides any other call of the function.
Thanks everyone.
@Lynnex32 hopefully this is the same issue you have?


[DROOLS-1357] kie-server: always return container resource with refre…

…shed releaseIds

the scanner works asynchronously, using own thread, so the releaseIds
can be basically updated any time. We need to make sure to always
update the releaseIds before actually returning the container resource

@mswiderski, @etirelli one thing I am wondering about is the existence of the method KieContainerInstanceImpl#getResource since it may return stale data. I think we should just rename the getRefreshedResource() to getResource() and make sure to always return refreshed resource. WDYT?

just to clarify, initially there was issue with the getResource that did dispose the marshallers etc so that's why the refreshed version was added, but later on it was further refactored to call the dispose marshallers explicitly when needed (update version etc)
so we still have the issue if scanner updates the kie container, the marshallers should be refreshed as well, though right this won't happen. So I believe we would have to have some kind of event listener support in kie scanner to be notified whenever scanner did update the version.
Why we could do until we have the listener in place is to check if the version of the resource in KieContainerInstanceImpl is same as one returned from KieCOntainer and if not, dispose marshallers. That's not a nice solution but at least will keep it up to date.
Anyway, @psiroky agree, these two methods are now redundant and as you said one of them might return out of date information. Could you please remove getRefreshedResource method and move the logic into getResource?

Thanks for the details @mswiderski, I was not aware of the issue with marshallers. I'll remove the getRefreshedResource method and then also look at disposing the marshallers when needed.

@mswiderski I did the changes. Could you please check if this is what you had in mind?

jenkins retest this

@psiroky looks good to me, +1 once the build is green
@sutaakar we need to rerun the tests for decreasing performance after this is merged - RHBRMS-2608

@mswiderski Sure, will keep that in mind

Performance test revealed a bug in the implementation, fixed by https://github.com/droolsjbpm/droolsjbpm-integration/pull/732


refactor: isIntrospectionOperation function to not use visit

we don't need to use visit

does this work with the following query? { ... on Query { __schema { __typename }}?

nvm this is going to be very painful to recursively visit


Update Cutting-the-mustard test

Updates the test conditions so that all of them are checking for Object property using "'propertyName' in Object" pattern. This makes it easier to interpret the individual conditions and what they are checking for, and removes the need for creating an element on the document object simply for testing purposes. Also makes it very clear what the current "cutting-the-mustard" requirements are, eg which properties on which objects need to be present, thus making it easier to unit test and more clear to clients that fail test what is needed to meet minimum requirements.

I signed it!

LGTM. Just needs the whitespace fixed and the commit ammended.
FYI easiest way to handle that is do the edit. Then git add src/mdlComponentHandler.js && git commit --amend. Walk through saving the commit back. Then git push --force the branch.
Thanks for the PR. It is great to simplify things.

@Garbee - I totally get what you are saying, except for the part where I actually edit/amend/force-push. Do I need to pull down the repo to my local dev environment, or is this possible via the github browser interface? If I need to put my big boy pants on and use git in local environment, do I need to amend the commit as it exists on the "patch-1" branch and force push it back to the "google" repo as the master? Or am I just hopelessly confused?

@Garbee - it might be easier than I thought (or even you thought!), as editing the file on the commit gives the option of updating directly on the patch-1 commit or creating new commit/PR. Fingers crossed.

Or maybe not. Finally got it working with a rebase (to combine the two commits) and a force push. not really sure what all I really did. But it's all one commit again.

I was assuming you were doing things locally. GH (nor any hoster I have seen) provides a good interface to amending existing commits in-browser.
However, running locally will also let you run the unit tests which are failing in the continuous integration check. Until these pass we can't merge any PR. I'll investigate why this is failing when I have time. Nothing in the commit screams failure to me, so there is something subtle going on it seems. My gut says it is related not creating a div to check for classList against.

@Garbee - So I finally got it to pass the unit tests by replacing  'classList' in HTMLElement.prototype with 'classList' in document.documentElement. What's odd is that the problem doesn't seem to be the lack of document.createElement('div') , but with the inclusion of HTMLElement.prototype. I also tried Element.prototype and got the same results. If I tried having both, like:
'classList' in document.documentElement && 'classList' in Element.prototype
this would fail, but as soon as the reference to Element.prototype was removed, the mocha test would pass.
Not sure if this reflects a deeper issue where the mocha test (or the general test environment) can't deal with references to the Element prototype, or if this is expected behavior (maybe referencing Element.prototype re-initiates something in the DOM (??)). But I amended this commit to use the document.documentElement as the object to check for classList, since it achieves mostly the same goal.

Yea, anything that supports classList should have it on the document.
cc @jasonmayes for review before merge in case there were any known technical reasons for the original implementation.

FYI, I think we'll be getting rid of the cutting-the-mustard test in v2. This was originally here as a way of doing graceful degradation for IE9, which didn't support some commonly used methods in our JS. With V2 moving the baseline to IE11, we no longer need to run these checks.

I think we should merge this if it checks out by Jason. We can discuss later whether it should actually be used. I think we may still want to do the check to let developers do progressive enhancement. But that discussion is probably going to derail this PR too much.
Doesn't hurt to have the change in in case we decide to keep it, and if we don't keep the mustard test then the same area is getting deleted. No major harm being done.

Sounds good, let's merge for now pending @jasonmayes's OK. LGTM otherwise.

Taking a look now.

LGTM.

Thanks Jason!
@crazytonyi Thanks for improving the check.


Added "Nullable" collections to fix problem when creating JSON of Docume...

...nt with unitialised composite types
https://jira.mendeley.com/browse/AND-371

Just needs a unit test - otherwise looks good. As discussed we should consider a future breaking change to introduce accessor methods in the Document object and do away with the delegate objects.


#147 - Added ability to manage team members

This draft PR introduces the ability for Admin users of a team to add new users to the team, remove users from the team, or update the roles of other users on the team.
This draft PR also introduces the suggested View directory changes and URL path changes. Let me know your opinions on this new structure.

Closes #147
Changes

Added ability to add users to teams and environments
Added ability to remove users from teams and environments
Added ability to update user roles across teams and environments
Added modal template for to replace inline forms

This also introduced hyperscript to the staticfiles

Added fuzzy finder input and datalist elements for searching for users
Updated EnvironmentUserRole model to keep track of inherited users

Implementation Notes

All team members have access to all environments owned by the team
The role they receive in an environment matches the current role assigned to them at the team level

This role should be the baseline role the user should have across all environments

If you change a user's role at the team level, this change will affect their role across all other environments owned by the team
Changing a use's role at the environment level will not affect their roles in other environments
A user added to an environment while not belonging to the corresponding team can be removed from the environment
Inherited users cannot be removed from environments, since that breaks the idea of them being on the team

If the user should have less or more permissions in a particular environment, then their permissions should be updated for just that environment

Testing

Add user to team and verify that they now exist on all teams owned by the group

Verify the roles are the same

Update user's role in one environment, and verify the role does not change in other environments
Try adding a user that does not exist to either a team or environment
View environments and verify that all team members are displayed as inherited
Add a user who is not part of the team of an environment. Verify that the option to remove the user is present
Delete a user from a team and verify that they no longer exist in any of the team's environments

Possible changes I have considered:

Display a card or table with all the user info, including the user's team role if they are on the environment's team

Card or table would include username, first name, last name, env role, team role, and then option buttons for admin users

Possibly add option for whether or not team level role change should affect users if they have admin permission for a particular environment
Add another permission that is lower in scope than just read access, so that user can be granted permissions across specific environments with fine grained control

Alternative could be to let user select what environments the user will be added to when they are added to the team


utils: Document difference between compute_p_from_null_distribution and p_from_null

See:
https://github.com/brainiak/brainiak/pull/384#issuecomment-438000981

Replaced old p_from_null with newer functionality from compute_p_from_null_distribution in #405 (commit daa5d41). Note that the new functionality now uses the older simpler function name. This also required removing the ecdf functionality which is no longer used anywhere in BrainIAK (commit aa0c37d.


Add default project nodeselector

Adding a default node selector to make sure so that we can have this field observed in apiserver config.
https://github.com/openshift/cluster-kube-apiserver-operator/blob/8e2fb021e10d6d46ffee299cb53863a775957998/bindata/v3.11.0/kube-apiserver/defaultconfig.yaml#L92

/test verify

/lgtm
Be sure when wiring this that it drives both admission plugins if necessary.


Client side js file is requiring jimp

We are using webpack for packing our client side js,
From the package.json https://github.com/akfish/node-vibrant/blob/master/package.json#L6
"browser": "lib/browser.js"
and within the file
https://github.com/akfish/node-vibrant/blob/master/lib/browser.js#L5
we have
Vibrant.DefaultOpts.Image = require('./image').Browser;
which require('./image')
has both server side and client side code.
even if we directly require https://github.com/akfish/node-vibrant/blob/master/lib/image/browser.js file,
we are still having Image = require('./index');
https://github.com/akfish/node-vibrant/blob/master/lib/image/browser.js#L5
which cause webpack error
ERROR in ./~/node-vibrant/~/jimp/index.js
Module not found: Error: Cannot resolve module 'fs' in /Users/rodhsiao/git/react-weather/node_modules/node-vibrant/node_modules/jimp
 @ ./~/node-vibrant/~/jimp/index.js 1:9-22

ERROR in ./~/node-vibrant/~/jimp/~/read-chunk/index.js
Module not found: Error: Cannot resolve module 'fs' in /Users/rodhsiao/git/react-weather/node_modules/node-vibrant/node_modules/jimp/node_modules/read-chunk
 @ ./~/node-vibrant/~/jimp/~/read-chunk/index.js 2:9-22

ERROR in ./~/node-vibrant/~/jimp/~/mime/mime.js
Module not found: Error: Cannot resolve module 'fs' in /Users/rodhsiao/git/react-weather/node_modules/node-vibrant/node_modules/jimp/node_modules/mime
 @ ./~/node-vibrant/~/jimp/~/mime/mime.js 2:9-22

Oops. I'll fix it soon.

Fixed in 2.0.1

Thanks for the prompt fix!


Serving project from subfolder

My site is currently running with: nginx, uwsgi, django (with djangocms).
I need to move everything under a subfolder /abc
nginx
location /abc {
uwsgi_pass rak;
include /etc/nginx/uwsgi_params;
uwsgi_modifier1 30;
uwsgi_param SCRIPT_NAME /abc;
}
The site works well but when I try to load any cms page I get 404 or the "Create page" wizard.
All the other apps are correctly served under the /abc/ subfolder even when attached to the cms via apphook.
The url reverse works good and the admin site is ok.
Am I missing something?

Hello @PleiadiBot  , please make sure to submit questions within the appropriate channels on either the User Mailing List, IRC (freenode#django-cms) or Stackoverflow.
You can find additional information on our support page.
In this case, I believe your question is best in the Users Mailing List.


⚠ Bofrost.es has degraded performance

In 4d80dbd, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1323 ms

Resolved: Bofrost.es performance has improved in 4ed50cb after 8 minutes.


Trying to install the latest into the prototype kit causes errors

Completed npm install<EMAIL_ADDRESS>--save-exact
Error: Exit code was 1
at ChildProcess. (/Users/adamsilver/work/dluhc/manage-planning-data-proto/node_modules/govuk-prototype-kit/lib/exec.js:27:23)
at ChildProcess.emit (node:events:390:28)
at maybeClose (node:internal/child_process:1064:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5) {
code: 1,
errorOutput: 'npm\n' +
' ERR! code ERESOLVE\n' +
'\n' +
'npm ERR!\n' +
' ERESOLVE\n' +
' unable to resolve dependency tree\n' +
'npm \n' +
'ERR!\n' +
' \n' +
'\n' +
'npm\n' +
' ERR!\n' +
' While resolving: undefined@undefined\n' +
'\n' +
'npm\n' +
' \n' +
'ERR!\n' +
' Found<EMAIL_ADDRESS>+
'npm ERR!\n' +
' node_modules/govuk-frontend\n' +
'npm\n' +
' ERR!\n' +
'<EMAIL_ADDRESS>from the root project\n' +
'npm\n' +
' ERR! \n' +
'npm\n' +
' ERR! Could not resolve dependency:\n' +
'\n' +
'npm \n' +
'ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>+
'\n' +
'npm ERR!\n' +
' node_modules/@x-govuk/govuk-prototype-components\n' +
'npm \n' +
'ERR<EMAIL_ADDRESS>from the root project\n' +
'npm\n' +
' ERR!\n' +
' \n' +
'npm ERR!\n' +
' Fix the upstream dependency conflict, or retry\n' +
'\n' +
'npm ERR!\n' +
' this command with --force, or --legacy-peer-deps\n' +
'npm \n' +
'ERR! to accept an incorrect (and potentially broken) dependency resolution.\n' +
'npm\n' +
' ERR! \n' +
'\n' +
'npm ERR!\n' +
' See /Users/adamsilver/.npm/eresolve-report.txt for a full report.\n' +
'\n' +
'\n' +
'\n' +
'npm \n' +
'ERR! A complete log of this run can be found in:\n' +
'\n' +
'npm ERR!\n' +
'     /Users/adamsilver/.npm/_logs/2024-01-11T14_50_20_439Z-debug.log\n'
}

4.7.0
https://github.com/digital-land/manage-planning-data-prototype
Thanks matey.

I wasn’t sure, but digging into this issue has given an answer; v3 of govuk-prototype-components requires v5 of govuk-frontend.
I’ll update the docs to make this clear, but in the meantime if you update your govuk-frontend to v5, they should work together in harmony.

Immense, thank you!
Thanks,
Adam
On January 17, 2024 at 12:02 PM, Paul Robert Lloyd @.***)
wrote:
I wasn’t sure, but digging into this issue has given an answer; v3 of
govuk-prototype-components requires v5 of govuk-frontend.
I’ll update the docs to make this clear, but in the meantime if you update
your govuk-frontend to v5, they should work together in harmony.
—
Reply to this email directly, view it on GitHub
https://github.com/x-govuk/govuk-prototype-components/issues/209#issuecomment-1895668271,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAJCK2LGEUDAPVW2RN2ULTYO64WLAVCNFSM6AAAAABBWT72N2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJVGY3DQMRXGE
.
You are receiving this because you authored the thread.Message ID:
@.***>


API:endpoint to write the feedback for each event participation-student

Description
This issue will help users(students) to post feedbacks regarding the events they participated in. Though I have some views I will like us to look into if necessary.

I tried inserting the 'mentor-id' & 'title' to the feedback body but it gave an error,  'unknown column: title/mentor-id in field list'
I think these columns should be added on the feedback table if there is a necessity; to avoid this error when the above is
included in the feedback body.

Fixes #111
How to test?
Swagger can be used to test this issue
Checklist

[X] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] This PR is ready to be merged and not breaking any other functionality

Nice work, but what happen with that big block of comment?

Good work!
A suggestion.
merge the latest develop into branch. and post request in api-router.js

Nice work, but what happen with that big block of comment?

Its just an explanation of my experiences when fixing the issue, so the mentors/reviewers already know what I experienced.


Typings issue - Can't resolve 'react-google-charts/dist/types'

Hi there,
First of all, thanks for working on this library.
I have an issue on<EMAIL_ADDRESS>Trying to set variables with the types to use on the chart:

const sankeyDataArray: GoogleDataTableRow[] = [
['blabla', 'blabla ', 10, 'anotation'],
['blabla2 ', 'blabla3', 10, 'anotation'],
];
const columns: GoogleDataTableColumn[] = [
{ type: 'string', label: 'From' },
{ type: 'string', label: 'To' },
{ type: 'number', label: 'Value' },
{ type: 'string', role: GoogleDataTableColumnRoleType.annotationText },
];

It says: Module not found: Can't resolve 'react-google-charts/dist/types'
I think more specifically, GoogleDataTableColumnRoleType is causing the bug.
Cheers,
Dislay

That is correct, the enum declaration seems to be an issue.
Manually editing the types.d.ts to reflect:
export declare type GoogleDataTableColumnRoleType = "annotation" | "annotationText" | "certainty" | "emphasis" | "interval" | "scope" | "style" | "tooltip" | "domain";

fixes the issue. I will check and create a PR if @rakannimer can confirm.

A workaround would be to do this
     //@ts-ignore
      {type: "string", role: "annotationText"}

ts compilation will not error and logic would still work.


sbJson 2.0 spatial

Mapping of sbJson spatial to mdTranslator internal data structure:

[ ] reader complete
[x] writer complete

{
   "spatial": {
      "representationalPoint": [123,23],
      "representationalPointIsDerived": false,
      "boundingBox": {
         "maxY": 23.22,
         "maxX": 12.12,
         "minX": 23.21,
         "minY": 43
      }
   }
}

Definition: This is the spatial representation of the item.
Mapping...

representationalPoint: A collection of two points (saved as Doubles). The first value is latitude and must be within -180 & +180. The second value is the longitude and must be within -90 & 90.
Map to: [schema][metadata][resourceInfo][extents][n][geographicExtents][n][geographicElement][n][geographicElements][n].type = 'Feature'
view mdTools
Map to: [schema][metadata][resourceInfo][extents][n][geographicExtents][n][geographicElement][n][geographicElements][n].id= 'representationalPoint'
view mdTools
Map to: [schema][metadata][resourceInfo][extents][n][geographicExtents][n][geographicElement][n][geographicElements][n][geometryObject].type= 'Point'
view mdTools
Map to: [schema][metadata][resourceInfo][extents][n][geographicExtents][n][geographicElement][n][geographicElements][n][geometryObject].coordinates
view mdTools
representationalPointIsDerived: Whether or not the representational point is derived. This is generally false.
Map to: [schema][metadata][resourceInfo][extents][n][geographicExtents][n][geographicElement][n][geographicElements][n][properties].acquisitionMethod = 'notDerived'
view mdTools
boundingBox: The bounding box of an item. The maxY, minY, maxX, minX represent the four corners of the bounding box.
Map to: **[schema][metadata][resourceInfo][extents][n][geographicExtents][n][geographicElement][n][geographicElements][n].bbox
view mdTools

Mapping to mdTranslator
   def newBase
      intObj = {
         metadata: {
            resourceInfo: {
               extents: [
                  {
                     description: nil,
                     geographicExtents: [
                        {
                           containsData: true,
                           identifier: {},
                           boundingBox: {},
                           geographicElement: [
                              {
                                 nativeGeoJson: [],
                                 geographicElements: [
                                    {
                                       type: 'Feature',
                                       id: 'representationalPoint',
                                       bbox: [12.12, 43, 23.21, 23.22],
                                       geometryObject: {
                                          type: 'Point',
                                          coordinates: [123, 23]
                                       },
                                       properties: {
                                          featureNames: [],
                                          description: nil,
                                          identifiers: [],
                                          featureScope: nil,
                                          acquisitionMethod: 'notDerived'
                                       },
                                       computedBbox: []
                                    }
                                 ],
                                 computedBbox: {}
                              }
                           ]
                        }
                     ],
                     temporalExtents: [],
                     verticalExtents: []
                  }
               ]
            }
         }
      }
   end

Translation to mdJson
{
   "metadata": {
      "resourceInfo": {
         "extent": [
            {
               "geographicExtent": [
                  {
                     "containsData": true,
                     "identifier": {},
                     "boundingBox": {},
                     "geographicElement": [
                        {
                           "type": "Feature",
                           "id": "representationalPoint",
                           "bbox": [12.12, 43, 23.21, 23.22],
                           "geometry": {
                              "type": "Point",
                              "coordinates": [123, 23]
                           },
                           "properties": {
                              "featureName": [],
                              "description": "",
                              "includesData": true,
                              "temporalElement": {},
                              "verticalElement": [],
                              "identifier": [],
                              "featureScope": "",
                              "featureAcquisitionMethod": "notDerived"
                           }
                        }
                     ]
                  }
               ]
            }
         ]
      }
   }
}

Spatial objects in mdJson are encoded in the GeoJSON standard.  I have represented the spatial object as a single GeoJSON Feature class.  This translation can be seen in the 'Translation to mdJson' section above.  The same 'GeoJson' object will be inserted into the geographicElements's 'nativeGeoJson' object so that it can be used by other writers such as the html writer.
Since the derivation method is Boolean I coded the 'featureAcquisitionMethod' to be either 'derived' or 'notDerived'.

I need to know the order of the bounding box coordinates.  min and max are possibly ambiguous.  Is maxX the most East or West?  Is maxY always the most North regardless of hemisphere?

boundingBox should map to http://mdtools.adiwg.org/#viewer-page?v=1-0-5-0-3-2-2-0-1-0-2

mdJson has multiple extents and a computed bbox for each extent.  Compute a new bbox using all the computed bbox as geometries.  Use this as the sbJson spatial bbox.
Ignore representational point.


Copying code from text-fields is non-trivial

I can't seem to (easily) copy-paste from the text-box. If this intended behavior, then please close the issue.
Example 1: I drag over the text and expect it all to be selected like:

https://docs.docker.com/machine/install-machine/: But instead on machine/install-machine.md I get:

Very probably related to issue 11695

I see this as a bug, code examples should be easy to copy.
Example from https://docs.docker.com/compose/rails/

It only highlights and therefore I can only copy the code itself, not the comments.
Ideally, there would also be a copy to clipboard on each code snippet.

In your example, the selective-selection-behavior (for lack of a better name), works exactly as intended.
I'm clueless where this behavior is implemented. Perhaps it can be disabled in the docker documentation.

Same too. Cant copy code.
Chrome 89.0.4389.114

P.S. After update Docker on Windows my IDE lost connect with docker-machine.exe

expect a large influx of people https://docs.docker.com/machine/install-machine/ :)

@githubjeka
I think you've posted the your snippet on the wrong issue. The snippet looks like a windows + git bash script that installs docker-machine.
This issue and its comments relate to copying code snippets from docker documentation.

Looks like the problem is that the command is wrapped over multiple lines, but does not use line-continuation symbols (\) for the wrapped lines; as a result the code-highlighter marks those lines as "process output", which is excluded from selections.
Pushing a PR to fix

Pull request: https://github.com/docker/docker.github.io/pull/12716

I may be mistaken, but the issue is not related to && vs \, as per my screenshot above from  https://docs.docker.com/compose/rails/, it does not copy comments.
Looking at the source it can be seen to be just normal lines:

https://github.com/docker/docker.github.io/blob/master/samples/rails.md
So this issue is still open for me.

@IanVaughan ah; sorry I missed your example; related, but different cause: let me work on a fix for that one

Works like a charm @thaJeztah !
Screen shot take from your preview.

Great!
So; the issue was that we try to make our console examples better copy/pasteable; those examples often contain a combination of

a prompt ($ or PS>)
the "command" to run (e.g. docker run foo)
output example of the command

And in those cases we try to avoid users accidentally copying the prompt or the output of the command; the CSS rule was a bit overly optimistic and applied the same to other situations (such as YAML examples or script examples), and yes, for those, you want to copy everything.
Looks like it fixed now, so 🎉, but if you find examples in the docs that still have an issue, feel free to open a new ticket (there probably may be some issues left to address)


controller - write user interaction functions in interact.py

please implement functions used in user interactivity in interact.py

deemed un-necessay, as all functionality was included in tab2.py/tab1.py


Added Virtual makeover

Fixes: #68 Virtual Makeover of a face by facial landmark detection.
Proposed Changes

Added Virtual makeover works on both pre-saved images and real-time frames. Also haves script to capture real-time image and perform makeover on that image. Having python GUI bars to control colour of makeover as desired.

Screenshots

Original
Updated

@akshitagupta15june Mam please review my PR as SWOC participant!

@akshitagupta15june Mam please review my PR as SWOC participant!

yeah i will see to it.

yeah i will see to it.

Great work @Aayush-hub

Great work @Aayush-hub


Added: IPv6, UDP and UNIX sockets

I refactored and extended the socket stdlib. It somehow models the Ruby library. I skipped the Socket methods (like connect, bind, listen) since the C methods are directly accessible. Classes are organized as follows:
- FileDescriptorIO
  - Socket
    - IPSocket
      - TCPSocket
        - TCPServer
      - UDPSocket
    - UNIXSocket
      - UNIXServer

I changed the signature of TCPServer.new because I couldn't get initialize(port, backlog = 128) to compile along with initialize(host, port, backlog = 128). I didn't try hard, so maybe it's doable.
I also added IPv6 support by replacing gethostbyname for getaddrinfo. This is working fine on my Linux computer, but Darwin uses different sockaddr structs, so maybe I broke support for Macs (I can't check). I tried to have an Addrinfo class/struct but didn't get anything working to create sockets from (I got segfaults, invalid af family errors, etc. I blame pointer casts). I'll push another pull request later.
Note: using "::" as a host for TCPServer#new or UDPSocket#bind as the extra benefit of binding to all IPv4 and IPv6 addresses with a single server.

Wow!
Just some days ago @waj did this. He originally wanted to do it in Crystal but we were missing UDP, IP, etc-related functionalities and since it had a bit of rush he chose to do it in Node since everything was already done there. So it's really amazing that some days later you come with this pull request! :-)
It'll take us some time to review the code, but it looks very good so far. I can see you started coding the darwin-related funcionality, so I'll wait for that (until the specs pass). Meanwhile I'll review it and enjoy it :-)
Thank you so much!!

I tried to port Prax a few weeks ago. It went well until I tried some IPv6 and UNIX sockets, so I started hacking, and learnt a lot the hard way :)
I have a type error on Travis for UNIXSocket that I don't have on Linux. I do understand it StaticArray(UInt8, X) vs Pointer(UInt8) but I don't get why it passes on Linux but not on Darwin :'(

Design question: shall we allow to pass symbols along constants? Like:
UDPSocket.new(:INET6)
UNIXServer.new("/tmp/sock", :STREAM)

I actually started preferring the use of enums. They are a bit more verbose but give you compile-time safety, which I think matters more. They are also self-documenting.
class Socket
  enum Type
    STREAM = C::SOCK_STREAM
    DATAGRAM = C::SOCK_DGRAM
    RAW = C::SOCK_RAW
  end
end

class UNIXServer < UNIXSocket
  # I don't prefix Type with Socket:: here because we inherit from Socket and it'll work
  # The type restriction is both for documentation and for type-safety
  def initialize(@path : String, socktype = Type::STREAM : Type, backlog = 128)
    ...
  end
end

UNIXServer.new("/tmp/sock", Socket::Type::STREAM)

Another benefit is that you can document each of the enum's constant, plus the constant, so in terms of documentation it's really much better. With symbols you have to document them in the method comment, and if they appear in many methods you have to duplicate this or refer to one of the other methods. Then you have to make a code to switch over the given symbol, translating values, or raise if an unexpected symbol was given.
I'm sure later we'll come up with a way to eliminate this small verbosity, but for now I prefer it (but others might not).
I'd also add a Socket::Family enum.
Enums are not used everywhere yet in the std because they appeared outside lib declarations in version 0.5.3, just a couple of months ago, but we should use them more.

@ysbaddaden If you want you can rebase and I'll merge it.

Just rebased off masters, along with some corrections. TCPSocket and UDPSocket are still broken on OSX. I don't own a MAC, so I can't really test.

Thanks! I'll merge soon and add the missing bits for Mac :-)

Well, it took me a while to figure out why it didn't work in mac.
I did this man getaddrinfo. In some place it says:
hints is an optional pointer to a struct addrinfo, as defined by <netdb.h>:

     struct addrinfo {
             int ai_flags;           /* input flags */
             int ai_family;          /* protocol family for socket */
             int ai_socktype;        /* socket type */
             int ai_protocol;        /* protocol for socket */
             socklen_t ai_addrlen;   /* length of socket-address */
             struct sockaddr *ai_addr; /* socket-address for socket */
             char *ai_canonname;     /* canonical name for service location */
             struct addrinfo *ai_next; /* pointer to next in list */
     };

Exactly the same as you defined it. Only that I always get ai_addr to be zero. I replicated a small C code in Crystal that used getaddrinfo and I got different results. I really didn't understand what was going on. Then I searched for the definition of addrinfo in /usr/include:
struct addrinfo {
	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
	int	ai_family;	/* PF_xxx */
	int	ai_socktype;	/* SOCK_xxx */
	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */
	socklen_t ai_addrlen;	/* length of ai_addr */
	char	*ai_canonname;	/* canonical name for hostname */
	struct	sockaddr *ai_addr;	/* binary address */
	struct	addrinfo *ai_next;	/* next structure in linked list */
};

:angry: :rage: :imp:

lol, that's subtle. Though, does that mean I can now claim that OS X is (no longer) POSIX compliant? :P

Come on... I'll check, but I'm pretty sure this is not what headers in xnu source code says, nor what I found on freebsd.
I'm glad you found it, better sockets!

There's still one spec failing in travis related to UDP socket. I had it failing on my machine, did a change (stored the @family and pass it instead of nil in connect and bind) and it started working. I reverted the change and it kept working :open_mouth: . I don't know what's going on, but I'll try to test it on another mac, see if I can reproduce it.

Not sure if this is the best place to ask, but is there a method similar to Ruby's IPSocket#recvfrom? It returns data from a datagram up to a specified length, generally used with UDP sockets where you want to deal with datagrams rather than a stream.
I can't use unbuffered_read because it's protected. Should I call out to C functions to do this?

@chendo I've had a crack at implementing recvfrom in IPSocket. Getting something going is easy enough, but this implementation doesn't feel in the spirit of the FileDescriptorIO class.
# src/socket/libc.cr
LibC
  fun recvfrom(sock : Int, buffer : Void*, length : SizeT, flags : Int, addr : SockAddr*, addr_len : SocklenT*) : SSizeT
end

src/socket/ip_socket.cr
class IPSocket
  def recvfrom(length)
    raise ArgumentError.new "negative length" if length < 0

    slice = Slice(UInt8).new(length)
    bytes_read = LibC.recvfrom(fd, (slice.to_unsafe as Void*), LibC::SizeT.cast(length), 0, nil, nil)
    if bytes_read != -1
      return slice
    end

    if LibC.errno == Errno::EAGAIN
      wait_readable
    else
      raise Errno.new("Error receiving")
    end
  ensure
    add_read_event unless readers.empty?
  end
end

Should recvfrom append directly to the internal buffer (@in_buffer_rem), or should it exist stand alone and return the slice? If it's appended directly you'd get an API like this:
 client << "message"
 server.recvfrom(1024)
 server.read(1024) # => "message..."

Where as if it's stand alone we'd get something like:
 client << "message"
 server.recvfrom(1024) # => [109, ...]

The latter feels more UNIX-y and is how it's used in Ruby. I'm looking for direction on how to make this API fit nicely into Crystal.

How you would rely on buffering with recvfrom?  Packets can arrive in any order and from a multitude of hosts.    I think recvfrom should return "record sockaddr, buffer".  The sockaddr struct is necessary to distinguish packet sources when running servers or p2p.
def recvfrom length
  slice = Slice(UInt8).new length
  recvfrom slice
end

# allows reuse of slices in tight loops
def recvfrom slice
  # full implementation

@tatey yeah as @technorama said, you wouldn't really be able to buffer, and it does need to return sockaddr. That said, I'm not sure what the behaviour of Ruby is when you don't read the entire packet. I'd think it would just drop it but I'd have to check to be sure.

Would it make sense to actually disable the possibility of use a UDPSocket as a true IO? The current design inherits from FileDescriptorIO but we could redefine read and write to raise exceptions.


Pre-filled inputs and NumericInput issue

Hi! I'm using version 4.0.1 and I'm getting a bug when the inputs values are pre-populated with a number with less than 3 integer digits an extra zero appears on the input. I'm using the default decimal mask with numericInput:true.

Once if I press delete once on the input the behavior goes back to normal but if i type without "deleting" the extra zero, it gets replaced with the numbers I type:

This is the properties I'm using:
Inputmask("decimal", {        placeholder: '0',        positionCaretOnClick: "none",        radixPoint: ".",        numericInput: true,        rightAlign: false      }).mask(".decimal-mask");
Removing the placeholder seems load the input properly without the extra zero at the end.

@RobinHerbots I think this can be closed since it's fixed on last beta.


more colors for rack/device roles

With release 1.5.1 you introduced colors for rack and device roles, which is a great thing to quickly identify different types of devices. Unfortunately we are running out of colors for our device roles.
So it would be a great if you could increase the amount of available colors to at least 20 or more.
Or maybe a better idea: Simply use something like a color picker where the user can quickly choose from the full rgb colors.

ran out of colors too.

I agree. It would be great if you could literally add an infinite amount of colors (read: a reasonable amount of colors like 256) to NetBox.

Should at least have the hex code and/or RGB input. There are some Django plugins as well
https://github.com/jaredly/django-colorfield
https://github.com/gsiegman/django-paintstore
https://github.com/charettes/django-colorful

I wanted to avoid forcing people to pick their own colors, since it's difficult to find colors that easily discernible from one another. However, I agree that the limited set we have now is insufficient. I think it would make sense to offer a list of maybe a few dozen colors, similar to the color picker in word processors. Specifically, I want to avoid colors that are easily mistaken for one another, as that would defeat the purpose of color-coding in the first place.

eb4cd0e replaces the static list of ten color names with a field which holds an arbitrary hexadecimal RGB value. However, the form widget restricts the user to selecting one of 24 predefined colors to avoid picking colors that are easily confused with one another.
For now, I've stuck with a simple <select> for the field's form widget. In the future this may be replaced by a JavaScript-enabled color picker.


ImageNet model is not good

I tried to use the ImageNet model uploaded in your Google Drive, but it only reconstructs a noise above.
Is the uploaded model a correct model?

Is this an unconditional sample from this model?

No, I ran a model on this model_config:
`# Defaults for image training.
image_size: 256
num_channels: 128
num_res_blocks: 1
channel_mult: ""
learn_sigma: True
class_cond: False
use_checkpoint: False
attention_resolutions: 16
num_heads: 4
num_head_channels: 64
num_heads_upsample: -1
use_scale_shift_norm: True
dropout: 0.0
resblock_updown: True
use_fp16: False
use_new_attention_order: False
model_path: models/imagenet256.pt`
and I tried to super-resolution this image:

It would be nice of you if you could try this image on your model, please.

The link is provided by the authors of DPS and was only intended for downloading the FFHQ model. You will have to use the model config here in order to run ImageNet: https://github.com/DPS2022/diffusion-posterior-sampling/blob/main/configs/imagenet_model_config.yaml

Thank you! Thanks for quick responses.


Added zoom option when hovering over an donate books options

Related Issue
None
Fixes:  #2707
Description
I have added the zoom option to the donate books options

#2707
Type of PR

[ ] Bug fix
[ ] Feature enhancement
[x] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
https://github.com/user-attachments/assets/53f9f354-cb9f-4531-abb7-db0d74861121
Checklist:

[x] I have made this change from my own.
[ ] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@anuragverma108 please review this PR and assig me the labels


Does the AudioConfig.fromDefaultMicrophoneInput() is Java SDK has any system dependency?

Hi,
I am trying to use speech translation service with the system audio/speaker output. For continuous translation the microphone input works fine, but the result is inconsistent when AudioConfig object is created using fromDefaultSpeakerOutput() method. With the Java SDK sometimes it captures partially or whole first sentence then continues to give ResultReason 0. Sometimes it captures and translates one or two sentence from middle of the run. I have found Java audio capture requires Stereo Mix to be enabled. Is the there any system level decencies for speaker audio capture to be consistent? Also is there any dependency on the system volume?
I have also tried fromDefaultSpeakerOutput() for JavaScript(browser) SDK with no success. Could someone provide any working sample or explain how to capture/tap into speaker audio for translation?
Thank you.

Hi @bfoysal
I'm querying the team about your Java question and I'll get back to you.
For your JavaScript question, here's a draft code snippet for using microphone input in the browser. This is not an end-to-end sample, we're working to improve our public sample offerings across our languages, but hopefully it can help you get some progress. Of course, please reach out with further questions.
 // Starts continuous speech translation.
sdkStartContinousTranslationBtn.addEventListener("click", function () {
    var lastRecognized = "";
    phraseDiv.innerHTML = "";
    statusDiv.innerHTML = "";

    audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();

    var speechConfig = SpeechSDK.SpeechTranslationConfig.fromSubscription(key.value, regionOptions.value);

    // Set the source language.
    speechConfig.speechRecognitionLanguage = languageOptions.value;
    speechConfig.speechSynthesisOutputFormat = SpeechSDK.SpeechSynthesisOutputFormat.Riff16Khz16BitMonoPcm;

    // Defines the language(s) that speech should be translated to.
    speechConfig.addTargetLanguage( <set your target language here> );

    // If voice output is requested, set the target voice.
    if (voiceOutput.checked) {
        speechConfig.setProperty(SpeechSDK.PropertyId.SpeechServiceConnection_TranslationVoice, languageTargetOptions.value);
    }

    reco = new SpeechSDK.TranslationRecognizer(speechConfig, audioConfig);

    // Before beginning speech recognition, setup the callbacks to be invoked when an event occurs.

    // The event recognizing signals that an intermediate recognition result is received.
    reco.recognizing = function (s, e) {

        // Handle intermediate results as desired
    };

    // The event recognized signals that a final recognition result is received.
    reco.recognized = function (s, e) {
        // Handle recognition results
    };

    // Setup remaining event handlers

    // Begin the recognition
    reco.startContinuousRecognitionAsync();

});

Hi @brandom-msft
thank you for sharing the snippet, but I am trying to the same with JavaScript as Java. not from the microphone rather initializing the audioConfig with fromDefaultSpeakerOutput(). please share example of that if you have it.

@bfoysal
yep, I definitely misread that - apologies and thanks for readdressing! Let's try this again.. for usages of fromDefaultSpeakerOutput
For usage in JavaScript, you can view the tests we have. Here is one using fromDefaultSpeakerOutput
For Java, there is this sample
If these don't prove to give you assistance with your scenario, when you follow-up could you also include details about your dev environment, like OS and SDK version?
(If they do help, it'd be great to know what the issue was - for our own learnings and/or for improving our docs, etc.)

@bfoysal
Can you share more about the scenario you're attempting to achieve? You mention you're using speech translation and that it does work as expected with the audio config set to microphone input. What more/different are you trying to achieve beyond that? I'm curious to learn/understand what it is you're wanting to do so we can help get you to that goal :)

@brandom-msft
Let's say in a virtual meeting or conference I'm not familiar with the language being spoken. I want to translate the speech for my understanding. Right now I can get the microphone audio translated, but I want the audio I'm receiving to be translated. Hope this explains my intention :)

@bfoysal
Thanks for the clarification, now I see what you're aiming for. The fromDefaultSpeakerOutput API provides configuration for playback on the default speaker setup, but won't provide a direct "pipe" to use speaker output as an input. This is an interesting translation scenario! I have opened an item on the team backlog to consider for future deliveries.
I'll update the tags and close this issue but please reach out with any additional questions!


Update Chart.js to 2.7.2

Can you please update chart.js to 2.7.2? and push it to https://rubygems.org/
Thanks!

Is it possible @coderbydesign ?

👍


⚠ GLDDNS Server (ns2.glddns.com) has degraded performance

In 85a6d1b, GLDDNS Server (ns2.glddns.com) (ns2.glddns.com) experienced degraded performance:

HTTP code: 200
Response time: 903 ms

Resolved: GLDDNS Server (ns2.glddns.com) performance has improved in b2e1723 after 12 minutes.


[Question] Game Package Registry (GPR) by Google will shut down on May 19, 2021

Received an email saying that will have to go back to the old way installing .unitypackage
I would like to know why because I think is going a step back

You are not the only one that feels this way. Many others have expressed frustration in the issue https://github.com/firebase/quickstart-unity/issues/1029.

Context for anyone else seeing this

Also mentioned here https://github.com/firebase/quickstart-unity/issues/1028

Thanks for sharing other issues!

I suspect that this is a problem with the management of the Game Package Registry, not the UPM package format itself. For this reason, I strongly suggest you keep the current SDK folder structure that is compatible with UPM while delivering it in ".unitypackage". This way we can still get some advantages of the UPM system. There are multiple ways to use local UPM packages.

Can Firebase explain the reason why the do this?

now that UPM isnt supported Whats the right way to deal with this github issue? remote: error: File Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so is 105.01 MB; this exceeds GitHub's file size limit of 100.00 MB

Sorry for the language, but this sucks 💔

Stopping support of this easy installation way is incredible bad decision.
UPM made my life so much easier dealing with firebase packages and dependencies between them.

now that UPM isnt supported Whats the right way to deal with this github issue? remote: error: File Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so is 105.01 MB; this exceeds GitHub's file size limit of 100.00 MB

@mgrogin you could use Git LFS

Wow, to use Git LFS only because of Firebase libraries

It's time write feature requests to get UPM packages back https://firebase.google.com/support/troubleshooter/report/features

As Firebase was using Scoped Registries, can´t we set up scoped registries ourselves since they no longer seem to care about customer support.
If anyone tries to setup scoped registry it would be very interesting to hear about their efforts.
I will try it later when I have more time although clock is ticking.
Please Firebase at least extend this too short period before deprecation.
Honestly I was expecting they would rather force us to use UPM and stop using the horrid unitypackage install which is as any of you know terrible to keep track of in Git.
Why oh why?

I'm so sad about this news. but I have a question What going to happen if we just keep the actual  firebase SDK? the only problem I see is I wouldn't be able to upgrade this version of a firebase by UPM

As Firebase was using Scoped Registries, can´t we set up scoped registries ourselves since they no longer seem to care about customer support.
If anyone tries to setup scoped registry it would be very interesting to hear about their efforts.
I will try it later when I have more time although clock is ticking.
Please Firebase at least extend this too short period before deprecation.
Honestly I was expecting they would rather force us to use UPM and stop using the horrid unitypackage install which is as any of you know terrible to keep track of in Git.
Why oh why?

There's this: https://developers.google.com/unity/instructions#install-tgz but I'm not sure they'll continue to support it...

I'm so sad about this news. but I have a question What going to happen if we just keep the actual  firebase SDK? the only problem I see is I wouldn't be able to upgrade this version of a firebase by UPM

@kalikane I suspect that you will have trouble every time you try to use your project on another computer which has not stored the packages in their Unity package cache.
Getting errors about being unable to fetch the packages which if you actively are using Firebase without build define settings based on existence of included frameworks would surely end up with errors and asking you to load the project in safe mode.

I think this is it:

Can I create a package that add other optional package dependencies to enable more features in this package by clicking a button?
No. If the package is intended for external distribution beyond your designated users, this use case does not comply with the Terms of Service.

and:

Can I create a package that add a scoped registry into their project by clicking a button?
No. If the package is intended for external distribution beyond your designated users, this use case does not comply with the Terms of Service.

Basically, Unity is now prohibiting the use of "Unity Editor as a marketing or distribution platform".

As Firebase was using Scoped Registries, can´t we set up scoped registries ourselves since they no longer seem to care about customer support.
If anyone tries to setup scoped registry it would be very interesting to hear about their efforts.

Maybe via OpenUPM? There is some informal Firebase related stuff already I see (https://openupm.com/packages/com.dopamine.firebase.core/) but I haven't looked into it yet that's just the first thing that came to mind where maybe the dependency issue could be solved. @favoyang might know more?

As Firebase was using Scoped Registries, can´t we set up scoped registries ourselves since they no longer seem to care about customer support.
If anyone tries to setup scoped registry it would be very interesting to hear about their efforts.

@snorrsi Maybe via OpenUPM? There is some informal Firebase related stuff already I see (https://openupm.com/packages/com.dopamine.firebase.core/) but I haven't looked into it yet that's just the first thing that came to mind where maybe the dependency issue could be solved. @favoyang might know more?

@HitCache there seems to be some issue with terms with using Scoped Registries. I suspect that also applies with OpenUPM.
It would also be greatly appreciated if OpenUPM packages which are copies of other frameworks could use same version numbering as the frameworks they are based upon.
Personally I think that the Github solution I mentioned on #1028 would be easy solution for this, not requiring Scoped Registry. However the dependencies issue with Github urls needs to be solved and EDM4U could do that if Unity allows.

Hail marry throw here but @joeante can Unity just fix the terms please so hoardes of people don't have to spend all this brain power finding workarounds to get our job done?
Can we PLEASE skip the whole song and dance this time entirely?

@HitCache thanks for inviting me to the discussion.
I only operate the OpenUPM project, and I don't work for Unity. Though I have some discussions with Unity term teams, what I write here is based on my understanding. To get the official feedback, please reach to<EMAIL_ADDRESS>Why GPR not compatible with Unity Package Guidelines?
I downloaded the firebase from Google API for Unity website, and import it to Unity. I found two parts that may break the Unity terms.
First, during the setup processes, it asks to allow Google to track in-editor usage with Google to improve this product. This is clearly disallowed, UPM packages can not contain an in-editor analytics feature even with an opt-out option.

B. You cannot make any Package (including via Package update) available from within the Unity Editor to third parties (other than your Designated Users) if such Package provides a service that collects or aggregates data. For example:
A Package that enables a third party analytics service.

Solution: remove the in-editor feature entirely.
Second, the firebase panel contains a few buttons to link to the documentation website. From here you can visit other marketing features like the pricing page to promote other products.

It may break the terms:

A. You cannot make any Package (including via Package update) available from within the Unity Editor to third parties (other than your Designated Users) that, directly or indirectly, advances or is intended to advance the commercial or economic interests of you and/or your affiliated entities.  For example:
A Package that induces a person to buy or subscribe to products or services.
A Package that otherwise enables or affects a commercial transaction.

I also like to list a few practices that will be considered as marketing efforts.

Using in-editor script to help set up a scoped registry.
Using in-editor script to help install/update other packages.
Using banner/image/text/link to promote other packages/products.

Basically think of Kindle for iOS, you can have a UI to login to your account to fetch content you purchase already, you can also have QA, documentation on a website. But you can not provide a way to directly/indirectly visit your paid content.
Solutions

Remove the firebase panel entirely, let users find documentation from the web on their own.
Or, create a dedicated website for documentation that strip any links may reach your paid content.
Or, embed documentation with the package.
Or, reach to Unity for Verified Solutions Partners, which has a separate agreement that won't need to follow the package terms.

Is it safe to use the community bundled packages from OpenUPM?
Short answer: No, (at the moment).
As an open-source community,

We don't guarantee software collected by the service is 100% working technically speaking of dependencies and bug fixes. You have to reach to the package author for details.
We try our best to follow the Unity terms, but still in a trial-and-error process. If users find something packages break terms or local law, reach to us for a review, and we may remove the content.

The Firebase SDK is open-sourced to allow a community re-bundle.
The current Firebase contents (core, analytics, remote config) are maintained by @dopaminegamesstudio and @uchar
I installed the core package, it has the same issue as the official package. That means it will be removed later.
If anyone has the energy to read the thread carefully and remove anything that may break the Unity terms, I'm happy to bring it back. Please notice your package name can not start with "com.google" to imply it's an official bundle.


v0.6.0 build failed (proc_macro2::Span)

...
   Compiling cargo-tarpaulin v0.6.0
error[E0599]: no method named `start` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:56:23
   |
56 |         for i in span.start().line..(span.end().line+1) {
   |                       ^^^^^
   |
   = help: items from traits can only be used if the trait is implemented and in scope
   = note: the following trait defines an item `start`, perhaps you need to implement it:
           candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:56:43
   |
56 |         for i in span.start().line..(span.end().line+1) {
   |                                           ^^^

error[E0599]: no method named `end` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:73:28
   |
73 |             let len = span.end().line - span.start().line;
   |                            ^^^

error[E0599]: no method named `start` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:73:46
   |
73 |             let len = span.end().line - span.start().line;
   |                                              ^^^^^
   |
   = help: items from traits can only be used if the trait is implemented and in scope
   = note: the following trait defines an item `start`, perhaps you need to implement it:
           candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:75:62
   |
75 |             for (i, line) in c.lines().enumerate().skip(span.start().line - 1).take(len) {
   |                                                              ^^^^^
   |
   = help: items from traits can only be used if the trait is implemented and in scope
   = note: the following trait defines an item `start`, perhaps you need to implement it:
           candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:94:23
   |
94 |         for i in span.start().line..(span.end().line +1) {
   |                       ^^^^^
   |
   = help: items from traits can only be used if the trait is implemented and in scope
   = note: the following trait defines an item `start`, perhaps you need to implement it:
           candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `&proc_macro2::Span` in the current scope
  --> src/source_analysis.rs:94:43
   |
94 |         for i in span.start().line..(span.end().line +1) {
   |                                           ^^^

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:351:17
    |
351 |         if span.start().column == 0 {
    |                 ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:352:29
    |
352 |             lines.push(span.start().line);
    |                             ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:354:23
    |
354 |         for l in span.start().line+1..span.end().line +1 {
    |                       ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:354:44
    |
354 |         for l in span.start().line+1..span.end().line +1 {
    |                                            ^^^

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:380:28
    |
380 |                 for i in s.start().line..(s.end().line+1) {
    |                            ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:380:45
    |
380 |                 for i in s.start().line..(s.end().line+1) {
    |                                             ^^^

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:391:29
    |
391 |     let start = call.span().start().line + 1;
    |                             ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:392:27
    |
392 |     let end = call.span().end().line + 1;
    |                           ^^^

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:402:29
    |
402 |     let start = meth.span().start().line + 1;
    |                             ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:403:27
    |
403 |     let end = meth.span().end().line + 1;
    |                           ^^^

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:413:45
    |
413 |     let u_line = unsafe_expr.unsafe_token.0.start().line;
    |                                             ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:416:36
    |
416 |     if u_line != blk.brace_token.0.start().line || blk.stmts.is_empty()  {
    |                                    ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:425:24
    |
425 |         if u_line != s.start().line {
    |                        ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:449:33
    |
449 |         start = min(start, span.start().line);
    |                                 ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:450:31
    |
450 |         end = max(start, span.start().line);
    |                               ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:454:35
    |
454 |                 cover.insert(span.start().line);
    |                                   ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:466:28
    |
466 |     let start = mac.span().start().line + 1;
    |                            ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:467:26
    |
467 |     let end = mac.span().end().line + 1;
    |                          ^^^

error[E0599]: no method named `start` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:491:28
    |
491 |                 for i in t.start().line..(t.end().line+1) {
    |                            ^^^^^
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `start`, perhaps you need to implement it:
            candidate #1: `statemachine::StateData`

error[E0599]: no method named `end` found for type `proc_macro2::Span` in the current scope
   --> src/source_analysis.rs:491:45
    |
491 |                 for i in t.start().line..(t.end().line+1) {
    |                                             ^^^

error: aborting due to 27 previous errors

For more information about this error, try `rustc --explain E0599`.
error: failed to compile `cargo-tarpaulin v0.6.0`, intermediate artifacts can be found at `/tmp/cargo-install3489Fp`

But this error in the tarpaulin itself, not in my own code.

@RazrFalcon You're totally right, now that you mention it I can't see what that has to do with your code. However, I just reinstalled 0.6.0 and got the exact same error code from rustc as you do. Then I reinstalled using the develop branch, no issues whatsoever :grinning:

Have you tried RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin Span::start and Span::end() are hidden behind a cfg?
And I'll update the readme with guidance once everything is solved

@xd009642 Yes, that helped.

Awesome, I've updated the readme to make the installation steps clearer! (As well as the blog post)