Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI updates and styles #76

Merged
merged 83 commits into from May 26, 2020
Merged

GUI updates and styles #76

merged 83 commits into from May 26, 2020

Conversation

benjaminpkane
Copy link
Contributor

@benjaminpkane benjaminpkane commented May 19, 2020

To be reviewed and merged after #55 and #75.

Resolves #62.

Be sure to initialize the player51 submodule.

git submodule update --init

And run yarn install in ./electron.

Possible TODOs:

  • Support classification distributions in Fields tab
  • Add search bar back with MVP querying

Screenshot from 2020-05-21 10-01-06
Screenshot from 2020-05-21 10-01-17
Screenshot from 2020-05-21 10-01-13
Screenshot from 2020-05-21 10-02-09
Screenshot from 2020-05-21 10-02-06
Screenshot from 2020-05-21 10-01-25
Screenshot from 2020-05-21 10-01-20

fiftyone/core/service.py Outdated Show resolved Hide resolved
@jasoncorso
Copy link
Contributor

@lethosor @tylerganter Can one of you get this reviewed? We need to merge this ASAP. The walkthrough today needs to be on develop.

@lethosor lethosor requested review from a team and tylerganter May 22, 2020 15:18
@lethosor
Copy link
Contributor

>>> import fiftyone as fo
>>> session = fo.launch_dashboard()
Uncaught exception
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/alan/code/fiftyone/fiftyone/core/session.py", line 65, in launch_dashboard
    session = Session(dataset=dataset, view=view, port=port, remote=remote)
  File "/home/alan/code/fiftyone/fiftyone/core/session.py", line 142, in __init__
    super(Session, self).__init__(self._port)
  File "/home/alan/code/fiftyone/fiftyone/core/client.py", line 114, in __init__
    _connect(self._hc_sio, foc.SERVER_ADDR % port)
  File "/home/alan/.virtualenvs/fiftyone/lib/python3.6/site-packages/retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "/home/alan/.virtualenvs/fiftyone/lib/python3.6/site-packages/retrying.py", line 212, in call
    raise attempt.get()
  File "/home/alan/.virtualenvs/fiftyone/lib/python3.6/site-packages/retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "/home/alan/.virtualenvs/fiftyone/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/home/alan/.virtualenvs/fiftyone/lib/python3.6/site-packages/retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "/home/alan/code/fiftyone/fiftyone/core/client.py", line 85, in _connect
    sio.connect(addr)
  File "/home/alan/.virtualenvs/fiftyone/lib/python3.6/site-packages/socketio/client.py", line 279, in connect
    six.raise_from(exceptions.ConnectionError(exc.args[0]), None)
  File "<string>", line 3, in raise_from
socketio.exceptions.ConnectionError: Connection refused by the server

There also doesn't appear to be a gunicorn process running.

@lethosor
Copy link
Contributor

Got a backtrace from the server:

  File "/home/alan/code/fiftyone/fiftyone/server/main.py", line 28, in <module>
    import fiftyone.core.state as fos
  File "/home/alan/code/fiftyone/fiftyone/core/state.py", line 27, in <module>
    import fiftyone.core.dataset as fod
  File "/home/alan/code/fiftyone/fiftyone/core/dataset.py", line 33, in <module>
    import fiftyone.core.collections as foc
  File "/home/alan/code/fiftyone/fiftyone/core/collections.py", line 26, in <module>
    import fiftyone.utils.data as foud
  File "/home/alan/code/fiftyone/fiftyone/utils/data.py", line 46, in <module>
    image_format=fo.config.default_image_ext,
AttributeError: module 'fiftyone' has no attribute 'config'

This might be a setup issue on my end; investigating

@lethosor
Copy link
Contributor

Looks like for local dev, you currently need to run pip install -e path/to/fiftyone-brain after installing fiftyone (or just don't install fiftyone-brain at all, I guess). Potential idea for a fix in https://github.com/voxel51/fiftyone-brain/issues/13#issuecomment-632440816, but not specific to this PR.


atexit.register(handle_exit)
signal.signal(signal.SIGTERM, handle_exit)
signal.signal(signal.SIGINT, handle_exit)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intercepting SIGINT breaks the ctrl-c behavior in the python interpreter (i.e. pressing ctrl-c does nothing to the current line at all, and also kills services, which I don't think is desirable).

Also worth noting that only one signal handler can be registered for a signal at a time, so this will only work for one service. Is atexit not enough?

@lethosor
Copy link
Contributor

Current status: yarn dev gives me a working screen (below). Running a built AppImage from the release folder gives me a blank screen, and I can't figure out why because none of the developer options are available (even the keyboard shortcuts don't work).

image

Copy link
Contributor

@lethosor lethosor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've confirmed that something on this branch is breaking the prod build of the app (and was the cause of the inability to package this on Friday), even when develop is merged in. Unsure exactly why yet, as dev tools being disabled (prematurely?) in #47 make this somewhat harder to troubleshoot, but I will continue investigating.

Prod build on develop (yarn package-linux then ./release/FiftyOne-1.1.0.AppImage):
image

yarn dev on this branch:
image

Prod build on this branch (before and after develop is merged in, and run a few times to make sure it's not only an intermittent issue):

image

@lethosor
Copy link
Contributor

image

This is all I've been able to get so far in a prod build. Not seeing any style or entrypoint changes in this PR that stand out as likely causes, and player51 seems to be set up correctly, so I don't think that's it either.

@lethosor
Copy link
Contributor

lethosor commented May 26, 2020

9128e6b seems to have fixed the issue, at least on this branch and when dev-install (#93) is merged in. I don't see a logical explanation as to why this fixes the prod build, since it was working perfectly fine before this change at some point in the past, so I would like to have another set of eyes on it to double-check.

Update: prod GUI launches on both Linux and macOS, looking like this:

image

@lethosor lethosor self-requested a review May 26, 2020 01:02
@benjaminpkane
Copy link
Contributor Author

Thanks @lethosor! The builds are working for me now. Ready to merge if you are.

Copy link
Contributor

@lethosor lethosor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, sounds good to me

@benjaminpkane benjaminpkane merged commit 7277be2 into develop May 26, 2020
@benjaminpkane benjaminpkane deleted the instructions branch May 26, 2020 13:33
benjaminpkane pushed a commit that referenced this pull request Jan 20, 2022
Adding support for sorting patches views by similarity
kaixi-wang pushed a commit that referenced this pull request May 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fine tune opening dashboard view and remote session instructions
4 participants