Allow overwriting figures in a report

This is the final piece to fully address #5501
PR #5505 allows you to open a previously saved Report object and add new figures to it. The intended use case is to have different analysis script write figures to the same report and have one HTML file that collects them all.
This PR adds the ability to overwrite a figure if it already existed in the report. The idea is that, when you re-run a script, you don't want to end up with copies of the same figure in the report. So now, all functions that add a figure to a Report object have gotten a replace parameter (defaults to False).
Internally, all figures are already given a unique fname property that is a combination of the caption and section of the figure (and filename, if the figure was generated from a file). So, when replace=True, we check whether a figure with the same fname already exists and replace it. If there are multiple figures with the same fname, we replace the last occurrence.
With this PR, everything is in place to sprinkle your analysis scripts with:
with open_report('report.h5') as r:
    r.add_figs_to_section(ica.plot_components(), 'ICA components',
                          section='Preprocessing', replace=True)

to quickly dump some figures during the analysis. All figures are collected in a single Report object that can be rendered to HTML to have a nice visual overview of the data passing through your pipeline.

Is this meant to subsume this issue: https://github.com/mne-tools/mne-python/issues/2811 ?

Shouldn't you throw an error if same caption is used but replace=False ?

Is this meant to subsume this issue: #2811 ?

This PR does not add delete capabilities, so no, that's still on your plate :)

Shouldn't you throw an error if same caption is used but replace=False ?

I don't want to break the current functionality. Unless we all agree we want to change this.

This PR does not add delete capabilities, so no, that's still on your plate :)

But in principle, you could remove an element and then do report.add_figs_to_section, so for me they are the same. The former however gives you more capabilities. Since internally, the report stores a list of sections, it also makes sense to implement it that way, no?

But in principle, you could remove an element and then do report.add_figs_to_section, so for me they > are the same. The former however gives you more capabilities. Since internally, the report stores a list > of sections, it also makes sense to implement it that way, no?

First removing a figure and then appending a new one does not preserve the order of the figures. With replace=True I would like the updated figure to be in the same place as the original figure was.
Nevertheless, I've implemented a .remove function for your consideration. WDYT?

Thanks @wmvanvliet ! I'll give it a try in a bit ...

@jasmainak had a chance yet to give it a try?

@wmvanvliet I tried the following:
import matplotlib.pyplot as plt
from mne.report import Report
report = Report()
fig1 = plt.figure()
plt.plot(1, 4)
fig2 = plt.figure()
plt.plot(2, 3)
fig3 = plt.figure()
plt.plot(4, 5)
report.add_figs_to_section(fig1, 'test-figure', 'test-section')
report.add_figs_to_section(fig2, 'test-figure2', 'evoked')
report.add_figs_to_section(fig3, 'test-figure4', 'test-section2')
report.save('test-report.html')
report.remove(caption='test-figure')
report.save('test-report-remove.html')

The empty section "test-section" does not go away in the second report

If I remember correctly report._sectionvars was created because javascript did not allow certain characters.

Something fishy is going on here too. I think fig6 should be in the second report, but it isn't.

It is for me (be sure to check at the top of the report it took the place of an earlier figure)

I think I'm done here.

Pushed a quick fix for the variable name. I'll merge once the CIs come back happy (which they should).

@wmvanvliet can you add an entry to whats_new.rst? Then I can merge

merge if you're happy

Still needs what's new

thanks @wmvanvliet! we should also add replace arg to the API update in the whats_new


Add ingress.pathType

To fix this issue https://github.com/gimlet-io/onechart/issues/96

Looks good!
Thanks a million!


[SPARK-3181][MLLIB]: Add Robust Regression Algorithm with Huber Estimator

Huber Robust Regression under spark/ml/regression
Unit Tests

Merged build triggered.

Merged build started.

Test build #40111 has started for   PR 8013 at commit 2f67e63.

Test build #40111 has finished for   PR 8013 at commit 2f67e63.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
class RobustRegression(override val uid: String)

Merged build finished. Test PASSed.

@dbtsai @srowen had RobustRegression in the same LinearRegression codebase as requested. And included the Unit Tests

@mengxr @dbtsai @srowen had RobustRegression in the same LinearRegression codebase as requested. And included the Unit Tests.

Still a lot of duplication. We're adding new features into LiR now, and it will be hard to maintain. Is it possible that you just add the objective function, and use Params to switch between different objective function? Thanks.

Merged build triggered.

Merged build started.

Test build #40222 has started for   PR 8013 at commit 96e38a7.

Test build #40222 has finished for   PR 8013 at commit 96e38a7.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #40223 has started for   PR 8013 at commit 23e4c62.

Test build #40223 has finished for   PR 8013 at commit 23e4c62.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

@dbtsai ust added the objective function, and use Params to switch between different objective function. Thanks!

Merged build triggered.

Merged build started.

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #40530 has started for   PR 8013 at commit 51e47dc.

Test build #40530 has finished for   PR 8013 at commit 51e47dc.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class EqualNullSafe(attribute: String, value: Any) extends Filter

Merged build finished. Test FAILed.

This class was not added by me. I didn't touch PySpark.

Merged build triggered.

Merged build triggered.

Merged build triggered.

Merged build started.

Merged build started.

Merged build started.

Test build #41421 has started for   PR 8013 at commit 3bb5930.

Test build #41422 has started for   PR 8013 at commit 1567635.

Test build #41423 has started for   PR 8013 at commit a04179b.

Test build #41422 has finished for   PR 8013 at commit 1567635.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41422/
Test FAILed.

Merged build finished. Test FAILed.

Test build #41421 has finished for   PR 8013 at commit 3bb5930.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41421/
Test PASSed.

Test build #41423 has finished for   PR 8013 at commit a04179b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41423/
Test PASSed.

Merged build finished. Test PASSed.

Merged build triggered.

Merged build started.

Test build #41662 has started for   PR 8013 at commit e447623.

Test build #41662 has finished for   PR 8013 at commit e447623.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41662/
Test PASSed.

Merged build finished. Test PASSed.

Please add "Closes #2096" to the bottom of your PR description so the other one gets closed when this merges.

There is a lot of code repetition between this and #2096, perhaps you can make the mllib one wrap this?

Hello, robust tuning parameter k should not be a constant as you implemented.
In the paper, http://users.stat.umn.edu/~sandy/courses/8053/handouts/robust.pdf
k = 1.345σ where σ is the square error of current weight. But this will be very expensive to compute the current square error of weight and then compute the huber loss, so I think it's reasonable to approximate the square error from previous weight.

Test build #49555 has started for PR 8013 at commit 01601ee.

Test build #49555 has finished for PR 8013 at commit 01601ee.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/49555/
Test FAILed.

Thanks for the pull request. I'm going through a list of pull requests to cut them down since the sheer number is breaking some of the tooling we have. Due to lack of activity on this pull request, I'm going to push a commit to close it. Feel free to reopen it or create a new one. We can also continue the discussion on the JIRA ticket.
@dbtsai there are a few pull requests that were waiting on your review. Can you revisit them even if they are closed?

@rxin @mengxr I'm back to US from a leave. Going to revisit PRs under me.
I had worked with @MechCoder to implement Huber estimator in python scikit https://github.com/scikit-learn/scikit-learn/pull/5291 which had been merged. @fjiang6, @MechCoder, @sethah, are you interested in porting this feature to Spark which should be fairly straightforward?
Thanks.

@dbtsai I'm interested in porting Huber estimator to Spark. If you did not start it, I can send a PR in a few days. Thanks!

@yanboliang Sounds great! Thanks.

I'll be happy to review it.


[Settings][Backup/Restore] Honor user documents directory

Summary of the Pull Request
Default location proposed for backup/restore should honor user documents directory.

My settings

Before (don't have this folder on my PC)

After

PR Checklist

[x] Closes: #586
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

Open settings
Default location for backup/restore should be user documents directory

Good catch. We should scan the code base to see if we are doing this anywhere else!


Remove version: rwxrob.pomo version 0.2.3

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

Close with reason: Duplicate;


Added support for 2 more API methods.

Getting data about all source code of the repository
Getting the source code of given path at specified commit of the repository

@gustav0 @ingmferrer
Hello, guys. Could you please merge this request if all is ok?
I'll be trying to add methods as soon as I'll need them in my pet project :)

Thanks.


Add first batch of alma8 CDTs

This tackles the first batch of CDTs from #66, more specifically those currently marked ✅ here. Additionally, I've added:

The -devel packages from the dependencies we've added for pam; IMO it makes sense to always have libfoo and libfoo-devel for a given CDT, otherwise libfoo is going to be non-functional (unless as a dependency for another CDT)
mesa-libgbm because it was the only mesa-* package not to receive an ❌; I had asked if that was intentional, Isuru had answered in the affirmative (but only in a core call, not as a comment in the issue)
kmod-devel & mesa-libgbm-devel for the same reason; since we alread have kmod & mesa-libgbm

Doing this turned out to be a good exercise in the sense that the alma8 builds are separated across various subfolders that may depend on each other, which needed some updates to the logic.
Furthermore, I've switched away from skipped_cdts in favour of an allowlist-approach, as the impression I got from #66 was that people want to keep the list absolutely minimal, and it's easier to keep track of that using a positive list, rather than ensuring that we captured all exclusions correctly everywhere.
Finally, I repeatedly got permission errors (HTTP 403) when trying to urlopen https://vault.almalinux.org/8.9/BaseOS/{base_architecture}/os/repodata/repomd.xml, so I ended up switching to requests which doesn't have a problem there.
Given the large mechanical changes, it's probably easiest to review per commit.

Please see the repo readme for directions on how to make PRs on this repo.
Checklist:

[x] if you have added a CDT, it appears in the cdt_slugs.yaml file and
you have rerun the script python gen_cdt_recipes.py.
[x] if you have changed the CDT generator code (rpm.py), ~you have bumped
the build number in conda_build_config.yaml~ and have remade all of the
recipes via running python gen_cdt_recipes.py --force
[x] if you have added a custom CDT recipe, you have added the name of the CDT
with custom: true in the cdt_slugs.yaml file.
[x] all CDT recipes have build number set by {{ cdt_build_number }} for
old-style/legacy CDTs or {{ cdt_build_number|int + 1000 }} for new-style CDTs
[x] if you see a warning about a CDT not having a license, you have added the
license_file key in the cdt_slugs.yaml file with the path to the appropriate
license in licenses/

NOTE: If you make any changes to cd_slugs.yaml, you need to reun the generator code
via python gen_cdt_recipes.py.

Let's put the commits of the new CDT recipes into another PR.

It's hard to validate the logic without actually rendering & building things... But if you prefer, I'll revert this at the end once it's green (or rebase it out) for ease of review.

I cannot review the new logic commit by commit.

Aside from the one rerender commit, the diffs are tiny, and GH makes it easy to click through (prev/next)...?

I'm not currently figuring out how to do it for the commits but ok. I'll do my best.

One concrete way to do this would be to have a separate cdt slugs file for alma8 and cos7. Then each one is an allow list on its own and we can keep the extra hooks if we need them.

The yaml file had support for other things that had been important:

None of the logic except skipped_cdts is changed. Removing/replacing deps & custom logic is still possible

Why not stick to the yaml so we can keep them?

I haven't changed away from the yaml.

So I have to list an alma8 CDT in both the yaml AND the allow list in the python file?

Maybe the better question is, can you show me how to add a skipped dependency for an alma8 CDT?

One concrete way to do this would be to have a separate cdt slugs file for alma8 and cos7.

So, with the caveat that all of this is still a draft, I'd prefer not split the cdt slugs, because for all the ones we're interested (so far), the config is exactly the same as for cos7, so duplicating them would be kinda gratuitous.
FWIW, I had started with applying the skipped_cdts approach, and it just ends up with
  skipped_cdts:
    - alma8-x86_64
    - alma8-aarch64
    - alma8-aarch64

for almost all slugs

So I have to list an alma8 CDT in both the yaml AND the allow list in the python file?

If it's an entirely new CDT then yes. If it's a CDT that's already on cos7, then only the allowlist. Again, please consider this a suggestion (it seemed more natural given how much people want to constrain CDT creation), not as something set in stone.

OK thanks for answering my questions @h-vetinari!
Maybe we can refactor the cdt_slugs.yaml file to look like this:
allowed_cdts:
  alma8:
    - foo
    - bar
    - blah
  cos7:
    - foo
    - bar
    - blah
    - glarg
cdt_build_defs:
  # any CDT not listed here is equivalent to the default
  #
  #   <cdt name>:
  #     custom: false
  #
  foo:
    license_file: licenses/alsa-lib-license
  bar:
    dep_remove:
      - foobarg

This way all of the configuration is still in one spot and we only have to list things that are special/different.

Yeah I am ok with the indentation change.

I'm not currently figuring out how to do it for the commits but ok. I'll do my best.

 Aside from the rerender commits (where you can just click next without review), the others are very small and should be easy to digest.

Yeah I am ok with the indentation change.

I might not finish this today, but it shouldn't be hard conceptually; for now I made the change that Isuru asked for, and it's getting late here.

No rush on this and thanks for the dev work @h-vetinari!

This way all of the configuration is still in one spot and we only have to list things that are special/different.

From a quick check, only 30 CDTs out of 180 would actually fall under
  # any CDT not listed here is equivalent to the default
  #
  #   <cdt name>:
  #     custom: false

It's a bit hard to argue that 83% are the special case IMO 😅
The vast majority of those only specifies the license_file, but unless we have a way to revamp the license handling too, I'm not sure this would be an improvement. It'd just be confusing look for a non-existent build definition of a CDT that you're interested in (e.g. often libfoo-devel needs a license override, but libfoo doesn't), only to realise you've fallen into the fallback case.

We can list them all then, that's fine by me. What doesn't work is having to add a CDT name in two places, once in a yaml file and once in the python code, in order to add a new CDT. That is confusing for sure.

@beckermr, I implemented your idea (minus the default fallback, as discussed), and a run of python gen_cdt_recipes.py --force  yields no further changes (as desired). I added some basic validation (tested to work locally) to fail early in case of missing build_defs, or warn in case of superfluous ones.
Feel free to play with this branch according to your usual workflows, happy to fix. :)

Why is there a java CDT? Is it a transitive dependency?

Why is there a java CDT? Is it a transitive dependency?

I didn't touch those, they're pre-existing (also present in the list in #66 since last Nov.). I looked for current users and even checked now if they were used in any of the non-java packages we dropped in https://github.com/conda-forge/cdt-builds/commit/779da0bbf312f65a6d2a35e930abb599d98ac309, but can't find any users in the CDTs themselves.
Looking around conda-forge, it's used, but only in r-base. Once you remove that, we can consider dropping them here.

Ah, it's just a whitespace change.


Step import measure unit

Importing the step file Cubo.step the resulting cube will have all sides of 10000 mm instead of 10 mm

The unit definition in the step file has a name and an optional prefix
https://www.steptools.com/stds/stp_aim/html/t_si_unit.html
With the fix #182 only the name is considered and this caused that files that were imported correctly before now are imported to big.


Don't use password from appwrite payload

Reusing the password from an appwrite payload in Django by creating a user can lead to several security problems, including that any admin user in Appwrite will be able to login as any user in Django. This was noticed by @stnguyen90
https://github.com/khashashin/django-appwrite/blob/7752ae060da49ff58c6213b8944ae53c7003ede3/django_appwrite/middleware.py#L62

d124fddbaa3421003e1a9b12ff820bf57706d5b2


Verification page

What is the feature?

Page for verification email
Make verify email as an optional feature

What is the solution?

CSS for verification_sent.html and verified_email_resend.html
Edit setting to make email verification is an optional requirement

How to test?

Run tailwind start and runserver
Try to signup to verification email page

Screen shot

(Include screenshots if any)

Codecov Report

Merging #17 (364b884) into beta (b32d381) will increase coverage by 0.06%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             beta      #17      +/-   ##
==========================================
+ Coverage   91.30%   91.36%   +0.06%
==========================================
  Files          16       16
  Lines         138      139       +1
  Branches        4        4
==========================================
+ Hits          126      127       +1
  Misses          8        8
  Partials        4        4

Impacted Files
Coverage Δ

trip/views.py
66.66% <ø> (ø)

users/tests.py
90.90% <ø> (ø)

users/utils.py
78.94% <ø> (ø)

threpose/settings.py
100.00% <100.00%> (ø)

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 b32d381...364b884. Read the comment docs.

I followed the instructions in README, so I got this error when I tried to signup.

Please provide more detail.

If there's any error, the signup information shouldn't be recorded. I got the above error and the user has been recorded without sending verification email.

This problem happen because email or username is wrong or It may happen because you use your email and not set your email to less secure


CI, MAINT: some easy cleanups for Python version

Just glancing at the CI config code flanking the diffs in a few recent PRs, you can see some places where switching to the stable release makes sense: git grep -E -i -P "3\.\d[2]-dev"
.github/workflows/linux_meson.yml:        python-version: ['3.10', '3.12-dev']
.github/workflows/linux_meson.yml:            python-version: '3.12-dev'
.github/workflows/linux_meson.yml:      if: matrix.python-version == '3.12-dev'

If this is changed could we have a comment saying something along the lines of "these are the runs which would use python dev versions"? So we know which ones to use for 3.13-dev

Good point, dealing with CPython pre-releases is clearly the purpose of that job, and it even excludes running on maintenance branches, so isn't super useful until the next 3.13-dev cycle starts anyway.


fix(datepicker): assign initDate correctly to the controller

This feature is THAT useless that no one noticed this.
Also not sure about "fix" or chore since this bug hasn't been released yet.

LGTM


change the "Set current tag list to all" msgbox buttons from YesNo to YesNoCancel

Dear starik222:
It is easy for users to click the "Set current tag list to all" button by mistake, but the confirmation dialog here uses the YesNo type, and the No button is even set to "apply to all images". I think it is more reasonable to use the YesNoCancel type here.

Yes indeed, thanks.


Typo in help message

mailware-jail, a malware sandbox ver. 0.12

Is this a typo? s/mailware-jail/malware-jail

Hi @Ana06 , that is definitely a typo. If you're looking for a revamp of this project, see https://github.com/HynekPetrak/malware-jail/issues/17

@Ana06 thanks. Corrected some of the obvious.


A script to auto generate schemas on a side.

Pull Request submission
Added a little script to automatically create a toml schema from a csv file,
The script sits on a side, and does not need to be packaged.
It reads a csv in pandas, gets the data types automatically, and then creates a string
with column names (new are the same as old) and data types.
Closes or fixes

Detail the ticket(s) you are closing with this PR
Closes #

Code

[ ] Code runs The code runs on my machine and/or CDSW
[ ] Conflicts resolved There are no conflicts (I have performed a rebase if necessary)
[ ] Requirements My/our code functions according to the requirements of the ticket
[ ] Dependencies I have updated the environment yaml so it includes any new libraries I have used
[ ] Configuration file updated any high level parameters that the user may interact with have been put into the config file (and imported to the script)
[ ] Clean Code

[ ] Code is as PEP 8 compliant as I can humanly make it
[ ] Code passess flake8 linting check
[ ] Code adheres to DRY

[ ] Type hints All new functions have type hints

Documentation
Any new code includes all the following forms of documentation:

[ ] Function Documentation Docstrings within the function(s')/methods have been created

[ ] Includes Args and returns for all major functions
[ ] The docstring details data types

[ ] Updated Documentation: User and/or developer working doc has been updated

Data

[ ] All data needed to run this script is available in Dev/Test
[ ] All data is excluded from this pull request
[ ] Secrets checker pre-commit passes

Testing

[ ] Unit tests Unit tests have been created and are passing or a new ticket to create tests has been created

Peer Review Section

[ ] All requirements install from (updated) environment.yaml
[ ] Documentation has been created and is clear - check the working document
[ ] Doctrings (Google format) have been created and accurately describe the function's functionality
[ ] Unit tests pass, or if not present a new ticket to create tests has been created
[ ] Code runs The code runs on reviewer's machine and/or CDSW

Final approval (post-review)
The author has responded to my review and made changes to my satisfaction.

[ ] I recommend merging this request.

Review comments
Insert detailed comments here!
These might include, but not exclusively:

bugs that need fixing (does it work as expected? and does it work with other code
that it is likely to interact with?)
alternative methods (could it be written more efficiently or with more clarity?)
documentation improvements (does the documentation reflect how the code actually works?)
additional tests that should be implemented (do the tests effectively assure that it
works correctly?)
code style improvements (could the code be written more clearly?)
Do the changes represent a change in functionality so the version number should increase? Start a discussion if so.
As a review you can generates the same outputs from running the code

Your suggestions should be tailored to the code that you are reviewing.
Be critical and clear, but not mean. Ask questions and set actions.

Looks good @zorge69 - couple of questions: It's outputting the index in the toml file - is that going to cause any issues? Debugging/test files inputs are still in the file - do they need to be taken out?

Good points!

Dropped column "index" from the schema
Removed debugging bits
Saving the schema to config/output_schemas

Input file name is still in the script. It's a one-off thing, I don't need it to be parametrised for now.


fix(chip): css selector for gap

Describe pull-request
The former css selector didn't allow for people to use the default size (not setting size="lg/sm") on the component. This fixes that, sets the gap to 8px by default and 6px if size="sm".
How to test

Go to Chip
Test the controls for size in combination with/without an icon.

Is this one related to any issue in Jira?

Is this one related to any issue in Jira?

No, Alex found the issue. But we solved it before we created a ticket


TemplateViewRouteImpl's delegate is always null

So,RouteOverview doesn't work when there are 'TemplateViewRoute'.

I fired a PR to fix it.


Wrong HTTP Method in the explanation of exmple

In section "Processing Requests" the last point "An HTTP PUT request to the URI https://adventure-works.com/customers/2/orders to create a new order for this customer. The data must be provided in the request message in x-www-form-urlencoded format" says PUT request. But as per related JSON response example should this be POST instead of PUT?

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

ID: 329fde76-a838-59c9-73f6-96424c03a6e0
Version Independent ID: 203cd155-00c5-286b-96ce-5961c24c6273
Content: API implementation guidance - Best practices for cloud applications
Content Source: docs/best-practices/api-implementation.md
Service: architecture-center
Sub-service: cloud-fundamentals
GitHub Login: @dragon119
Microsoft Alias: pnp

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#212609

Good catch @gpj1 - I've opened a PR for this internally.

This correction will go live with the next production publish of the content. Thanks.


[QUERY] Does Azurite support to emulate Azure File Share for local development?

Which service(blob, file, queue, table) does this issue concern?
file
Which version of the Azurite was used?
3.16.0
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
Nuget
What's the Node.js version?
v16.13.2
What problem was encountered?
I see that Azurite can emulate local environment for testing Azure blob, queue, and table storage, but not Azure File.
So I just want to confirm if Azurite support to emulate Azure File Share for local development or not.
If not, could you please help to provide a solution that test file storage operations locally.

Steps to reproduce the issue?
NA
Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.
Have you found a mitigation/solution?
No

@haozhangms
Thanks for raising this question!
File service is still not supported by Azurite.
We already have another issue to track it. https://github.com/Azure/Azurite/issues/113


External authenticator implementation (Issue #32)

I have implemented external authenticator support for CASino based on the description you provided on Issue 32:

pencil commented on Mar 19, 2014
No, it does not fit into the current CASino workflow. The best way would probably be to start off with an > "external authenticator" abstraction. Then display a button for all external authenticators at the login page.

My needs were specifically for Facebook authentication using their JavaScript SDK. I have created a Facebook authenticator to work with this external authentication implementation, which you can view here.
Configuration:
I have added a new section to the cas.yml file which mimics the existing authenticator section.
An example of this:
  external_authenticators:
    facebook:
      authenticator: "Facebook"
      options:
        connection:
          adapter: "mysql2"
          host: "localhost"
          username: "username"
          password: "password"
          database: "CASinoApp"
        app_id: "111111111111"
        app_secret: “11111111111111111”
        user_table: "users"
        username_column: "username"
        facebook_id_column: "facebook_id"

Implementation:
The external authenticators were designed with the expectation that each will provide a view and a validation function.
External authenticator base class:
  class ExternalAuthenticator
    def validate(params, cookies)
      raise NotImplementedError, "This method must be implemented by a class extending #{self.class}"
    end
    def view
      raise NotImplementedError, "This method must be implemented by a class extending #{self.class}"
    end
  end

View:
The view function provides the path to the view, used for rendering the button on the login page.
An example of this taken from my casino_facebook-authenticator:
  def view
    @options[:view] || '/facebook_login.html.erb'
  end

Because the view is embedded in the external authenticator itself, it is expected that the external authenticators will be implemented as minimal Rails Engines.
Validation
Unlike the current validation function that relies on a username and password, I have made the external authenticator's validation function require request parameters and cookies. I figured this would provide the most flexibility while still providing the necessary data to support most authentication services.
  # @param [Hash] parameters
  # @param [Hash] cookies
  def validate(params, cookies)
  ...
  end

As an example, my Facebook authenticator expects the access token to be generated on the client side and then passed via POST parameters to the server for server side verification. The assumption is that other external authenticators would use a similar client side approach for generating the necessary authentication tokens or cookies required.
Processor Concern - Authentication
In order to support this new validation functionality, I had to make changes to the app/processors/casino/processor_concern/authentication.rb.
There are now two different validation functions:
      def validate_login_credentials(username, password)
        validate :authenticators do |authenticator_name, authenticator|
          authenticator.validate(username, password)
        end
      end

      def validate_external_credentials(params, cookies)
        validate :external_authenticators do |authenticator_name, authenticator|
          if authenticator_name == params[:external]
            authenticator.validate(params, cookies)
          end
        end
      end

You'll notice that the validate_external_credentials only validates for the authenticator that was submitted via the external parameter.
The common functionality has been placed in the validate function:
      def validate(type, &validator)
        authentication_result = nil
        authenticators(type).each do |authenticator_name, authenticator|
          begin
            data = validator.call(authenticator_name, authenticator)
          rescue CASino::Authenticator::AuthenticatorError => e
            Rails.logger.error "Authenticator '#{authenticator_name}' (#{authenticator.class}) raised an error: #{e}"
          end
          if data
            authentication_result = { authenticator: authenticator_name, user_data: data }
            Rails.logger.info("Credentials for username '#{data[:username]}' successfully validated using authenticator '#{authenticator_name}' (#{authenticator.class})")
            break
          end
        end
        authentication_result
      end

Because there are now two different types of authenticators, I had to also change the authenticators method signature to take an authenticator type. The cached @authenticators has also been changed to be a hash, which is keyed on authenticator type.
      def authenticators(type)
        @authenticators ||= {}
        return @authenticators[type] if @authenticators.has_key?(type)
        @authenticators[type] = begin
          CASino.config[type].each do |name, auth|
            next unless auth.is_a?(Hash)

            authenticator = if auth[:class]
              auth[:class].constantize
            else
              load_authenticator(auth[:authenticator])
            end

            CASino.config[type][name] = authenticator.new(auth[:options])
          end
        end
      end

Login Credential Acceptor Processor
The trigger that is used to know when to invoke an external authenticator or a regular authenticator happens based on whether the external parameter is submitted. This check happens in the /login_credential_acceptor_processor.rb.
  def validate_credentials
    if @params[:external]
      validate_external_credentials(@params, @cookies)
    else
      validate_login_credentials(@params[:username], @params[:password])
    end
  end

Login Page
The external authenticator buttons are rendered on the login page within an inline list. Each view is wrapped in its own form, containing the login ticket and external hidden inputs.
      <li>
        <%= form_tag(login_path, method: :post) do %>
          <%= hidden_field_tag :lt, @login_ticket.ticket %>
          <%= hidden_field_tag :external, authenticator_name %>
          <%= render authenticator.view %>
        <% end %>
      </li>

The idea being that each authenticator will submit the wrapping form when necessary, including any additional data that may be needed on the server side.
As an example, my Facebook authenticator submits the form via JavaScript after the Facebook login process has completed and the access token has been added to the form dynamically as a hidden input.
External Authenticator List
Because the view needs to render a view for each of the authenticators, I pass a list of external authenticators to the view via the @external_authenticators. This list is passed from the processor, to the listener and then to the view. This is not ideal, as it does introduce some repetitiveness in the processor, but I needed to be able to reuse the processor_concern/authentication.rb's authenticators method, and therefore keeping this call in the processor made sense.
Example (login_credential_requestor_processor.rb):
  def handle_not_logged_in
      ...
      login_ticket = acquire_login_ticket
      external_authenticators = authenticators(:external_authenticators)
      @listener.user_not_logged_in(login_ticket, external_authenticators)
      ...
  end

Please let me know if you have any questions, concerns or changes. I look forward to hearing your input.
Thank you.

Thanks. I will look into this the coming days.

The problem I see with the proposed solution is, that there is no way to connect an arbitrary CASino account with an external connector. Ideally, the user flow would be as follows:

User logs in using a "normal" authenticator (LDAP, ActiveRecord, …)
User connects the CASino account with any external authenticator (Facebook, Twitter, …)
Future logins can be performed by either using the normal authenticators or the external authenticators

That way the external authenticators would not depend on a specific normal authenticator.
Thoughts?

Thanks for looking at this.
The username seems to be the common piece of information that could be used to connect the external authenticator to another CASino authenticator account.
The external authenticator needs to map the "normal" authenticator's username to the external account specific identifier.
Once logged in via the normal authenticator, this mapping could be setup by clicking a "connect" button on the sessions screen. It would then be up to the external authenticator to implement a function for handling this and creating the necessary mapping based on the currently logged in account username.
As an example, the Facebook authenticator maps Facebook ID to a username. Facebook specific data is returned via the extra attributes when logging in with Facebook, but the normal mapped username is returned in the user_data:
  def user_data(user, user_access_token)
    { username: user.send(@username_column), extra_attributes: extra_attributes(user, user_access_token) }
  end

I admit I was biased to the active record authenticator when implementing this, but I assume LDAP or other authenticator usernames could be mapped the same way.
Let me know if you think this is enough to link the accounts.

Hi @pencil ,
Dose this PR in consideration, this seems to have very good feature, are you considering it to merge?

Hi @craigweston ,
This branch has merge conflict, can you look in to it?

@trkrameshkumar
I did the work:
https://github.com/ZPVIP/CASino/commit/23b9fc7bd07c67400dda72d752ab9e9f52e3b910

Any updates on this PR?  I planned  to make an external authenticator for WeChat. This PR might help a lot.


carrier push doesn't like underscores in app names

While on the remove_eirini branch, I tried to push an app named "sample_gold" and no pipeline was triggered. Pushing as "samplegold" works. It may be an issue in main since none of the code I changed seems relevant. I'm putting this here as a note to investigate more.

Probably because we use the app name for Kubernetes objects and Kubernetes doesn't like underscores:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names
If we want to support underscores (since there is nothing bad with using those), we should sanitize the app name through some helper method before using it for Kubernetes "things".

Duplicate of : https://github.com/SUSE/carrier/issues/123


Update sl-partner-integration-guide.md

What are you changing in this pull request and why?
Adding a note on saved queries to our integration guide

Checklist

[ ] Review the Content style guide so my content adheres to these guidelines.
[ ] For docs versioning, review how to version a whole page and version a block of content.
[ ] Add a checklist item for anything that needs to happen before this PR is merged, such as "needs technical review" or "change base branch."

Adding or removing pages (delete if not applicable):

[ ] Add/remove page in website/sidebars.js
[ ] Provide a unique filename for new pages
[ ] Add an entry for deleted pages in website/static/_redirects
[ ] Run link testing locally with npm run build to update the links that point to deleted pages

merging this pr now @rpourzand !


PYENV not recognized as current Python Version

Describe the bug
I have the PyCharm interpreter pointing to /pyenv/versions/3.10.6/bin/python3.10, but when I try to run Reloadium it tells me that my version of Python is not yet supported:
/Users/mikrubin/.pyenv/versions/3.10.6/bin/python3.10 -m reloadium pydev_proxy /Applications/Tools/PyCharm CE.app/Contents/plugins/python-ce/helpers/pydev/pydevd.py --multiprocess --save-signatures --qt-support=auto --client <IP_ADDRESS> --port 52169 --file /Users/mikrubin/My Drive/Python/MapTasker.py
It seems like your platform or Python version are not supported yet.
Windows, Linux, macOS and Python >= 3.7 (3.9 for M1) are currently supported.
Please submit a github issue if you believe Reloadium should be working on your system at
To Reproduce
Steps to reproduce the behavior:

Use Pyenv to manage Python 3.10
Bring up Pycharm and point its interpreter to the above.
Run reloadium plugin
See error

Expected behavior
Normal reloadium debugging.
Screenshots
See above, under '... is not yet supported:'
Desktop (please complete the following information):

OS: OS X
OS version: 12.6
Reloadium package version: None
PyCharm plugin version: 0.8.5
Editor: PyCharm
Run mode: Debug via Reloadium

Additional context
Add any other context about the problem here.

Does it work when you install reloadium with pip install reloadium and run it from the terminal (reloadium run my_script.py)`?

I did as you said, and yes, reloadium runs fine.

Yes, it still fails.  It has got to be something on my end and I am trying different settings/configurations in an effort to identify what is wrong.  Thanks for checking.

@mctinker
I believe this is related to this issue https://github.com/reloadware/reloadium/issues/57
Could you follow the instructions I have provided there?

So I've since upgraded from Python 3.10.7 to 3.10.8.  With this upgrade, I also had to update reloadium.  With this update I get this error when running reloadium from the command line.

@mctinker That will be fixed in the next release.
Is the initial issue ("Python is not yet supported" error) resolved when running on PyCharm?
Also are you an M1 chip user?

Yes, I still encounter the original error.  I am on a 2020 Intel i9 Mac running Monterey 12.6.1 .  Let me know if I can provide any further details.

Reloadium plugin installs reloadium package to /.reloadium/package directory, could you verify whether this directory exists and contains a package for the python version you are using?
If not could you please reinstall the plugin and submit the idea.log file?
If the package is correctly installed could you go to <home>/.reloadium/package/<python version>/reloadium and add the following lines at the beginning of the init.py file?
import sys
print(sys.path)

Also please set RW_DEBUG environmental variable to True
Then run your script using the Reloadium plugin and paste the output here?

I don't know where to put the RW_DEBUG = TRUE, but here is the output when running from console:
mikrubin@Michaels-iMac ~/M/Python [1]> pyenv version
3.10.8 (set by /Users/mikrubin/My Drive/Python/.python-version)
mikrubin@Michaels-iMac ~/M/Python> reloadium -h
['/Users/mikrubin/.pyenv/versions/3.10.8/bin', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python310.zip', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload', '/Users/mikrubin/.local/lib/python3.10/site-packages', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages']
['/Users/mikrubin/.pyenv/versions/3.10.8/bin', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python310.zip', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload', '/Users/mikrubin/.local/lib/python3.10/site-packages', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages']
INFO
version      0.9.4
COMMANDS
help/-h      Shows this help
run          Runs a python file. Add -m to run a module.
mikrubin@Michaels-iMac ~/M/Python> reloadium run MapTasker.py
['/Users/mikrubin/.pyenv/versions/3.10.8/bin', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python310.zip', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload', '/Users/mikrubin/.local/lib/python3.10/site-packages', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages']
['/Users/mikrubin/.pyenv/versions/3.10.8/bin', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python310.zip', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload', '/Users/mikrubin/.local/lib/python3.10/site-packages', '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages']
Traceback (most recent call last):
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/ll1l1lll1l1lll1lIl1l1.py", line 138, in l11l1llll1llll11Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1111l1l111ll1llIl1l1.py", line 326, in llllll1111llll11Il1l1
File "", line 4, in init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1111l1l111ll1llIl1l1.py", line 242, in post_init
File "", line 5, in init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1l1l1llll11lll1Il1l1.py", line 170, in post_init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1l1l1llll11lll1Il1l1.py", line 248, in l1lll1llllll11l1Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/lllllll111l1l1llIl1l1.py", line 389, in l11l1llll1lll111Il1l1
File "", line 12, in init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/lllllll111l1l1llIl1l1.py", line 332, in post_init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/observers/api.py", line 291, in schedule
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/observers/kqueue.py", line 450, in init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/utils/dirsnapshot.py", line 251, in init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/utils/dirsnapshot.py", line 283, in walk
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/utils/dirsnapshot.py", line 283, in walk
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/utils/dirsnapshot.py", line 283, in walk
[Previous line repeated 4 more times]
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/watchdog/utils/dirsnapshot.py", line 259, in walk
OSError: [Errno 24] Too many open files: '/Users/mikrubin/My Drive/Python/venv/lib/python3.10/site-packages/pip/_internal/vcs'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/mikrubin/.pyenv/versions/3.10.8/bin/reloadium", line 9, in
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/init.py", line 21, in start
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1111l1l111ll1llIl1l1.py", line 612, in start
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1111l1l111ll1llIl1l1.py", line 596, in l1llll11ll11ll1lIl1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1111l1l111ll1llIl1l1.py", line 502, in l1l1lll11ll1ll1lIl1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1111l1l111ll1llIl1l1.py", line 325, in llllll1111llll11Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/contextlib.py", line 153, in exit
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/ll1l1lll1l1lll1lIl1l1.py", line 143, in l11l1llll1llll11Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/ll1l1lll1l1lll1lIl1l1.py", line 107, in l11ll1111lll11llIl1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1l1l111l1l111l1Il1l1.py", line 15, in l111ll11lll11l11Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1l1l111l1l111l1Il1l1.py", line 43, in ll1ll1l1111l1ll1Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1l1l111l1l111l1Il1l1.py", line 15, in l111ll11lll11l11Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/corium/l1l1l111l1l111l1Il1l1.py", line 24, in lll11ll1l1l111l1Il1l1
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/sentry_sdk/hub.py", line 105, in _init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/sentry_sdk/client.py", line 85, in init
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/sentry_sdk/client.py", line 119, in _init_impl
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/sentry_sdk/integrations/init.py", line 93, in setup_integrations
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/sentry_sdk/integrations/init.py", line 41, in iter_default_integrations
File "/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/importlib/init.py", line 126, in import_module
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1002, in _find_and_load_unlocked
File "", line 945, in _find_spec
File "", line 1439, in find_spec
File "", line 1411, in _get_spec
File "", line 1548, in find_spec
File "", line 1591, in _fill_cache
OSError: [Errno 24] Too many open files: '/Users/mikrubin/.pyenv/versions/3.10.8/lib/python3.10/site-packages/reloadium/vendored/sentry_sdk/integrations'
mikrubin@Michaels-iMac ~/M/Python [1]>

Add it in your Run/Debug configuration like shown below and run a script in pycharm.

Ok, I added the RW_DEBUG=True and after getting the reloadium platform unsupported error, the debug window displays: "Connection to Python debugger failed: Socket closed" .  No other visible output was generated.

What happens when you use it the run mode instead of debug?

Ok, I just updated reloadium to 0.9.0 and it now works fine!  I don't know what changed but the problem has disappeared.  I am closing the problem.  Thank you for your attention!!!


Research filter function for blog

Figurre out ways of filtering and see what could work best.

What was the outcome of this research?

We where able to make research on how best to filter function for blog can be applied in which we discussed in our first Sprint meeting, Research was carried out to optimize filter and search functionalities, ensuring seamless navigation and content discovery for users in a blog. This was highlighted in the report presented by Interaction Dev team.

We were able to carryout a research on how best, filter function for blog can be applied in which we discussed in our first Sprint meeting, Research was carried out to optimize filter and search functionalities, ensuring seamless navigation and content discovery for users in a blog. This was highlighted in the report presented by our Team. "Interaction Dev team".
On Thursday, April 25, 2024 at 12:02:38 PM GMT+2, Oliver Dipple<EMAIL_ADDRESS>wrote:

What was the outcome of this research?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were assigned.Message ID: @.***>


update s2s-ft/gen_seq_from_trace.py

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: addf400 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


trouble drawing polyline

I am trying to draw a polyline on my map to connect points. This object gets attached to $scope.allPaths on click.
{
  "path70601000211": {
    "color": '#008000',
    "weight": 8,
    "latlngs": [
      {
        "lat": "-1.29048",
        "lng": "36.827999"
      },
      {
        "lat": "-1.291455",
        "lng": "35.828468"
      },
     {
        "lat": "-1.290858",
        "lng": "37.828182"
      }
    ]
  }
}

This is the map directive
<leaflet center="nairobi"
    paths="allPaths"
    height="480px"
    class="col-md-12"></leaflet>

When I click the above object attaches to the scope but the polyline does not draw. How can I draw the line on my map?

This issue was moved to angular-ui/ui-leaflet#27

I'm going to rework&redesign angular-leaflet-directive to be compatible with Leaflet v1.0. It will mantain almost all its functionality, and will be compatible with the current features of the directive, but I must start from a fresh point, so I'm going to close this issue. If you think it must be worked with the new version, please reopen it.


Make list of agentless tasks visible

The list of agentless tasks only appears if you select the "Classic" tab. As the list is relevant for YAML as well, it should appear outside of the tabbed area

@tfenster : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


added a scroll to top button when the books list load

Description
A scroll to top button would be convenient and improve the overall UX of the website.
Checklist

[ ] I am making a proper pull request, not spam.
[ ] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
#59
Add relevant screenshot or video (if any)

make it more minimalistic

Can you please suggest something, how should I do it?

@Keshab0100 similar to this https://codeconvey.com/floating-back-to-top-button-html/


add script to generated all "expected" html files

see https://github.com/FelixSchwarz/mjml-stub/pull/21#issuecomment-1220365527

fixed by f72b47fbc2858b6e68fefb24b010af7d9ad425d3


AVRO-3624: Add apache links

What is the purpose of the change
*For AVRO-3624 Try to complete site with Apache references to get greener note in https://whimsy.apache.org/site/.
Verifying this change
Manual check :
on folder "doc", run hugo via command hugo server --buildDrafts --buildFuture --bind <IP_ADDRESS> --navigateToChanged
This change is only on documentation.
I tried to have somethink that look like "ASF Links" on Apache arrow site, but i succeed only with HTML select/option code, so it's little weird.
Documentation

Does this pull request introduce a new feature? no

I will try to re-work the select to a menu (as on Arrow site) soon!

I will try to re-work the select to a menu (as on Arrow site) soon!

Done with https://github.com/apache/avro/pull/1870/commits/b032e7156201ba35b1dfceb6c5f2d9a9eca4c75c


Show unknown element type in CompositeElement as rectangle

Wow, that wasn't very smart. This is already handled by the default case.


Global registered component has wrong render sequence

Version
2.3.3
Reproduction link
Steps to reproduce
index.js
// Register global
import Child from 'child.vue'
Vue.component('child', Child)

parent.vue
<template>

    <child>content</child>

<template>

child.vue
<template>

    <slot></slot>

</template>

What is expected?
Parent should be mounted after child is created and mounted.
What is actually happening?
Parent is created and mounted and after that the child ist created and mounted.

Please include a reproduction link.

Also from the desription, I'm unsure about what the actual problem is.
Are you indeed saying that the Parent's created hook fires after the child's? (Because everything else seems like expected behaviour.)
That would indeed be very strange.

The parent is created and mounted and after this the child is created and mounted.
console log is:
parent created
parent mounted
child created
child mounted
but it should be:
parent created
child created
child mounted
parent mounted

Ok it could be a loader problem, my code for loading the .vue is (i use webpack)
function component(name) {
  return () => System.import(`components/${name}.vue`)
}

// this is wrong
Vue.component('test', component('test'))

// this works
//import Test from 'components/test.vue'
//Vue.component('test', Test)

Rendering is a sync process.
Hwever, if you lazy-load a component with webpack, that happens asychronously.
So the parent will finish rendering before the child has been lazy-loaded and rendered.

That's why the execution order is different, and that is to be expected.

Thanks, thats what i thought too.
Feature Request: enable use of lazy loaded components

but in my case the parent is the lazy loaded component.

Feature Request: enable use of lazy loaded components

You are using them, so that's not a feature request :D
Further discussion should be done in the forum.


Passphrase not accepted when Save is selected

When unlocking the wallet, if Save Password is selected the dialog is not closed and the password is not saved.
Deselecting Save Password unlocks the wallet.

ah man. Thanks.

I couldn't reproduce this error from master branch.


Fixes bug with width / height different in PIL and numpy

PIL resize function takes target size as (width, height) where as numpy dimensions are generally understood as (height, width).
For square images, this does not matter.

@najiji thank you!


Refactoring: Generator.component.ts

Generator.component.ts can become very big.
It could be nice to split into sub component, like:

SpringBoot.component.ts
Angular.component.ts
React.component.ts
Vue.component.ts
etc.

So SpringBoot.component.ts will call only SpringBootService for example

🔧WIP🔨

Any progress on this, @Franceq34 ? If it can motivate to achieve this, I can put a bounty :)
Then, if I can have one example with 1 component, I can implement the other components.

$100 bounty claimed => https://opencollective.com/generator-jhipster/expenses/74251

@Franceq34 : approved


Image remains horizontal despite orientation tags in TIFF

Hi Nico, thank you for this brilliant work.
I was trying to add photos I took using a camera, but all the photos stay horizontal despite the orientation tags in TIFF is 6, do I need to write it specifically in Exif tag?  Is there any chance to read the information in TIFF tag?

Edited: in the general tag the orientation is also 6, I didn't find the orientation row in Exif tag
Thanks again!

Thanks @CallMeL, glad you like the theme!
I'm not sure if Hugo can process TIFF tags at all, could you send me an example photo where this occurs?

Hi @nicokaiser , this is one example image

Thanks for the example! After short investigation I found out that the Orientation tag is not read at all in the example, because it was missing in the includeFields.
Could you change your hugo.toml and add the Orientation entry to includeFields?
  [imaging]
    quality = 75
    resampleFilter = "CatmullRom"
    [imaging.exif]
      disableDate = false
      disableLatLong = true
+     includeFields = "ImageDescription|Orientation"

This way the Orientation field is read from the images and used for rotation.
There is another way to achieve this without needing to include this field, but that would require at least Hugo v0.121.2. I may use this more elegant way in a future version (#51).

Thank you for the quick reply, it solved my problem perfectly!


Updated URL referencing troubleshooting documentation

Updated a dead (and very helpful) link to TROUBLESHOOTING.md

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.
Most changes should add an entry to the changelog and may need to rev the pubspec package version.
Changes to packages require corresponding tests.

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

Thank you!


Transparent PNG background color

Do you have an idea how to prevent this behavior with transparent PNG files in SPI?

When SLS has been received, then the file is a JPG.

Well, it is black because all slides have black background that is not visible for non-transparent images but it appears when image is smaller or if it has transparency. I was looking for some guidelines in documentation from WorldDAB and I have not found any recommendation what to do with transparent logos. When I was implementing it, my assumption was that typical car radio has a black screen and dark UI. So I would assume broadcasters should provide their media assets in the format that looks good in car because it is the majority of radio listening. The other assumption that shall be considered is that in dark mode the image background should be dark too.
To be honest, I do not have any reference how the manufacturers are implementing station logos visualization for DAB, if you have any, please share.

But the smaller file (top left) is visible, although it is transparent (see files below), too!
So you should use the same background color in the SLS window.

Yes, it is visible because I do not set any background there, but try how visible it is in dark mode.

This is probably the best compromise. By the way - you can see how stupid they are :-D This is clearly problem on their side,  if they want to have white background they should set it in the logo or make the logo in the way that looks good on any background color in gray scale.

BTW: have a look at the letter R ...

 It is also in A letter.

I just saw that the transparent logos look good in the EPG window, as your background color is the same grey.

Try to change to dark mode ;-)

@andimik What about this?
I could implement a possibility to set slideshow background from settings dialog. Would it resolve this issue?

User can select any SLS background in settings, closing issue.


Update package.json to include the repository

Hi there!
This change adds the repository property to your package.json file(s). Having this available provides a number of benefits to security tooling. For example, it allows for greater trust by checking for signed commits, contributors to a release and validating history with the project. It also allows for comparison between the source code and the published artifact in order to detect attacks on authors during the publication process.
We validate that we're making a PR against the correct repository by comparing the metadata for the published artifact on npmjs.com against the metadata in the package.json file in the repository.
This change is provided by a team at Microsoft -- we're happy to answer any questions you may have. (Members of this team include @s-tuli, @iarna, @v-rr, @v-jiepeng, @v-zhzhou and @v-gjy). If you would prefer that we not make these sorts of PRs to projects you maintain, please just say. If you'd like to learn more about what we're doing here, we've prepared a document talking about both this project and some of our other activities around supply chain security here: microsoft/Secure-Supply-Chain
This PR provides repository metadata for the following packages:

@fuselab/build-config
@fuselab/cli-utils
@fuselab/react-gen
@fuselab/ui-adal
@fuselab/ui-fabric
@fuselab/ui-shared

Is there anything that is needed to land this pull request ?


Email settings

Hi, I am struggling to find where I can edit the settings for my email settings. The install is via a cpanel install but it's not sending out emails. Checked the help file and it said to check the ini file but I have failed to find its location and the ones I have found don't contain any smpt email settings any help would be great :)

Why don't you start by reading the documentation. It will prevent from asking question that we already took time to answer.
http://ph7cms.com/doc/
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki/How-to-ask-for-help
https://ph7cms.com/doc/en/why-pH7CMS-can't-send-emails
The configurations are either in the config.ini file ( _protected/app/system/config/config.ini ) or stored in the database and edited through the administrative interface.

Many thanks for your reply,
I did read the document and under the section for why it can't send emails
it just says to check the php.ini file, but it didn't say where that would
be located hence my question.
I did search for the file but no email settings are in the file so will
check the database
It maybe worth updating the email section of the help file as it says
php.ini and not config.ini
I appreciate you taking the time to reply
On Fri, 5 Apr 2019, 16:52 Polyna-Maude R.-Summerside, <
<EMAIL_ADDRESS>wrote:

Why don't you start by reading the documentation. It will prevent from
asking question that we already took time to answer.
http://ph7cms.com/doc/
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki/How-to-ask-for-help
https://ph7cms.com/doc/en/why-pH7CMS-can't-send-emails
The configurations are either in the config.ini file (
_protected/app/system/config/config.ini ) or stored in the database and
edited through the administrative interface.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/pH7Software/pH7-Social-Dating-CMS/issues/500#issuecomment-480327242,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Au5DXj_zM_DtCcg2HcHNTsD5sllZVyJEks5vd3FLgaJpZM4cfJnX
.

@webbyhull First of all maybe you should learn some basics about PHP before trying to run an online service.
The php.ini file and the config.ini file are two different thing. The first one (php.ini) is file used by the PHP interpreter and that will be common to every application. The config.ini file is used only by pH7CMS.
As we say :
This means there is an incorrect configuration on your host side and/or with the "php.ini" file."
We cannot enumerate all the possibilities relating to email sending problem, may it be a missing module in your PHP, an incorrect configuration option in pH7CMS, a network problem with your firewall and/or SMTP server refusing the connection.
Solving problem is never a straight line of "do this, do that, then do this".
If you look at one of the link I've sent you (before complaining that we shall update our help) then you'll get some hint about what do to if you want to get something useful as help. And this start by giving enough information so we can have some idea about where may the problem reside.
For now we can't do more.

@webbyhull You can also use SendGrid SMTP services : https://sendgrid.com/
You'll get a guaranteed working SMTP server that doesn't filter based on your originating IP.

Is this still relevant @webbyhull?

In my case it only partially works and I am also trying to figure out any setting to tweak but
This contact form works
https://mysite/contact
but when I try another mail method to a user on the site eg
https:/mysite/mail/compose/userid
this does not work
forgot password function also cannot send mail
https://mysite/forgot/user
Appreciate more guidance.
Sorry I read the docs but equally lost.

@webbyhull You can also use SendGrid SMTP services : https://sendgrid.com/
You'll get a guaranteed working SMTP server that doesn't filter based on your originating IP.
Or use MailGun
https://www.mailgun.com/

oHOw does one set the sendgrid SMTP in ph7CMS? I can't find a link to the instructions in the wiki

@palmdoc You'll get the good answer if you ask at the right place. This is not the SendGrid support group, this is pH7CMS. A SMTP is simply an SMTP server, so you replace the information you'd set for your own server by the one used by SendGrid / MailGun or whatever service you use (your own, your providers, etc).
https://sendgrid.com/solutions/smtp-service/
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki/How-to-ask-for-help
Also, by using others already opened issue for problem unrelated or that you think related but may not be is just causing a mess around here ! Something like getting into other peoples conversation.
Open a issue clearly indicating your problem. Go read the wiki pertaining to how to ask for help. And people should get back to you.
Or maybe I could write twenty two different list of "to do" and "try this", possibly only one will be good but why not waste some time here ! When you go to the doctor, he does lab work ? Blood test ? Same goes for the computer world. So maybe if you'd take the time to look into your logs (it would show us that you have the basic knowledge of operating an online service and some debugging aptitudes).

I had the same issue, but after downgrading to PHP 5.6 all emails start working. However I'm talking about version 14.9. I didn't update to 15 yet.

@kevinbkk It's not only about gettings it working but to find out why.
You should try to compare your logs between PHP 5.6 and PHP 7.1  when sending emails. The version 5.6 of PHP is going out of support soon.

@palmdoc You'll get the good answer if you ask at the right place. This is not the SendGrid support group, this is pH7CMS. A SMTP is simply an SMTP server, so you replace the information you'd set for your own server by the one used by SendGrid / MailGun or whatever service you use (your own, your providers, etc).
https://sendgrid.com/solutions/smtp-service/
https://github.com/pH7Software/pH7-Social-Dating-CMS/wiki/How-to-ask-for-help
Also, by using others already opened issue for problem unrelated or that you think related but may not be is just causing a mess around here ! Something like getting into other peoples conversation.
Open a issue clearly indicating your problem. Go read the wiki pertaining to how to ask for help. And people should get back to you.
Or maybe I could write twenty two different list of "to do" and "try this", possibly only one will be good but why not waste some time here ! When you go to the doctor, he does lab work ? Blood test ? Same goes for the computer world. So maybe if you'd take the time to look into your logs (it would show us that you have the basic knowledge of operating an online service and some debugging aptitudes).

I'm not asking about how to use Sendgrid, simply asking where on earth if there are at all the SMTP settings for mail within ph7CMS.
I see code for Swftmailer within the protected files but I am not a PHP programmer. I am a mere mortal user asking for help.
Is it possible at all to tweak within the ph7CMS application how it sends out mail? i.e. use a hosting smtp service with login/password?
Or are we doomed to just use php mail?


Include xarray's static files (HTML and CSS)

Fixes https://github.com/jupyterlite/jupyterlite/issues/760.

jupyterlite-xeus-python downloads this file dynamically from this repo, this means that you can already retry a jupyterlite build and see if it works :)

It does work, thanks!


Add music specific context types

MusicGroup, MusicAlbum, MusicPlaylist, MusicRecording

Hey @Torann Have you had a chance to look at this pr? It would some context types for music related json scripts

Looks great. Thanks!


should itorch.image({image.lena()}) work as stated on the github page?

I tried the following in my iTorch session:
require 'image'
itorch.image({image.lena()})
and get this error:
/usr/local/share/lua/5.1/image/init.lua:159: [write_png_file] png_create_write_struct failed
stack traceback:
[C]: in function 'save'
/usr/local/share/lua/5.1/image/init.lua:159: in function 'saver'
/usr/local/share/lua/5.1/image/init.lua:354: in function 'save'
/usr/local/share/lua/5.1/itorch/gfx.lua:25: in function 'f'
[string "local f = function() return itorch.image({ima..."]:1: in main chunk
[C]: in function 'xpcall'
/usr/local/share/lua/5.1/itorch/main.lua:179: in function </usr/local/share/lua/5.1/itorch/main.lua:143>
/usr/local/share/lua/5.1/lzmq/poller.lua:75: in function 'poll'
/usr/local/share/lua/5.1/lzmq/impl/loop.lua:307: in function 'poll'
/usr/local/share/lua/5.1/lzmq/impl/loop.lua:325: in function 'sleep_ex'
/usr/local/share/lua/5.1/lzmq/impl/loop.lua:370: in function 'start'
/usr/local/share/lua/5.1/itorch/main.lua:350: in main chunk
[C]: in function 'require'
(command line):1: in main chunk
[C]: at 0x01003f2040
is there something else I should have done in order for the tutorial stuff to work?

it should work out of the box usually. What OS are you trying this on? does your temporary directory have write permissions? (for example /tmp )

MAC OSX Yosemite 10.10.3 . Sorry, but I dont understand - temporary directory?

can you do a simple test, so that I can figure out the issue.
Can you run:
image.save('test.png', image.lena())
And see if it runs without error...

it runs with the following error:
/usr/local/share/lua/5.1/image/init.lua:159: [write_png_file] png_create_write_struct failed
stack traceback:
[C]: in function 'save'
/usr/local/share/lua/5.1/image/init.lua:159: in function 'saver'
/usr/local/share/lua/5.1/image/init.lua:354: in function 'f'
[string "local f = function() return image.save('test...."]:1: in main chunk
[C]: in function 'xpcall'
/usr/local/share/lua/5.1/itorch/main.lua:179: in function </usr/local/share/lua/5.1/itorch/main.lua:143>
/usr/local/share/lua/5.1/lzmq/poller.lua:75: in function 'poll'
/usr/local/share/lua/5.1/lzmq/impl/loop.lua:307: in function 'poll'
/usr/local/share/lua/5.1/lzmq/impl/loop.lua:325: in function 'sleep_ex'
/usr/local/share/lua/5.1/lzmq/impl/loop.lua:370: in function 'start'
/usr/local/share/lua/5.1/itorch/main.lua:350: in main chunk
[C]: in function 'require'
(command line):1: in main chunk
[C]: at 0x010dedb040

hmmm, there seems to be an issue with your libpng library itself. Weird.
Did you install torch from the website instructions?
Can you go to a terminal and type:
luarocks install image
and give me the output of that command?

you want everything?
Installing https://raw.githubusercontent.com/torch/rocks/master/image-1.1.alpha-0.rockspec...
Using https://raw.githubusercontent.com/torch/rocks/master/image-1.1.alpha-0.rockspec... switching to 'build' mode
Cloning into 'image'...
remote: Counting objects: 51, done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 51 (delta 3), reused 32 (delta 2), pack-reused 0
Receiving objects: 100% (51/51), 875.49 KiB | 625.00 KiB/s, done.
Resolving deltas: 100% (3/3), done.
Checking connectivity... done.
Warning: unmatched variable LUALIB
cmake -E make_directory build && cd build && cmake .. -DLUALIB= -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/usr/local/bin/.." -DCMAKE_INSTALL_PREFIX="/usr/local/lib/luarocks/rocks/image/1.1.alpha-0" && make
-- The C compiler identification is AppleClang <IP_ADDRESS>20053
-- The CXX compiler identification is AppleClang <IP_ADDRESS>20053
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Torch7 in /usr/local
-- Try OpenMP C flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Could NOT find OpenMP (missing:  OpenMP_C_FLAGS OpenMP_CXX_FLAGS)
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/luarocks_image-1.1.alpha-0-4899/image/build
Scanning dependencies of target image
[ 12%] Building C object CMakeFiles/image.dir/image.c.o
Linking C shared module libimage.so
[ 12%] Built target image
Scanning dependencies of target image_static
[ 25%] Building C object CMakeFiles/image_static.dir/image.c.o
Linking C static library libimage.a
[ 25%] Built target image_static
Scanning dependencies of target jpeg
[ 37%] Building C object CMakeFiles/jpeg.dir/jpeg.c.o
Linking C shared module libjpeg.so
[ 37%] Built target jpeg
Scanning dependencies of target jpeg_static
[ 50%] Building C object CMakeFiles/jpeg_static.dir/jpeg.c.o
Linking C static library libjpeg.a
[ 50%] Built target jpeg_static
Scanning dependencies of target png
[ 62%] Building C object CMakeFiles/png.dir/png.c.o
Linking C shared module libpng.so
[ 62%] Built target png
Scanning dependencies of target png_static
[ 75%] Building C object CMakeFiles/png_static.dir/png.c.o
Linking C static library libpng.a
[ 75%] Built target png_static
Scanning dependencies of target ppm
[ 87%] Building C object CMakeFiles/ppm.dir/ppm.c.o
Linking C shared module libppm.so
[ 87%] Built target ppm
Scanning dependencies of target ppm_static
[100%] Building C object CMakeFiles/ppm_static.dir/ppm.c.o
Linking C static library libppm.a
[100%] Built target ppm_static
cd build && make install
[ 12%] Built target image
[ 25%] Built target image_static
[ 37%] Built target jpeg
[ 50%] Built target jpeg_static
[ 62%] Built target png
[ 75%] Built target png_static
[ 87%] Built target ppm
[100%] Built target ppm_static
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lib/libppm.so
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lib/libjpeg.so
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lib/libpng.so
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lib/libimage.so
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/init.lua
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/fabio.jpg
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/fabio.png
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/lena.jpg
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/lena.png
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/win.ui
-- Installing: /usr/local/lib/luarocks/rocks/image/1.1.alpha-0/lua/image/README.md
Updating manifest for /usr/local/lib/luarocks/rocks
image 1.1.alpha-0 is now built and installed in /usr/local/ (license: BSD)

I did not use sudo (maybe a mistake but seems that all was installed. I got this output in my terminal libpng warning: Application built with libpng-1.4.12 but running with 1.6.18, when trying image.save('test.png', image.lena()) in the notebook...

ohhh, that is actually strange. I wonder why at runtime you have a different libpng.dylib in your path.

It's likely that you have a custom libpng in your DYLD_LIBRARY_PATH or LD_LIBRARY_PATH

so maybe I should install all the things again? I think I followed the instructions..

Ok, I've just pushed a fix into the image package. If you now do: luarocks install image
It will print out the libpng that it is linking against....
-- Found Torch7 in /Users/xxx/torch/install
-- Found JPEG: /usr/local/lib/libjpeg.dylib
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
-- Found PNG: /usr/local/lib/libpng.dylib (found version "1.6.16")
What you could do is see which libpng you are linking against, and if you want it to link against the 1.6.18 version that you are using at runtime, you can specify:
export CMAKE_LIBRARY_PATH=[path to your libpng of version 1.6.18, wherever that is]
luarocks install image

thanks. I am not sure how I installed libpng.dylib so can't find where it is..

Hi
As you mentioned in your Readme.MD file at https://github.com/facebook/iTorch#requirements that use itorch.image(img) to read image. In my case it is not reading image. I tried to read image as itorch.image(example.jpg) and also as itorch.image('example.jpg') but it is not reading it. One more question i.e. Is lena() a function? I tried this one also
In [19]: itorch.image({image.lena('bhagat.jpg')})
It shows Out[19]: in red color but not image.

I have the same issue, what is strange is that CMAKE show a different version from the installed one :

Found PNG: /usr/local/Cellar/libpng/1.6.18/lib/libpng.dylib (found version "1.4.12")

It use a 1.6.18 version and says it found a 1.4.12, I wonder why ?

I'm seeing this on my machine.  Cmake seems to be picking up png.h from /Library/Frameworks/Mono.framework/Headers (based on printing PNG_INCLUDE_DIRS) and libpng.so from /usr/local/lib (homebrew).
Removing the Mono framework and removing/reinstalling image fixed it for me.

I saw just the same issue running Mac OS 10.11.3 (15D21). I re-installed libpng, libjpeg (with home-
brew) and then image (with luarocks). That fixed it all for me.
Before that I had the devil's own job getting iTorch to work, because I'd been using Python 3.5 without having Python 2.7 and some of the Jupiter dependencies wanted 2.7.
Anyhow, thanks for the help @soumith.

@thouis  it also fix my issue. thanks


[Feature] Image support

Please add image support. It is possible to select image, but when I reface I got video with one frame.

bump


feat(rabbitmq): upgrade operator + cluster to 3.11

Summary
Upgrades the RabbitMQ Cluster Operator and Topology operator to their latest versions. It also moves us back to the upstream helm chart since our PR has been merged and upgrades the RabbitMQ cluster to the latest version 3.11.16.
Test Plan
Local link. Test that Plural still can connect to RabbitMQ cluster with the new version.
Checklist

[ ]  No images hosted from dockerhub
[ ]  Are dashboards present to understand the health of the application.  There must be at least 1 of these

[ ]  all databases should have dashboards
[ ]  ideally also have at least cpu/mem utilization dashboards for webserver tier of the app
[ ]  you can use plural from-grafana to convert a grafana dashboard found via google to our CRD

[ ]  Are scaling runbooks present

[ ]  all databases must have scaling runbooks
[ ]  you can use the charts in pluralsh/module-library to accelerate this

[ ]  do you need to add config overlays?

[ ]  inputing secrets
[ ]  configuring autoscaling

[ ]  If there’s a web-facing component to the app, we need to support OIDC authentication and setting up private networks if no authentication option is viable
[ ]  All major clouds must be supported

[ ]  Azure
[ ]  AWS
[ ]  GCP

lgtm!


add an_attachment_with_mime_type option to check mime_type of attachments

thought this would be useful.
I have been following the contribution instructions as far as I can

Tell me you have tested it against more than one version of Ruby, RVM is great for this. I test against 7 rubies before I push into master.

I tried to test against rubies 1.8.7 and 1.9.3 but was stuck on:
→ gem install bundler:2.0.2
Fetching: bundler-2.0.2.gem (100%)
ERROR:  Error installing bundler:
        bundler requires Ruby version >= 2.3.0.

all specs pass for ruby 2.6.5 and ruby 2.5.0
I could not install dependencies for anything less than ruby 2.5.0 due to issues like the folllowing:
byebug-11.1.1 requires ruby version >= 2.4.0, which is incompatible with the current version, ruby 2.3.0p0

rufo-0.11.0 requires ruby version >= 2.4.5, which is incompatible with the current version, ruby 2.4.0p0

Use good, idiomatic, structured and modular code

I copied the existing format precisely

Include tests that fail without your code, and pass with it

have double checked that they fail appropriately

Update the documentation, the surrounding one, examples elsewhere, guides, whatever is affected by your contribution

Have updated the README and CHANGELOG

for those waiting for this to be merged and who don't want to link to my repo the following helper patch can be used to achieve the same effect:
module Mail
  module Matchers
    def an_attachment_with_mime_type(filename)
      AttachmentMimeTypeMatcher.new(filename)
    end

    class AttachmentMimeTypeMatcher
      attr_reader :mime_type
      def initialize(mime_type)
        @mime_type = mime_type
      end

      def ===(other)
        other.attachment? && other.mime_type == mime_type
      end
    end
  end
end

Thanks @tansaku !

you're most welcome - I have a few more minor fix up changes if you've interested

btw, what's the time frame for this to be released with the next update of the gem>

Weeks to months for next minor and major releases. Bundling from git is a good choice in the meantime.
Please do contribute your fix up changes!


Optional server side rendering

Since we'll be releasing Odoacer this week, should we still make server side rendering optional on Vortigern? cc/ @altayaydemir

I'd love a way to disable server-side rendering so I could use this inside a ASP.NET Core project.

@emzero Hey, since we are kind of busy nowadays we may not be able to publish our other boilerplate (which has client-side rendering and firebase as backend) in a short period of time.
However, as I've stated in #54, you can check out the structure of this project which has similar configurations with Vortigern, but more lightweight and client-side rendered version.


Support Typescript Intellisense

I've written .d.ts to use level-hyper as an Intellisense in the Typescript.
Can you allow the add a .d.ts file to the project file? @ralphtheninja

All other Level typings are in DT.


Remove Orgchart POC from mozillians.org.

Coverage increased (+0.5%) to 87.631% when pulling 3cc4150fade9b2859d52b2ca1751d3f23e27ef35 on akatsoulas:drop-orgchart-poc into 818a8e153de739d37a21929e8aeffb5bb2881a86 on mozilla:master.


Fix Readme for Ubuntu

I got the following error message saying I needed some extra packages and it's fixed after installing them. Not sure if it's only a ubuntu/linux thing
Collecting pygame==1.9.6
  Using cached pygame-1.9.6.tar.gz (3.2 MB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-b_mz1dh_/pygame/setup.py'"'"'; __file__='"'"'/tmp/pip-install-b_mz1dh_/pygame/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-b_mz1dh_/pygame/pip-egg-info
         cwd: /tmp/pip-install-b_mz1dh_/pygame/
    Complete output (29 lines):

    WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
    Using UNIX configuration...

    /bin/sh: 1: sdl-config: not found
    /bin/sh: 1: sdl-config: not found
    /bin/sh: 1: sdl-config: not found
    Package freetype2 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `freetype2.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'freetype2' found
    Package freetype2 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `freetype2.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'freetype2' found
    Package freetype2 was not found in the pkg-config search path.
    Perhaps you should add the directory containing `freetype2.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'freetype2' found
    /bin/sh: 1: freetype-config: not found
    /bin/sh: 1: freetype-config: not found
    /bin/sh: 1: freetype-config: not found

    Hunting dependencies...
    WARNING: "sdl-config" failed!
    WARNING: "pkg-config freetype2" failed!
    WARNING: "freetype-config" failed!
    Unable to run "sdl-config". Please make sure a development version of SDL is installed.
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Which packages did you installed?

Which packages did you installed?

Install pygame should be enough, i will verify that.

Install pygame should be enough, i will verify that.

@yuchenliu15 Could you try installing pygame this way: pip install pygame, without specyfing the version, and see if it works?

@yuchenliu15 Could you try installing pygame this way: pip install pygame, without specyfing the version, and see if it works?

@LucasPilla gave me version 2.0.1 and it works well! thanks!

@LucasPilla gave me version 2.0.1 and it works well! thanks!

Thanks!

Thanks!


~/aiidalab folder owned by wrong user

On my computer my user has ID 1002, while the files are owned by user 1001. So I cannot access some of them, and my backup tools that backup the home complain and give errors.
One more complex option if we really want to have these files in the home is to bind-mount /etc/passwd and /etc/group as read-only, and in the docker run specify the user. But it's not obvious to make it work correctly. I feel it's better to put these files not on a bind-mounted folder, but inside a docker volume?

Thanks for reporting this issue and this is actually a problem that has been brought up before and there is actually no generally applicable solution to this problem within the docker ecosystem to my knowledge.
Here are the two approaches to workaround the problem in this specific context:

For development: it is recommended to use an IDE like vscode, see the first tip here.
For general usage: I think that AiiDAlab Launch should support the use of a volume instead of a bind mount. This would alleviate the permissions issues that you observe, but obviously also makes the data harder to transfer.

W.r.t. point 2: As a first measure, we could potentially detect the issue by directly checking the ID of the current user, and in this case recommend the use of a volume. I would prefer to avoid messing with /etc/passwd since I suspect that the additional complexity would outweigh the potential benefits. A potential alternative approach might be to set the ID of the aiida user within the container to the same as the host user.

Hi, checking the ID and warning is better than nothing, still I think there should be an aiidalab-launch option like --use-volume or similar to launch.
I'm wondering how often one accesses the data. If it's just to check it, we could think to have an export function that launches a simple container mounting the same volume and allows to copy out the data. However I imagine that there are cases where you want to change the data easily?
In this case probably your last suggestion is the best, even if also there there are technicalities.
E.g. is the user with the correct UID created in the image, or every time the container starts? In the first case, instead of running directly the container from the image on DockerHub, one can build a new image just with the creation of the user with the default username, and the correct UID; and then run with that. Maybe this is a bit better even if more convoluted. When new versions of AiiDAlab are released, one just needs to recreate this final image.
In the second case, one can pass the UID as a env var and generate it at launch time in one of the CMD run scripts. However I'm not sure it's a good idea, as this means that you cannot have AiiDAlab already installed as that user, but delay its installation for the user until the user has been created. Also, the CMD has to be run by root (but maybe this is already the case if we are using passenger phusion as the base image.
So I would go with the first approach (and then no need to use volumes).
What do you think?

So I would go with the first approach (and then no need to use volumes). What do you think?

I already implemented the possibility to use volumes (https://github.com/aiidalab/aiidalab-launch/pull/74), however, I am still working out the details for a reasonable migration path. Unfortunately I made the mistake of not saving the config in case that the user did not make any changes. However, this also means that I can't know whether aiidalab-launch was already used unless there is a container. I think I am simply going to assume that if a user already has an aiidalab directory, that they want to mount it. Otherwise, I will default to the use of a volume in the future.

Resolved by #74 .


Feature Request: Exclude notes from automatic queueing

Firstly, let me congratulate you on this awesome plugin. I only used for three days and have seen my writing productivity improve a lot.
With that said I would like a way to exclude some new posts from automatic queueing. Maybe it would be possible to provide a folder (or an array of folders even?) that would be excluded? Even better would be a search query string, but since the automatic queueing happens when creating the note this would add some complexity…
Thanks for your consideration.

Thanks for the kind words, I'm glad you are finding the plugin useful!
Instead of using the "auto add notes to queue" feature in the settings, I recommend that you instead use the queue tags setting. I just released it the other day so make sure to update to the latest version. Here's how it works:
In the settings page you can define a list of queue names and associated tags. When you modify a note, the plugin will check to see if a queue tag was added. If so, the note will automatically get added to the queue. This mapping only applies to newly created notes, ie. when you install the plugin it won't automatically add all notes with a given tag to a queue. So the recommended workflow is to begin by searching for all notes with a given tag and adding those to a queue using the "add search results to queue" function (see above). Then you can set up the queue to tag mapping in the settings to make sure that future notes with a given tag get added to the queue.
The format for each line in the queue tags setting is like this:
Queue1=tag1,tag2,tag3...
So new notes tagged with tag1, tag2 or tag3 will get added to Queue1.
I recommend using the queue tags method rather than the "auto add notes to queue" setting because using tags gives you more control over which notes get added and which queue(s) they get added to.

I'll give it try! …but please consider this request regardless. Since automatic queueing is so frictionless, I would love to not have to use tags for what I've not intended them to be.

Ok I will consider adding that in a future version

@bjsi I might even consider giving the implementation a try myself, do you accept PRs?

Sounds good! Let me know if you need any help.