You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by gi...@apache.org on 2022/06/08 22:15:44 UTC
[beam] branch asf-site updated: Publishing website 2022/06/08 22:15:37 at commit b0d964c
This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 1c71c68ca54 Publishing website 2022/06/08 22:15:37 at commit b0d964c
1c71c68ca54 is described below
commit 1c71c68ca548ae9029ae49974cf3768ec2a9ea51
Author: jenkins <bu...@apache.org>
AuthorDate: Wed Jun 8 22:15:37 2022 +0000
Publishing website 2022/06/08 22:15:37 at commit b0d964c
---
.../contribute/dependencies/index.html | 3 +-
.../contribute/get-started-contributing/index.html | 8 +++-
website/generated-content/contribute/index.xml | 52 +++++++++-------------
.../contribute/release-guide/index.html | 22 ++++-----
website/generated-content/sitemap.xml | 2 +-
5 files changed, 42 insertions(+), 45 deletions(-)
diff --git a/website/generated-content/contribute/dependencies/index.html b/website/generated-content/contribute/dependencies/index.html
index f24f1827bc9..7ce29057c45 100644
--- a/website/generated-content/contribute/dependencies/index.html
+++ b/website/generated-content/contribute/dependencies/index.html
@@ -20,7 +20,8 @@
function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Contribute</span></li><li><a href=/contribute/get-started-contributing>Code contribution guide</a></li><li><a href=/contribute/get-help/>Get help</a></ [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfix container-main-content"><div class="section-nav closed" data-offset-top=90 data-offset-bottom=500><span class="section-nav-back glyphicon glyphicon-menu-left"></span><nav><ul class=section-nav-list data-section-nav><li><span class=section-nav-list-main-title>Contribute</span></li><li><a href=/contribute/get-started-contributing>Code contribution guide</a></li><li><a href=/contribute/get-help/>Get help</a></ [...]
+outdated dependencies.</p><h2 id=upgrading-identified-outdated-dependencies>Upgrading identified outdated dependencies</h2><p>After outdated dependencies are identified, Beam community has to act to upgrade the dependencies regularly. Beam community has agreed on following policies regarding upgrading dependencies.</p><p><strong>Human readable reports on status of Beam dependencies are generated weekly by an automated Jenkins job and shared with the Beam community through the dev list.</ [...]
<a href=http://www.apache.org>The Apache Software Foundation</a>
| <a href=/privacy_policy>Privacy Policy</a>
| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col--group><div class=footer__cols__col__logo><a href=https://github.com/apache/beam><im [...]
\ No newline at end of file
diff --git a/website/generated-content/contribute/get-started-contributing/index.html b/website/generated-content/contribute/get-started-contributing/index.html
index fff3a07f9fa..e24ffffe779 100644
--- a/website/generated-content/contribute/get-started-contributing/index.html
+++ b/website/generated-content/contribute/get-started-contributing/index.html
@@ -33,7 +33,11 @@ Python installation tips in <a href=https://cwiki.apache.org/confluence/display/
Agreement</a> (ICLA) to the Apache
Software Foundation (ASF).</li></ul><h3 id=share-your-intent>Share Your Intent</h3><ol><li>Find or create an issue in the <a href=https://github.com/apache/beam/issues/new/choose>Beam repo</a>.
Tracking your work in an issue will avoid duplicated or conflicting work, and provide
-a place for notes. Later, your pull request will be linked to the issue as well.</li><li>Comment on the issue saying that you would like to work on it.</li><li>If your change is large or it is your first change, it is a good idea to
+a place for notes. Later, your pull request will be linked to the issue as well.</li><li>Comment “.take-issue” on the issue. This will cause the issue to be assigned to you.
+When you’ve completed the issue, you can close it by commenting “.close-issue”.
+If you are a committer and would like to assign an issue to a non-committer, they must comment
+on the issue first; please tag the user asking them to do so or to comment “`.take-issue`”.
+The command will be ignored if it is surrounded by ``` markdown characters.</li><li>If your change is large or it is your first change, it is a good idea to
<a href=https://beam.apache.org/community/contact-us/>discuss it on the dev@beam.apache.org mailing list</a>.</li><li>For large changes create a design doc
(<a href=https://s.apache.org/beam-design-doc-template>template</a>,
<a href=https://s.apache.org/beam-design-docs>examples</a>) and email it to the <a href=https://beam.apache.org/community/contact-us/>dev@beam.apache.org mailing list</a>.</li></ol><h3 id=setup-your-environment>Setup Your Environment</h3><p>Before you begin, check out the Wiki pages. There are many useful tips about <a href=https://cwiki.apache.org/confluence/display/BEAM/Git+Tips>Git</a>, <a href=https://cwiki.apache.org/confluence/display/BEAM/Go+Tips>Go</a>, <a href=https://cwiki.apac [...]
@@ -94,7 +98,7 @@ healthy. A pull request becomes stale after its author fails to respond to
actionable comments for 60 days. Author of a closed pull request is welcome to
reopen the same pull request again in the future.</p><h3 id=troubleshooting>Troubleshooting</h3><p>If you run into any issues, check out the <a href=https://cwiki.apache.org/confluence/display/BEAM/Contributor+FAQ>contribution FAQ</a> or ask on the <a href=https://beam.apache.org/community/contact-us/>dev@ mailing list</a> or <a href=https://beam.apache.org/community/contact-us/>#beam channel of the ASF Slack</a>.</p><p>If you didn’t find the information you were looking for in thi [...]
<a href=https://beam.apache.org/community/contact-us/>reach out to the Beam community</a>.</p></div><h2 id=find-efforts-to-contribute-to>Find Efforts to Contribute to</h2><p>A great way to contribute is to join an existing effort. If you want to get involved but don’t have a project in mind, check our <a href=https://s.apache.org/beam-starter-tasks>list of open starter tasks</a>.
-For the most intensive efforts, check out the <a href=https://beam.apache.org/roadmap/>roadmap</a>.</p><h2 id=additional-resources>Additional Resources</h2><p>Please see Beam developers’ <a href=https://cwiki.apache.org/confluence/display/BEAM/Contributor+FAQ>Wiki Contributor FAQ</a> for more information.</p><p>If you are contributing a <code>PTransform</code> to Beam, we have an extensive <a href=https://beam.apache.org/contribute/ptransform-style-guide>PTransform Style Guide</a>.</p><p [...]
+For the most intensive efforts, check out the <a href=https://beam.apache.org/roadmap/>roadmap</a>.</p><h2 id=additional-resources>Additional Resources</h2><p>Please see Beam developers’ <a href=https://cwiki.apache.org/confluence/display/BEAM/Contributor+FAQ>Wiki Contributor FAQ</a> for more information.</p><p>If you are contributing a <code>PTransform</code> to Beam, we have an extensive <a href=https://beam.apache.org/contribute/ptransform-style-guide>PTransform Style Guide</a>.</p><p [...]
<a href=http://www.apache.org>The Apache Software Foundation</a>
| <a href=/privacy_policy>Privacy Policy</a>
| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col--group><div class=footer__cols__col__logo><a href=https://github.com/apache/beam><im [...]
\ No newline at end of file
diff --git a/website/generated-content/contribute/index.xml b/website/generated-content/contribute/index.xml
index 41fb04e9c47..3f8575620ae 100644
--- a/website/generated-content/contribute/index.xml
+++ b/website/generated-content/contribute/index.xml
@@ -260,7 +260,11 @@ Software Foundation (ASF).</li>
<li>Find or create an issue in the <a href="https://github.com/apache/beam/issues/new/choose">Beam repo</a>.
Tracking your work in an issue will avoid duplicated or conflicting work, and provide
a place for notes. Later, your pull request will be linked to the issue as well.</li>
-<li>Comment on the issue saying that you would like to work on it.</li>
+<li>Comment &ldquo;.take-issue&rdquo; on the issue. This will cause the issue to be assigned to you.
+When you&rsquo;ve completed the issue, you can close it by commenting &ldquo;.close-issue&rdquo;.
+If you are a committer and would like to assign an issue to a non-committer, they must comment
+on the issue first; please tag the user asking them to do so or to comment &ldquo;`.take-issue`&rdquo;.
+The command will be ignored if it is surrounded by ``` markdown characters.</li>
<li>If your change is large or it is your first change, it is a good idea to
<a href="https://beam.apache.org/community/contact-us/">discuss it on the dev@beam.apache.org mailing list</a>.</li>
<li>For large changes create a design doc
@@ -1354,23 +1358,23 @@ See the [download page](/get-started/downloads/{$DOWNLOAD_ANCHOR}) for this rele
&lt;{$REMOVE_FOR_VALID_SUMMARY_BREAK}!--more--&gt;
For more information on changes in {$RELEASE_VERSION}, check out the [detailed release notes]({$LINK_TO_GITHUB_MILESTONE}).
## Highlights
-* New highly anticipated feature X added to Python SDK ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
-* New highly anticipated feature Y added to Java SDK ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y)).
+* New highly anticipated feature X added to Python SDK ([#X](https://github.com/apache/beam/issues/X)).
+* New highly anticipated feature Y added to Java SDK ([#Y](https://github.com/apache/beam/issues/Y)).
{$TOPICS e.g.:}
### I/Os
-* Support for X source added (Java) ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
+* Support for X source added (Java) ([#X](https://github.com/apache/beam/issues/X)).
{$TOPICS}
### New Features / Improvements
-* X feature added (Python) ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
-* Y feature added (Java) [BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y).
+* X feature added (Python) ([#X](https://github.com/apache/beam/issues/X)).
+* Y feature added (Java) [#Y](https://github.com/apache/beam/issues/Y).
### Breaking Changes
-* X behavior was changed ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
-* Y behavior was changed ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y)).
+* X behavior was changed ([#X](https://github.com/apache/beam/issues/X)).
+* Y behavior was changed ([#Y](https://github.com/apache/beam/issues/Y)).
### Deprecations
-* X behavior is deprecated and will be removed in X versions ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
+* X behavior is deprecated and will be removed in X versions ([#X](https://github.com/apache/beam/issues/X)).
### Bugfixes
-* Fixed X (Python) ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-X)).
-* Fixed Y (Java) ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y)).
+* Fixed X (Python) ([#X](https://github.com/apache/beam/issues/X)).
+* Fixed Y (Java) ([#Y](https://github.com/apache/beam/issues/Y)).
### Known Issues
* {$KNOWN_ISSUE_1}
* {$KNOWN_ISSUE_2}
@@ -2140,32 +2144,20 @@ limitations under the License.
<li>A dependency conflict that was was triggered by a minor version release of a Beam dependency (this does not apply to Java SDK that depends on exact minor versions of dependencies).</li>
</ul>
<p>These kind of urgently required upgrades might not get automatically picked up by the Jenkins job for few months. So Beam community has to act to identify such issues and perform upgrades early.</p>
-<h2 id="jira-issue-automation">JIRA Issue Automation</h2>
-<p>In order to track the dependency upgrade process, JIRA tickets will be created per significant outdated dependency based on the report. A bot named <em>Beam Jira Bot</em> was created for managing JIRA issues. Beam community agrees on the following policies that creates and updates issues.</p>
-<ul>
-<li>Title (summary) of the issues will be in the format &ldquo;Beam Dependency Update Request: &lt;dep_name&gt;&rdquo; where &lt;dep_name&gt; is the dependency artifact name.</li>
-<li>Issues will be created under the component <em>&ldquo;dependencies&rdquo;</em>.</li>
-<li>Owners of dependencies will be notified by tagging the corresponding JIRA IDs mentioned in the ownership files in the issue description. See <a href="https://github.com/apache/beam/blob/master/ownership/JAVA_DEPENDENCY_OWNERS.yaml">Java Dependency Owners</a> and <a href="https://github.com/apache/beam/blob/master/ownership/PYTHON_DEPENDENCY_OWNERS.yaml">Python Dependency Owners</a> for current owners for Java SDK and Python SDK dependencies respectively.</li>
-<li>Automated tool will not create duplicate issues for the same dependency. Instead the tool will look for an existing JIRA when one has to be created for a given dependency and description of the JIRA will be updated with latest information, for example, current version of the dependency.</li>
-<li>If a Beam community member determines that a given dependency should not be upgraded the corresponding JIRA issue can be closed with a fix version specified.</li>
-<li>Automated tool will reopen a JIRA for a given dependency when one of following conditions is met:
-<ul>
-<li>Next SDK release is for a fix version mentioned in the JIRA.</li>
-<li>Six months <strong>and</strong> three or more minor releases have passed since the JIRA was closed.</li>
-</ul>
-</li>
-</ul>
+<h2 id="dependabot-issue-automation">Dependabot Issue Automation</h2>
+<p>In order to track the dependency upgrade process, Dependabot will automatically raise pull requests to upgrade
+outdated dependencies.</p>
<h2 id="upgrading-identified-outdated-dependencies">Upgrading identified outdated dependencies</h2>
<p>After outdated dependencies are identified, Beam community has to act to upgrade the dependencies regularly. Beam community has agreed on following policies regarding upgrading dependencies.</p>
<p><strong>Human readable reports on status of Beam dependencies are generated weekly by an automated Jenkins job and shared with the Beam community through the dev list.</strong></p>
<p>These reports should be concise and should highlight the cases where the community has to act on.</p>
<p><strong>Beam components should define dependencies and their versions at the top level. There can be rare exceptions, but they should come with explanations.</strong></p>
<p>Components include various Beam runners, IO connectors, etc. Component-level dependency version declarations should only be performed in rare cases and should come with a comment explaining the reasoning for overriding the dependency. For example, dependencies specific to a runner that are unlikely to be utilized by other components might be defined at the runner.</p>
-<p><strong>A significantly outdated dependency (identified manually or through the automated Jenkins job) should result in a JIRA that is a blocker for the next release. Release manager may choose to push the blocker to the subsequent release or downgrade from a blocker.</strong></p>
-<p>This will be a blocker for next major and minor version releases of Beam. JIRA may be created automatically or manually.</p>
-<p>For manually identified critical dependency updates, Beam community members should create blocking JIRAs for next release. In addition to this Beam community members may trigger patch releases for any critical dependency fixes that should be made available to users urgently.</p>
+<p><strong>A significantly outdated dependency (identified manually or through the automated Jenkins job) should result in a issue that is a blocker for the next release. Release manager may choose to push the blocker to the subsequent release or downgrade from a blocker.</strong></p>
+<p>This will be a blocker for next major and minor version releases of Beam.</p>
+<p>For manually identified critical dependency updates, Beam community members should create blocking Issues for next release. In addition to this Beam community members may trigger patch releases for any critical dependency fixes that should be made available to users urgently.</p>
<p><strong>Dependency declarations may identify owners that are responsible for upgrading respective dependencies.</strong></p>
-<p>Owners can be mentioned in the yaml files. Blocking JIRAs will be initially assigned to these owners (if available). Release manager may choose to re-assign these JIRAs. A dependency may have more than one declared owner and in this case the JIRA will be assigned to one of the owners mentioned.</p>
+<p>Owners can be mentioned in the yaml files. Blocking Issues will be initially assigned to these owners (if available). Release manager may choose to re-assign these Issues. A dependency may have more than one declared owner and in this case the Issue will be assigned to one of the owners mentioned.</p>
<p><strong>Dependencies of Java SDK components that may cause issues to other components if leaked should be vendored.</strong></p>
<p><a href="https://www.ardanlabs.com/blog/2013/10/manage-dependencies-with-godep.html">Vendoring</a> is the process of creating copies of third party dependencies. Combined with repackaging, vendoring allows Beam components to depend on third party libraries without causing conflicts to other components. Vendoring should be done in a case-by-case basis since this can increase the total number of dependencies deployed in user&rsquo;s enviroment.</p>
<h2 id="dependency-updates-and-backwards-compatibility">Dependency updates and backwards compatibility</h2>
diff --git a/website/generated-content/contribute/release-guide/index.html b/website/generated-content/contribute/release-guide/index.html
index 4eb067edca6..05fafd99766 100644
--- a/website/generated-content/contribute/release-guide/index.html
+++ b/website/generated-content/contribute/release-guide/index.html
@@ -178,32 +178,32 @@ For more information on changes in {$RELEASE_VERSION}, check out the [detailed r
## Highlights
- * New highly anticipated feature X added to Python SDK ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
- * New highly anticipated feature Y added to Java SDK ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y)).
+ * New highly anticipated feature X added to Python SDK ([#X](https://github.com/apache/beam/issues/X)).
+ * New highly anticipated feature Y added to Java SDK ([#Y](https://github.com/apache/beam/issues/Y)).
{$TOPICS e.g.:}
### I/Os
-* Support for X source added (Java) ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
+* Support for X source added (Java) ([#X](https://github.com/apache/beam/issues/X)).
{$TOPICS}
### New Features / Improvements
-* X feature added (Python) ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
-* Y feature added (Java) [BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y).
+* X feature added (Python) ([#X](https://github.com/apache/beam/issues/X)).
+* Y feature added (Java) [#Y](https://github.com/apache/beam/issues/Y).
### Breaking Changes
-* X behavior was changed ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
-* Y behavior was changed ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y)).
+* X behavior was changed ([#X](https://github.com/apache/beam/issues/X)).
+* Y behavior was changed ([#Y](https://github.com/apache/beam/issues/Y)).
### Deprecations
-* X behavior is deprecated and will be removed in X versions ([BEAM-X](https://issues.apache.org/jira/browse/BEAM-X)).
+* X behavior is deprecated and will be removed in X versions ([#X](https://github.com/apache/beam/issues/X)).
### Bugfixes
-* Fixed X (Python) ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-X)).
-* Fixed Y (Java) ([BEAM-Y](https://issues.apache.org/jira/browse/BEAM-Y)).
+* Fixed X (Python) ([#X](https://github.com/apache/beam/issues/X)).
+* Fixed Y (Java) ([#Y](https://github.com/apache/beam/issues/Y)).
### Known Issues
@@ -409,7 +409,7 @@ This should happen automatically: <a href=https://lists.apache.org/thread.html/3
Ask other contributors to do the same.</p><p>Also, update <a href=https://en.wikipedia.org/wiki/Apache_Beam>the Wikipedia article on Apache Beam</a>.</p><h3 id=checklist-to-declare-the-process-completed>Checklist to declare the process completed</h3><ol><li>Release announced on the user@ mailing list.</li><li>Blog post published, if applicable.</li><li>Release recorded in reporter.apache.org.</li><li>Release announced on social media.</li><li>Completion declared on the dev@ mailing list. [...]
Once you’ve finished the release, please take a step back and look what areas of this process and be improved. Perhaps some part of the process can be simplified.
Perhaps parts of this guide can be clarified.</p><p>If we have specific ideas, please start a discussion on the dev@ mailing list and/or propose a pull request to update this guide.
-Thanks!</p><div class=feedback><p class=update>Last updated on 2022/05/18</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load-button><a href="mailto:dev@beam.apache.org?subject=Beam Website Feedback">SEND FEEDBACK</a></button></div></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col foo [...]
+Thanks!</p><div class=feedback><p class=update>Last updated on 2022/06/08</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load-button><a href="mailto:dev@beam.apache.org?subject=Beam Website Feedback">SEND FEEDBACK</a></button></div></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col foo [...]
<a href=http://www.apache.org>The Apache Software Foundation</a>
| <a href=/privacy_policy>Privacy Policy</a>
| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col--group><div class=footer__cols__col__logo><a href=https://github.com/apache/beam><im [...]
\ No newline at end of file
diff --git a/website/generated-content/sitemap.xml b/website/generated-content/sitemap.xml
index a2386429527..d3a4cc392ec 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.39.0/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/blog/b [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.39.0/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2022-05-25T11:28:33-07:00</lastmod></url><url><loc>/blog/b [...]
\ No newline at end of file