[$250] Sign in - Account settings long loading if navigate via public room link & login as new account

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.30-9
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Issue found when executing PR https://github.com/Expensify/App/pull/48144
Action Performed:

Go to https://staging.new.expensify.com/
Log out
Go to this link https://staging.new.expensify.com/r/7075912447943023
Tap sign in
Enter credentials and log in as a new Gmail account

Expected Result:
Account settings loads fine
Actual Result:
Account settings long loading
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/30864b05-edde-4769-a160-2303f7a81695
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021836652520479378795
Upwork Job ID:<PHONE_NUMBER>479378795
Last Price Increase: 2024-09-26

@bfitzexpensify  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Checking in on the other issue here

This doesn't appear to be related to https://github.com/Expensify/App/issues/47806 - I can repro with the changes from there reverted. It's probably a BE issue as there are no personalDetails returned in the SignUpUser call.

Thanks for confirming @jjcoffee . I'm going to move this to internal since this sounds like a BE issue

Not overdue

Is this bug specific to the public rooms flow and on Android native only? If so, that was a project in #vip-vsb, and I think @jasperhuangg might be good to offer insight into that.

@marcochavezf - have you got any insights to add to @jasperhuangg comment here?

Not overdue

I'm back from OOO and can take this back over - thanks for looking after it @VictoriaExpensify!

Proposal
Please re-state the problem that we are trying to solve in this issue.
Slow loading times when accessing through a public room link and logging in as a new account.
What is the root cause of that problem?
A deadlock occurs when executing OpenApp while OpenReport is triggered.
Clicking the Join button triggers the openReport first.
https://github.com/Expensify/App/blob/b1720c7a420a5f5e5482f40b8a6a31459c909d18/src/pages/home/report/ReportActionsView.tsx#L293-L299
Then openApp
https://github.com/Expensify/App/blob/b1720c7a420a5f5e5482f40b8a6a31459c909d18/src/pages/signin/SignInModal.tsx#L30-L34
During openReport processing, communication gaps between client and server may cause the queue to pause.
https://github.com/Expensify/App/blob/b1720c7a420a5f5e5482f40b8a6a31459c909d18/src/libs/Network/SequentialQueue.ts#L90-L93
When that occurs, we are unable to process or clear the queue.

What changes do you think we should make in order to solve the problem?
I think openApp should be the first request to call before everything else, since that API is responsible to make isLoadingApp to false.
Clear any persisted request in signInModal before calling openApp.
src/pages/signin/SignInModal.tsx
import * as PersistedRequests from '@libs/actions/PersistedRequests';

    useEffect(() => {
        const isAnonymousUser = session?.authTokenType === CONST.AUTH_TOKEN_TYPES.ANONYMOUS;
        if (!isAnonymousUser) {
            // Signing in RHP is only for anonymous users
            Navigation.isNavigationReady().then(() => Navigation.dismissModal());
            PersistedRequests.clear();
            App.openApp();
        }
    }, [session?.authTokenType]);

What alternative solutions did you explore? (Optional)
If we don't want to clear any pending requests, we can wait for the openApp function until the queue is idle.
src/pages/signin/SignInModal.tsx
import { waitForIdle } from '@libs/Network/SequentialQueue';

    useEffect(() => {
        const isAnonymousUser = session?.authTokenType === CONST.AUTH_TOKEN_TYPES.ANONYMOUS;
        if (!isAnonymousUser) {
            // Signing in RHP is only for anonymous users
            Navigation.isNavigationReady().then(() => Navigation.dismissModal());
            waitForIdle().then(() => {
                App.openApp();
            })
        }
    }, [session?.authTokenType]);

@wildan-m could you please post a video doing the same reproduction steps with your fix?
It seems like your solution is different from what was imagined by @jasperhuangg with ReconnectApp.

If openApp gets stuck, the following queue, including reconnectApp, will also get stuck.

If openApp gets stuck, the following queue, including reconnectApp, will also get stuck.

I'd still like to see the same reproduction steps with your fix, to see it in action.
cc @aldo-expensify was there a particular reason you wanted to trigger OpenReport first? To make sure we're not introducing unwanted side effects if we change the order of the API calls.
https://github.com/Expensify/App/blob/b1720c7a420a5f5e5482f40b8a6a31459c909d18/src/pages/home/report/ReportActionsView.tsx#L293-L299

@lakchote My main solution used to work well, but now it's not functioning properly. The new user is not automatically joining, possibly due to recent changes.
My alternative solution still working properly, force redirection to concierge seems expected for a new user(?)
https://github.com/user-attachments/assets/2c21c032-f763-4fe4-a805-935d466d2cfe

That seems valid to me too as it'll introduce the user to the platform. What do you think @trjExpensify?

Hm, I'm not sure. I don't think I agree with that. If you signed up from a public room, you would expect to drop back into the public room to continue what you were doing (like now being able to comment).

Hm, I'm not sure. I don't think I agree with that. If you signed up from a public room, you would expect to drop back into the public room to continue what you were doing (like now being able to comment).

Given this point of view, I do agree with you.
@wildan-m please suggest another solution

Proposal Updated

Move alternative proposal to main proposal
Add more change to keep the user on the lastVisitedPath

Proposal Updated

Add branch link for more clarity
add result video

@thesahindia could you please review @wildan-m's updated proposal?

@wildan-m I have a few more questions.

If the user hasn't in the navigation's history a previous page, won't removing this code will prevent the user from having a default redirect once the onboarding modal is closed?

https://github.com/Expensify/App/blob/76c5c81542e598c147f57cf149122f4e124dfe10/src/pages/OnboardingPersonalDetails/BaseOnboardingPersonalDetails.tsx#L73-L77

The original issue for that change is no longer reproducible even without that code https://github.com/Expensify/App/issues/44728

I couldn't find any indication on this in the issue's comments. Did you try it out yourself, by removing that code?

@lakchote

If the user hasn't in the navigation's history a previous page, won't removing this code will prevent the user from having a default redirect once the onboarding modal is closed?

I'm not sure about this case, can you suggest possible reproduction steps? without that code the user will still redirected to concierge by default
https://github.com/user-attachments/assets/9fc07adf-4643-4d87-af49-afc15572c700

I couldn't find any indication on this in the issue's comments. Did you try it out yourself, by removing that code?

Yes, please watch the first and second case in this video,
https://github.com/user-attachments/assets/75906eba-3489-4130-89f6-bc83751aa306
The 1st case, concierge is unbolded, that is expected since that chat is selected
The 2nd case, concierge is keep bolded, that's expected since we are on public chat when logged in
Looking at the proposal root cause https://github.com/Expensify/App/issues/44728#issuecomment-2203501325 that issue is originally created to handle system chat, but I couldn't find anything about navigateToSystemChat in the latest main, I assume there is no redirection differentiation in the latest code

Understood, thanks for testing.
@wildan-m's proposal LGTM.

creating the PR ...

@thesahindia The PR is ready https://github.com/Expensify/App/pull/50278 thanks!

Regressions arised.
See https://github.com/Expensify/App/pull/50278#issuecomment-2406558772.

@lakchote, @thesahindia I've created this draft PR in case you are curious and also want to test.
Currently I only revert the withOnyx migration part to handle this issue:

https://github.com/Expensify/App/issues/50560

I can't reproduce other deploy blockers that potentially come from our PR:

https://github.com/Expensify/App/issues/50578
https://github.com/Expensify/App/issues/50549

Let me know if you can reproduce the two issues mentioned above as I conduct more testing.

Waiting on regressions to be resolved before issuing payment

Payment to @wildan-m complete (paid out at $125 due to the regression).
@thesahindia, please complete the BZ checklist and I'll post the NewDot payment summary

@bfitzexpensify why there is penalty?
no 50% urgency bonus when we merge within 3 days and penalty also removed based on the announcement
https://expensify.enterprise.slack.com/archives/C01GTK53T8Q/p1698191269281379?thread_ts=1698191269.281379&cid=C01GTK53T8Q

@wildan-m we removed the time-based penalties that came from not merging a PR within 216 hours of assignment.
There was no change to the regression penalties, which dock 50% of the pay when a regression is caused.

There was no change to the regression penalties, which dock 50% of the pay when a regression is caused.

Does this apply if the same contributor fixed the regression here https://github.com/Expensify/App/pull/50629 ?

This is what we say in the CONTRIBUTING.md:

Regressions
If a PR causes a regression at any point within the regression period (starting when the code is merged and ending 168 hours (that's 7 days) after being deployed to production):

payments will be issued 7 days after all regressions are fixed (ie: deployed to production)
a 50% penalty will be applied to the Contributor and Contributor+ for each regression on an issue

The 168 hours (aka 7 days) will be measured by calculating the time between when the PR is merged, and when a bug is posted to the #expensify-bugs Slack channel.

So the penalty is applied regardless of who resolves the regression.

Also bumping the BZ checklist @thesahindia - thank you!

Payment summary:
@thesahindia due $125 for C+ work

$125 paid for @thesahindia


error updating doom solarized package not found

What did you expect to happen?
update Doom to latest version
What actually happened?
Type: error
Message:
error
Data:
"Could not find package solarized in recipe repositories: (org-elpa melpa gnu-elpa-mirror emacsmirror-mirror)"
Steps to reproduce:

cd ~/doom-emacs/.emacs.d/bin
./doom update
./doom upgrade
`./doom version
WARNING (:tools flycheck) module was moved to (:checkers syntax)
WARNING Couldn’t find the :app write module

Compiling your literate config...

Followed link to /home/jose/Documents/Github/vim-config/.doom.d/config.org
Tangled 0 code blocks from config.org
Doom v2.0.9 (9c1a356ada84eb790d77d288353cc0114fd65b83)
Emacs v26.3
Branch: develop
Build date: 2020-07-28 20:08:32 -0400
`

System information:

#!/usr/bin/env sh
:; ( echo "$EMACS" | grep -q "term" ) && EMACS=emacs || EMACS=${EMACS:-emacs} # -*-emacs-lisp-*-
:; command -v $EMACS >/dev/null || { >&2 echo "Can't find emacs in your PATH"; exit 1; }
:; _VERSION=$($EMACS --version | head -n1)
:; case "$_VERSION" in *\ 2[0-5].[0-9]) echo "Detected Emacs $_VERSION"; echo "Doom only supports Emacs 26.1 and newer"; echo; exit 2 ;; esac
:; _DOOMBASE="${EMACSDIR:-$(dirname "$0")/..}"
:; _DOOMPOST="$_DOOMBASE/.local/.doom.sh"
:; rm -f "$_DOOMPOST"
:; $EMACS --no-site-file --script "$0" -- "$@"
:; CODE=$?
:; [ -x "$_DOOMPOST" ] && PATH="$_DOOMBASE/bin:$PATH" "$_DOOMPOST" "$0" "$@"
:; exit $CODE
;; CLI ops tend to eat a lot of memory. To speed it up, stave off the GC, but
;; not to `most-positive-fixnum' like we do in init.el; that's too high -- we
;; don't want to intentionally leak memory.
(setq gc-cons-threshold 134217728)   ; 128mb
(let* ((loaddir (file-name-directory (file-truename load-file-name)))
(emacsdir (getenv "EMACSDIR"))
(user-emacs-directory
(abbreviate-file-name
(if emacsdir
(file-name-as-directory emacsdir)
(expand-file-name "../" loaddir)))))
;;
(load (expand-file-name "core/core.el" user-emacs-directory) nil t)
;; HACK Load `cl' and site files manually so we can stop them from polluting
;;      CLI logs with deprecation and file load messages.
(quiet! (when (> emacs-major-version 26)
(require 'cl))
(load "site-start" t t))
(doom-log "Initializing Doom CLI")
(require 'core-cli)
(defcli! :main
((help-p   ["-h" "--help"]    "Same as help command")
(debug-p  ["-d" "--debug"]   "Turns on doom-debug-p (and debug-on-error)")
(yes-p    ["-y" "--yes"]     "Auto-accept all confirmation prompts")
&optional command &rest args)
"A command line interface for managing Doom Emacs.
Includes package management, diagnostics, unit tests, and byte-compilation.
This tool also makes it trivial to launch Emacs out of a different folder or
with a different private module."
:bare t
(when debug-p
(setenv "DEBUG" "1")
(setq doom-debug-p t)
(print! (info "Debug mode on")))
(when yes-p
(setenv "YES" "1")
(setq doom-auto-accept t)
(print! (info "Auto-yes on")))
(when help-p
(when command
(push command args))
(setq command "help"))
(when (equal (user-real-uid) 0)
  (print!
   (concat "WARNING: This script is running as root. This likely wasn't intentional, and\n"
           "is unnecessary to use this script. This will cause file permissions errors\n"
           "later if you use this Doom installation on a non-root account.\n"))
  (unless (or doom-auto-accept (y-or-n-p "Continue anyway?"))
    (user-error "Aborted")))

;; Load any the user's private init.el or any cli.el files in modules. This
;; gives the user (and modules) an opportunity to define their own CLI
;; commands, or to customize the CLI to better suit them.
(load! doom-module-init-file doom-private-dir t)
(maphash (doom-module-loader doom-cli-file) doom-modules)
(load! doom-cli-file doom-private-dir t)
(run-hooks 'doom-cli-pre-hook)

(let (print-level print-gensym print-length)
  (condition-case e
      (if (null command)
          (doom-cli-execute "help")
        (let ((start-time (current-time)))
          (and (doom-cli-execute command args)
               (progn (run-hooks 'doom-cli-post-hook) t)
               (print! (success "Finished! (%.4fs)")
                       (float-time
                        (time-subtract (current-time)
                                       start-time))))))
    (user-error
     (print! (error "%s\n") (error-message-string e))
     (print! (yellow "See 'doom help %s' for documentation on this command.") (car args))
     (error "")) ; Ensure non-zero exit code
    ((debug error)
     (print! (error "There was an unexpected error:"))
     (print-group!
      (print! "%s %s" (bold "Type:") (car e))
      (print! (bold "Message:"))
      (print-group!
       (print! "%s" (get (car e) 'error-message)))
      (print! (bold "Data:"))
      (print-group!
       (if (cdr e)
           (dolist (item (cdr e))
             (print! "%S" item))
         (print! "n/a")))
      (when (and (bound-and-true-p straight-process-buffer)
                 (string-match-p (regexp-quote straight-process-buffer)
                                 (error-message-string e)))
        (print! (bold "Straight output:"))
        (print-group! (print! "%s" (straight--process-get-output)))))
     (unless debug-on-error
       (terpri)
       (print!
        (concat "Run the command again with the -d (or --debug) switch to enable debug\n"
                "mode and (hopefully) generate a backtrace from this error:\n"
                "\n  %s\n\n"
                "If you file a bug report, please include it!")
        (string-join (append (list (file-name-nondirectory load-file-name) "-d" command)
                             args)
                     " "))
       ;; Ensure non-zero exit code
       (error ""))))))

(doom-cli-execute :main (cdr (member "--" argv)))
(setq argv nil))

No solarized package exists on melpa, elpa, or emacsmirror, as the error suggests. I searched for solarized on MELPA and see two likely matches:

color-theme-sanityinc-solarized
solarized-theme

To quote the "Installing packages" section of our documentation:

If a package could not be found in any known repo you will get an error like:

Could not find package X in recipe repositories: (org-elpa melpa gnu-elpa-mirror emacsmirror-mirror)

The most likely cause for this is either:

You’ve misspelled the package’s name.
Or the package really doesn’t exist on ELPA, MELPA, or EmacsMirror and you’ll need to specify a recipe for it.

The problem i Doom is not working anymore after upgrade. first message was about melpa package, but after reboot Error in Doom Emacs core: Doom is in an incomplete state, run 'bin/doom sync' on the command line to repair it

ok, @hlissner
Removed solarized and placed solarized-theme instead.
Now the error is:
There was an unexpected error:   Type: error   Message:     error   Data:     "Could not find package org-superstar in recipe repositories: (org-elpa melpa gnu-elpa-mirror emacsmirror-mirror)"
But this package exists as you can see here
https://melpa.org/#/org-superstar

If you are upgrading from a fairly old version then you'll just need to run doom sync -u to update your local caches for melpa/elpa/etc.
If this doesn't work, update them manually:
rm -f ~/.emacs.d/.local/straight/build-cache.el
cd ~/.emacs.d/.local/straight/repos/melpa
git pull
doom sync

Hope that helps!

solved reinstalling from scratch. Seems that Doom was not updated from very far ago.


The intelligent perception of vscode cannot correctly identify the attributes of the object in the pipe () method of pandas

python
pandas
problem:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3]})
df2 = df.pipe(lambda x: x + 1)
print(type(df))
print(type(df2))

The output result is
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>

But when I put the mouse over df2, the attribute displayed is any.
expect:
When I put the mouse over df2, the properties displayed are the same as the output

lamda function has no type annotation, we dont know what x is.
this should work.
from typing import Callable
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3]})
l: Callable[[pd.DataFrame], pd.DataFrame]  = lambda x: x + 1
df2 = df.pipe(l)
print(type(df))
print(type(df2))


python changed

AttributeError: module 'sys' has no attribute 'maxint'
'maxint' is 'maxsize' now!!
change lines of engine.py:

113
377

fixed by this PR : https://github.com/skitoo/kivy-particle/pull/4


Enhance the CachingMemoryManager to possibly handle high memory pressure

Enhance the CachingMemoryManager to handle high memory pressure by adding 2 options.
Note: the default behavior is unchanged.
Add a new API to MemoryManagerAdapter to setOption().
Side: remove some glog includes failing compilation if glog-dev not installed locally
Original Issue:
https://github.com/facebookresearch/flashlight/issues/180
closes #180
Summary
The CachingMemoryManager being greedy in memory. This PR adds 2 options to mitigate this.
Test Plan (required)
Implemented a new unitest in order to show OOM with the default CachingMM and no OOM if the right option is set.

@WilliamTambellini - thank again for the contribution - looks good to me - do me a favor and rebase on matter then we'll be ready to merge.

@WilliamTambellini - thank again for the contribution - looks good to me - do me a favor and rebase on matter then we'll be ready to merge.

done


Remove the usage of Popper.tsx component

          We also need to get rid of the Popper.tsx component in favor of Floater Primitive

Originally posted by @kotAPI in https://github.com/rad-ui/ui/issues/587#issuecomment-2508855423

@decipher-cs your thoughts on this?

I think we should definitely do it sometime in the future but right now it doesn't seem like something we should invest time implementing.


feat: support tagging recordings

Hello,
I am submitting a PR to support a wrapper for tagging Hotjar recordings so my team can use this in a project.
hj('tagRecording', ['tag1', 'tag2']);

I am unfamiliar with contributing to open-source projects so please let me know if I am missing anything.
Thanks!

@honicole thank you very much for your contribution, it really gladens me knowing this tool is of help. Thanks for the grammar fixes too haha
@all-contributors please add @honicole for code, ideas, doc

I'll reply here once the new version is up and running. We still have to add it to actions.

Please do check for version 1.2.0 and report back if everything is ok @honicole
Again, thank you.
https://www.npmjs.com/package/react-use-hotjar/v/1.2.0

@olavoparno Hi, it is working great, thanks!


a question about creating a surface in Gmesh

Hello everyone,
I am trying to create a 2D mesh in Gmesh. The geometry has 2 different plans (x,y, and x,z) at the same mesh. I draw it via AutoCAD and imported it in Gmesh using it as a step file.
Now, I am trying to define a surface but in vain, it selects the boundaries but does not keep it as a surface (there is no e option, only q) .
Would anyone know how to do this?

Hello,
I think you should ask directly to de people developing GMSH, they are on Gitlab: https://gitlab.onelab.info/gmsh/gmsh
The tool GMSH-Airfoil-2D is really just to create automatically meshes around 2d profile without openning GMSH.

I see, thanks for reply

Do you know what is the problem?
I signed up for it and when I came to sign in this message appears "See attachment". Who is your GitLab administrator?
I am sorry I am new to Gmesh.

No sorry I can't help you, I did not use Gitlab


Hi bro any update for the new map?

i means just the map  not the data and decrypt

i means just the map  not the data and decrypt


enum_select error

I added enum_column3 to my gemfile for a rails 3.01 project, installed it with bundler, and created and ran a migration. I confirmed in the rails console that the column was created as expected. Here is the error output:
undefined local variable or method `enum' for #ActionView::Helpers::InstanceTag:0x29e7f94
Extracted source (around line #24):
21:
22:
23:     <%= f.label :subject %>
24:     <%= f.enum_select :subject %>
25:
I have traced it to line 34 in active_record_helper.rb:
31:  if (value = self.object.__send__(method_name.to_sym))
32:    options[:selected] ||= value.to_s
33:  else
34:    options[:include_blank] = enums.allows_nil? if options[:include_blank].nil?
35:  end

enums is not defined or referenced anywhere outside line 34.

fixed in https://github.com/electronick/enum_column/commit/0285260c02ad136f4636e5f8d009bf34dc5a128b


Failure information with RESTful interface

When Grobid fails to process a PDF, the REST response should indicate if the failure is due to a PDF timeout, a corrupted PDF or a Grobid process error.

I believe this has been implemented when migrating to dropwizard

yes !


clock_adjtime: use small lock to protect g_adjtime_ppb g_adjtime_wdog

Summary
clock_adjtime: use small lock to protect g_adjtime_ppb g_adjtime_wdog
reason:
We would like to replace the critical section with a small lock.
Impact
clock_adjtime
Testing
ci ostest

[Experimental Bot, please feedback here]
No, this PR likely does not fully meet the NuttX requirements.  While it provides some information, it's severely lacking in detail and completeness.
Here's a breakdown of the missing pieces:

Summary:  The "what" is described poorly.  While it mentions replacing a critical section with a small lock, it doesn't explain why this is necessary (performance improvement, deadlock avoidance, etc.). It also lacks detail on how the change is implemented (what lock is used, how it integrates with existing code).  There's no mention of related issues.

Impact:  This section is almost entirely empty.  Simply stating "clock_adjtime" doesn't explain the impact.  All the "NO/YES" questions need to be addressed with explanations if "YES".  Consider things like: Will the change affect the accuracy of timekeeping?  Will existing applications using clock_adjtime need to be modified? Are there any performance implications?

Testing:  "ci ostest" is insufficient.  The request needs specific details:

Build Host(s):  E.g., "Linux, x86_64, GCC 12.2.0"
Target(s): E.g., "qemu-rv32ima, sim:nsh"
Testing logs:  Actual logs demonstrating the problem before the change and the improved behavior after the change.  Simply saying "ci ostest" doesn't prove anything without the actual log output showing the difference.

In short, the PR needs significantly more information to be considered complete.  It needs to clearly explain the motivation, the implementation details, the potential impact on various aspects of the system, and provide concrete evidence that the change works as intended.


Compile instructions are incorrect

README.md says:
cd into dapl directory and "./configure" "make" and then "make install"
"find" says there is no such directory.

"make all" works in root directory, "make install" does not work, "make dev" does. I wish I could know what exactly is needed to run the test suite and if there is a way to avoid installing in /usr/.

The created deb package does not create an "htx" user so how to run the test suite - is absolutely unclear :-/

If you do not have a dapl directory, you did not follow the instructions.  The instructions explicitly say to download something.

Ubuntu 16 has libdapl-dev which means I do not have to download a thing, do not I?

I can create another issue with the exact same content if required (as this one is marked "closed" while it apparently is not solved), should I?

I think you are just misreading the documentation. Steps 3.1,3.2,3.3 are only required on Ubuntu 14.04. If you already have libdapl, you don't need to do them.

Step 3 says "apt-get install gcc make libncurses5 g++ libdapl-dev" and apparently it is needed to compile htx, not just dapl. So I assume the step 3 is necessary whether it is 14.04 or not. And 14.04 is is only mentioned in 3.1 so I assumed that 3.2 and 3.3 are needed for every ubuntu. I have no idea what dapl is so I can also expect that lets say makefile will clone it locally or something like this and compile it. May be "dapl" is a test engine itself, and I do have to compile it no matter what, do I really have to google it?... And I just see step 1 installs only git but not gcc and step 3 installs gcc and why it is not in step 1 - I do not understand.
What I am saying is that  README.md could be structured better. You apparently disagree, ok.

@aik - No, I agree that README could be phrased better now that I understand the problem.  Your initial problem report could have included much more details on the steps you took to "produce" this and what system you were running on.

@manishmukul - Please look at the phrasing of steps 3.1 thru 3.3.  As @aik points out those are only necessary for Ubuntu 14, but the current wording makes it not obvious if 3.2 and 3.3 should be ran all the time or only for Ubuntu 14.

libncurses5-dev also needs to be installed

Sure, we can look at rephrasing readme. But making 3.2 and 3.3 bullets specific to ubuntu 14.04 would not be correct. We have couple of test systems running ubuntu 16.04
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial
and there libdapl-dev is not installed by default. I am not sure if it varies from flavor to flavor but its required for ubuntu 16.04 as well in some cases. We will add a note that these steps are not required if libdapl-dev is already installed.

not installed != not available from repo. 3.2 and 3.3 are telling about building dapl while it can just be  installed. Or I am missing the point.


"npm install -g generator-ng2-alfresco-app" fails on Windows 7 & CentOS 7.2

Trying to execute the command - "npm install -g generator-ng2-alfresco-app" fails on Windows 7 & CentOS 7.2
Attaching the npm-debug.log for both environment.
npm-debug-centos.txt
npm-debug-win7.txt

Hi Sujay,
Thanks for your feedback. Can you clone the project from Github and then try to execute the following commands inside the generator folder:
$ npm install -g nsp
$ nsp check

I think this thing could help us to understand the problem.

Hi Mario,
Here is the output for Win7.
C:\alf51dev\angular\generator-ng2-alfresco-app>npm install -g nsp
C:\Users\pillais1\AppData\Roaming\npm\nsp -> C:\Users\pillais1\AppData\Roaming\npm\node_modules\nsp\bin\nsp
C:\Users\pillais1\AppData\Roaming\npm
--<EMAIL_ADDRESS> +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | | --<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS> | --<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| --<EMAIL_ADDRESS> +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | | --<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS> | --<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| --<EMAIL_ADDRESS> +--<EMAIL_ADDRESS> +--<EMAIL_ADDRESS> +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | --<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | --<EMAIL_ADDRESS> | +--<EMAIL_ADDRESS> | --<EMAIL_ADDRESS>--<EMAIL_ADDRESS>   +--<EMAIL_ADDRESS>   --<EMAIL_ADDRESS>C:\alf51dev\angular\generator-ng2-alfresco-app>nsp check
(+) No known vulnerabilities found

@sujaypillai can you update the generator version to 0.0.18 and retry?

Got success on Win7 -

C:\alf51dev\angular\generator-ng2-alfresco-app>npm generator --version
3.10.2

C:\alf51dev\angular\generator-ng2-alfresco-app>npm install -g generator-ng2-alfresco-app
npm WARN deprecated<EMAIL_ADDRESS>cross-spawn no longer requires a build toolchain, use it instead!
C:\Users\pillais1\AppData\Roaming\npm
`--<EMAIL_ADDRESS>

@sujaypillai great! can you check it also on CentOS 7.2?

Testing the same with the official IE 11 on Win7 image without any problems. Used both admin and non-admin user. Used node.js 6.2.2 with npm 3.9.5

Tested with Mac OS X, Ubuntu and Win8, success all around for me

Works with CentOS 7.2 with some warnings as below -

npm WARN unmet dependency /lib/node_modules/block-stream requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /lib/node_modules/fstream requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /lib/node_modules/fstream-ignore requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /lib/node_modules/fstream-npm requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /lib/node_modules/glob requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /lib/node_modules/npmconf requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /lib/node_modules/tar requires inherits@'2' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
<EMAIL_ADDRESS>/lib/node_modules/generator-ng2-alfresco-app
├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Great! At this point I think we can close it. Thanks @sujaypillai @ohej  @DenisVuyka @magemello for the help


Fix bug where Csr::add_node adds existing edges to new node

add_node used 0 as column offset, causing all existing edges to be added to the new node.

Thanks for finding this


Fixed typo (envrion to environ) in setup.py. Issue number 408.

Hi nmslib community,
I have fixed bug #408 in the branch named '408' in my fork. This small typo impacted arch flavors of Linux, preventing us from using nmslib on our scientific computing cluster. Thank you for your work,
Brendan``

Cool, could you resubmit this into develop? Many thanks!


Base Skeleton Creation

[x] Create a base template
[x] Create python package
[x] Create tests
[x] Create research notebook ipynb
[x] Run tests

resolved the issue


Review method

This PR

update the request method for editing review to be using DELETE and POST in restaurant/views.py
update the url since the views method no longer needs action parameter
update the corresponding tests (EditReviewTests in restaurant/tests.py and EditReviewTests in user/tests.py) to be using the latest url and request method

Type of Changes

[x] Enhancement

Frontend Requirement
update all the related urls and request methods

LGTM.


Add more to logrank results object

Pass through Seriess into the results object.
@arahuja

Coverage decreased (-0.1%) to 59.082% when pulling a3c253f0388c86c333bd68daca773b1d5af8f403 on logrank_results into 19fc835620977d5d31a983cb79213b9ed6eb7f25 on master.

@arahuja also added in the requests for survival curve labeling here (apologies for linking to a private repo).

LGTM

Coverage decreased (-0.4%) to 58.807% when pulling 376c64e9e0138a6cbbe69cc98fe720c421f63963 on logrank_results into 19fc835620977d5d31a983cb79213b9ed6eb7f25 on master.

@arahuja per your comment in the repo, I now pass through the whole series through Fisher's: https://github.com/hammerlab/cohorts/pull/121/commits/1bc9714162a5df04b942ecbf48b6f5850e6a2ed4

Coverage decreased (-0.4%) to 58.807% when pulling 1bc9714162a5df04b942ecbf48b6f5850e6a2ed4 on logrank_results into 19fc835620977d5d31a983cb79213b9ed6eb7f25 on master.

LGTM

@arahuja a few more minor changes, going to merge on 🍏  unless I hear otherwise.

Coverage decreased (-0.4%) to 58.807% when pulling dd245af585d848b25518318702acc3f925a0d169 on logrank_results into 19fc835620977d5d31a983cb79213b9ed6eb7f25 on master.

Coverage decreased (-0.6%) to 58.589% when pulling dd245af585d848b25518318702acc3f925a0d169 on logrank_results into 19fc835620977d5d31a983cb79213b9ed6eb7f25 on master.


Snapshotting view hierarchy throws error `UIViewControllerHierarchyInconsistency

I'm getting the error mentioned in the title.
I could find on closed issues a similar one #310 that was closed but the error persists though, so I'm opening this new issue for that.
Bellow is a very simple test case to reproduce it:
import SnapshotTesting
import XCTest

final class SnapshotViewControllerTests: XCTestCase {

    var rootViewController: UIViewController = UIViewController() {
        didSet {
            UIApplication.shared.keyWindow?.rootViewController = rootViewController
            rootViewController.beginAppearanceTransition(true, animated: false)
        }
    }

    override func setUp() {
        super.setUp()
        rootViewController = UIViewController()
    }

    func testRootViewController() {
        assertSnapshot(matching: rootViewController, as: .image)
    }
}

Thanks in advance
cc: @stephencelis @hassfers @GHMarcus

We detected something like this too. I was calling assertSnapshot on the unwrapped keyWindow and it was giving me headaches when trying to manually changing the keyWindow.rootViewController (I noticed it was incrementing the UIApplication.shared.windows.count everytime I was calling assertSnapshot). Then I tried doing the same thing @lnfnunes, calling assertSnapshot directly to the keyWindow.rootViewController and started getting the same error.
My guess is that this framework is creating separate windows for each assertSnapshot, even if the thing we are snapshotting is already inside a window hierarchy and it's breaking when it already is.

I'll create an issue for my specific problem with some better info later

I'm still seeing this issue myself. Is there any update on it?
My current workaround is to take my child VC and call removeFromParent() before asserting snapshots.


RFP - desktop-restore

Checklist

[x] The package I am requesting does not already exist on https://chocolatey.org/packages;
[x] There is no open issue for this package;
[x] The issue title starts with 'RFP - ';
[x] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL : http://www.midiox.com/index.htm?http://www.midiox.com/desktoprestore.htm
Direct download URL for the software / installer : http://www.midiox.com/zip/DesktopRestoreInstall.exe
Software summary / short description:
Name: Desktop Restore
Author: Midi-Ox
This is a very simple program that saves the positions of your desktop icons and allows you to easily restore the saved positions.

I will pick this up.

This has been submitted.  https://community.chocolatey.org/packages/desktop-restore

Thank you, @teknowledgist!  The world is now a better place :)

Package approved a while ago, thanks for creating the package @teknowledgist


Rendering female avatars

I am using the avatar renderer which works fine for male avatars but it looks like female avatars are rendered weird.
 Is this a bug or am I missing somethings?

Exactly what I was looking for, thanks a lot :)


"Integration | Component | sl date time: Date values applied correctly" test failing in CI

but not when ran locally on my machine.  Suspect node version.

Well, that wasn't it :-(


rebar3 hex user auth leads to cannot translate from UTF-8

The issue is random. Also, I'm new to rebar3, so I may be missing something.
If you agree that this should be fixed, I can go ahead and provide a PR.
Steps:
λ rebar3 hex user auth
# fill in username/password/local password
λ rebar3 hex search cowboy
===> Error found in repos auth config (/Users/j/.config/rebar3/hex.config) at line 6: cannot translate from UTF-8
λ rebar3 hex user auth
λ rebar3 hex search cowboy
# works fine

Here is a minimal repro, after looking at the hex user auth code. Run in shell, at the project root:
rebar3 do compile, eunit

cat > repro <<EOF
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pa _build/default/lib/rebar3_hex/ebin -pa _build/test/lib/rebar/ebin -Wall

loop(N, Filename) ->
    Encrypted = rebar3_hex_user:encrypt_write_key(<<"myusername">>,
                                                  <<"">>,
                                                  <<"mywritekey">>),
    Output = iolist_to_binary([io_lib:print(Encrypted) | ".\n"]),
    file:write_file(Filename, Output),
    case file:consult(Filename) of
        {ok, _} ->
            loop(N+1, Filename);
        {error, Err} ->
            {N, Err}
    end.

main(_) ->
    Filename = "tmp.txt",
    {N, Err} = loop(0, Filename),
    {ok, Contents} = file:read_file(Filename),
    io:format("n: ~B, filename: ~ts, error: ~ts\n~s", [N, Filename, file:format_error(Err), Contents]).
EOF

escript repro

Here is the output of rebar3 report

hi @blandinw this is definitely an interesting one! If you have a fix I would suggest opening it up on https://github.com/erlang/rebar3/ as rebar3_hex isn't responsible for reading or writing the files. Hopefully it's something that can be fixed that doesn't require patching OTP 🤞 .

I'm not sure how that works. encrypt_write_key does not return a term that you could just pass to iolist_to_binary. THe term is possibly not safe to pass directly to a write that needs to be interpreted. An option might rather be to use io_lib:format("~w.~n", [Encrypted]).

@ferd that seems to fix the issue 👍, the change will have to be done in rebar3 vs rebar3_hex as rebar3_hex just delegates to rebar_hex_repos:update_auth_config/2 to in rebar3.

Rebar3 is calling to rebar3_hex?!

@ferd nah...

rebar3_hex_user calls rebar3_hex_config:update_auth_config/2 after generating keys.
rebar3_hex_config:update_auth_config/2 delegates to the module rebar_hex_repos:update_auth_config/2 in rebar3

Bit confusing per the hex in names.

Using io_lib:format("~lp.~n", [Encrypted]) fixes the issue and preserves the pretty printing.
In other words, in rebar_hex_repos:update_auth_config/2, we should use the above instead of io_lib:print.
I can provide a PR tomorrow if nobody gets to it before then.

Using io_lib:format("~lp.~n", [Encrypted]) fixes the issue and preserves the pretty printing.
In other words, in rebar_hex_repos:update_auth_config/2, we should use the above instead of io_lib:print.
I can provide a PR tomorrow if nobody gets to it before then.
EDIT actually, it just turns all chars into numbers, so I'm not sure pretty printing matters too much 😊

Yeah, "~p.~n" should be the way to go, just tested that, looks good :
$ cat ~/.config/rebar3/hex.config

#{<<"hexpm">> =>
      #{read_key => <<"d68707e7588fc0f4c18aacfbbcd2828f">>,
        repo_key => <<"88f5eb5b24de49ec165a14e14085cfef">>,
        username => <<"jose">>,
        write_key =>
            {<<113,41,250,91,107,60,171,197,241,73,152,223,202,142,160,110>>,
             {<<213,224,50,151,1,85,140,96,15,165,230,94,142,129,175,190,90,
                101,216,105,229,123,182,240,230,150,76,5,136,88,112,145>>,
              <<24,136,85,244,37,124,22,162,121,200,135,241,235,2,7,24>>}}}}.

$  rebar3 hex user whoami
hexpm : jose<EMAIL_ADDRESS>
 rebar3 hex publish --replace
===> Verifying dependencies...
Publishing truecoat 0.42.0 to hexpm
  Description: It gets installed at the factory
  Dependencies:

  Included files:
    LICENSE
    README.md
    rebar.config
    rebar.lock
    src/truecoat.app.src
    src/truecoat.erl
  Licenses: Apache 2.0
  Links:

  Build tools: rebar3
Be aware, you are publishing to the public Hexpm repository.
Before publishing, please read Hex CoC: https://hex.pm/policies/codeofconduct
Proceed? ("Y")> y
Local Password:
===> Published truecoat 0.42.0
===> Published docs for truecoat 0.42.0


How can I remove unused SVGs?

I'm currently trying to remove unused SVGs from a distributed sprite using cleanupIDs, according to the documentation remove unused and minify used IDs but when I run the gulp task the file size doesn't seem to decrease.
Below is the gulp task i'm runnig.
gulp.task('svgs', () => {
  gulp.src(`${PATTERNS_ACCESS}/src/svg/*.svg`)
    .pipe(svgmin())
    .pipe(svgstore({
      inlineSvg: true
    }))
    .pipe(rename('icons.svg'))
    .pipe(gulp.dest('assets/svg/'))
    .pipe(hashFilename({format: HASH_FORMAT}))
    .pipe(gulp.dest('assets/svg/'));

    gulp.src([
      `${DIST}/svg/*.svg`
    ])
    .pipe(svgmin({
       plugins: [{
          cleanupIDs: {
            force: true,
            remove: true,
            minify: true
          }
       }]
    }))
    .pipe(gulp.dest(`${DIST}/svg`));
});

Would you be able to provide an example file to reproduce the issue with?

I'll close this for now. Still happy to look at this if you're still encountering the problem and willing to provide a minimal reproducible example, though!
Sorry it took so long to get around to this!


changed auto theme tooltip title to camel case

Hey, I just made a Pull Request!
In user setting theme feature if we see
for light theme & dark theme the tooltip name in camel case like Select Light Theme & Select Dark Theme
but for Auto theme its shows Select auto theme which is not following correct camel case

have changed like following

exist:

changed:

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

@jhaals @tudi2d please validate

@jhaals Can you take a look !

@jhaals @tudi2d Take a look please


Configuration cache issues

Hello,
since installing this plugin we are experiencing a configuration cache issue where removing the compose_reports folder will completely invalidate configuration cache:
Calculating task graph as configuration cache cannot be reused because the file system entry 'my-module/build/compose_reports' has been removed.
This folder shouldn't be included in configuration, it should only be part of task execution.

I have managed to find a reliable reproducer:

Delete .gradle/configuration-cache folder to start from a fresh slate
Run compileDebugKotlin --configuration-cache
Run debugComposeCompilerCheck --configuration-cache
Delete my-module/build/compose_reports
Run compileDebugKotlin --configuration-cache
Run debugComposeCompilerCheck --configuration-cache

BUG: Build will not reuse configuration cache and will fail with error described above.

Hey! Sorry for the delayed response. For some reason I didn't get any notification to my email. Will take a look shortly

thanks again for the report. i got a solution going locally, should have a PR up shortly

I cannot reproduce this one anymore, thanks!

I managed to reproduce it again, albeit with a slightly different error message:

Delete .gradle/configuration-cache folder to start from a fresh slate
Run debugComposeCompilerCheck --configuration-cache
Delete my-module/build
Run debugComposeCompilerCheck --configuration-cache again

BUG: Build will not reuse configuration cache with Calculating task graph as configuration cache cannot be reused because an input to plugin 'com.android.internal.library' has changed. warning.

I'm not entirely sure the above issue is related to this plugin.
If I repro the steps but just deleting the my-module/build/compose_reports folder, it works as expected
com.android.internal.library isn't anything that is familiar to me. I see this youtrack link for a similar issue related to a bug in kapt that gives the same message https://youtrack.jetbrains.com/issue/KT-58167/Applying-KAPT-plugin-to-Gradle-8.1-causes-configuration-cache-miss
I was able to repro the steps above in my sample project, but when I removed ksp (and the one library depending on ksp) from that module, I was no longer able to repro. I added back just ksp, and I was not able to repro. It was only after adding back the one library depending on ksp did I see the behavior again
This is the library I added to my sample project to help verify ksp related stuff, so I'm thinking more it's either ksp / some other dependency related?
https://github.com/bennyhuo/KotlinDeepCopy

I think this might be caused by using beforeVariants: https://github.com/j-roskopf/ComposeGuard/blob/51ec02458598cc52bffae9d3c2e585ccf57cac17/compose-guard/gradle-plugin/src/main/kotlin/com/joetr/compose/guard/ReportGenPlugin.kt#L391
Probably Gradle considers everything used inside this block as a dependency to the Android plugin?

I'm not entirely sure, that could be true, but that still wouldn't explain why when removing KSP and ksp dependencies from my test project (while still applying compose guard) the issue goes away. can you repro the issue with no annotation processing and compose guard applied?

You are right, I did some debugging and it does appear to be KSP-related:

It is weird that it happens only with compose guard, but I guess we can't do much here. Thanks for looking into it.

https://github.com/j-roskopf/ComposeGuard/blob/d966181e0471cd6548b77aa6cd83204a1879bef5/compose-guard/gradle-plugin/src/main/kotlin/com/joetr/compose/guard/ReportGenPlugin.kt#L217
I think this line might cause some more issues, because it checks whether directory is not empty in configuration time

Yup, I can reproduce:

Delete my-module/compose_reports
Delete .gradle/configuration-cache folder to start from a fresh slate
Run compileDebugKotlin --configuration-cache
Create my-module/compose_reports folder
Run compileDebugKotlin --configuration-cache again

Configuration cache fails with Calculating task graph as configuration cache cannot be reused because directory 'my-module/compose_reports' has changed.
This is with Compose Guard 2.3.4

I think this line may also be problematic:
https://github.com/j-roskopf/ComposeGuard/blob/d966181e0471cd6548b77aa6cd83204a1879bef5/compose-guard/gradle-plugin/src/main/kotlin/com/joetr/compose/guard/ReportGenPlugin.kt#L149
Basically, you should not access any file properties durign configuration time, you can only do this during execution time.

Above does not reproduce anymore with 2.3.5, because you added checks for write or check task. But it still reproduces if you use debugComposeCompilerCheck instead of compileDebugKotlin.
Above genDirectoryNotEmpty example is luckily very easy to fix. You just have to move the whole check to the upToDateWhen block:
                            t.outputs.upToDateWhen {
                                val isGenDirectoryNotEmpty = genExtension.outputDirectory.get().list()?.isNotEmpty() == true
                                isGenDirectoryNotEmpty
                            }

upToDateWhen block is executed at execution time, not configuration time, so it does not violate the configuration cache anymore.

will push out the change with 2.3.6
                            t.outputs.upToDateWhen {
                                val isGenDirectoryNotEmpty = genExtension.outputDirectory.get().list()?.isNotEmpty() == true
                                isGenDirectoryNotEmpty
                            }

I can still reproduce with 2.3.6, presumably because of the two leftover folder accesses that I mentioned above.
Repro project: ConfigCacheDemo.zip (essentially just a default Android hello world template, with Compose Guard added in).

Delete app/compose_reports
Delete .gradle/configuration-cache folder to start from a fresh slate
Run ./gradlew debugComposeCompilerCheck --configuration-cache
Create app/compose_reports folder
Run ./gradlew debugComposeCompilerCheck --configuration-cache again

Configuration cache fails with Calculating task graph as configuration cache cannot be reused because directory 'app/compose_reports' has changed.

The repro project wasn't in a good state to repro.
running debugComposeCompilerCheck without configuring the check task to report all on missing baseline
composeGuardCheck {
    reportAllOnMissingBaseline.set(true)
}

would result in an error of no baseline file. After adding that configuration, there are dynamic properties that exist in the sample project
* What went wrong:
Execution failed for task ':app:debugComposeCompilerCheck'.
> New @dynamic parameters were added!
  FunctionAndParameter(functionName=ConfigCacheDemoTheme, parameterName=darkTheme, parameterType=Boolean)
  More info: https://github.com/JetBrains/kotlin/blob/master/plugins/compose/design/compiler-metrics.md#default-parameter-expressions-that-are-dynamic

I modified the theme to remove support for dark mode and now see the Calculating task graph as configuration cache cannot be reused because the file system entry 'app/compose_reports' has been created.
I am no able to repro with 2.3.7, can you give it a try please?

Result of the task does not matter. For me, I could reproduce the configuration cache warning on 2.3.6 regardless of the missing baseline error, so I did not bother fixing it.
But 2.3.7 seems to resolve the issue, thanks!


Frontsite: improve document details page

add an anchor to jump "down" to the where to find section and/or details sections

Section Request a loan

show how many requests are pending

Section WHERE TO FIND

Needs to be re-designed to more clear, more compact.
Once a filter (a int.lib.) is selected, it is not possible to reset the selection
There could be documents with 20s items.
The items should be sorted in the following order:

first, the ones available for loan
then, the ones on loan, sorted by due date to get as first the ones that will become available sooner

About re-designing the where to find section, these are my proposals:

Using accordions to display the information of the buildings.

Using less accordions.

Any good sugestion to improve it or alternative solutions are welcome

I am not a real fan of accordions... they are annoying because you need to click to open/close.
Proposing something else to have ideas:

Let's consider the following:

CERN Library: 1 location, multiple buildings (internal locations) per library
Other libraries: multiple locations, 1 building (most of the time)

So you end up having: for CDS-ILS at CERN, 1 Tab and multiple tables. For any other, multiple tabs and 1 table per tab.
The active selected tab could be the user location, if logged in.


Necessary permissions are unclear at Blinky and/or subsequent story

AWS IoT EduKit > Blinky Hello World > Prerequisites
In "AWS CLI Configuration" section, the authority required to carry out the description "you will need to give necessary permissions to your IAM user." is not specified. I would like you to present a simple but compact authority set instead of a huge comprehensive authority.

In order to that, we would have to duplicate the full installation instructions and maintain our own set. Since the AWS CLI is subject to roadmap changes that we cannot track effectively, we cannot synchronize that at a level I am comfortable with. We require all users to not use a production AWS account and have the disclaimer in the introduction.
I see the merit and I would do this if it was more easily feasible. If this request comes up again, we will consider reducing the scope of the IAM policy for the user as an optional instruction after the official installation.

In order to that, we would have to duplicate the full installation instructions and maintain our own set. Since the AWS CLI is subject to roadmap changes that we cannot track effectively, we cannot synchronize that at a level I am comfortable with. We require all users to not use a production AWS account and have the disclaimer in the introduction.
I see the merit and I would do this if it was more easily feasible. If this request comes up again, we will consider reducing the scope of the IAM policy for the user as an optional instruction after the official installation.


I encountered this issue with the submission of v0.5.0，But I don't have the ability to solve him.

What platform am I on? What are my system specifications? Do I meet the minimum specifications for the Unreal Engine?
windows 64 bits  x64
What commit of the spear repository am I on? Am I synced to a specific tag, or am I synced to the head of the main branch?
I encountered this issue with the submission of v0.5.0
What SpearSim executable am I using? Did I build it myself or download it? If I downloaded it, is my code synced to the correct tag?
I am using a downloaded executable file, and now my operation is to configure the Python environment of the unreal editor.
If I built my own executable, what were the command-line options I used to build it? Does my issue go away if I download a pre-compiled executable and sync my code to the correct tag?
I did not build my executable file, and I did not perform the last step of building the executable file (python tools/run_uat. py -- unrereal Engine. dir path/to/UE.5.2-- build config Development build ok stage package archive pak interactive cooking), because you explained to me that the executable file built is the same as the one you provided. My current problem is that I plan to perform the MuJoCo Interoperability operation, but I am stuck in this step python run. py -- mjcf_file path/to/speaker pipeline/partment_0000/mujoco-scene/main.mjcf
What am I attempting to do, what do I expect to happen, and what actually happened?
I encountered an issue where after using Spear sim v0.5.0, I plan to use MuJoCo interoperability operations. At present, my step is to run it to the (Python tool/configuration_iditor-Python. py -- unreal. engine. dir path/to/UE. 5.2) step, but there may be some library issues during this step. I hope it can successfully install these libraries onto the Unreal Engine compiler, but it has not occurred
Here is the complete console output from when when I created the spear.Env object in my application.

My current problem is that I plan to perform the MuJoCo Interoperability operation, but I am stuck in this step python run. py -- mjcf_file path/to/speaker pipeline/partment_0000/mujoco-scene/main.mjcf

At present, my step is to run it to the (Python tool/configuration_iditor-Python. py -- unreal. engine. dir path/to/UE. 5.2) step, but there may be some library issues during this step.

Which is it? You're saying that you're stuck on two different steps.


some changes in SoftLayer_Virtual_Guest_Template ,needed by bosh-softlayer-cpi

According the SL API Doc(http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/createObject), added some miss properties in SoftLayer_Virtual_Guest_Template.
The modification is needed by the Create method in softlayer_creator.go in bosh-softlayer-cpi project ,otherwise, the bosh-softlayer-cpi 's build & CI will fail.

Hi, @wen-quan,
I have a couple minor comment. Can you please address?
Also, I am wondering if we can have a test that these new properties are loaded. For instance adding missing properties to this SoftLayer_Virtual_Guest_Service_createObject.json template and modifying this #CreateObject test so that we check for the new properties as well.
Once you do, please rebase, resubmit your PR and if all is well with Travis, I will merge.
Thanks much. Best,
@maximilien

Dear Max,
Great thanks for your reminder.
I will follow your suggestion. Thanks!

@wen-quan,
Travis is still failing. See the error:
Unit Testing packages:
# github.com/maximilien/softlayer-go/services_test
services/softlayer_virtual_guest_test.go:80: cannot use data_types.PrimaryNetworkComponent literal (type *data_types.PrimaryNetworkComponent) as type data_types.PrimaryNetworkComponent in field value
services/softlayer_virtual_guest_test.go:84: cannot use data_types.PrimaryBackendNetworkComponent literal (type *data_types.PrimaryBackendNetworkComponent) as type data_types.PrimaryBackendNetworkComponent in field value
ok  	github.com/maximilien/softlayer-go/client	0.021s
?   	github.com/maximilien/softlayer-go/client/fakes	[no test files]
?   	github.com/maximilien/softlayer-go/data_types	[no test files]
?   	github.com/maximilien/softlayer-go/main	[no test files]
FAIL	github.com/maximilien/softlayer-go/services [build failed]
?   	github.com/maximilien/softlayer-go/softlayer	[no test files]
SUITE FAILURE

I am also closing this. Please address and update and resubmit.


(Feature Request) Linux Support

Support for Besiege on Linux.

Ideally Linux should already be supported, but I haven't personally tested it as of yet.
On that note, UPM is currently in the process of being replaced by GPK: http://github.com/GamePluginKit/GamePluginKit
GPK is a much more versatile and well-written piece of software, although it's not yet ready for use (there's no documentation, for example). I'll be sure to let you know on this issue once GPK is ready and once Linux support has been tested.


The scraper does not shot that the job page for Marketplace Operations Sr Manager has a 404 error

ENVIRONMENT:
https://admin.peviitor.ro/
Browser: Chrome
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:
Enter url in browser
In go to "https://admin.peviitor.ro/" and click to jobs for "ADP"
Click on "Marketplace Operations Sr Manager" tab on "Catre Job "option
EXPECTED RESULTS:
The page shows the full description of the job
ACTUAL RESULTS:
The page shows a 404 error message, followed by "Sorry, we couldn't find the page you requested.
If this is a job link, the position might be closed."
See below the screenshot
Attachment:
Page from Validator for ADP

Jobul nu mai este disponibil


Naming convention for theorems

We still don't have a solid naming convention for theorems. I think the current code base is using at least 3 different styles.
Work items:

Design a naming convention for theorems.
Make sure there is at least some support in the Lean community.
Enforce the naming convention in this codebase.

We should this issue to discuss tradeoffs and problems.

Here are three different naming styles in src/Init:

camelCase

natAddZero
Classical.axiomOfChoice
Eq.mprProp

snake case, using existing caps for components

Lean.Simp.Ne_Eq
Lean.Simp.Or_True
Lean.Simp.or_true (boolean version)

snake case, always using camelCase for components

PUnit.eq_punit
runCatch_pure
seqLeft_eq_bind

Notes:

A downside of (1) is that it may not be clear whether e.g. Nat.isValidChar returns Bool or Prop
A downside of (2) is that conjunctions and verbs read better lowercase, e.g. Foo_and_Bar_iff_Rig reads better than Foo_And_Bar_Iff_Rig
A downside of (3) is that it cannot distinguish between the Prop/Bool versions of e.g. Or_True vs or_true

Also:

The same conventions should probably apply to constructors and structure fields
Some automatically-generated constructions can sometimes only return Prop, e.g. Or.recOn

@dselsam Thanks for summarizing the different styles we have tried.
Your numbering reflects the order we have tried them.
We gave up on 1, and I think all devs and most users dislike it.
We were also very unhappy with 2.
Option 3 seems to be the most promising one. As you pointed out, it also has problems, but I can tolerate it.

Option 3 seems to be the most promising one. As you pointed out, it also has problems, but I can tolerate it.

I agree it is the best of the 3, and tentatively agree that it is good enough.

I personally prefer option 2, but option 3 is fine as well. However, since the major problem with 2 is ugly verbs, I would suggest mixing 2 and 3. That is, I would preserve the original casing for nouns and use lower camelCase for verbs (i.e. Foo_and_Bar_iff_Rig instead of foo_and_bar_iff_rig and PUnit.eq_PUnit instead of PUnit.eq_punit). I would then have the namespace a given theorem is in dictate the meaning of verbs. That is, Bool.or_true means Bool or.

Option 3 seems to be the most promising one. As you pointed out, it also has problems, but I can tolerate it.

I agree it is the best of the 3, and tentatively agree that it is good enough.

I agree. Option 2 is intolerable to me because it does not abide by the rule that only values in Sort should be capitalized.

I experimented with (3). It seems reasonable, and I pushed a not-quite-ready patch to https://github.com/dselsam/lean4/tree/names
Notes:

It seems slightly awkward that we now have some induction_ons and some inductionOns
The patch required some staging care, since many theorems are used in Lean itself
All tests pass
I may have missed some defs, and I definitely missed both local variables and tests theorems
Happy to do a more thorough pass if there is interest in merging

Related issues:

We are still inconsistent about naming definitions that return propositions. For example, technically isValidChar should be IsValidChar since it returns a Prop, even though it is designed to be used as a Bool via Decidable.
There has been some Zulip discussion (not represented yet in this issue) about sticking to camelCase for terms that return Prop, so e.g. isValidChar, prime, primes, and and. It is not directly related to this issue though, since the theorem names would stay the same.

There seems to be consensus on (3). @digama0 recently proposed an alternative capitalization scheme for sorts which is compatible with (3) and which seems to have reached lean4-channel consensus on Zulip. The proposal is to only use PascalCase for terms that either (a) syntactically return Sort <level != 0> or (b) coerce to Sort <level != 0>. Many ideas were floated for how to deal with Prop-vs-Bool versions of true and false, and the simplest one is just to add two exceptions to the rule and capitalize Prop True and False as is currently done. Two of the benefits of this proposal are that (a) Props are often decidable and used in programming as Bools and (b) it is easier to spot structure fields that will be erased at runtime.
Examples:
def Set (α : Type u) : Type u := α → Prop -- PascalCase since it returns Type u
def isValidChar : Char → Prop -- camelCase since it returns Prop

instance : CoeSort (Set α) (Type u)
def ValidChars : Set Char -- PascalCase since Set Char coerces to sort

def SetNoCoe (α : Type u) : Type u := α → Prop
def validCharsNoCoe : SetNoCoe Char

Many ideas were floated for how to deal with Prop-vs-Bool versions of true and false, and the simplest one is just to add two exceptions to the rule and capitalize Prop True and False as is currently done.

What about Eq, And, Or, Iff, HEq, etc?

In @digama0's proposal, they would be lowercase, and their namespaces would be lowercase, but note that all five have notation and so would essentially never be used directly. Also, thanks to the notation, and and or would not clash with Bool.and and Bool.or.

In @digama0's proposal, they would be lowercase, and their namespaces would be lowercase, but note that all five have notation and so would essentially never be used directly. Also, thanks to the notation, and and or would not clash with Bool.and and Bool.or.

Unfortunately, this is unacceptable to me.
We should focus on the topic of this issue: naming convention for theorems.
I am happy to hear feedback on how to name theorems. I am also willing to change the theorem names in the Init and Std packages. Eq, And, Or, etc are not theorems.
Regarding definitions such as
def isValidChar : Char → Prop -- camelCase since it returns Prop

We can avoid this problem by making them return Bool.

We gave up on 1, and I think all devs and most users dislike it.

Why is the camelCase style disliked? It seems quite elegant.

@FormallyVerifiedWaffleMaker The problem was that since functions are in camelCase style it has to disambiguate a theorem about a function from a function itself (ex. ofBoolUsingEqTrue vs ofBoolUsing_eq_true).


Segmentation Fault Error on Grunt Build

I have used Yeoman Fullstack Genrator for my application and was trying to package it into a binary using this library.
I get a "Segmentation Fault" on starting "grunt build".
Not sure where am I getting this error from, no further logs are printed even with a
"-v" option. Where should I look for to solve this error?

Segmentation Fault means that node has crashed painfully (very rare) or that there's a big memory problem.
I don't see a reason for filling the memory in such great amounts- so you'll need to play around with it a little.
See if there's a complexity in your project that is not taken into account by the library.
Also if you are packaging node_modules too, you might want to try Browserify - with builtins turned off. It has become quite a standard, and some modules supply special instructions on how to package "for the browser", or in fact any standalone environment.


[CI][Python] test-conda-python-3.10-substrait build failing

Failing nightly build: test-conda-python-3.10-substrait
Something in the install_substrait_consumer.sh script goes wrong:
 #10 80.86 FAILURE: Build failed with an exception.
#10 80.86
#10 80.86 * What went wrong:
#10 80.86 Execution failed for task ':core:compileJava'.
#10 80.86 > Error while evaluating property 'javaCompiler' of task ':core:compileJava'.
#10 80.86    > Failed to calculate the value of task ':core:compileJava' property 'javaCompiler'.
#10 80.86       > Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=17, vendor=any, implementation=vendor-specific} for LINUX on x86_64.
#10 80.86          > No locally installed toolchains match and toolchain download repositories have not been configured.

Issue resolved by pull request 43051
https://github.com/apache/arrow/pull/43051


Vagrantfile/docs: Add option to specify system settings.

Two variables were declared and assigned the respective values of the
default settings for the system. If the keyword is used in the
~/.zulip-vagrant-config file, the value is assigned to the variable.
There is no straightforward way to customize the virtual machine's
number of cpus or amount of memory, this commit addresses that fact.
The settings were verified by checking the /proc directory, along with verifying settings in the actual VM program.
cpu count: cat /proc/cpuinfo | grep 'processor' | wc -l
memory: cat /proc/meminfo | grep 'MemTotal' | sed 's/[a-z|A-Z]*://' | sed 's/^ *//'

I think vagrant: is a fine prefix for this commit; generally it's implied that you may also be updating the docs for a feature when updating the feature.  And vagrant is an appropriately brief name for the subsystem being modified.

Posted a few comments, please retest after renaming the variables and then this should be good to merge.  Thanks for doing this!

Updated and tested with the changes @timabbott.

@whoodes I edited the text a bunch and then merged this as aac09b22ace2bb853ddcc919064ebc60ab4c6a27.
The main feedback for you is:

You should learn more about markdown -- filenames should always be in a code block escaped with backticks, and when referencing another section of an article, you can link to it using e.g. [text](#title-separated-by-dashes)
There were a few minor grammar errors -- in general, documentation has high standards for polish of the text since it is a way one can make a bad first impression.  So it's worth spending time on making the text clean, readable, and well presented.

Huge thanks for noticing and then doing this!  I'm surprised we hadn't done this better earlier :)

Got it, thanks for the feedback. I will focus on improving in those areas.  Fwiw, I did partially base not putting the bottom file name in tick marks based off:

If you'd like to be able to connect to your development environment from other
machines than the VM host, you can manually set the host IP address in the
'~/.zulip-vagrant-config' file as well. For example, if you set:

Which is the current state in the "specifying a proxy" setting.


Fix German newline size

In German keyboards, the return key uses a newline char symbol, but since it's a text instead of an image, the icon size becomes very small.
Fix this by mapping the symbol to the newline image.

This can be tested in master.


Row Classes Update Late

When scrolling quickly through the table the row classes are not being updated correctly onto the DOM; i.e., there will be two consecutive 'dt-row-odd's.  This is not a big issue unless one overrides the background color styles for alternating row colors- then it becomes blatantly apparent.  Looking more closely it appears to be related to rows that are only partially visible.  It never happens to a block of rows in the center.
I'll look into this a bit later.  I see a few different possibilities that could be the issues.
Speaking on another note; I work for a small team that will probably be using this component and there are a few outstanding issues that we (I) would like to fix- I forked the repo and will push some pull requests against it at some point.

Hi!
All pull requests are welcome! This repo will probably be renamed to angular-display-table and published to NPM at some point going forward.
Any teamwork appreciated 😃

I had to push this off for a bit to do some work in another area.  Will get back to it once that's over.

This is hard to replicate outside of my use case.  It is not present in any of the demo code in the repo.


⚠ Bofrost.es has degraded performance

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

HTTP code: 200
Response time: 1484 ms

Resolved: Bofrost.es performance has improved in bb0850d after 13 minutes.


Add CLI Option to terminate data on teardown

Description
This task is to add an option to the CLI command that spins down an Arkime Cluster to terminate the data associated with the cluster.  By default, data is retained
Acceptance Criteria

Able to terminate the Arkime data on spindown in addition to terminating the cluster

Looks like I already completed this task (see: https://github.com/arkime/cloud-demo/commit/0e4a6be1d4faa8796022a2f7637bdffd96b78b6a).  Resolving, as the acceptance criteria appear to have been met.


Make FluentUI be iOS 17 safe

Platforms Impacted

[x] iOS
[ ] macOS

Description of changes
Changes to the library to make it build against iOS 17, in case any clients are trying to do so:

traitCollectionDidChange(_:) is deprecated, so add @available(iOS, deprecated: 17.0) to all overrides.
UITraitCollection(traitsFrom:) is deprecated, so adding a conditional check and using the new UITraitCollection(mutations:) API when iOS 17 is available.
onChange(of:_:) has changed signatures, so I added a new onChange_iOS17(of:_:) to abstract that difference away. Feel free to suggest a better name if you have one 🤠

Note: this change doesn't do anything for the demo app itself. There are some significant refactors I'd like to do there before we worry too much about API deprecations. Don't worry, this won't affect consumers who pull us via CocoaPods or SPM.
Binary change
Total increase: 39,104 bytes
Total decrease: 0 bytes

File
Before
After
Delta

Total
30,982,416 bytes
31,021,520 bytes
⚠ 39,104 bytes

 Full breakdown

File
Before
After
Delta

FluentNotification.o
676,088 bytes
698,680 bytes
⚠ 22,592 bytes

__.SYMDEF
4,821,272 bytes
4,829,384 bytes
⚠ 8,112 bytes

UIColor+Extensions.o
73,328 bytes
78,896 bytes
⚠ 5,568 bytes

SwiftUI+ViewModifiers.o
133,128 bytes
135,960 bytes
⚠ 2,832 bytes

Verification
App builds and runs as expected -- no functional changes here.
Pull request checklist
This PR has considered:

[ ] Light and Dark appearances
[x] iOS supported versions (all major versions greater than or equal current target deployment version)
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Different resolutions (1x, 2x, 3x)
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
[ ] iPad Pointer interaction
[x] SwiftUI consumption (validation or new demo scenarios needed)
[x] Objective-C exposure (provide it only if needed)

Microsoft Reviewers: Open in CodeFlow

Don't we need to migrate the logic in traitCollectionDidChange(_:) to the new APIs Apple wants us to use for iOS 17?

Eventually, but for now this is good. Unfortunately, the new APIs don't exist before iOS 17, so as long as our code actually targets iOS 15 or 16, we can't actually rely on that new logic.


very minor  SonarLint

SonarLint very minor issue in the core module only.

@coheigea  You changes recently into the master branch has broken my merge commit . Please see this
Also, I have the latest from upstream master into my branch and I can build locally with success  with the below command
mvn process-classes compile -Pnochecks -DskipTests  on latest Java 8 from Oracle. Any idea

@alanmehio fixed: https://github.com/apache/cxf/commit/ca5d02bf9581a28971c8b8d021732972dce5377e

@amarkevich  There will be no changes to this pull request. I want to move to the next SonarLint level (medium) by opening another JIRA with more specific task to do. Please accept the PR


Refs #32219 -- Added admin model inline tests for verbose names.

Add tests for verbose names and verbose plural names of inline models, depending on the values for verbose_name and/or verbose_name_plural of their parent model.
This precedes https://github.com/django/django/pull/13710, which has these tests as amended to reflect the updated functionality in that PR.

@Siburg Thanks :+1: I removed test_verbose_parent because it's a regression test what we will add in #13710. I also changed to inline classes and re-used existing models to show you what I asked in previous comments.

Cool. Thank you. I'm delighted if you get it to work the way you wanted. I
trust you can take it further and merge when you are comfortable.
Cheers, Jelle
On Wed, 8 Sept 2021 at 21:27, Mariusz Felisiak @.***>
wrote:

@Siburg https://github.com/Siburg Thanks 👍 I removed
test_verbose_parent because it's a regression test what we will add in
#13710 https://github.com/django/django/pull/13710. I also changed to
inline classes and re-used existing models to show you what I asked in
previous comments.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/django/django/pull/14838#issuecomment-915071812, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGZIFVIKXRILELEGJLVI55TUA4T7ZANCNFSM5DRZAO4Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Restrict "master" to only be able to commit after LGTM

... but!
There should be a way to force push in case of emergency.

Or for trivial changes?

Yup

Actually, the easiest way to implement this would be to allow the PR creator to LGTM their own PR, and we'd only do so for the emergency/trivial case. Thoughts?

Does that work? If so, 👍.

Mm, lgtm.co might not support this. If it does, we should separate "trivial CL, so I LGTM'd it myself"  cases from "it was an emergency, I force pushed" cases.

Lgtm.co supports it, there's a config variable called "self_approval_off". They also let you define custom regex patterns which trigger LGTM approval so we can have "LGTM", "TRIVIAL" or whatever else we like.

SGTM, let's do something like "LGTM" and "TRIVIAL" like you're saying.

STGY @eyuelt?

So LGTM for an actual approval, TRIVIAL for a trivial fix, and FORCE if it's an emergency? And how do we make sure that the trivial change is actually trivial? Is trivial just for UI changes?

Hmm. Good question. And what if someone's only touching Sketch files?

I'm okay with going through LGTM to merge "design-work" into "master" only after design reviews.

So the standing question is how we enforce whether something is TRIVIAL or not. I guess that can just be a judgement call?

Yeah let's keep this a judgment call for now. We can always change our minds later.


Question: Why does Corretto rdepend on X11?

I am currently building greengrass-bin on kirkstone and it complains that distro feature X11 is disabled.
I checked and confirmed we do not need X11 at all for our distro.
I also confirmed that X11 is needed by corretto since https://github.com/aws4embeddedlinux/meta-aws/commit/8fd10095751b56647105e4c9a0074845785cb2af. Is there any chance to work around this runtime dependency? It feels like a really heavy dependency for an IoT device...
ERROR: Nothing RPROVIDES 'libxext' (but /build/../work/meta-aws/recipes-devtools/amazon-corretto/corretto-11-bin_<IP_ADDRESS>.1.bb RDEPENDS on or otherwise requires it)
libxext was skipped: missing required distro feature 'x11' (not in DISTRO_FEATURES)
NOTE: Runtime target 'libxext' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libxext']
NOTE: Runtime target 'corretto-11-bin' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['corretto-11-bin', 'libxext']
NOTE: Runtime target 'greengrass-bin' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['greengrass-bin', 'corretto-11-bin', 'libxext']

Hi, did spend some time on investigation, but don't have a full nice solution yet - some of this must also be discussed internally.
The root cause of this problem is that when you build your image with PACKAGE_CLASSES ?= "package_rpm", which is the default, then the dnf tool which is used in the image creation phase will throw an error message.
 Problem: conflicting requests
  - nothing provides libGL.so.1()(64bit) needed by corretto-8-bin-8.332.08.1-r0.core2_64
  - nothing provides libX11.so.6()(64bit) needed by corretto-8-bin-8.332.08.1-r0.core2_64
  ...

This is because the corretto-*-bin packages contain also binaries, which are linked against those missing libs.
If you use package_ipk there are no such checks.
In this case the recipe could be modified with something like this:
RDEPENDS:${PN} += " \     ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'libasound', '', d)} \     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'cairo pango gtk+ libgl libxi libxtst', '', d)} \ "
But what's the correct solution for package_rpm is under investigation - thank you for this report.

I see. Thanks for looking into it and confirming @thomas-roos!
I enabled X11 distro feature and it works now.
However, it almost doubled our rootfs size. This is definitely a workaround :(

good news - I think I found a good solution for now: https://github.com/aws4embeddedlinux/meta-aws/commit/2ca105f6f4adb4e5fbe02db6908f6d33d958062a
please try (make modifications manually) and give feedback.
Will take some time till it's in kirkstone branch, but knowing it's a working solution it might speed up the process.

I tested it on kirkstone and it seems to work well. Great job!!!! Thanks a lot!
I will report if I observe any issue.


Get wrong latest tag if we have different-rule tag

Hi, I have a project and have lots of tags. Not all of the tags is starts with v. E.g.
page_v3.19.1
v3.19.2
page_v3.19.2
v3.19.3
page_v3.19.3
v3.19.4
page_v3.19.4
v3.19.5
page_v3.19.5
v3.19.6
page_v3.19.6
v3.19.7
page_v3.19.7
v3.20.0
page_v3.20.0
v3.20.1
page_v3.20.1
v3.21.0
page_v3.21.0

The prefix with page_v is have nothing to do with v, I want to compare prefixes with v, not page_v. But I found the code, It always gets the latest tag and did not do anything to filter and compares newer tag.
https://github.com/antfu/changelogithub/blob/9913fd7c8d79f9d14d0a2beb21c0c91559fcbb7c/src/git.ts#L17

Do you have any solutions in mind?

Maybe provide an argument such as --prefix-with= and its default value to be v, then get all of the sorted git tags and do some filter?


Switch from glog to klog

Fixes https://github.com/kubernetes-sigs/descheduler/issues/145, including a new panic from the bump to 1.16

/kind bug
/priority important-soon

/approve
Thanks for the work :)


Feature Request: geysermc.org plugins (floodgate and geyser) for allowing bedrock clients

https://geysermc.org has mods/tools to enable a java edition server to also accept bedrock clients
i'd love to easily use it

Hmm. Generally I avoid packaging mods and plugins, due to version churn and the sheer scope. However Geyser and Floodgate are good contenders, since a Geyser standalone module would very much make sense here.

i did a little more research
https://download.geysermc.org/docs/swagger-ui/index.html has nice tools for the updates as well
geyser can be added as option to all server kinds and has pre-defined builds
when opening the firewall for it as well it would be perfect
im testing a local build of it atm, once it works i'l try to upstream

@RonnyPfannschmidt any update here? Considering trying this myself

I don't currently have the time to figure out packaging this myself, so contributions are welcome.

i currently have a own little script that generates the urls of current plugin versions
i haven't made the time to correctly upstream them
# minectaft-plugins.nix excerpt
{ pkgs, ... }:
{
  # Hangar
  viaversion = pkgs.fetchurl {
    url = "https://hangarcdn.papermc.io/plugins/ViaVersion/ViaVersion/versions/5.0.5/PAPER/ViaVersion-5.0.5.jar";
    hash = "sha256-SXU8E8b8xgMhskXPMmdwNodB3HgGNyet/rEtoqbCAWQ=";
    name = "ViaVersion.jar";
  };
  viabackwards = pkgs.fetchurl {
    url = "https://hangarcdn.papermc.io/plugins/ViaVersion/ViaBackwards/versions/5.0.4/PAPER/ViaBackwards-5.0.4.jar";
    hash = "sha256-v0Pq4pPsQv7+MSo3OZIUYWJC+rD9POy8NCIbvu9QD6M=";
    name = "ViaBackwards.jar";
  };
  # Geyser
  geyser = pkgs.fetchurl {
    url = "https://download.geysermc.org/v2/projects/geyser/versions/2.4.4/builds/694/downloads/spigot";
    hash = "sha256-Nu2IyiA+vLZERnzODJ6NO6U/oPqPsYxEMEgxGKd3hPM=";
    name = "geyser.jar";
  };
  floodgate = pkgs.fetchurl {
    url = "https://download.geysermc.org/v2/projects/floodgate/versions/2.2.3/builds/112/downloads/spigot";
    hash = "sha256-xHKOvGbnBFaaTWq+7KR35FVaBHrw+Lzk6oJhOrvD/ro=";
    name = "floodgate.jar";
  };
}

{ pkgs, ... }:
let
  # python scripts/fetch-downloads.py > machines/rpi4/minecraft-plugins.nix
  p = import ./minecraft-plugins.nix { pkgs = pkgs; };
  serverpkg = pkgs.paperServers.paper-1_21_1;

datapack = pkgs.fetchurl {
    url = "https://cdn.modrinth.com/data/UKUcgltR/versions/NuFJFG6m/PK_Waystones_V.3.4.0_MC_1.21.3.zip";
     sha512 = "b7a758160afeac4bf441054195b2e89a9125e8a06cb42e5169df3a6d1153c8ceb7d3a73f947a8ffa0c53774ae81b31117bf8aefafd6bbf455620a559592e09f7";
     };
in

{

  networking.firewall.allowedTCPPorts = [ 19132 ];
  networking.firewall.allowedUDPPorts = [ 19132 ];

  services.minecraft-servers = {
    enable = true;
    eula = true;

    managementSystem.tmux.enable=false;
    managementSystem.systemd-socket.enable=true;

    servers.paper = {
      enable = true;
      openFirewall = true;
      jvmOpts = "-Xms1024M -Xmx1024M -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:MaxInlineLevel=15"; # Avoid OOM
      package = serverpkg;
      serverProperties = {
        server-port = 25565;
        pvp = false;
        online-mode = true;
        level-name = "TheCherries";
        # white-list =
        allow-flight = true;
        enable-command-block = true;
        enforce-secure-profile = false;
        debug = true;
      };
      symlinks = {
        # To avoid internet access
        "cache/mojang_${serverpkg.version}.jar" = serverpkg.vanillaJar;

        "plugins/ViaVersion.jar" = p.viaversion;
        "plugins/ViaBackwards.jar" = p.viabackwards;
        "plugins/geysermc.jar" = p.geyser;
        "plugins/floodgate.jar" = p.floodgate;

      };
      files = {
        "TheCherries/datapacks/waystones.zip" = datapack;

        "plugins/floodgate/config.yml".value = {
          enabled = true;
          use-global-linking = true;
        };
        "plugins/Geyser-Spigot/config.yml".value = {
          remote = {
            auth-type = "floodgate";
          };
          bedrock = {
            servername = "RonnyPfannschmidt";

          };
          max-players = 10;
          config-version = 4;
        };
        # A mutable file
        "ops.json".value = [
  # fill your own
        ];
        "whitelist.json".value = [
 # dito
        ];

        "spigot.yml".value = {
          messages.unknown-command = "Unknown command, dummy!";
        };
      };
    };
  };
}

and my hackish WIP script to make the lost of modules
import asyncio
from binascii import b2a_base64, unhexlify
from dataclasses import dataclass, field
from typing import Any, ClassVar

import httpx
from packaging.version import Version
from rich.console import Console

@dataclass
class Forge:
    base_url: ClassVar[str]
    projects_of_interest: ClassVar[tuple[str, ...]]

    _client: httpx.AsyncClient = field(repr=False)

    async def _get(
        self, path: str, params: str | dict[str, str] | None = None
    ) -> httpx.Response:
        full_path = self.base_url + path
        return await self._client.get(full_path, params=params)

    async def _get_json(
        self, path: str, params: str | dict[str, str] | None = None
    ) -> dict[str, Any]:
        response = await self._get(path, params=params)
        response.raise_for_status()
        return response.json()

    def __init__(self, client: httpx.AsyncClient) -> None:
        self._client = client

@dataclass
class ProjectVersion:
    version: str
    url: str
    hash: str
    buildNUmber: int | None = None

    def sort_key(self) -> Version:
        return Version(self.version)

class Hangar(Forge):
    base_url = "https://hangar.papermc.io/api/v1"

    projects_of_interest = (
        "ViaVersion",
        "ViaBackwards",
        "Multiverse-Core",
        "Multiverse-Inventories",
        "Multiverse-Portals",
        "Multiverse-NetherPortals",
        "Multiverse-SignPortals",
        "WorldEdit",
        # "AtomShulkers",
    )

    # "CoreProtect",  external url
    async def get_project_versions(self, name: str) -> list[ProjectVersion]:
        data = await self._get_json(
            f"/projects/{name}/versions",
            params={
                "platform": "paper",
                "platformVersion": "1.21.1",
                "channel": "Release",
            },
        )
        versions: list[ProjectVersion] = []
        for version in data["result"]:
            try:
                versions.append(
                    ProjectVersion(
                        version=version["name"],
                        url=version["downloads"]["PAPER"]["downloadUrl"],
                        hash=hash_2_sri(
                            version["downloads"]["PAPER"]["fileInfo"]["sha256Hash"]
                        ),
                    )
                )
            except Exception as e:
                raise LookupError(name, version["name"]) from e

        versions.sort(key=ProjectVersion.sort_key)
        if not versions:
            raise LookupError(self, name)
        return versions

def hash_2_sri(sha256: str) -> str:
    raw = unhexlify(sha256)
    sri = b2a_base64(raw, newline=False).decode("ascii")
    return f"sha256-{sri}"

class Geyser(Forge):
    base_url = "https://download.geysermc.org/v2"
    projects_of_interest = "geyser", "floodgate"
    download_type = "spigot"

    async def get_project(self, name: str) -> dict[str, Any]:
        return await self._get_json(f"/projects/{name}")

    async def get_project_builds(self, name: str, version: str) -> dict[str, Any]:
        return await self._get_json(f"/projects/{name}/versions/{version}/builds")

    async def get_project_version(self, name: str, version: str):
        builds = await self.get_project_builds(name, version)

        def _build_url(build: dict[str, Any]) -> str:
            return f"{self.base_url}/projects/{name}/versions/{version}/builds/{build['build']}/downloads/{self.download_type}"

        return [
            ProjectVersion(
                version=version,
                url=_build_url(build),
                hash=hash_2_sri(build["downloads"][self.download_type]["sha256"]),
                buildNUmber=build["build"],
            )
            for build in builds["builds"][-1:]
        ]

    async def get_project_versions(self, name: str):
        project = await self.get_project(name)
        res = []
        for version in project["versions"]:
            res.extend(await self.get_project_version(name, version))

        return res

forge_types = [Hangar, Geyser]

async def main():
    console = Console()
    print("{pkgs, ...}: {")
    async with httpx.AsyncClient() as client:
        for kind in forge_types:
            forge = kind(client)
            console.print("#", kind.__name__)
            for project in kind.projects_of_interest:
                lastver = (await forge.get_project_versions(project))[-1]

                console.print(
                    f'  { project.lower() } = pkgs.fetchurl {{ url = {lastver.url}; hash="{lastver.hash}"; name = "{project}.jar"; }};'
                )
    print("}")

asyncio.run(main())


Support for commafeed from RSS Guard?

Hello, I am author of RSS Guard, which is multi-protocol and multi-plugin feed reader for desktops - Win, Linux, OS/2, macos, *bsd.
RSS Guard has plugin-like architecture and already supports some feed readers which provide APIs.
My question is: Would there be interest in me adding commafeed support into RSS Guard via your API? If sou, can you somehow estimate how many users would benefit from this?
RSS Guard is FOSS, no fees required, same stands for plugin implementation, I do it for fun in my free time.

My question is: Would there be interest in me adding commafeed support into RSS Guard via your API? If sou, can you somehow estimate how many users would benefit from this?

I don't know, I can't speak for everyone else, but I personnaly would not be using it as I like using a web browser to read my RSS feeds. I also almost always open interesting entries in tabs so it makes sense for me to read CommaFeed in a browser.

RSS Guard is FOSS, no fees required, same stands for plugin implementation, I do it for fun in my free time.

Implementing a plugin for your app is certainly feasible and if you decide to implement it feel free to let me know if I can help. The API is documented here.


feat: navbar

Creater NavBar component with links to: About, Hall of Fame, Timeline, TuringCup, Archive, Contact
Used headlessui for mobile view navbar transition animation

hall of fame spelling is wrong ,except that everything looks fine


ModuleNotFoundError: No module named 'django'

Describe the bug
Fail to run ./run_tests.sh with below error messages:
[+] Running 3/3
 ⠿ Container safe-transaction-service-ganache-1  Created                                                                                0.1s
 ⠿ Container safe-transaction-service-redis-1    Created                                                                                0.1s
 ⠿ Container safe-transaction-service-db-1       Created                                                                                0.1s
[+] Running 3/3
 ⠿ Container safe-transaction-service-redis-1    Started                                                                                0.6s
 ⠿ Container safe-transaction-service-db-1       Started                                                                                0.5s
 ⠿ Container safe-transaction-service-ganache-1  Started                                                                                0.5s
Traceback (most recent call last):
  File "/home/liudan/safe-transaction-service/manage.py", line 10, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/liudan/safe-transaction-service/manage.py", line 16, in <module>
    import django  # noqa
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/liudan/safe-transaction-service/manage.py", line 18, in <module>
    raise ImportError(
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

To Reproduce
Steps to reproduce the behavior:
source venv/bin/activate
pip install -r requirements-dev.txt
pre-commit install -f
cp .env.dev .env
sudo ./run_tests.sh

Expected behavior
Should finished without error.
Environment (please complete the following information):

OS: Ubuntu 22.04.01

Additional context
Add any other context about the problem here.

Did you set up a virtual environment before executing all the commands?

@Uxio0 Yes

Please remove sudo, is not needed at all

If no sudo, this command report error:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dsafe-transaction-service%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied

If login as root, ./run_tests.sh would fails:
Results (483.24s):
      89 passed
      93 failed
      11 skipped

Your user should have permissions for running docker, that's related to your configuration, if you use sudo you are not using the virtualenv you created

I add user to group docker, and run command ./run_tests.sh again, the test result is:
Results (160.38s):
     260 passed
       5 failed
         - safe_transaction_service/history/tests/test_collectibles_service.py:395 TestCollectiblesService.test_retrieve_metadata_from_uri
         - safe_transaction_service/tokens/tests/test_tasks.py:105 TestTasks.test_return_last_valid_token_price
         - safe_transaction_service/tokens/tests/test_views.py:106 TestTokenViews.test_token_price_view
         - safe_transaction_service/tokens/tests/clients/test_coingecko_client.py:13 TestCoingeckoClient.test_coingecko_client
         - safe_transaction_service/tokens/tests/clients/test_coingecko_client.py:38 TestCoingeckoClient.test_get_logo_url
      14 skipped

After put user to gourp docker, the test command ./run_tests.sh can be executed successfully.


Update mobile UI

https://www.figma.com/file/viovJLYOfUuB6TnW67qF5N/reservoir?node-id=0%3A1
Header (All pages)

[x] Remove logo text and just use icon
[x] Add search bar
[x] Add hamburger menu

Hamburger menu

[x] Add custom external links
[x] Add connect wallet button
[x] When connection display Address/ENS, Balance, Portfolio link and disconnect button

Collection page

[x] Review margins to match designs
[x] Make banner full width on mobile
[x] Move social links to second line if collection name is too long
[x] Stack Buy and Make Offer buttons on mobile
[x] Centre content

Token page

[x] Update order of sections to the following on mobile (Title/owner section, Price section, Listings section (for 1155), Attributes section, Collection info section then token info section)

Desktop regression

[ ] Search bar and external links position has moved
[ ] Token cards are really small

Mobile
All

[ ] Header shouldn’t change/move at all when opened (see Opensea and Gem for reference)
[ ] Padding above and below search on mobile header does not match designs
[ ] Reservoir Logo is smaller than in designs
[ ] Search shouldn’t automatically be selected when menu is opened

Home

[ ] Reduce padding above tagline on homepage on mobile (see design)

Collection page

[ ] Banner should be full width (see designs)
[ ] Space/margins around the collection title/stats and buy/offer buttons are off (see designs)
[ ] Token cards are not centered (see designs)

Token page

[ ] Buy now/make offer buttons should stack (see designs)
[ ] Attributes should be in 2 columns (see designs)
[ ] Listings section cut offs wallet address on mobile for ERC1155 tokens

Desktop regression

[ ]  Search bar and external links position has moved - Please review spacing for different breakpoints in design

Mobile

[ ] Search bar shifts when hamburger menu is opened

[ ] Margins on homepage tagline need review on certain screen sizes

Closing this ticket and creating 2 new tickets to fix the shifting search bar and increase the size of the logo on mobile.