Open Bug 1283869 Opened 4 years ago Updated 4 months ago

[meta] convert uses of "defer" to "new Promise"

Categories

(DevTools :: General, enhancement, P5)

enhancement

Tracking

(Not tracked)

People

(Reporter: tromey, Unassigned, Mentored)

References

(Blocks 1 open bug)

Details

(Keywords: good-first-bug, meta, Whiteboard: [lang=js])

Many places in devtools use "defer" or "promise.defer".
However, this method didn't make it into the final Promise spec,
and it would be better to use standard facilities here,
namely "new Promise".

See this thread:
https://groups.google.com/forum/#!topic/mozilla.dev.developer-tools/IYw2U4TCNYU

In particular this message shows how to convert from defer to new Promise:
https://groups.google.com/d/msg/mozilla.dev.developer-tools/IYw2U4TCNYU/JwfhnfomAwAJ


This is a good first bug, but as there are many places using defer, it would
be best to proceed by filing a new bug for some area (say, one directory); then
do the conversion there.  When everything is converted, we could remove
devtools/shared/defer.js and close this bug.

There was some speculation in the thread that maybe some of the conversions can
be done in an automated way.  This would be worth looking into as well.
Severity: normal → enhancement
Component: Developer Tools: Framework → Developer Tools
Keywords: good-first-bug
Whiteboard: [good first bug][lang=js]
I'd like to take this up as my first bug. Doing a git grep I found 531 instances of affected code in the /devtools/clients dirs, is this correct? From my understanding of the bug, it seems as though the only change is: 

Old code: 

var promise = require("promise"); 
var x = promise.defer(); 

New code: 

var defer = require("devtools/shared/defer"); 
var x = defer(); 

Please correct me if I am wrong.
Flags: needinfo?(ttromey)
(In reply to Neil Lohana from comment #1)
> I'd like to take this up as my first bug. Doing a git grep I found 531
> instances of affected code in the /devtools/clients dirs, is this correct?
> From my understanding of the bug, it seems as though the only change is:

The change in "require" calls that you describe was already done.

The task now is to get rid of usages of the "defer" module altogether and convert them to the standard Promise syntax.

This email describes how to do it:
https://groups.google.com/d/msg/mozilla.dev.developer-tools/IYw2U4TCNYU/JwfhnfomAwAJ

Most cases should be easy, but there will be some tougher ones which will require a larger refactoring of the code.

As the task is pretty big, I would recommend to do it in a number of smaller patches, module by module.
Flags: needinfo?(ttromey)
I am planning on separating it by directory unless you have a better recommendation? I have made the change in the animation-inspector subdirectory and am going through the process of submitting a patch. I am not 100% certain if I am doing it correctly but I hope it will be clarified through the code review.
I think doing it by directory is totally fine.
I recommend filing a new bug for each directory you plan to tackle,
and make the new bug block this one.
Then each patch can be addressed in its own bug.
This is a bit more bookkeeping but it's a bit more "normal" and also
it will keep things cleaner, avoid having to keep the bug open, etc.
Depends on: 1288947
[good first bug] whiteboard -> keyword mass change
Keywords: good-first-bug
Hello Tom,

I would like to work on this bug. I feel glad if you can mentor me in fixing it.

Thank You.
(In reply to Wasim Thabraze from comment #6)

> I would like to work on this bug. I feel glad if you can mentor me in fixing
> it.
> 
> Thank You.

Sure!
The first thing to do is to build firefox.  The current best way is probably an
artifact build: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Artifact_builds

Once you've built it you can try to convert some files according to the plan in this bug.
The best way would be to pick some specific devtools module to convert; file a bug for
just this module; and attach the resulting patch to that bug.  You can look at the one
dependent bug of this bug to see what that would look like.
Hey,
I'm new to Open Source, etc. I already built Firefox.
This would be my first bug. I hope you can assign it to me.
(In reply to dablitz from comment #8)
> Hey,
> I'm new to Open Source, etc. I already built Firefox.
> This would be my first bug. I hope you can assign it to me.

Hi!
I think the thing to do is mentioned in comment #3 and comment #4 --
that is, since the problem is pretty large, it should be tackled in pieces.
To do that you would find a decent piece, say some reasonable part of devtools/,
make a bug for that, and then do the work there.  See the one existing dependency
of this bug for an example.
The problem is that in most cases the resolve() call is separated from the defer() initialization - often it is in a different function that would be called sometime in the future. This is not easily convertible to the Promise syntax as you need to call the resolve()/reject() functions in the same block of code.
A solution I could come up with is to keep the references to the resolve()/reject() functions by pulling them out of the Promise() block. So one way to quickly replace all defer() and promise.defer() occurences would be to substitute this code instead:
new function() { this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; } ) }
This produces an object { promise: Promise, resolve: function, reject: function } that follows the same syntax as the original defer() so no more syntax changes would be required. If all we need is to get rid of the custom "defer" or "promise" library, this could work. 
I haven't run any tests yet because I wanted to get some feedback first...
Flags: needinfo?(ttromey)
(In reply to Dalimil Hajek [:dalimil] from comment #10)
> The problem is that in most cases the resolve() call is separated from the
> defer() initialization - often it is in a different function that would be
> called sometime in the future.

Yeah, it seems possible that this bug is overly optimistic about the chances of
doing a total conversion.  Concrete examples of difficult cases in the code base
(say, DXR links), would be helpful for discussion.

> A solution I could come up with is to keep the references to the
> resolve()/reject() functions by pulling them out of the Promise() block.

I think that if it comes to this, we might as well just keep defer() (not promise.defer,
but the one in devtools/shared/defer.js, as that works with a standard Promise).
Flags: needinfo?(ttromey)
Hi I am new to Bugzilla community and I would like to contribute to this as my good first bug.
My firefox is already built in the system.

Thank you,
Flags: needinfo?(ttromey)
(In reply to hanbin.chang from comment #12)
> Hi I am new to Bugzilla community and I would like to contribute to this as
> my good first bug.
> My firefox is already built in the system.

I think the best thing to do is to pick some directory you want to convert
(you can ask if you need suggestions; I suggest avoiding at least debugger and
console); then file a new bug for that directory (make the bug block this one).
Then I can assign that bug to you (just NI me) and you can do the work there.
See bug 1288947 for an example of what this would look like.
Thanks!
Flags: needinfo?(ttromey)
Hi Tom,

I would like to work on the directory /devtools/client/webide
I am new to community and I am little unclear how to file a new bug.
Could you assist?
Thank you,
Flags: needinfo?(ttromey)
Hey Tom,

I filed a new bug : https://bugzilla.mozilla.org/show_bug.cgi?id=1346009
Let me know if there's any issue, so could you assign this bug to me?

Thank you,
Thanks, and sorry I didn't get to this earlier today.
The only real change I made there was to put it into the correct component.
Flags: needinfo?(ttromey)
Depends on: 1346009
I would like to work upon this bug.  Can help me how should I proceed
(In reply to Subhdeep Saha from comment #17)
> I would like to work upon this bug.  Can help me how should I proceed

Hi!  Read comment#13 to see what to do; but also please avoiding picking
webide, because that's already being worked on (see comment#14).
Thanks for your interest, and please feel free to needinfo me if you
need anything.
Hi Tom,
 i would like work upon /devtools/client/scratchpad/scratchpad.js
(In reply to Subhdeep Saha from comment #19)
> Hi Tom,
>  i would like work upon /devtools/client/scratchpad/scratchpad.js

Ok.  I recommend trying to convert the whole directory, perhaps; but
either way is actually ok.  The first step is to file a new bug stating
what you're going to do.  Please CC me on it.  Best would be to make
it block this bug, but I can do that if you don't.
so are u creating the bug and assigning me?
Hi Tom,

I have created the bug for the above https://bugzilla.mozilla.org/show_bug.cgi?id=1347894
Flags: needinfo?(ttromey)
Depends on: 1347894
Commented there.
Flags: needinfo?(ttromey)
Hi Tom! I'd like to try to tackle this in the /client/netmonitor directory. I've opened bug 1350648 for this.
Depends on: 1350648
Depends on: 1354883
Depends on: 1354884
Depends on: 1354890
Hi Tom,
I would like to work on this bug.Could you suggest a module i can pick which is not assigned to anybody yet?
Flags: needinfo?(ttromey)
Hi Tom,

Hi Tom! I'd like to try to tackle this in the /client/responsivedesign directory. I've opened bug 1355473 for this. Can you please assign it to me?
Depends on: 1355473
(In reply to Utsav Saha from comment #25)

> I would like to work on this bug.Could you suggest a module i can pick which
> is not assigned to anybody yet?

How about devtools/client/styleeditor?

(In reply to Anirban Biswas from comment #26)

> Hi Tom! I'd like to try to tackle this in the /client/responsivedesign
> directory. I've opened bug 1355473 for this. Can you please assign it to me?

Done, and thank you!
Flags: needinfo?(ttromey)
(In reply to Tom Tromey :tromey from comment #27)
> (In reply to Utsav Saha from comment #25)
> 
> > I would like to work on this bug.Could you suggest a module i can pick which
> > is not assigned to anybody yet?
> 
> How about devtools/client/styleeditor?
> 


Hi Tom,I have created a bug 1355523 for styleeditor.could you assign it to me and mark the same as a dependent bug.
Thanks in advance.
Flags: needinfo?(ttromey)
Hello Tom. I wanted to contribute to client/sourceeditor and created a bug 1355696. Could you please assign this bug to me?
Depends on: 1355523
Depends on: 1355696
Done.
Flags: needinfo?(ttromey)
Depends on: 1366529
Depends on: 1366531
Depends on: 1366532
Depends on: 1366533
Depends on: 1366534
Depends on: 1366535
Hi.
I am a new contributor, and I would also like to work on a few of these.
I will file a new bug folder by folder as suggested.
I just thought I would post my result of grep-ing for defer in devtools/, excluding comments, striping down to file names, and making a unique list.
Note: I have already removed from this list any folders that have their own bug filed, as liked to by "Depends on ######" from this bug.

$ grep -R "defer" ./mozilla-central/devtools | grep -v "./shared/defer.js" | egrep -v ":\s*\*" | egrep -v ":\s*//*" | sed s/:.*// | uniq 

./client/debugger/content/actions/sources.js
./client/debugger/debugger-commands.js
./client/debugger/debugger-controller.js
./client/debugger/debugger-view.js
./client/debugger/new/debugger.js
./client/debugger/new/integration-tests.js
./client/debugger/new/parser-worker.js
./client/debugger/new/pretty-print-worker.js
./client/debugger/new/test/mochitest/browser_dbg-chrome-debugging.js
./client/debugger/test/mochitest/browser_dbg_addon-console.js
./client/debugger/test/mochitest/browser_dbg_break-on-dom-event-01.js
./client/debugger/test/mochitest/browser_dbg_break-on-dom-event-02.js
./client/debugger/test/mochitest/browser_dbg_breakpoints-break-on-last-line-of-script-on-reload.js
./client/debugger/test/mochitest/browser_dbg_breakpoints-new-script.js
./client/debugger/test/mochitest/browser_dbg_breakpoints-pane.js
./client/debugger/test/mochitest/browser_dbg_chrome-debugging.js
./client/debugger/test/mochitest/browser_dbg_clean-exit-window.js
./client/debugger/test/mochitest/browser_dbg_cmd-break.js
./client/debugger/test/mochitest/browser_dbg_cmd-dbg.js
./client/debugger/test/mochitest/browser_dbg_debugger-statement.js
./client/debugger/test/mochitest/browser_dbg_event-listeners-01.js
./client/debugger/test/mochitest/browser_dbg_event-listeners-02.js
./client/debugger/test/mochitest/browser_dbg_event-listeners-03.js
./client/debugger/test/mochitest/browser_dbg_jump-to-function-definition.js
./client/debugger/test/mochitest/browser_dbg_listtabs-01.js
./client/debugger/test/mochitest/browser_dbg_listtabs-02.js
./client/debugger/test/mochitest/browser_dbg_multiple-windows.js
./client/debugger/test/mochitest/browser_dbg_navigation.js
./client/debugger/test/mochitest/browser_dbg_parser-11.js
./client/debugger/test/mochitest/browser_dbg_pause-exceptions-01.js
./client/debugger/test/mochitest/browser_dbg_pause-exceptions-02.js
./client/debugger/test/mochitest/browser_dbg_pretty-print-04.js
./client/debugger/test/mochitest/browser_dbg_scripts-switching-01.js
./client/debugger/test/mochitest/browser_dbg_scripts-switching-02.js
./client/debugger/test/mochitest/browser_dbg_search-global-01.js
./client/debugger/test/mochitest/browser_dbg_search-global-02.js
./client/debugger/test/mochitest/browser_dbg_search-global-03.js
./client/debugger/test/mochitest/browser_dbg_search-global-04.js
./client/debugger/test/mochitest/browser_dbg_search-global-05.js
./client/debugger/test/mochitest/browser_dbg_search-global-06.js
./client/debugger/test/mochitest/browser_dbg_search-symbols.js
./client/debugger/test/mochitest/browser_dbg_searchbox-help-popup-02.js
./client/debugger/test/mochitest/browser_dbg_source-maps-01.js
./client/debugger/test/mochitest/browser_dbg_source-maps-02.js
./client/debugger/test/mochitest/browser_dbg_source-maps-03.js
./client/debugger/test/mochitest/browser_dbg_source-maps-04.js
./client/debugger/test/mochitest/browser_dbg_stack-05.js
./client/debugger/test/mochitest/browser_dbg_step-out.js
./client/debugger/test/mochitest/browser_dbg_tabactor-01.js
./client/debugger/test/mochitest/browser_dbg_tabactor-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-accessibility.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-01.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-03.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-04.js
./client/debugger/test/mochitest/browser_dbg_variables-view-filter-05.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-01.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-03.js
./client/debugger/test/mochitest/browser_dbg_variables-view-frame-with.js
./client/debugger/test/mochitest/browser_dbg_variables-view-large-array-buffer.js
./client/debugger/test/mochitest/browser_dbg_variables-view-override-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-popup-16.js
./client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-01.js
./client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-02.js
./client/debugger/test/mochitest/browser_dbg_variables-view-webidl.js
./client/debugger/test/mochitest/browser_dbg_watch-expressions-02.js
./client/debugger/test/mochitest/head.js
./client/memory/memory.xhtml
./client/memory/test/unit/head.js
./client/scratchpad/scratchpad-panel.js
./client/scratchpad/scratchpad.js
./client/scratchpad/test/browser_scratchpad_reload_and_run.js
./client/scratchpad/test/head.js
./client/shared/AppCacheUtils.jsm
./client/shared/browser-loader.js
./client/shared/components/reps/reps.js
./client/shared/components/test/mochitest/head.js
./client/shared/developer-toolbar.js
./client/shared/doorhanger.js
./client/shared/frame-script-utils.js
./client/shared/getjson.js
./client/shared/poller.js
./client/shared/redux/middleware/promise.js
./client/shared/test/browser_inplace-editor-01.js
./client/shared/test/browser_inplace-editor-02.js
./client/shared/test/browser_mdn-docs-01.js
./client/shared/test/browser_treeWidget_keyboard_interaction.js
./client/shared/test/browser_treeWidget_mouse_interaction.js
./client/shared/test/test-actor-registry.js
./client/shared/test/test-actor.js
./client/shared/vendor/jszip.js
./client/shared/vendor/lodash.js
./client/shared/vendor/react-dev.js
./client/shared/vendor/react.js
./client/shared/widgets/FlameGraph.js
./client/shared/widgets/Graphs.js
./client/shared/widgets/MdnDocsWidget.js
./client/shared/widgets/VariablesView.jsm
./client/shared/widgets/VariablesViewController.jsm
./client/shared/widgets/tooltip/SwatchCubicBezierTooltip.js
./client/shared/widgets/tooltip/Tooltip.js
./client/webconsole/console-output.js
./client/webconsole/hudservice.js
./client/webconsole/jsterm.js
./client/webconsole/net/data-provider.js
./client/webconsole/new-webconsole.js
./client/webconsole/panel.js
./client/webconsole/test/browser_bug_638949_copy_link_location.js
./client/webconsole/test/browser_bug_871156_ctrlw_close_tab.js
./client/webconsole/test/browser_console_addonsdk_loader_exception.js
./client/webconsole/test/browser_console_consolejsm_output.js
./client/webconsole/test/browser_console_copy_command.js
./client/webconsole/test/browser_console_filters.js
./client/webconsole/test/browser_console_hide_jsterm_when_devtools_chrome_enabled_false.js
./client/webconsole/test/browser_console_optimized_out_vars.js
./client/webconsole/test/browser_console_server_logging.js
./client/webconsole/test/browser_console_variables_view_dom_nodes.js
./client/webconsole/test/browser_console_variables_view_dont_sort_non_sortable_classes_properties.js
./client/webconsole/test/browser_eval_in_debugger_stackframe2.js
./client/webconsole/test/browser_netmonitor_shows_reqs_in_webconsole.js
./client/webconsole/test/browser_output_longstring_expand.js
./client/webconsole/test/browser_result_format_as_string.js
./client/webconsole/test/browser_warn_user_about_replaced_api.js
./client/webconsole/test/browser_webconsole_allow_mixedcontent_securityerrors.js
./client/webconsole/test/browser_webconsole_autocomplete-properties-with-non-alphanumeric-names.js
./client/webconsole/test/browser_webconsole_autocomplete_and_selfxss.js
./client/webconsole/test/browser_webconsole_block_mixedcontent_securityerrors.js
./client/webconsole/test/browser_webconsole_bug_580001_closing_after_completion.js
./client/webconsole/test/browser_webconsole_bug_585991_autocomplete_keys.js
./client/webconsole/test/browser_webconsole_bug_585991_autocomplete_popup.js
./client/webconsole/test/browser_webconsole_bug_587617_output_copy.js
./client/webconsole/test/browser_webconsole_bug_588730_text_node_insertion.js
./client/webconsole/test/browser_webconsole_bug_597460_filter_scroll.js
./client/webconsole/test/browser_webconsole_bug_599725_response_headers.js
./client/webconsole/test/browser_webconsole_bug_600183_charset.js
./client/webconsole/test/browser_webconsole_bug_613642_maintain_scroll.js
./client/webconsole/test/browser_webconsole_bug_621644_jsterm_dollar.js
./client/webconsole/test/browser_webconsole_bug_622303_persistent_filters.js
./client/webconsole/test/browser_webconsole_bug_630733_response_redirect_headers.js
./client/webconsole/test/browser_webconsole_bug_651501_document_body_autocomplete.js
./client/webconsole/test/browser_webconsole_bug_660806_history_nav.js
./client/webconsole/test/browser_webconsole_bug_764572_output_open_url.js
./client/webconsole/test/browser_webconsole_bug_782653_CSS_links_in_Style_Editor.js
./client/webconsole/test/browser_webconsole_bug_837351_securityerrors.js
./client/webconsole/test/browser_webconsole_chrome.js
./client/webconsole/test/browser_webconsole_closure_inspection.js
./client/webconsole/test/browser_webconsole_dont_navigate_on_doubleclick.js
./client/webconsole/test/browser_webconsole_filter_buttons_contextmenu.js
./client/webconsole/test/browser_webconsole_for_of.js
./client/webconsole/test/browser_webconsole_jsterm.js
./client/webconsole/test/browser_webconsole_netlogging_reset_filter.js
./client/webconsole/test/browser_webconsole_notifications.js
./client/webconsole/test/browser_webconsole_output_dom_elements_04.js
./client/webconsole/test/browser_webconsole_scratchpad_panel_link.js
./client/webconsole/test/browser_webconsole_shows_reqs_in_netmonitor.js
./client/webconsole/test/browser_webconsole_split.js
./client/webconsole/test/browser_webconsole_split_escape_key.js
./client/webconsole/test/head.js
./client/webconsole/webconsole-connection-proxy.js
./client/webconsole/webconsole.js
./client/webconsole/webpack.config.js
./server/actors/accessibility.js
./server/actors/canvas.js
./server/actors/device.js
./server/actors/inspector.js
./server/actors/storage.js
./server/actors/stylesheets.js
./server/actors/webbrowser.js
./server/actors/webgl.js
./server/main.js
./server/tests/browser/browser_perf-realtime-markers.js
./server/tests/browser/head.js
./server/tests/mochitest/inspector-helpers.js
./server/tests/mochitest/test_inspector-dead-nodes.html
./server/tests/mochitest/test_unsafeDereference.html
./server/tests/unit/head_dbg.js
./server/tests/unit/test_blackboxing-06.js
./server/tests/unit/test_client_request.js
./server/tests/unit/test_nesting-01.js
./server/tests/unit/test_nesting-02.js
./server/tests/unit/test_protocol_async.js
./server/tests/unit/test_protocol_longstring.js
./server/tests/unit/test_protocol_simple.js
./server/tests/unit/test_sourcemaps-10.js
./server/tests/unit/test_sourcemaps-11.js
./server/worker.js
./shared/DevToolsUtils.js
./shared/acorn/acorn.js
./shared/apps/app-actor-front.js
./shared/client/main.js
./shared/deprecated-sync-thenables.js
./shared/discovery/tests/unit/test_discovery.js
./shared/fronts/device.js
./shared/fronts/inspector.js
./shared/fronts/styleeditor.js
./shared/gcli/commands/appcache.js
./shared/gcli/commands/jsb.js
./shared/gcli/commands/screenshot.js
./shared/gcli/source/docs/writing-commands.md
./shared/gcli/source/lib/gcli/cli.js
./shared/moz.build
./shared/old-event-emitter.js
./shared/protocol.js
./shared/qrcode/index.js
./shared/security/auth.js
./shared/security/cert.js
./shared/security/socket.js
./shared/security/tests/unit/head_dbg.js
./shared/security/tests/unit/test_encryption.js
./shared/security/tests/unit/test_oob_cert_auth.js
./shared/system.js
./shared/task.js
./shared/tests/unit/test_defer.js
./shared/tests/unit/test_executeSoon.js
./shared/tests/unit/xpcshell.ini
./shared/touch/simulator.js
./shared/transport/packets.js
./shared/transport/stream-utils.js
./shared/transport/tests/unit/head_dbg.js
./shared/transport/tests/unit/test_bulk_error.js
./shared/transport/tests/unit/test_client_server_bulk.js
./shared/transport/tests/unit/test_dbgsocket.js
./shared/transport/tests/unit/test_dbgsocket_connection_drop.js
./shared/transport/tests/unit/test_queue.js
./shared/transport/tests/unit/test_transport_bulk.js
./shared/transport/transport.js
./shared/webconsole/test/unit/test_throttle.js
Depends on: 1398089
(In reply to tera_1225 from comment #31)
> Hi.
> I am a new contributor, and I would also like to work on a few of these.
> I will file a new bug folder by folder as suggested.
> I just thought I would post my result of grep-ing for defer in devtools/,
> excluding comments, striping down to file names, and making a unique list.
> Note: I have already removed from this list any folders that have their own
> bug filed, as liked to by "Depends on ######" from this bug.
> 
> $ grep -R "defer" ./mozilla-central/devtools | grep -v "./shared/defer.js" |
> egrep -v ":\s*\*" | egrep -v ":\s*//*" | sed s/:.*// | uniq 

Thanks, that helps! It looks like many of these instances are in the old debugger frontend (anything not in debugger/new/). We are shipping the new debugger frontend in version 57 so that code will be removed sometime in the future, and even now isn't as high a priority to convert to `new Promise` as the other usages here.  We are in a similar situation in `client/webconsole/test` as well.  So I'd say prioritize other instances higher than debugger/ and console/.
Thanks Brian, that's good to know. I had also been told that the debugger code was about to change in the #debugger slack, but I was going to start, obviously, in alphabetical order, with the debugger, so good job you were around!
Will edit bug 1398089 that I created for client/debugger/ to reflect the fact that only client/debugger/new is the place to work on that one.
Depends on: 1398329
It should also be removed from devtools-core; see https://github.com/devtools-html/devtools-core/issues/715
Depends on: 1406915
No longer depends on: 1406915
Hi Tom, I created this bug and submitted a patch https://bugzilla.mozilla.org/show_bug.cgi?id=1408164
Depends on: 1408164
Depends on: 1423201
Hello Tom, I would like to take this up as my first bug for the directory server/tests/mochitest. Created this bug https://bugzilla.mozilla.org/show_bug.cgi?id=1423201 according to instructions in this thread. Please assign it to me.
Can a bug be assigned to me? Im a student at Seneca College, learning how to fix bugs in open source projects and I think this is a good starting bug.
(In reply to Avedis Zeitounilian from comment #37)
> Can a bug be assigned to me? Im a student at Seneca College, learning how to
> fix bugs in open source projects and I think this is a good starting bug.

Sure, what you should do is outlined in comment #13.
Depends on: 1428516
Hello Sir,I would like to work on this bug,I have downloaded and built firefox in my ubuntu.If you could provide some insight about this bug,I would to love work on it
Hello nikhil,

You can pick one of the non-resolved "Depends on" bug so you only have to work on a given folder instead of the whole devtools.
Would you be interested taking Bug 1366529 ?
Flags: needinfo?(nikhilkumar.c16)
Keywords: meta
Priority: P3 → P5
Summary: convert uses of "defer" to "new Promise" → [meta] convert uses of "defer" to "new Promise"
(In reply to Nicolas Chevobbe [:nchevobbe] from comment #40)
> Hello nikhil,
> 
> You can pick one of the non-resolved "Depends on" bug so you only have to
> work on a given folder instead of the whole devtools.
> Would you be interested taking Bug 1366529 ?

Yes sir, I would love to work on it
Flags: needinfo?(nikhilkumar.c16)
Can I work on this bug? I'm a student at WOU and taking an Open Source class. It looks like there are already people working on it, but it's not entirely clear. Is there work for more than one person?
Hello Michael,

This bug is what we call a meta, which means it holds all the smaller bugs we need to fix to remove all defer usage in the codebase.
If you want, you can grab Bug 1366532.
I encourage you to have a look at http://docs.firefox-dev.tools/getting-started/ to setup the firefox dev environment (chose artifact builds when asked, it's much faster).
If you have any question, you can come and chat in our slack https://devtools-html-slack.herokuapp.com/.
Hi, I'd like to work on one of the sub-bugs here (I'm eyeing https://bugzilla.mozilla.org/show_bug.cgi?id=1366534). Could someone assign me to and mentor for that bug or otherwise volunteer to review the patch? Thank you :)
Product: Firefox → DevTools
Depends on: 1471812
Depends on: 1482972
Hello everyone!I would like to work on some of the sub-bugs here, can someone please assign me a sub-bug? Thanks in advance!
(In reply to Preeti[:preeti] from comment #45)
> Hello everyone!I would like to work on some of the sub-bugs here, can
> someone please assign me a sub-bug? Thanks in advance!

Hello Preeti !
Would you want to work on Bug 1366529 ?
Let me know if it's okay for you, and I'll assign the bug to you
> Hello Preeti !
> Would you want to work on Bug 1366529 ?
> Let me know if it's okay for you, and I'll assign the bug to you

Yes I would like to work on this bug. However I am a beginner in JavaScript, so please do excuse my queries!
(In reply to Nicolas Chevobbe [:nchevobbe] from comment #46)
> (In reply to Preeti[:preeti] from comment #45)
> > Hello everyone!I would like to work on some of the sub-bugs here, can
> > someone please assign me a sub-bug? Thanks in advance!
> 
> Hello Preeti !
> Would you want to work on Bug 1366529 ?
> Let me know if it's okay for you, and I'll assign the bug to you

Sorry, I guess I was late in replying, so could someone please assign another bug?
(In reply to Preeti[:preeti] from comment #48)
> (In reply to Nicolas Chevobbe [:nchevobbe] from comment #46)
> > (In reply to Preeti[:preeti] from comment #45)
> > > Hello everyone!I would like to work on some of the sub-bugs here, can
> > > someone please assign me a sub-bug? Thanks in advance!
> > 
> > Hello Preeti !
> > Would you want to work on Bug 1366529 ?
> > Let me know if it's okay for you, and I'll assign the bug to you
> 
> Sorry, I guess I was late in replying, so could someone please assign
> another bug?

Hello Preeti, I assigned Bug 1366534 to you :)
Hi! I would like to work on some of the sub-bugs here, can someone please help me with that? Thanks!
Hi ! I am a beginner . I would like to work on this bug . Can you tell me how to work on this?
Flags: needinfo?(ttromey)
Hello there, I think all the bugs are taken now.
You can check other good-first-bug
Flags: needinfo?(ttromey)
Depends on: 1529497
Depends on: 1530275

Hey
I would like to work on it, as I have refactored some part of code like this earlier as well.
Can you please assign it to me and help me to find the part of the code which needs to be fixed?

Flags: needinfo?(nchevobbe)

Hello Paarmita,

This bug is what we call a META bug, meaning it's used to manage other, smaller bugs.
I'll try to assign you one of this smaller bug :)

Flags: needinfo?(nchevobbe)

Sure!

Hello Nicolas,

Could you please create the simular smaller bug and assign me, like you did for Paarmita?

Whiteboard: [good first bug][lang=js] → [lang=js]
You need to log in before you can comment on or make changes to this bug.