mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	Exclude more nodes/edges from our JS visualization.
This also provides a roadmap for how to break some dependencies.
This commit is contained in:
		@@ -46,25 +46,72 @@ for module in modules:
 | 
				
			|||||||
                    continue # parsing mistake due to variable called "subs"
 | 
					                    continue # parsing mistake due to variable called "subs"
 | 
				
			||||||
                tuples.add(tup)
 | 
					                tuples.add(tup)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IGNORE_TUPLES = [
 | 
				
			||||||
 | 
					    # We ignore the following tuples to de-clutter the graph, since there is a
 | 
				
			||||||
 | 
					    # pretty clear roadmap on how to break the dependencies.  You can comment
 | 
				
			||||||
 | 
					    # these out to see what the "real" situation looks like now, and if you do
 | 
				
			||||||
 | 
					    # the work of breaking the dependency, you can remove it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('typeahead_helper', 'composebox_typeahead'), # PR 4121
 | 
				
			||||||
 | 
					    ('typeahead_helper', 'compose'), # PR 4121
 | 
				
			||||||
 | 
					    ('typeahead_helper', 'subs'), # PR 4121
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('stream_data', 'narrow'), # split out narrow.by_foo functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('stream_data', 'stream_color'), # split out stream_color data/UI
 | 
				
			||||||
 | 
					    ('stream_color', 'tab_bar'), # only one call
 | 
				
			||||||
 | 
					    ('stream_color', 'subs'), # only one call
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('search', 'search_suggestion'), # move handler into search_suggestion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('unread', 'narrow'), # create narrow_state.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('navigate', 'stream_list'), # move cycle_stream into stream_list.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # This one is kind of tricky, but basically we want to split all the basic
 | 
				
			||||||
 | 
					    # code out of both of these modules that's essentially just string manipulation.
 | 
				
			||||||
 | 
					    ('narrow', 'hashchange'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('composebox_typeahead', 'compose'), # introduce compose_state.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # This one might require some work, but the idea is to split out something
 | 
				
			||||||
 | 
					    # like narrow_state.js.
 | 
				
			||||||
 | 
					    ('pm_list', 'narrow'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('settings', 'subs'), # not much to fix, can call stream_data directly, maybe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('modals', 'subs'), # add some kind of onClose mechanism in new modals.open
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('channel', 'reload'), # just one call to fix somehow
 | 
				
			||||||
 | 
					    ('compose', 'reload'), # use channel stuff more directly?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('settings', 'muting_ui'), # inline call or split out muting_settings.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ('resize', 'navigate'), # split out scroll.js
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for tuple in IGNORE_TUPLES:
 | 
				
			||||||
 | 
					    tuples.discard(tuple)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# print(tuples)
 | 
					# print(tuples)
 | 
				
			||||||
graph = Graph(*tuples)
 | 
					graph = Graph(*tuples)
 | 
				
			||||||
tricky_modules = [
 | 
					ignore_modules = [
 | 
				
			||||||
    'blueslip',
 | 
					    # some are really tricky
 | 
				
			||||||
    'channel',
 | 
					 | 
				
			||||||
    'filter',
 | 
					 | 
				
			||||||
    'hashchange',
 | 
					 | 
				
			||||||
    'message_store',
 | 
					    'message_store',
 | 
				
			||||||
    'narrow',
 | 
					 | 
				
			||||||
    'popovers',
 | 
					    'popovers',
 | 
				
			||||||
    'reload',
 | 
					 | 
				
			||||||
    'resize',
 | 
					 | 
				
			||||||
    'server_events', # has restart code
 | 
					    'server_events', # has restart code
 | 
				
			||||||
    'socket',
 | 
					    'unread_ui',
 | 
				
			||||||
    'stream_color',
 | 
					    'ui', # initializes all the other widgets
 | 
				
			||||||
    'ui',
 | 
					
 | 
				
			||||||
    'zulip', # zulip.com false positives
 | 
					    # some are just not very core:
 | 
				
			||||||
 | 
					    'compose_fade',
 | 
				
			||||||
 | 
					    'drafts',
 | 
				
			||||||
 | 
					    'message_edit',
 | 
				
			||||||
 | 
					    'notifications',
 | 
				
			||||||
 | 
					    'stream_popover',
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
for node in tricky_modules:
 | 
					for node in ignore_modules:
 | 
				
			||||||
    graph.remove(node)
 | 
					    graph.remove(node)
 | 
				
			||||||
graph.remove_exterior_nodes()
 | 
					graph.remove_exterior_nodes()
 | 
				
			||||||
buffer = make_dot_file(graph)
 | 
					buffer = make_dot_file(graph)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user