diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..b9e927e
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,47 @@
+# Community Code of Conduct
+
+**Version 1.2
+August 19, 2020**
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as community members, contributors, committers, and project leaders pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+With the support of the Eclipse Foundation staff (the “Staff”), project committers and leaders are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project committers and leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the Eclipse Foundation project or its community in public spaces. Examples of representing a project or community include posting via an official social media account, or acting as a project representative at an online or offline event. Representation of a project may be further defined and clarified by project committers, leaders, or the EMO.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Staff at codeofconduct@eclipse.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The Staff is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project committers or leaders who do not follow the Code of Conduct in good faith may face temporary or permanent repercussions as determined by the Staff.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..10454fd
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,295 @@
+# Notices for Eclipse GMF Runtime
+
+This content is produced and maintained by the Eclipse GMF Runtime project.
+
+* Project home: https://projects.eclipse.org/projects/modeling.gmf-runtime
+
+## Trademarks
+
+Eclipse GMF Runtime, and GMF Runtime are trademarks of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License v1.0 which is available at
+https://www.eclipse.org/legal/epl-v10.html.
+
+SPDX-License-Identifier: EPL-1.0
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://git.eclipse.org/r/plugins/gitiles/gmf-notation/org.eclipse.gmf.notation
+* https://git.eclipse.org/r/plugins/gitiles/gmf-runtime/org.eclipse.gmf-runtime
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Batik (1.6)
+
+* License: W3C License
+
+Apache Batik (1.6)
+
+* License: Apache License, 2.0
+
+Apache Batik DOM Component (1.6.1)
+
+* License: Apache License, 2.0, W3C License, Public Domain
+
+Apache Batik PDF Transcoder library (1.9.1)
+
+* License: Apache-2.0 AND Apache-1.1 AND Zlib AND
+   LicenseRef-Adobe-Permissive-Terms
+
+Apache pdf transcoder library (1.7)
+
+* License: Apache License, 2.0 + Custom Open Source License for one file
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Apache Xerces (2.8)
+
+* License: Apache License, 2.0
+
+Apache Xerces for Java (2.9)
+
+* License: Apache License, 2.0
+
+Batik animation engine (1.9)
+
+* License: Apache-2.0 
+
+Batik animation library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik AWT utility library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik bridge library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik constants library (1.9.1)
+
+* License: Apache-2.0
+
+Batik CSS engine library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik CSS engine library (1.9.1)
+
+* License: Apache-2.0 
+
+Batik DOM Level 3 implementation library (1.7)
+
+* License: Apache License, 2.0, W3C License
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik extensions library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik extensions library (1.9)
+
+* License: Apache-2.0 
+* Project: https://xmlgraphics.apache.org/batik/
+* Source:
+   https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/batik-extension/
+
+Batik external code library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik external code library (1.9.1)
+
+* License: Apache-2.0
+* Project: https://xmlgraphics.apache.org/batik/
+* Source: https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/batik-ext/
+
+Batik Graphics Vector Tree (GVT) (1.9)
+
+* License: Apache-2.0
+
+Batik GUI utility library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik GUI utility library (1.9)
+
+* License: Apache-2.0 
+
+Batik GVT library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik i18n library (1.9.1)
+
+* License: Apache-2.0
+
+Batik image codecs (1.9)
+
+* License: Apache-2.0 
+
+Batik image codecs library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik parser library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik parser library (1.9)
+
+* License: Apache-2.0 
+* Project: https://xmlgraphics.apache.org/batik/
+* Source:
+   https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/batik-parser/
+
+Batik script library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik Script library (1.9.1)
+
+* License: Apache-2.0
+* Project: https://xmlgraphics.apache.org/batik/
+* Source:
+   https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/batik-script/
+
+Batik SVG DOM implementation (1.7)
+
+* License: Apache License, 2.0, W3C License, Historical Permission Notice
+   (without Disclaimer)
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik SVG generator library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik SVG generator library (1.9)
+
+* License: Apache-2.0 
+
+Batik Swing components library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik Swing components library (1.9)
+
+* License: Apache-2.0 
+
+Batik transcoder library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik transcoder library (1.9)
+
+* License: Apache-2.0 
+
+Batik utility library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik utility library (1.9.1)
+
+* License: Apache-2.0 
+
+Batik XML utility library (1.7)
+
+* License: Apache License, 2.0
+* Project: http://xmlgraphics.apache.org/batik/
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+Batik XML utility library (1.9)
+
+* License: Apache-2.0 
+
+Junit (3.8.1)
+
+* License: Common Public License 1.0
+
+org.apache.ant (1.6.5)
+
+* License: Apache License, 2.0
+
+xerces impl.jar (2.6.2)
+
+* License: Apache Software License 1.1
+
+xml-apis.jar (1.3.04)
+
+* License: Apache License, 2.0, Public Domain, W3C
+* Source:
+   http://mirror.csclub.uwaterloo.ca/apache/xmlgraphics/batik/batik-src-1.7.zip
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4c813b8
--- /dev/null
+++ b/README.md
@@ -0,0 +1,53 @@
+# Eclipse GMF Runtime
+
+The [Eclipse GMF Runtime](https://projects.eclipse.org/projects/modeling.gmf-runtime) is an industry proven application framework for creating graphical editors using Eclipse EMF and Eclipse GEF.
+
+The GMF Runtime provides many features that one would have to code by hand if using EMF and GMF directly.
+
+* A set of reusable components for graphical editors, such as printing, image export, actions and toolbars and much more.
+* A standardized model to describe diagram elements, which separates between the semantic (domain) and notation (diagram) elements.
+* A command infrastructure that bridges the different command frameworks used by EMF and GEF.
+* An extensible framework that allows graphical editors to be open and extendible.
+
+### Source
+
+* Clone: <https://git.eclipse.org/r/gmf-runtime/org.eclipse.gmf-runtime>
+* Browse the sources: <https://git.eclipse.org/r/plugins/gitiles/gmf-runtime/org.eclipse.gmf-runtime>
+
+### Reviews
+
+Gerrit Reviews are available at <https://git.eclipse.org/r/q/gmf-runtime%2Forg.eclipse.gmf-runtime>
+
+### Issues
+
+Issues are tracked in the Eclipse Bugzilla under the _GMF-Runtime_ product:
+
+* [List of all open issues](https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Modeling&component=General&list_id=20785712&product=GMF-Runtime&query_format=advanced)
+
+
+### Building
+
+From the top-level directory:
+
+    mvn clean verify
+    
+You can build against a specific Target Platform using `-Dplatform=$PLATFORM_NAME`.
+The supported platforms are available in the `org.eclipse.gmf.runtime.target` directory.
+For example:
+
+    mvn clean verify -Dplatform=2021-06
+
+### CI
+
+The official builds are executed on the Eclipse-provided Jenkins instance at <https://hudson.eclipse.org/hudson/job/gmf-runtime-master/>
+
+### Update Sites
+
+Update Sites (p2 repositories) are available at:
+* <https://download.eclipse.org/modeling/gmp/gmf-runtime/updates/interim>: nightly builds
+* <https://download.eclipse.org/modeling/gmp/gmf-runtime/updates/milestones>: milestone builds
+* <https://download.eclipse.org/modeling/gmp/gmf-runtime/updates/releases>: official releases
+
+### License
+
+[Eclipse Public License 2.0](https://www.eclipse.org/legal/epl-2.0/)
